forked from WebKit/WebKit-http
-
Notifications
You must be signed in to change notification settings - Fork 8
Note new web inspector frontend
Brian Burg edited this page Jun 30, 2013
·
6 revisions
- port the capturing ticker-tape widget
- add stop button to ticker-tape
- play/pause button on replay dashboard
- eject button on replay dashboard
- port overview timeline widget + replay slider (no zoom)
- scroll zoom
- zoom horizon
- zoom horizon markers
- zoom buttons
- screenshots?
- add current recording/other recordings to hierarchical navigation bar
In addition to dispatching events to listeners on the object instance, events also propagate up the constructor chain. See Object.js
for more details.
brrian: xenon: JoePeck: what's the lifecycle story for models and Views? do they never die?
[2:11pm] JoePeck: brrian: Main.js owns a bunch of things which never die. (Navigation and Detail SidebarPanels, ContentBrowser, QuickConsole)
[2:12pm] xenon: brrian: most views are closed on navigation
[2:12pm] xenon: brrian: timeline and console are exceptions
[2:12pm] JoePeck: brrian: Model objects (often stuff created from backend messages) are often held in Managers. Observer -> Manager. And those Managers clear things on page navigations. Typically handlers of the "WebInspector.FrameResourceManager.Event.MainFrameDidChange" event
[2:12pm] xenon: look for lines like this:
[2:12pm] xenon: WebInspector.contentBrowser.contentViewContainer.closeAllContentViewsOfPrototype(WebInspector.ResourceClusterContentView);
[2:12pm] JoePeck: and WebInspector.contentBrowser.contentViewContainer.closeAllContentViewsOfPrototype
JoePeck: brrian: ahh, it looks like "WebInspector.Frame.Event.MainResourceDidChange" is more common. Which makes sense
[2:14pm] JoePeck: you can see almost all the Managers register for that event and clear state when it happens
[2:18pm] xenon: which we should clean up
[2:18pm] brrian: so ContentView.{shown,hidden,closed,updateLayout} seem to resemble the old View.{wasShown,willDispose} etc
[2:20pm] brrian: i assume updateLayout() is mostly for refreshing view for any changed model state, but has same representedObject
[2:20pm] JoePeck: - shown/hidden happen when the ContentView is shown/hidden in the ContentBrowser.
[2:20pm] JoePeck: - close happens when the ContentView is going to be deleted, so I suppose close relates to willDispose.
[2:20pm] JoePeck: - I donno what "wasShown" meant
brrian: JoePeck: what is ClusterContentView for?
[6:10pm] JoePeck: brrian: When a Represented Object has multiple ContentViews. Like DOM Tree + Source Code.
[6:10pm] JoePeck: brrian: and ResourceClusterContentView would be for showing Request (like POST data in the request) and Response
[6:10pm] brrian: hm okay
[6:11pm] JoePeck: brrian: so in the UI a ClusterContentView shows up with up/down picker arrows in the main nav bar
[6:11pm] brrian: trying to figure out how to add in a ticker tape to my dashboard during capture, then show a different view when it's done recording
[6:12pm] brrian: they should be content views of some sort because they are tied to specific Objects
[6:13pm] JoePeck: brrian: is the ticker ever used after recording?
[6:13pm] brrian: no. fresh one on each recording
[6:13pm] JoePeck: brrian: ResourceContentView totally replaces its content once the type comes in. Hence the indeterminate state. So you could do something like that
[6:14pm] brrian: ok
[6:15pm] brrian: what's ContentViewContainer for then if that class can do replacement?
[6:15pm] JoePeck: brrian: hmm, ugh oh.
[6:15pm] JoePeck: brrian: So ResourceContentView registers "_resourceTypeDidChange" on WebInspector.Resource.Event.TypeDidChange
[6:15pm] JoePeck: brrian: but it looks like that moved. to ResourceClusterContentView
[6:15pm] JoePeck: so there might be a bug there...
[6:16pm] brrian: hmm
[6:16pm] JoePeck: brrian: but, yes that was exactly what i was looking for. It calls "this.contentViewContainer.replaceContentView"
[6:16pm] brrian: JoePeck: also, the dashboard contents are kinda hardcoded, i would have expected each object to manage its own listeners and be a NavigationItem
[6:16pm] JoePeck: which replaces the current content view with a new one. You could do that to replace a temporary Ticker view.
[6:17pm] JoePeck: brrian: feel free to refactor. I didn't work at all on the Dashboard. graouts and xenon both touched it
[6:17pm] brrian: k
[6:17pm] JoePeck: brrian: I saw your imgs on Twitter
[6:17pm] JoePeck: brrian: I wouldn't mind if recording took over the entire dashboard
[6:18pm] JoePeck: nifty film icon
[6:18pm] brrian: that's what xenon said
[6:18pm] jeffreylin joined the chat room.
[6:18pm] jeffreylin left the chat room. (Changing host)
[6:18pm] jeffreylin joined the chat room.
[6:19pm] brrian: i guess my main confusion is that the content views have obvious life cycles while navigation items do not
[6:19pm] brrian: unless some navigation items are also content views (kinda what i'm proposing)
[6:19pm] JoePeck: brrian: ahh, so what I mentioned above wasn't necessarily a bug. Just the line in ResourceContentView is stale and can be removed. I'll fix that
[6:20pm]