Web Inspector: In a DataGrid, store value of columnIdentifier to DOM node representin...
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2014-01-28  Diego Pino Garcia  <dpino@igalia.com>
2
3         Web Inspector: In a DataGrid, store value of columnIdentifier to DOM node representing a cell
4         https://bugs.webkit.org/show_bug.cgi?id=127613
5
6         Reviewed by Timothy Hatcher.
7
8         * UserInterface/DOMStorageContentView.js:
9         (WebInspector.DOMStorageContentView.prototype._editingCallback):
10         * UserInterface/DataGrid.js:
11         (WebInspector.DataGrid):
12         (WebInspector.DataGrid.prototype._keyDown):
13         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
14         (WebInspector.DataGridNode.prototype.createCell):
15
16 2014-01-27  Joseph Pecoraro  <pecoraro@apple.com>
17
18         Web Inspector: Feature Check all Protocol Generated Interfaces to get JSContext Inspection working
19         https://bugs.webkit.org/show_bug.cgi?id=127712
20
21         Reviewed by Timothy Hatcher.
22
23         Feature check protocol generated interfaces (e.g. FooAgent and registerFooObserver).
24         Also drive by handle a possible exception if a SourceCode's URL is null, which is possible.
25
26         * UserInterface/ApplicationCacheManager.js:
27         (WebInspector.ApplicationCacheManager):
28         (WebInspector.ApplicationCacheManager.prototype.initialize):
29         * UserInterface/CSSCompletions.js:
30         (WebInspector.CSSCompletions.requestCSSNameCompletions):
31         * UserInterface/CSSStyleManager.js:
32         (WebInspector.CSSStyleManager):
33         (WebInspector.CSSStyleManager.prototype.canForcePseudoClasses):
34         * UserInterface/DebuggerManager.js:
35         * UserInterface/FrameResourceManager.js:
36         (WebInspector.FrameResourceManager):
37         (WebInspector.FrameResourceManager.prototype.initialize):
38         * UserInterface/Main.js:
39         (WebInspector.loaded):
40         * UserInterface/ProfileManager.js:
41         (WebInspector.ProfileManager):
42         * UserInterface/StorageManager.js:
43         (WebInspector.StorageManager):
44         Type check generated interfaces.
45
46         (WebInspector.DebuggerManager):
47         (WebInspector.DebuggerManager.prototype.debuggerDidPause):
48         Null check a SourceCode URL, which can be null for a Script with no URL.
49
50 2014-01-25  Timothy Hatcher  <timothy@apple.com>
51
52         Remove dead code from the JSC profiler.
53
54         https://bugs.webkit.org/show_bug.cgi?id=127643
55
56         Reviewed by Mark Lam.
57
58         * Versions/Inspector-iOS-7.0.json: Remove visible from CPUProfileNode.
59
60 2014-01-25  Joseph Pecoraro  <pecoraro@apple.com>
61
62         Remove FIXME in CSSKeywordCompletions.js about "inherit" keyword
63         https://bugs.webkit.org/show_bug.cgi?id=127638
64
65         Reviewed by Timothy Hatcher.
66
67         * UserInterface/CSSKeywordCompletions.js:
68         (WebInspector.CSSKeywordCompletions.forProperty):
69         Replace FIXME with a descriptive comment about why the code is what it is.
70
71 2014-01-25  Diego Pino Garcia  <dpino@igalia.com>
72
73         Web Inspector: Position the completion suggestions popup below if there is room
74         https://bugs.webkit.org/show_bug.cgi?id=127615
75
76         Reviewed by Joseph Pecoraro.
77
78         * UserInterface/CompletionSuggestionsView.js:
79         (WebInspector.CompletionSuggestionsView.prototype.show):
80
81 2014-01-23  Timothy Hatcher  <timothy@apple.com>
82
83         Refactor TimelineRecordBar combining logic into a helper function.
84
85         https://bugs.webkit.org/show_bug.cgi?id=127530
86
87         Reviewed by Joseph Pecoraro.
88
89         * UserInterface/LayoutTimelineOverviewGraph.js:
90         (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout.createBar):
91         (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
92         Use TimelineRecordBar.createCombinedBars.
93
94         * UserInterface/NetworkTimelineOverviewGraph.css:
95         (.timeline-overview-graph.network):
96         (.timeline-overview-graph.network > .graph-row > .timeline-record-bar):
97         Cleaned up since we are using TimelineRecordBar.
98
99         * UserInterface/NetworkTimelineOverviewGraph.js:
100         (WebInspector.NetworkTimelineOverviewGraph.prototype.reset):
101         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
102         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
103         Use TimelineRecordBar.createCombinedBars.
104
105         * UserInterface/ScriptTimelineOverviewGraph.js:
106         (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar):
107         (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
108         Use TimelineRecordBar.createCombinedBars.
109
110         * UserInterface/TimelineDataGridNode.js:
111         (WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBar):
112         (WebInspector.TimelineDataGridNode.prototype.refreshGraph):
113         Use TimelineRecordBar.createCombinedBars.
114
115         * UserInterface/TimelineRecordBar.css:
116         (.timeline-record-bar.unfinished > .segment):
117         (.timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
118         (:focus .selected .timeline-record-bar > .segment.inactive):
119         Improved selected appearance and don't assume .segment.inactive exists.
120
121         * UserInterface/TimelineRecordBar.js:
122         (WebInspector.TimelineRecordBar):
123         (WebInspector.TimelineRecordBar.createCombinedBars.compareByActiveStartTime): Added.
124         (WebInspector.TimelineRecordBar.createCombinedBars): Added.
125         (WebInspector.TimelineRecordBar.prototype.get renderMode): Added.
126         (WebInspector.TimelineRecordBar.prototype.set renderMode): Added.
127         (WebInspector.TimelineRecordBar.prototype.set records):
128         (WebInspector.TimelineRecordBar.prototype.refresh):
129         Lazily create DOM elements. Support rendering one or both segments. Doing this lets
130         combined inactive segments sit behind multiple active segments.
131
132 2014-01-22  Timothy Hatcher  <timothy@apple.com>
133
134         Improve collapsing of TimelineDataGridNode graphs up to ancestors.
135
136         https://bugs.webkit.org/show_bug.cgi?id=127440
137
138         Reviewed by Joseph Pecoraro.
139
140         * UserInterface/TimelineDataGridNode.js:
141         (WebInspector.TimelineDataGridNode.prototype.collapse):
142         (WebInspector.TimelineDataGridNode.prototype.createCellContent):
143         (WebInspector.TimelineDataGridNode.prototype.refresh):
144         (WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
145         Notify the next visible ancestor it needs to refresh. Use needsGraphRefresh so ancestors
146         are notified instead of directly calling refreshGraph in some places.
147
148 2014-01-22  Timothy Hatcher  <timothy@apple.com>
149
150         Don't include a hidden Timeline selection in the navigation path components.
151
152         https://bugs.webkit.org/show_bug.cgi?id=127443
153
154         Reviewed by Joseph Pecoraro.
155
156         * UserInterface/GeneralTreeElementPathComponent.js:
157         (WebInspector.GeneralTreeElementPathComponent.prototype.get previousSibling):
158         (WebInspector.GeneralTreeElementPathComponent.prototype.get nextSibling):
159         Skip hidden siblings.
160
161         * UserInterface/OverviewTimelineView.js:
162         (WebInspector.OverviewTimelineView.prototype.updateLayout):
163         (WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
164         Don't include hidden selection and dispatch SelectionPathComponentsDidChange event if hidden changes.
165
166         * UserInterface/TimelineContentView.js:
167         (WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
168         Dispatch SelectionPathComponentsDidChange event if hidden changes on the selected tree element.
169
170         * UserInterface/TimelineView.js:
171         (WebInspector.TimelineView.prototype.get selectionPathComponents):
172         Don't include hidden selection.
173
174 2014-01-22  Timothy Hatcher  <timothy@apple.com>
175
176         Support collapsing call site records into the resource timeline.
177
178         Also fix some filtering and graph issues.
179
180         https://bugs.webkit.org/show_bug.cgi?id=127440
181
182         Reviewed by Joseph Pecoraro.
183
184         * UserInterface/NavigationSidebarPanel.js:
185         (WebInspector.NavigationSidebarPanel.prototype.updateFilter):
186         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
187         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.makeVisible):
188         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
189         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
190         Tweak how filtering happens so custom filters never expand to reveal and auto expanded
191         tree elements will auto-collapse again later even with custom filters.
192
193         * UserInterface/OverviewTimelineView.css:
194         (.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
195         (.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
196         (.timeline-view.overview > .data-grid:focus tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
197         Add a shadow to provide some negative space between juxtaposed records. Only needed when not expanded.
198
199         * UserInterface/OverviewTimelineView.js:
200         (WebInspector.OverviewTimelineView.prototype.updateLayout):
201         (WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
202         Update the filter when current time changes and only auto expand the main resource.
203
204         * UserInterface/ResourceTimelineDataGridNode.js:
205         (WebInspector.ResourceTimelineDataGridNode):
206         (WebInspector.ResourceTimelineDataGridNode.prototype._timelineRecordUpdated):
207         Don't schedule a refresh of the graph if the record isn't visible.
208
209         * UserInterface/SourceCodeTimelineTimelineDataGridNode.js:
210         (WebInspector.SourceCodeTimelineTimelineDataGridNode):
211         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype._timelineRecordAdded):
212         Don't schedule a refresh of the graph if the record isn't visible.
213
214         * UserInterface/TimelineContentView.js:
215         (WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
216         Remove the boolean for updateFilter.
217
218         * UserInterface/TimelineDataGrid.js:
219         (WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
220         (WebInspector.TimelineDataGrid.prototype._sort):
221         Keep the hidden state in-sync between node and element.
222
223         * UserInterface/TimelineDataGridNode.js:
224         (WebInspector.TimelineDataGridNode.prototype.collapse):
225         (WebInspector.TimelineDataGridNode.prototype.expand):
226         (WebInspector.TimelineDataGridNode.prototype.appendChild):
227         (WebInspector.TimelineDataGridNode.prototype.insertChild):
228         (WebInspector.TimelineDataGridNode.prototype.removeChild):
229         (WebInspector.TimelineDataGridNode.prototype.removeChildren):
230         (WebInspector.TimelineDataGridNode.prototype.removeChildrenRecursive):
231         (WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBarsForRecords):
232         (WebInspector.TimelineDataGridNode.prototype.refreshGraph.else.collectRecordsByType.get if):
233         (WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
234         (WebInspector.TimelineDataGridNode.prototype.isRecordVisible):
235         Support drawing the children records on the parent graph.
236
237         * UserInterface/TimelineRecordBar.css:
238         (.timeline-record-bar.unfinished > .segment):
239         (:focus .selected .timeline-record-bar > .segment):
240         (:focus .selected .timeline-record-bar > .segment.inactive):
241         (:focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
242         Tweaked styles to look better when selected.
243
244         * UserInterface/TimelineRecordBar.js:
245         (WebInspector.TimelineRecordBar.recordsCannotBeCombined):
246         (WebInspector.TimelineRecordBar.prototype.set records):
247         (WebInspector.TimelineRecordBar.prototype.refresh):
248         Drive-by fixes for some bug with bars being reused.
249
250 2014-01-21  Timothy Hatcher  <timothy@apple.com>
251
252         Remember the Timeline Overview zoom and selection between sessions.
253
254         https://bugs.webkit.org/show_bug.cgi?id=127369
255
256         Reviewed by Joseph Pecoraro.
257
258         * UserInterface/TimelineOverview.js:
259         (WebInspector.TimelineOverview):
260         (WebInspector.TimelineOverview.prototype.set secondsPerPixel):
261         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
262
263 2014-01-21  Timothy Hatcher  <timothy@apple.com>
264
265         Show the Resource and Record selection path in the navigation bar for Timeline views.
266
267         https://bugs.webkit.org/show_bug.cgi?id=127367
268
269         Reviewed by Joseph Pecoraro.
270
271         * UserInterface/LayoutTimelineView.js:
272         (WebInspector.LayoutTimelineView.prototype.treeElementPathComponentSelected):
273         (WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):
274         * UserInterface/NetworkTimelineView.js:
275         (WebInspector.NetworkTimelineView.prototype.treeElementPathComponentSelected):
276         (WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
277         * UserInterface/OverviewTimelineView.js:
278         (WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
279         (WebInspector.OverviewTimelineView.prototype.treeElementPathComponentSelected):
280         (WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
281         * UserInterface/ScriptTimelineView.js:
282         (WebInspector.ScriptTimelineView.prototype.treeElementPathComponentSelected):
283         (WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
284         * UserInterface/TimelineContentView.js:
285         (WebInspector.TimelineContentView.prototype._timelineViewSelectionPathComponentsDidChange):
286         (WebInspector.TimelineContentView.prototype._showTimelineView):
287         * UserInterface/TimelineDataGrid.js:
288         (WebInspector.TimelineDataGrid.prototype.treeElementForDataGridNode):
289         (WebInspector.TimelineDataGrid.prototype.dataGridNodeForTreeElement):
290         * UserInterface/TimelineView.js:
291         (WebInspector.TimelineView.prototype.get selectionPathComponents):
292         (WebInspector.TimelineView.prototype.treeElementPathComponentSelected):
293
294 2014-01-20  Timothy Hatcher  <timothy@apple.com>
295
296         Add the recording button back to the Timelines sidebar.
297
298         https://bugs.webkit.org/show_bug.cgi?id=127314
299
300         Reviewed by Joseph Pecoraro.
301
302         * Localizations/en.lproj/localizedStrings.js: Updated.
303
304         * UserInterface/TimelineContentView.js:
305         (WebInspector.TimelineContentView.prototype.get navigationItems):
306         (WebInspector.TimelineContentView.prototype._update):
307         (WebInspector.TimelineContentView.prototype._updateTimes):
308         (WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
309         (WebInspector.TimelineContentView.prototype._recordingTimesUpdated):
310         (WebInspector.TimelineContentView.prototype._clearTimeline):
311         (WebInspector.TimelineContentView.prototype._recordingReset):
312         Add a clear button and reset the time ruler and views when the recording resets.
313
314         * UserInterface/TimelineSidebarPanel.css:
315         (.sidebar > .panel.timeline > .status-bar):
316         (.sidebar > .panel.timeline > .status-bar > .record-glyph):
317         (.sidebar > .panel.timeline > .status-bar > .record-glyph.recording):
318         (.sidebar > .panel.timeline > .status-bar > .record-glyph:hover):
319         (.sidebar > .panel.timeline > .status-bar > .record-glyph.recording:hover):
320         (.sidebar > .panel.timeline > .status-bar > .record-glyph.forced):
321         (.sidebar > .panel.timeline > .status-bar > .record-glyph.recording.forced):
322         (.sidebar > .panel.timeline > .status-bar > .record-status):
323         Add styles for the recording button and status message.
324
325         * UserInterface/TimelineSidebarPanel.js:
326         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
327         (WebInspector.TimelineSidebarPanel.prototype._recordingStarted):
328         (WebInspector.TimelineSidebarPanel.prototype._recordingStopped):
329         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOver):
330         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOut):
331         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
332         Add support for the recording button and status message.
333
334 2014-01-20  Timothy Hatcher  <timothy@apple.com>
335
336         Make the TimelineRecordTreeElement location subtitle live.
337
338         https://bugs.webkit.org/show_bug.cgi?id=127270
339
340         Reviewed by Joseph Pecoraro.
341
342         * Localizations/en.lproj/localizedStrings.js: Updated.
343
344         * UserInterface/SourceCodeLocation.js:
345         (WebInspector.SourceCodeLocation.prototype.originalLocationString):
346         (WebInspector.SourceCodeLocation.prototype.formattedLocationString):
347         (WebInspector.SourceCodeLocation.prototype.displayLocationString):
348         (WebInspector.SourceCodeLocation.prototype.updateDisplayString):
349         (WebInspector.SourceCodeLocation.prototype._locationString):
350         Support for a new nameStyle enum and a prefix for the location string.
351         Passing the prefix here lets it be italicized with the line number.
352         Support column number for SourceCode's without a URL too.
353
354         * UserInterface/TimelineRecordTreeElement.js:
355         (WebInspector.TimelineRecordTreeElement):
356         (WebInspector.TimelineRecordTreeElement.prototype.onattach):
357         Create a subtitle span to update the location inside. Update the tooltip on attach.
358
359 2014-01-19  Timothy Hatcher  <timothy@apple.com>
360
361         Generate better display names for timer and event Timeline records.
362
363         Also support AnimationFrameRequested and AnimationFrameCanceled.
364
365         https://bugs.webkit.org/show_bug.cgi?id=127258
366
367         Reviewed by Joseph Pecoraro.
368
369         * Localizations/en.lproj/localizedStrings.js: Updated.
370
371         * UserInterface/LayoutTimelineRecord.js:
372         (WebInspector.LayoutTimelineRecord.EventType.displayName):
373         Generate past tense names that better match other names.
374
375         * UserInterface/ScriptTimelineDataGridNode.js:
376         (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
377         Pass the details to displayName.
378
379         * UserInterface/ScriptTimelineRecord.js:
380         (WebInspector.ScriptTimelineRecord.EventType.displayName):
381         Generate better names for timer and event records. Also add missing animation frame types.
382
383         * UserInterface/ScriptTimelineView.js:
384         (WebInspector.ScriptTimelineView.prototype._processPendingRecords):
385         Pass true to WebInspector.TimelineRecordTreeElement to include timer identifiers in the title.
386
387         * UserInterface/SourceCodeTimelineTreeElement.js:
388         (WebInspector.SourceCodeTimelineTreeElement):
389         Pass includeTimerIdentifierInMainTitle through to TimelineRecordTreeElement.
390
391         * UserInterface/TimelineManager.js:
392         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
393         Include AnimationFrameRequested and AnimationFrameCanceled.
394
395         * UserInterface/TimelineRecordTreeElement.js:
396         (WebInspector.TimelineRecordTreeElement):
397         Use displayName functions instead and support includeTimerIdentifierInMainTitle.
398
399 2014-01-19  Timothy Hatcher  <timothy@apple.com>
400
401         Implement basic versions of the TimelineOverview graphs.
402
403         https://bugs.webkit.org/show_bug.cgi?id=127184
404
405         Reviewed by Joseph Pecoraro.
406
407         * UserInterface/LayoutTimelineOverviewGraph.css: Added.
408         (.timeline-overview-graph.layout > .timeline-record-bar):
409         (.timeline-overview-graph.layout > .timeline-record-bar > .segment):
410
411         * UserInterface/LayoutTimelineOverviewGraph.js: Added.
412         (WebInspector.LayoutTimelineOverviewGraph.prototype.reset):
413         (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
414         (WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
415
416         * UserInterface/Main.html: Added new files.
417
418         * UserInterface/NetworkTimelineOverviewGraph.css: Added.
419         (.timeline-overview-graph.network):
420         (.timeline-overview-graph.network > .graph-row):
421         (.timeline-overview-graph.network > .graph-row > .bar):
422         (.timeline-overview-graph.network > .graph-row > .bar.inactive):
423         (.timeline-overview-graph.network > .graph-row > .bar.unfinished):
424         (.timeline-overview-graph.network > .graph-row > .bar:not(.inactive)):
425         (.timeline-overview-graph.network:nth-child(even) > .graph-row > .bar:not(.inactive)):
426
427         * UserInterface/NetworkTimelineOverviewGraph.js: Added.
428         (WebInspector.NetworkTimelineOverviewGraph.prototype.reset):
429         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.updateElementPosition):
430         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
431         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
432         (WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.compareByStartTime):
433         (WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.insertObjectIntoSortedArray):
434         (WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded):
435
436         * UserInterface/ScriptTimelineOverviewGraph.css: Added.
437         (.timeline-overview-graph.script > .timeline-record-bar):
438         (.timeline-overview-graph.script > .timeline-record-bar > .segment):
439
440         * UserInterface/ScriptTimelineOverviewGraph.js: Added.
441         (WebInspector.ScriptTimelineOverviewGraph.prototype.reset):
442         (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
443         (WebInspector.ScriptTimelineOverviewGraph.prototype._scriptTimelineRecordAdded):
444
445         * UserInterface/TimelineContentView.js:
446         (WebInspector.TimelineContentView.prototype._showTimelineView):
447         (WebInspector.TimelineContentView.prototype._update):
448         (WebInspector.TimelineContentView.prototype._recordingReset):
449         Create and keep the graphs informed.
450
451         * UserInterface/TimelineDataGridNode.js:
452         (WebInspector.TimelineDataGridNode):
453         (WebInspector.TimelineDataGridNode.prototype.refreshGraph):
454         Combine records that might overlap.
455
456         * UserInterface/TimelineOverview.css:
457         (.timeline-overview > .graphs-container):
458         (.timeline-overview > .graphs-container > .timeline-overview-graph):
459         (.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)):
460         (.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)):
461         Add the graph rows with alternating stripe.
462
463         * UserInterface/TimelineOverview.js:
464         (WebInspector.TimelineOverview):
465         (WebInspector.TimelineOverview.prototype.set startTime):
466         (WebInspector.TimelineOverview.prototype.get currentTime):
467         (WebInspector.TimelineOverview.prototype.set currentTime):
468         (WebInspector.TimelineOverview.prototype.updateLayout):
469         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
470         Track currentTime in a member variable and let TimelineOverview manage the current time marker.
471
472         * UserInterface/TimelineOverviewGraph.js: Added.
473         (WebInspector.TimelineOverviewGraph):
474         (WebInspector.TimelineOverviewGraph.prototype.get zeroTime):
475         (WebInspector.TimelineOverviewGraph.prototype.set zeroTime):
476         (WebInspector.TimelineOverviewGraph.prototype.get startTime):
477         (WebInspector.TimelineOverviewGraph.prototype.set startTime):
478         (WebInspector.TimelineOverviewGraph.prototype.get endTime):
479         (WebInspector.TimelineOverviewGraph.prototype.set endTime):
480         (WebInspector.TimelineOverviewGraph.prototype.get currentTime):
481         (WebInspector.TimelineOverviewGraph.prototype.set currentTime):
482         (WebInspector.TimelineOverviewGraph.prototype.reset):
483         (WebInspector.TimelineOverviewGraph.prototype.updateLayout):
484         (WebInspector.TimelineOverviewGraph.prototype.updateLayoutIfNeeded):
485         (WebInspector.TimelineOverviewGraph.prototype.needsLayout):
486
487         * UserInterface/TimelineRecordBar.css:
488         (.timeline-record-bar > .segment):
489         (.timeline-record-bar.unfinished > .segment):
490         (.timeline-record-bar > .segment.inactive + .segment):
491         (.timeline-record-bar.timeline-record-type-network > .segment.inactive):
492
493         * UserInterface/TimelineRecordBar.js:
494         (WebInspector.TimelineRecordBar):
495         (WebInspector.TimelineRecordBar.recordsCannotBeCombined):
496         (WebInspector.TimelineRecordBar.prototype.get records):
497         (WebInspector.TimelineRecordBar.prototype.set records):
498         (WebInspector.TimelineRecordBar.prototype.refresh):
499         Make TimelineRecordBar support multiple records.
500
501         * UserInterface/TimelineRuler.css:
502         (.timeline-ruler > .markers):
503         (.timeline-ruler > .selection-handle):
504         (.timeline-ruler > .shaded-area):
505         Add some z-index values to stay above graph elements.
506
507 2014-01-16  Timothy Hatcher  <timothy@apple.com>
508
509         Clean up Timelines code by using ES6 features and less global access of TimelineRecording.
510         Also don't recreate Timeline objects when TimelineRecording is reset, reset them instead.
511
512         https://bugs.webkit.org/show_bug.cgi?id=127157
513
514         Reviewed by Joseph Pecoraro.
515
516         * UserInterface/LayoutTimelineView.js:
517         (WebInspector.LayoutTimelineView.prototype.reset):
518         * UserInterface/NetworkTimeline.js:
519         (WebInspector.NetworkTimeline):
520         (WebInspector.NetworkTimeline.prototype.reset):
521         * UserInterface/NetworkTimelineView.js:
522         (WebInspector.NetworkTimelineView.prototype.reset):
523         * UserInterface/OverviewTimelineView.js:
524         (WebInspector.OverviewTimelineView.prototype._networkTimelineRecordAdded):
525         * UserInterface/ScriptTimelineView.js:
526         (WebInspector.ScriptTimelineView.prototype.reset):
527         * UserInterface/Timeline.js:
528         (WebInspector.Timeline):
529         (WebInspector.Timeline.prototype.reset):
530         * UserInterface/TimelineContentView.js:
531         (WebInspector.TimelineContentView.set createPathComponent):
532         (WebInspector.TimelineContentView.set var):
533         (WebInspector.TimelineContentView.prototype.showOverviewTimelineView):
534         (WebInspector.TimelineContentView.prototype.showTimelineView):
535         (WebInspector.TimelineContentView.prototype._showTimelineView):
536         (WebInspector.TimelineContentView.prototype._update):
537         (WebInspector.TimelineContentView.prototype._recordingReset):
538         * UserInterface/TimelineRecording.js:
539         (WebInspector.TimelineRecording.prototype.reset):
540
541 2014-01-16  Timothy Hatcher  <timothy@apple.com>
542
543         Improve WebInspector.TimelineOverview by not putting WebInspector.TimelineRuler in a scroll area.
544
545         https://bugs.webkit.org/show_bug.cgi?id=127145
546
547         Reviewed by Joseph Pecoraro.
548
549         * UserInterface/TimelineOverview.css:
550         (.timeline-overview > .scroll-container):
551         (.timeline-overview > .timeline-ruler):
552         (.timeline-overview > .scroll-container > .scroll-width-sizer):
553         * UserInterface/TimelineOverview.js:
554         (WebInspector.TimelineOverview):
555         (WebInspector.TimelineOverview.prototype.get startTime):
556         (WebInspector.TimelineOverview.prototype.set startTime):
557         (WebInspector.TimelineOverview.prototype.get secondsPerPixel):
558         (WebInspector.TimelineOverview.prototype.set secondsPerPixel):
559         (WebInspector.TimelineOverview.prototype.get scrollStartTime):
560         (WebInspector.TimelineOverview.prototype.set scrollStartTime):
561         (WebInspector.TimelineOverview.prototype.get visibleDuration):
562         (WebInspector.TimelineOverview.prototype.revealMarker):
563         (WebInspector.TimelineOverview.prototype.updateLayout):
564         (WebInspector.TimelineOverview.prototype._handleScrollEvent):
565         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
566         * UserInterface/TimelineRuler.js:
567         (WebInspector.TimelineRuler.MinimumSelectionTimeRange): Reduce to 10ms now that super zoom has no performance impact.
568
569 2014-01-15  Timothy Hatcher  <timothy@apple.com>
570
571         Implement the discrete Script and Layout timeline views.
572
573         https://bugs.webkit.org/show_bug.cgi?id=127063
574
575         Reviewed by Joseph Pecoraro.
576
577         * Localizations/en.lproj/localizedStrings.js: Updated.
578
579         * UserInterface/DataGrid.js:
580         (WebInspector.DataGrid): Support hidden columns by default.
581         (WebInspector.DataGrid.prototype.updateLayout): Set the column width to zero for hidden columns.
582
583         * UserInterface/LayoutTimelineDataGrid.js:
584         (WebInspector.LayoutTimelineDataGrid): Pass the right parameters to the superclass.
585
586         * UserInterface/LayoutTimelineRecord.js:
587         (WebInspector.LayoutTimelineRecord.prototype.saveIdentityToCookie): Added.
588
589         * UserInterface/LayoutTimelineView.css: Copied from Source/WebInspectorUI/UserInterface/ScriptTimelineDataGrid.js.
590         (.timeline-view.layout > .data-grid):
591         (.timeline-view.layout > .data-grid .eventType-column):
592         (.sidebar > .panel.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
593
594         * UserInterface/LayoutTimelineView.js: Added.
595         (WebInspector.LayoutTimelineView):
596         (WebInspector.LayoutTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
597         (WebInspector.LayoutTimelineView.prototype.shown):
598         (WebInspector.LayoutTimelineView.prototype.hidden):
599         (WebInspector.LayoutTimelineView.prototype.updateLayout):
600         (WebInspector.LayoutTimelineView.prototype.matchTreeElementAgainstCustomFilters):
601         (WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
602         (WebInspector.LayoutTimelineView.prototype._dataGridFiltersDidChange):
603         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
604
605         * UserInterface/Main.html: Added new files.
606
607         * UserInterface/ScriptTimelineDataGrid.js:
608         (WebInspector.ScriptTimelineDataGrid): Pass the right parameters to the superclass.
609
610         * UserInterface/ScriptTimelineDataGridNode.js:
611         (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent): Fix up how we create the link.
612
613         * UserInterface/ScriptTimelineRecord.js:
614         (WebInspector.ScriptTimelineRecord.prototype.saveIdentityToCookie): Added.
615
616         * UserInterface/ScriptTimelineView.css: Copied from Source/WebInspectorUI/UserInterface/ScriptTimelineDataGrid.js.
617         (.timeline-view.script > .data-grid):
618         (.timeline-view.script > .data-grid .eventType-column):
619         (.sidebar > .panel.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
620
621         * UserInterface/ScriptTimelineView.js: Added.
622         (WebInspector.ScriptTimelineView):
623         (WebInspector.ScriptTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
624         (WebInspector.ScriptTimelineView.prototype.shown):
625         (WebInspector.ScriptTimelineView.prototype.hidden):
626         (WebInspector.ScriptTimelineView.prototype.updateLayout):
627         (WebInspector.ScriptTimelineView.prototype.matchTreeElementAgainstCustomFilters):
628         (WebInspector.ScriptTimelineView.prototype._scriptTimelineRecordAdded):
629         (WebInspector.ScriptTimelineView.prototype._dataGridFiltersDidChange):
630         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
631
632         * UserInterface/SourceCodeTimelineTreeElement.js:
633         (WebInspector.SourceCodeTimelineTreeElement):
634         Moved code to TimelineRecordTreeElement. Subclass from it.
635
636         * UserInterface/TimelineContentView.js:
637         (WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters): Support TimelineRecordTreeElement.
638         (WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged): Update zeroTime for all views.
639
640         * UserInterface/TimelineDataGrid.css:
641         (.data-grid.timeline td .icon):
642         (.data-grid.timeline td .go-to-arrow):
643         (.data-grid.timeline tr:hover .go-to-arrow):
644         (.data-grid.timeline td .subtitle):
645         (.data-grid.timeline td .subtitle::before):
646         (.data-grid.timeline:focus tr.selected td .subtitle):
647
648         * UserInterface/TimelineRecord.js:
649         (WebInspector.TimelineRecord.prototype.saveIdentityToCookie): Added.
650
651         * UserInterface/TimelineRecordTreeElement.js: Added.
652         (WebInspector.TimelineRecordTreeElement):
653         (WebInspector.TimelineRecordTreeElement.prototype.get record):
654         (WebInspector.TimelineRecordTreeElement.prototype.get filterableData):
655         Factored out from SourceCodeTimelineTreeElement.
656
657         * UserInterface/TimelineSidebarPanel.js:
658         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looslyCompareRepresentedObjects):
659         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
660         Find TreeElements via a loose lookup based on represented objects that might contain the represented object we are
661         really looking for.
662
663 2014-01-14  Timothy Hatcher  <timothy@apple.com>
664
665         Implement the discrete Network timeline view.
666
667         https://bugs.webkit.org/show_bug.cgi?id=127022
668
669         Reviewed by Joseph Pecoraro.
670
671         * UserInterface/DataGrid.js:
672         (WebInspector.DataGrid): Align the labels of the column headers to match the data.
673         (WebInspector.DataGridNode.prototype.get selectable): Prevent selection when hidden.
674
675         * UserInterface/DetailsSection.css:
676         (.details-section > .header): Bump the font size to match data grid header sizes.
677
678         * UserInterface/Main.html: Add new files.
679
680         * UserInterface/NetworkTimelineView.css: Added.
681         (.timeline-view.network > .data-grid):
682         (.sidebar > .panel.timeline.timeline-content-view-showing > .content .item.resource .subtitle):
683         Hide the domain subtitle when the content view is showing which also has the domain.
684
685         * UserInterface/NetworkTimelineView.js: Added.
686         (WebInspector.NetworkTimelineView):
687         (WebInspector.NetworkTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
688         (WebInspector.NetworkTimelineView.prototype.shown):
689         (WebInspector.NetworkTimelineView.prototype.hidden):
690         (WebInspector.NetworkTimelineView.prototype.updateLayout):
691         (WebInspector.NetworkTimelineView.prototype.matchTreeElementAgainstCustomFilters):
692         (WebInspector.NetworkTimelineView.prototype._networkTimelineRecordAdded):
693         (WebInspector.NetworkTimelineView.prototype._dataGridFiltersDidChange):
694         (WebInspector.NetworkTimelineView.prototype._treeElementSelected):
695
696         * UserInterface/ResourceTimelineDataGridNode.js:
697         (WebInspector.ResourceTimelineDataGridNode.prototype._needsRefresh):
698         Call dataGridNodeNeedsRefresh on the TimelineDataGrid so things can be batched with
699         one request animation frame.
700
701         * UserInterface/TimelineContentView.js:
702         (WebInspector.TimelineContentView): Create a NetworkTimelineView.
703         (WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters):
704
705         * UserInterface/TimelineDataGrid.css:
706         (.data-grid.timeline table):
707         (.data-grid.timeline th):
708         (.data-grid.timeline th:not(:last-child)):
709         (.data-grid.timeline th.sortable:active):
710         (.data-grid.timeline th.sort-descending):
711         (.data-grid.timeline .data-container):
712         (.data-grid.timeline td):
713         (.data-grid.timeline td:last-child):
714         (.data-grid.timeline td:not(:last-child)):
715         (.data-grid.timeline:focus tr.selected td:not(:last-child)):
716         (.data-grid.timeline th.sort-descending > div:first-child):
717         (.data-grid.timeline th.sort-descending > div:first-child::after):
718         (.data-grid.timeline td.error):
719         (.data-grid.timeline tr.selected td.error):
720         (.data-grid.timeline > .navigation-bar-container):
721         (.data-grid.timeline:hover > .navigation-bar-container):
722         (.data-grid.timeline > .navigation-bar-container > .navigation-bar):
723
724         * UserInterface/TimelineDataGrid.js:
725         (WebInspector.TimelineDataGrid):
726         (WebInspector.TimelineDataGrid.createColumnScopeBar):
727         (WebInspector.TimelineDataGrid.prototype.reset):
728         (WebInspector.TimelineDataGrid.prototype.shown):
729         (WebInspector.TimelineDataGrid.prototype.hidden):
730         (WebInspector.TimelineDataGrid.prototype.callFramePopoverAnchorElement):
731         (WebInspector.TimelineDataGrid.prototype.updateLayout):
732         (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
733         (WebInspector.TimelineDataGrid.prototype.addRowInSortOrder):
734         (WebInspector.TimelineDataGrid.prototype.shouldIgnoreSelectionEvent):
735         (WebInspector.TimelineDataGrid.prototype.dataGridNodeNeedsRefresh):
736         (WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
737         (WebInspector.TimelineDataGrid.prototype._sort):
738         (WebInspector.TimelineDataGrid.prototype._sortComparator):
739         Add support for sorting, batch refresh and managing of a TreeOutlineDataGridSynchronizer.
740
741         * UserInterface/TimelineSidebarPanel.css:
742         (.sidebar > .panel.timeline > .title-bar): Bump the font size to match data grid header sizes.
743
744         * UserInterface/TimelineView.js:
745         (WebInspector.TimelineView.prototype.matchTreeElementAgainstCustomFilters): Added stub.
746
747         * UserInterface/TreeOutlineDataGridSynchronizer.js:
748         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.get treeOutline):
749         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.get dataGrid):
750         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.get enabled):
751         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.set enabled):
752         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.treeElementForDataGridNode):
753         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.dataGridNodeForTreeElement):
754         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
755         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
756         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeSelected):
757         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeExpanded):
758         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeCollapsed):
759         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementSelected):
760         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
761         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementRemoved):
762         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementExpanded):
763         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementCollapsed):
764         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementHiddenChanged):
765         Added support for disabling the synchronizer when the client can do a better job.
766
767 2014-01-13  Timothy Hatcher  <timothy@apple.com>
768
769         Filter the Timeline overview graph and sidebar based on the current time selection.
770
771         https://bugs.webkit.org/show_bug.cgi?id=126955
772
773         Reviewed by Joseph Pecoraro.
774
775         * UserInterface/NavigationSidebarPanel.js:
776         (WebInspector.NavigationSidebarPanel.prototype.updateFilter):
777         (WebInspector.NavigationSidebarPanel.prototype.hasCustomFilters):
778         (WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
779         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
780         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
781         Add support for custom filters implemented by subclasses.
782
783         * UserInterface/TimelineContentView.js:
784         (WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters.checkTimeBounds):
785         (WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters):
786         (WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
787         Filter known tree element types by time.
788
789         * UserInterface/TimelineSidebarPanel.css:
790         (.sidebar > .panel.timeline > .empty-content-placeholder):
791         Position the empty placeholder with the content.
792
793         * UserInterface/TimelineSidebarPanel.js:
794         (WebInspector.TimelineSidebarPanel.prototype.hasCustomFilters):
795         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
796         Defer filtering to the TimelineContentView.
797
798 2014-01-13  Timothy Hatcher  <timothy@apple.com>
799
800         Implement state cookie support for WebInspector.TimelineSidebarPanel.
801
802         https://bugs.webkit.org/show_bug.cgi?id=126921
803
804         Reviewed by Joseph Pecoraro.
805
806         * UserInterface/DebuggerSidebarPanel.js:
807         (WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
808         Drive-by fix to pass along relaxedMatchDelay to the superclass. 
809
810         * UserInterface/Main.js:
811         (WebInspector.loaded):
812         (WebInspector._provisionalLoadStarted):
813         Listen for ProvisionalLoadStarted instead of ProvisionalLoadCommitted to save the cookie
814         before the TimelineRecording is reset and clears the UI.
815
816         * UserInterface/NavigationSidebarPanel.js:
817         (WebInspector.NavigationSidebarPanel.prototype.get restoringState): Added.
818         (WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie.finalAttemptToRestoreViewStateFromCookie):
819         Delete _pendingViewStateCookie since this was the final attempt.
820         (WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie):
821         (WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject): Block string represented objects.
822         (WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
823
824         * UserInterface/OverviewTimelineView.js:
825         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
826
827         * UserInterface/ResourceSidebarPanel.js:
828         (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
829         Drive-by fix to null check parentFrame since it can be null. Was causing an exception while working on this.
830
831         * UserInterface/SourceCodeTimeline.js:
832         (WebInspector.SourceCodeTimeline):
833         (WebInspector.SourceCodeTimeline.prototype.saveIdentityToCookie):
834
835         * UserInterface/TimelineSidebarPanel.js:
836         (WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
837         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
838         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
839
840         * UserInterface/TreeOutline.js:
841         (TreeOutline.prototype._forgetTreeElement):
842         Drive-by fix to clear selectedTreeElement if it is removed from the tree. Was causing removed TreeElements to be
843         saved as a cookie since it was still the selected item.
844
845 2014-01-11  Timothy Hatcher  <timothy@apple.com>
846
847         Implement bar graph rendering for WebInspector.OverviewTimelineView.
848
849         https://bugs.webkit.org/show_bug.cgi?id=126831
850
851         Reviewed by Joseph Pecoraro.
852
853         * UserInterface/Main.html: Added new files.
854
855         * UserInterface/OverviewTimelineView.css:
856         (.timeline-view.overview > .data-grid td.graph-column):
857         (.timeline-view.overview > .data-grid td.graph-column > div):
858         (.timeline-view.overview > .data-grid td.graph-column .timeline-record-bar):
859         Position the bars in the DataGrid cells.
860
861         * UserInterface/OverviewTimelineView.js:
862         (WebInspector.OverviewTimelineView.prototype.updateLayout):
863         (WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
864         (WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
865         Create the proper DataGridNodes for resources and source code timelines.
866
867         * UserInterface/ResourceTimelineDataGridNode.js:
868         (WebInspector.ResourceTimelineDataGridNode):
869         (WebInspector.ResourceTimelineDataGridNode.prototype.get records):
870         (WebInspector.ResourceTimelineDataGridNode.prototype.get resource):
871         (WebInspector.ResourceTimelineDataGridNode.prototype.get data):
872         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
873         (WebInspector.ResourceTimelineDataGridNode.prototype.refresh):
874         (WebInspector.ResourceTimelineDataGridNode.prototype._needsRefresh):
875         (WebInspector.ResourceTimelineDataGridNode.prototype._goToResource):
876         Simplify by deferring the graph logic to the new TimelineDataGridNode base class.
877
878         * UserInterface/SourceCodeTimelineTimelineDataGridNode.js: Added.
879         (WebInspector.SourceCodeTimelineTimelineDataGridNode):
880         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.get records):
881         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.get sourceCodeTimeline):
882         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.get data):
883
884         * UserInterface/TimelineDataGridNode.js: Added.
885         (WebInspector.TimelineDataGridNode):
886         (WebInspector.TimelineDataGridNode.prototype.get records):
887         (WebInspector.TimelineDataGridNode.prototype.get data):
888         (WebInspector.TimelineDataGridNode.prototype.createCellContent):
889         (WebInspector.TimelineDataGridNode.prototype.refresh):
890         (WebInspector.TimelineDataGridNode.prototype.refreshGraph):
891         (WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
892         Handles the graph column and manages the records and their bars.
893
894         * UserInterface/TimelineRecordBar.css: Added.
895         (.timeline-record-bar):
896         (.timeline-record-bar > .segment):
897         (.timeline-record-bar:not(.has-inactive-segment) > .segment):
898         (.timeline-record-bar.unfinished > .segment):
899         (.timeline-record-bar > .segment.inactive + .segment):
900         (:focus .selected .timeline-record-bar > .segment):
901         (.timeline-record-bar > .segment.inactive):
902         (.timeline-record-bar.timeline-record-type-network > .segment):
903         (.timeline-record-bar.timeline-record-type-layout > .segment):
904         (.timeline-record-bar.timeline-record-type-script > .segment):
905
906         * UserInterface/TimelineRecordBar.js: Added.
907         (WebInspector.TimelineRecordBar):
908         (WebInspector.TimelineRecordBar.prototype.get element):
909         (WebInspector.TimelineRecordBar.prototype.refresh):
910         (WebInspector.TimelineRecordBar.prototype._updateElementPosition):
911
912 2014-01-08  Timothy Hatcher  <timothy@apple.com>
913
914         Update the current WebInspector.TimelineView when time range changes.
915
916         https://bugs.webkit.org/show_bug.cgi?id=126667
917
918         Reviewed by Joseph Pecoraro.
919
920         * UserInterface/TimelineContentView.js:
921         (WebInspector.TimelineContentView.prototype._showTimelineView):
922         (WebInspector.TimelineContentView.prototype._update):
923         (WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
924         (WebInspector.TimelineContentView.prototype._stopUpdatingCurrentTime):
925         (WebInspector.TimelineContentView.prototype._recordingStarted):
926         (WebInspector.TimelineContentView.prototype._recordingStopped):
927         (WebInspector.TimelineContentView.prototype._recordingReset):
928         (WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
929         * UserInterface/TimelineOverview.js:
930         (WebInspector.TimelineOverview):
931         (WebInspector.TimelineOverview.prototype.updateLayout):
932         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
933         (WebInspector.TimelineOverview.prototype._updateElementWidth):
934         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
935         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
936         * UserInterface/TimelineRuler.js:
937         (WebInspector.TimelineRuler.prototype.updateLayoutIfNeeded):
938         * UserInterface/TimelineView.js:
939         (WebInspector.TimelineView):
940         (WebInspector.TimelineView.prototype.get zeroTime):
941         (WebInspector.TimelineView.prototype.set zeroTime):
942         (WebInspector.TimelineView.prototype.get startTime):
943         (WebInspector.TimelineView.prototype.set startTime):
944         (WebInspector.TimelineView.prototype.get endTime):
945         (WebInspector.TimelineView.prototype.set endTime):
946         (WebInspector.TimelineView.prototype.get currentTime):
947         (WebInspector.TimelineView.prototype.set currentTime.checkIfLayoutIsNeeded):
948         (WebInspector.TimelineView.prototype.set currentTime):
949         (WebInspector.TimelineView.prototype.updateLayout):
950         (WebInspector.TimelineView.prototype.updateLayoutIfNeeded):
951         (WebInspector.TimelineView.prototype.needsLayout):
952
953 2013-12-19  Timothy Hatcher  <timothy@apple.com>
954
955         Implement time range selection for TimelineOverview and TimelineRuler.
956
957         https://bugs.webkit.org/show_bug.cgi?id=126035
958
959         Reviewed by Joseph Pecoraro.
960
961         * UserInterface/TimelineContentView.js:
962         (WebInspector.TimelineContentView.prototype._update):
963         (WebInspector.TimelineContentView.prototype._recordingReset):
964         Properly update start time and the selection start time on reset.
965
966         * UserInterface/TimelineOverview.js:
967         (WebInspector.TimelineOverview):
968         (WebInspector.TimelineOverview.prototype.get selectionStartTime):
969         (WebInspector.TimelineOverview.prototype.set selectionStartTime):
970         (WebInspector.TimelineOverview.prototype.get selectionDuration):
971         (WebInspector.TimelineOverview.prototype.set selectionDuration):
972         Added selection getters and setters.
973
974         * UserInterface/TimelineRuler.css:
975         (.timeline-ruler.allows-time-range-selection):
976         (.timeline-ruler > *):
977         (.timeline-ruler > .header):
978         (.timeline-ruler > .selection-drag):
979         (.timeline-ruler > .selection-drag:active):
980         (.timeline-ruler > .selection-handle):
981         (.timeline-ruler > .selection-handle.left):
982         (.timeline-ruler > .selection-handle.right):
983         (.timeline-ruler > .shaded-area):
984         (.timeline-ruler > .shaded-area.left):
985         (.timeline-ruler > .shaded-area.right):
986         Added styles for the selection elements and tweaked pointer-events to allow
987         events on elements we expect.
988
989         * UserInterface/TimelineRuler.js:
990         (WebInspector.TimelineRuler):
991         (WebInspector.TimelineRuler.prototype.get allowsTimeRangeSelection): Added.
992         (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection): Added.
993         (WebInspector.TimelineRuler.prototype.get selectionStartTime): Added.
994         (WebInspector.TimelineRuler.prototype.set selectionStartTime): Added.
995         (WebInspector.TimelineRuler.prototype.get selectionEndTime): Added.
996         (WebInspector.TimelineRuler.prototype.set selectionEndTime): Added.
997         (WebInspector.TimelineRuler.prototype.updateLayout):
998         (WebInspector.TimelineRuler.prototype._needsMarkerLayout.update):
999         (WebInspector.TimelineRuler.prototype._needsMarkerLayout):
1000         (WebInspector.TimelineRuler.prototype._needsSelectionLayout.update):
1001         (WebInspector.TimelineRuler.prototype._needsSelectionLayout):
1002         (WebInspector.TimelineRuler.prototype._recalculate):
1003         (WebInspector.TimelineRuler.prototype._updatePositionOfElement):
1004         (WebInspector.TimelineRuler.prototype._updateMarkers):
1005         (WebInspector.TimelineRuler.prototype._updateSelection): Added.
1006         (WebInspector.TimelineRuler.prototype._dispatchTimeRangeSelectionChangedEvent):
1007         (WebInspector.TimelineRuler.prototype._timelineMarkerTimeChanged):
1008         (WebInspector.TimelineRuler.prototype._handleMouseDown): Added.
1009         (WebInspector.TimelineRuler.prototype._handleMouseMove): Added.
1010         (WebInspector.TimelineRuler.prototype._handleMouseUp): Added.
1011         (WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown): Added.
1012         (WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove): Added.
1013         (WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseUp): Added.
1014         Create selection elements and handle mouse events for drag and move.
1015
1016 2013-12-17  Timothy Hatcher  <timothy@apple.com>
1017
1018         Support scroll to zoom in TimelineOverview.
1019
1020         https://bugs.webkit.org/show_bug.cgi?id=125909
1021
1022         Reviewed by Joseph Pecoraro.
1023
1024         * UserInterface/TimelineOverview.js:
1025         (WebInspector.TimelineOverview):
1026         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
1027
1028 2013-12-17  Timothy Hatcher  <timothy@apple.com>
1029
1030         Add the start of the TimelineOverview class.
1031
1032         TimelineOverview currently has a time ruler and tracks the current recording time.
1033
1034         https://bugs.webkit.org/show_bug.cgi?id=125878
1035
1036         Reviewed by Joseph Pecoraro.
1037
1038         * UserInterface/Main.html:
1039         * UserInterface/TimelineContentView.css:
1040         (.content-view.timeline > .timeline-overview):
1041         * UserInterface/TimelineContentView.js:
1042         (WebInspector.TimelineContentView):
1043         (WebInspector.TimelineContentView.prototype.updateLayout):
1044         (WebInspector.TimelineContentView.prototype._update):
1045         (WebInspector.TimelineContentView.prototype._recordingStarted):
1046         (WebInspector.TimelineContentView.prototype._recordingStopped):
1047         (WebInspector.TimelineContentView.prototype._recordingReset):
1048         * UserInterface/TimelineManager.js:
1049         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
1050         (WebInspector.TimelineManager.prototype.eventRecorded):
1051         * UserInterface/TimelineMarker.js: Renamed from Source/WebInspectorUI/UserInterface/TimelineEventMarker.js.
1052         (WebInspector.TimelineMarker):
1053         (WebInspector.TimelineMarker.prototype.get time):
1054         (WebInspector.TimelineMarker.prototype.set time):
1055         (WebInspector.TimelineMarker.prototype.get type):
1056         * UserInterface/TimelineOverview.css: Added.
1057         (.timeline-overview > .scroll-container):
1058         (.timeline-overview > .scroll-container > .timeline-ruler):
1059         * UserInterface/TimelineOverview.js: Added.
1060         (WebInspector.TimelineOverview):
1061         (WebInspector.TimelineOverview.prototype.get element):
1062         (WebInspector.TimelineOverview.prototype.get startTime):
1063         (WebInspector.TimelineOverview.prototype.set startTime):
1064         (WebInspector.TimelineOverview.prototype.get secondsPerPixel):
1065         (WebInspector.TimelineOverview.prototype.set secondsPerPixel):
1066         (WebInspector.TimelineOverview.prototype.get endTime):
1067         (WebInspector.TimelineOverview.prototype.set endTime):
1068         (WebInspector.TimelineOverview.prototype.addMarker):
1069         (WebInspector.TimelineOverview.prototype.revealMarker):
1070         (WebInspector.TimelineOverview.prototype.updateLayout):
1071         (WebInspector.TimelineOverview.prototype._updateElementWidth):
1072         (WebInspector.TimelineOverview.prototype._needsLayout):
1073         * UserInterface/TimelineRecording.js:
1074         (WebInspector.TimelineRecording.prototype.get startTime):
1075         (WebInspector.TimelineRecording.prototype.get endTime):
1076         (WebInspector.TimelineRecording.prototype.reset):
1077         * UserInterface/TimelineRuler.css:
1078         (.timeline-ruler > .markers):
1079         (.timeline-ruler > .markers > .marker):
1080         (.timeline-ruler > .markers > .marker.current-time):
1081         (.timeline-ruler > .markers > .marker.current-time::before):
1082         (.timeline-ruler > .markers > .marker.load-event):
1083         (.timeline-ruler > .markers > .marker.dom-content-event):
1084         (.timeline-ruler > .markers > .marker.timestamp):
1085         * UserInterface/TimelineRuler.js:
1086         (WebInspector.TimelineRuler):
1087         (WebInspector.TimelineRuler.prototype.updateLayout):
1088         (WebInspector.TimelineRuler.prototype._needsLayout):
1089         (WebInspector.TimelineRuler.prototype._needsMarkerLayout.update):
1090         (WebInspector.TimelineRuler.prototype._needsMarkerLayout):
1091         (WebInspector.TimelineRuler.prototype._recalculate):
1092         (WebInspector.TimelineRuler.prototype._updateLeftPositionOfElement):
1093         (WebInspector.TimelineRuler.prototype._updateMarkers):
1094         (WebInspector.TimelineRuler.prototype._timelineMarkerTimeChanged):
1095
1096 2013-12-13  Timothy Hatcher  <timothy@apple.com>
1097
1098         Clean up and refactor TimelineDecorations into TimelineRuler.
1099
1100         https://bugs.webkit.org/show_bug.cgi?id=125709
1101
1102         Reviewed by Joseph Pecoraro.
1103
1104         * UserInterface/Main.html:
1105         * UserInterface/OverviewTimelineView.css:
1106         (.timeline-view.overview > .timeline-ruler):
1107         (.timeline-view.overview > .timeline-ruler > .header):
1108         (.timeline-view.overview > .timeline-ruler > .event-markers):
1109         Updated class names and border sides.
1110
1111         * UserInterface/OverviewTimelineView.js:
1112         (WebInspector.OverviewTimelineView):
1113         (WebInspector.OverviewTimelineView.prototype.updateLayout):
1114         Call updateLayout on the TimelineRuler.
1115
1116         * UserInterface/TimelineRuler.css: Renamed from Source/WebInspectorUI/UserInterface/TimelineDecorations.css.
1117         (.timeline-ruler):
1118         (.timeline-ruler > .header):
1119         (.timeline-ruler > .header > .divider):
1120         (.timeline-ruler > .header > .divider > .label):
1121         (.timeline-ruler > .event-markers):
1122         (.timeline-ruler > .event-markers > .event-marker-tooltip):
1123         (.timeline-ruler > .event-markers > .event-marker):
1124         (.timeline-ruler > .event-markers > .event-marker.load-event):
1125         (.timeline-ruler > .event-markers > .event-marker.dom-content-event):
1126         (.timeline-ruler > .event-markers > .event-marker.timestamp):
1127         Updated class names and border sides.
1128
1129         * UserInterface/TimelineRuler.js: Renamed from Source/WebInspectorUI/UserInterface/TimelineDecorations.js.
1130         (WebInspector.TimelineRuler):
1131         (WebInspector.TimelineRuler.prototype.get element):
1132         (WebInspector.TimelineRuler.prototype.get headerElement):
1133         (WebInspector.TimelineRuler.prototype.get allowsClippedLabels):
1134         (WebInspector.TimelineRuler.prototype.set allowsClippedLabels):
1135         (WebInspector.TimelineRuler.prototype.get zeroTime):
1136         (WebInspector.TimelineRuler.prototype.set zeroTime):
1137         (WebInspector.TimelineRuler.prototype.get startTime):
1138         (WebInspector.TimelineRuler.prototype.set startTime):
1139         (WebInspector.TimelineRuler.prototype.get duration):
1140         (WebInspector.TimelineRuler.prototype.set duration):
1141         (WebInspector.TimelineRuler.prototype.get endTime):
1142         (WebInspector.TimelineRuler.prototype.set endTime):
1143         (WebInspector.TimelineRuler.prototype.get secondsPerPixel):
1144         (WebInspector.TimelineRuler.prototype.set secondsPerPixel):
1145         (WebInspector.TimelineRuler.prototype.updateLayout.removeDividerAndSelectNext):
1146         (WebInspector.TimelineRuler.prototype.updateLayout):
1147         (WebInspector.TimelineRuler.prototype._needsLayout):
1148         (WebInspector.TimelineRuler.prototype._recalculate):
1149         Refactor so the times are stored on TimelineRuler and not passed in each time an update is needed.
1150         Support dividers that don't always start at the zero position, allowing a sliding time ruler.
1151         Support for a non-pinned ruler where the end time is not fixed and the scale is specified in
1152         seconds-per-pixel.
1153
1154 2014-01-08  Timothy Hatcher  <timothy@apple.com>
1155
1156         Improve scroll performance of WebInspector.TreeOutlineDataGridSynchronizer.
1157
1158         https://bugs.webkit.org/show_bug.cgi?id=126660
1159
1160         Reviewed by Joseph Pecoraro.
1161
1162         * UserInterface/TreeOutlineDataGridSynchronizer.js:
1163         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
1164         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
1165         Ignore scroll events triggered by our internal use of setting scrollTop.
1166
1167 2013-11-15  Timothy Hatcher  <timothy@apple.com>
1168
1169         Add a synchronized DataGrid to the OverviewTimelineView.
1170
1171         The DataGrid is synchronized with the sidebar TreeOutline to appear as one when the view
1172         and sidebar are both showing. The two scroll, expand and collapse in sync when the view
1173         is showing. When the view is not showing the sidebar can scroll independently.
1174
1175         https://bugs.webkit.org/show_bug.cgi?id=124429
1176
1177         Reviewed by Joseph Pecoraro.
1178
1179         * UserInterface/DataGrid.js:
1180         (WebInspector.DataGrid):
1181         (WebInspector.DataGrid.createSortableDataGrid):
1182         (WebInspector.DataGrid.prototype._copyTextForDataGridNode):
1183         (WebInspector.DataGridNode.prototype.createCellContent):
1184         Handle undefined/null cells better by substituting empty strings.
1185
1186         (WebInspector.DataGridNode.prototype.collapse):
1187         (WebInspector.DataGridNode.prototype.expand):
1188         Fire events on the DataGrid for expand and collapse.
1189
1190         * UserInterface/Main.html: Include TreeOutlineDataGridSynchronizer.js.
1191
1192         * UserInterface/NavigationSidebarPanel.css:
1193         (.sidebar > .panel.navigation > .content): Shorten by 1px to match the content view height.
1194         Needed to keep scrolling in sync. The clipping looks better too.
1195
1196         * UserInterface/OverviewTimelineView.css:
1197         (.timeline-view.overview > .data-grid):
1198         (.timeline-view.overview > .data-grid table.header):
1199         (.timeline-view.overview > .data-grid .data-container):
1200         Style the DataGrid to to not have a header.
1201
1202         * UserInterface/OverviewTimelineView.js:
1203         (WebInspector.OverviewTimelineView):
1204         (WebInspector.OverviewTimelineView.prototype.shown):
1205         (WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
1206         (WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
1207         Create the DataGrid and some placeholder nodes. Hook up TreeOutlineDataGridSynchronizer.
1208
1209         * UserInterface/TimelineContentView.css:
1210         (.content-view.timeline > .view-container > .timeline-view > .data-grid td):
1211         (.content-view.timeline > .view-container > .timeline-view > .data-grid table.data):
1212         Style the DataGrid to match the height of TreeElements in the sidebar.
1213
1214         * UserInterface/TimelineSidebarPanel.css:
1215         (.sidebar > .panel.timeline.timeline-content-view-showing > .content):
1216         Hide the scrollbar off the right when the view is showing. The view will show the scrollbar.
1217
1218         * UserInterface/TimelineSidebarPanel.js:
1219         (WebInspector.TimelineSidebarPanel):
1220         (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected):
1221         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
1222
1223         * UserInterface/TreeOutline.js:
1224         (TreeOutline.prototype.removeChildAtIndex):
1225         (TreeOutline.prototype.removeChildren):
1226         (TreeOutline.prototype.removeChildrenRecursive):
1227         (TreeElement.prototype.set hidden):
1228         Add event callbacks for onhidden and onremove.
1229
1230         * UserInterface/TreeOutlineDataGridSynchronizer.js: Added.
1231         (WebInspector.TreeOutlineDataGridSynchronizer):
1232         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.associate):
1233         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.synchronize):
1234         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
1235         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
1236         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeSelected):
1237         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeExpanded):
1238         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeCollapsed):
1239         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementSelected):
1240         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
1241         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementRemoved):
1242         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementExpanded):
1243         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementCollapsed):
1244         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementHiddenChanged):
1245
1246 2013-11-07  Timothy Hatcher  <timothy@apple.com>
1247
1248         Start fleshing out the Overview Timeline view.
1249
1250         This gets the overview populating in the Timeline sidebar. The graph side is still empty.
1251
1252         https://bugs.webkit.org/show_bug.cgi?id=124005
1253
1254         Reviewed by Joseph Pecoraro.
1255
1256         * Localizations/en.lproj/localizedStrings.js: Updated.
1257         * UserInterface/Frame.js:
1258         (WebInspector.Frame.prototype.addResource):
1259         * UserInterface/Images/TimelineRecordAnimation.svg: Added.
1260         * UserInterface/Images/TimelineRecordEvent.svg: Added.
1261         * UserInterface/Images/TimelineRecordLayout.svg: Added.
1262         * UserInterface/Images/TimelineRecordPaint.svg: Added.
1263         * UserInterface/Images/TimelineRecordScriptEvaluated.svg: Added.
1264         * UserInterface/Images/TimelineRecordStyle.svg: Added.
1265         * UserInterface/Images/TimelineRecordTimer.svg: Added.
1266         * UserInterface/Main.html:
1267         * UserInterface/OverviewTimelineView.js: Added.
1268         (WebInspector.OverviewTimelineView):
1269         (WebInspector.OverviewTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
1270         (WebInspector.OverviewTimelineView.prototype._childFrameWasAdded):
1271         (WebInspector.OverviewTimelineView.prototype._mainResourceDidChange):
1272         (WebInspector.OverviewTimelineView.prototype._provisionalResourceWasAdded):
1273         (WebInspector.OverviewTimelineView.prototype._resourceWasAdded):
1274         (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails):
1275         (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByStartTime):
1276         (WebInspector.OverviewTimelineView.prototype._insertTreeElement):
1277         (WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
1278         (WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
1279         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
1280         * UserInterface/SourceCodeTimelineTreeElement.js: Added.
1281         (WebInspector.SourceCodeTimelineTreeElement):
1282         (WebInspector.SourceCodeTimelineTreeElement.prototype.get sourceCodeTimeline):
1283         * UserInterface/TimelineContentView.js:
1284         (WebInspector.TimelineContentView.createPathComponent):
1285         (WebInspector.TimelineContentView):
1286         (WebInspector.TimelineContentView.prototype.showOverviewTimelineView):
1287         (WebInspector.TimelineContentView.prototype.showTimelineView):
1288         (WebInspector.TimelineContentView.prototype.get supportsSplitContentBrowser):
1289         (WebInspector.TimelineContentView.prototype.get selectionPathComponents):
1290         (WebInspector.TimelineContentView.prototype._pathComponentSelected):
1291         (WebInspector.TimelineContentView.prototype._showTimelineView):
1292         (WebInspector.TimelineContentView.prototype._recordingReset):
1293         * UserInterface/TimelineIcons.css:
1294         (.style-record .icon): Added.
1295         (.layout-record .icon): Added.
1296         (.paint-record .icon): Added.
1297         (.evaluated-record .icon): Added.
1298         (.event-record .icon): Added.
1299         (.timer-record .icon): Added.
1300         (.animation-record .icon): Added.
1301         * UserInterface/TimelineView.css: Added.
1302         (.timeline-view):
1303         * UserInterface/TimelineView.js: Added.
1304         (WebInspector.TimelineView):
1305         (WebInspector.TimelineView.prototype.get navigationSidebarTreeOutline):
1306         (WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineLabel):
1307         (WebInspector.TimelineView.prototype.reset):
1308         (WebInspector.TimelineView.prototype.shown):
1309         (WebInspector.TimelineView.prototype.hidden):
1310
1311 2013-11-07  Timothy Hatcher  <timothy@apple.com>
1312
1313         Start fleshing out the new TimelineSidebarPanel and TimelineContentView.
1314
1315         https://bugs.webkit.org/show_bug.cgi?id=124003
1316
1317         Reviewed by Joseph Pecoraro.
1318
1319         * UserInterface/ContentView.js:
1320         (WebInspector.ContentView):
1321         (WebInspector.ContentView.isViewable):
1322         * UserInterface/FrameContentView.js:
1323         * UserInterface/Images/CloseTimeline.png: Added.
1324         * UserInterface/Images/CloseTimeline@2x.png: Added.
1325         * UserInterface/Images/ColorsLarge.png: Added.
1326         * UserInterface/Images/ColorsLarge@2x.png: Added.
1327         * UserInterface/Images/NetworkLarge.png: Added.
1328         * UserInterface/Images/NetworkLarge@2x.png: Added.
1329         * UserInterface/Images/ScriptLarge.png: Added.
1330         * UserInterface/Images/ScriptLarge@2x.png: Added.
1331         * UserInterface/Main.html:
1332         * UserInterface/Main.js:
1333         (WebInspector.sidebarPanelForRepresentedObject):
1334         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
1335         * UserInterface/NavigationSidebarPanel.js:
1336         (WebInspector.NavigationSidebarPanel.prototype.showDefaultContentView):
1337         * UserInterface/ResourceClusterContentView.js:
1338         * UserInterface/TimelineContentView.css: Added.
1339         (.content-view.timeline > .view-container):
1340         * UserInterface/TimelineContentView.js: Added.
1341         (WebInspector.TimelineContentView):
1342         * UserInterface/TimelineIcons.css: Renamed from Source/WebInspectorUI/UserInterface/InstrumentIcons.css.
1343         (.network-icon.large .icon): Added.
1344         (.colors-icon.large .icon): Added.
1345         (.script-icon.large .icon): Added.
1346         * UserInterface/TimelineSidebarPanel.css:
1347         (.sidebar > .panel.timeline > .navigation-bar):
1348         (.sidebar > .panel.timeline > .title-bar):
1349         (.sidebar > .panel.timeline > .title-bar.timelines):
1350         (.sidebar > .panel.timeline > .title-bar.timeline-events):
1351         (.sidebar > .panel.timeline > .timelines-content):
1352         (.sidebar > .panel.timeline > .timelines-content .close-button):
1353         (.sidebar > .panel.timeline > .timelines-content li.item.selected .close-button):
1354         (.sidebar > .panel.timeline > .timelines-content .close-button:active):
1355         (.sidebar > .panel.timeline > .content):
1356         * UserInterface/TimelineSidebarPanel.js:
1357         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
1358         (WebInspector.TimelineSidebarPanel):
1359         (WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
1360         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
1361         (WebInspector.TimelineSidebarPanel.prototype.get contentTreeOutlineLabel):
1362         (WebInspector.TimelineSidebarPanel.prototype.set contentTreeOutlineLabel):
1363         (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
1364         (WebInspector.TimelineSidebarPanel.prototype.showTimelineView):
1365         (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected):
1366
1367 2014-01-08  Timothy Hatcher  <timothy@apple.com>
1368
1369         Correctly track time bounds of WebInspector.Timeline and WebInspector.TimelineRecording.
1370
1371         The startTime and endTime were not correct when Network timeline needed to be taken into
1372         account (due to its dynamic loading nature.) This creates a network Timeline for the purposes
1373         of tracking the ResourceTimelineRecords and getting accurate start and end times.
1374
1375         Also changes the way TimelineRecord tracks the inactive portion of time, needed for later
1376         work on the timeline graphs.
1377
1378         https://bugs.webkit.org/show_bug.cgi?id=126676
1379
1380         Reviewed by Joseph Pecoraro.
1381
1382         * UserInterface/ResourceTimelineRecord.js:
1383         (WebInspector.ResourceTimelineRecord.prototype.get updatesDynamically):
1384         (WebInspector.ResourceTimelineRecord.prototype.get usesActiveStartTime):
1385         (WebInspector.ResourceTimelineRecord.prototype.get startTime):
1386         (WebInspector.ResourceTimelineRecord.prototype.get activeStartTime):
1387         (WebInspector.ResourceTimelineRecord.prototype.get endTime):
1388         * UserInterface/Timeline.js:
1389         (WebInspector.Timeline):
1390         (WebInspector.Timeline.prototype.get startTime):
1391         (WebInspector.Timeline.prototype.get endTime):
1392         (WebInspector.Timeline.prototype.addRecord):
1393         (WebInspector.Timeline.prototype._updateTimesIfNeeded):
1394         (WebInspector.Timeline.prototype._recordUpdated):
1395         * UserInterface/TimelineRecord.js:
1396         (WebInspector.TimelineRecord.prototype.get startTime):
1397         (WebInspector.TimelineRecord.prototype.get activeStartTime):
1398         (WebInspector.TimelineRecord.prototype.get endTime):
1399         (WebInspector.TimelineRecord.prototype.get inactiveDuration):
1400         (WebInspector.TimelineRecord.prototype.get activeDuration):
1401         (WebInspector.TimelineRecord.prototype.get updatesDynamically):
1402         (WebInspector.TimelineRecord.prototype.get usesActiveStartTime):
1403         * UserInterface/TimelineRecording.js:
1404         (WebInspector.TimelineRecording.prototype._timelineTimesUpdated):
1405
1406 2013-10-25  Timothy Hatcher  <timothy@apple.com>
1407
1408         Implement TimelineRecording and per-call-site timelines.
1409
1410         Keep track of timeline records per global timeline and per source code location.
1411         This will be used to display them in the UI in later patches.
1412
1413         https://bugs.webkit.org/show_bug.cgi?id=123367
1414
1415         Reviewed by Joseph Pecoraro.
1416
1417         * UserInterface/Main.html:
1418         * UserInterface/SourceCodeTimeline.js: Added.
1419         (WebInspector.SourceCodeTimeline):
1420         (WebInspector.SourceCodeTimeline.prototype.get sourceCode):
1421         (WebInspector.SourceCodeTimeline.prototype.get sourceCodeLocation):
1422         (WebInspector.SourceCodeTimeline.prototype.get recordType):
1423         (WebInspector.SourceCodeTimeline.prototype.get recordEventType):
1424         * UserInterface/Timeline.js: Added.
1425         (WebInspector.Timeline):
1426         (WebInspector.Timeline.prototype.get records):
1427         (WebInspector.Timeline.prototype.addRecord):
1428         * UserInterface/TimelineRecording.js:
1429         (WebInspector.TimelineRecording):
1430         (WebInspector.TimelineRecording.prototype.get timelines): Added.
1431         (WebInspector.TimelineRecording.prototype.sourceCodeTimelinesForSourceCode): Added.
1432         (WebInspector.TimelineRecording.prototype.addEventMarker): Implemented.
1433         (WebInspector.TimelineRecording.prototype.addRecord): Implemented.
1434         (WebInspector.TimelineRecording.prototype._keyForRecord): Added.
1435
1436 2013-10-25  Timothy Hatcher  <timothy@apple.com>
1437
1438         Add support for multiple Timeline recordings.
1439
1440         We also don't explicitly add ResourceTimelineRecords anymore. These will be tracked automatically in a later patch.
1441
1442         https://bugs.webkit.org/show_bug.cgi?id=123366
1443
1444         Reviewed by Joseph Pecoraro.
1445
1446         * UserInterface/DashboardManager.js:
1447         (WebInspector.DashboardManager.prototype._mainResourceDidChange): Check for currentRecording.
1448         * UserInterface/InspectorFrontendAPI.js:
1449         (InspectorFrontendAPI.isTimelineProfilingEnabled): Check for currentRecording.
1450         * UserInterface/Main.html:
1451         * UserInterface/TimelineManager.js:
1452         (WebInspector.TimelineManager):
1453         (WebInspector.TimelineManager.prototype.get currentRecording): Added.
1454         (WebInspector.TimelineManager.prototype.startRecording): Make a new recording and push it onto the recording array.
1455         Add the current recording to the event.
1456         (WebInspector.TimelineManager.prototype.stopRecording): Add the current recording to the event.
1457         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Check for currentRecording. Add the markers
1458         to the current recording.
1459         (WebInspector.TimelineManager.prototype._addRecord): Add the record to the current recording.
1460         (WebInspector.TimelineManager.prototype._startAutoRecording): Clean up. Don't add ResourceTimelineRecord. Clear recordings.
1461         (WebInspector.TimelineManager.prototype._stopAutoRecordingSoon): Check for _currentRecording.
1462         (WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout): Ditto.
1463         (WebInspector.TimelineManager.prototype._mainResourceDidChange): Don't add ResourceTimelineRecord anymore.
1464         (WebInspector.TimelineManager.prototype._resourceWasAdded): Removed.
1465         * UserInterface/TimelineRecording.js: Added.
1466         (WebInspector.TimelineRecording): Added.
1467         (WebInspector.TimelineRecording.prototype.addEventMarker): Added.
1468         (WebInspector.TimelineRecording.prototype.addRecord): Added.
1469
1470 2013-10-25  Timothy Hatcher  <timothy@apple.com>
1471
1472         Track callFrames and sourceCodeLocation per TimelineRecord.
1473
1474         https://bugs.webkit.org/show_bug.cgi?id=123359
1475
1476         Reviewed by Joseph Pecoraro.
1477
1478         * UserInterface/LayoutTimelineRecord.js:
1479         (WebInspector.LayoutTimelineRecord): Pass callFrames and sourceCodeLocation to superclass.
1480         * UserInterface/ScriptTimelineRecord.js:
1481         (WebInspector.ScriptTimelineRecord): Pass callFrames and sourceCodeLocation to superclass.
1482         * UserInterface/TimelineManager.js:
1483         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Add "Payload" suffix to better track what is a protocol object.
1484         Pass the callFrames and sourceCodeLocation to all the new TimelineRecords.
1485         (WebInspector.TimelineManager.prototype.eventRecorded): Add "Payload" suffix.
1486         * UserInterface/TimelineRecord.js:
1487         (WebInspector.TimelineRecord):
1488         (WebInspector.TimelineRecord.prototype.get callFrames): Added.
1489         (WebInspector.TimelineRecord.prototype.get initiatorCallFrame): Added.
1490         (WebInspector.TimelineRecord.prototype.get sourceCodeLocation): Added.
1491
1492 2013-10-25  Timothy Hatcher  <timothy@apple.com>
1493
1494         Change how the load and content ready event timestamps are tracked.
1495
1496         https://bugs.webkit.org/show_bug.cgi?id=123356
1497
1498         Reviewed by Joseph Pecoraro.
1499
1500         * UserInterface/DashboardManager.js:
1501         (WebInspector.DashboardManager.prototype._updateTime): Use the timestamps on the main frame.
1502         * UserInterface/Frame.js:
1503         (WebInspector.Frame):
1504         (WebInspector.Frame.prototype.get domContentReadyEventTimestamp): Added.
1505         (WebInspector.Frame.prototype.get loadEventTimestamp): Added.
1506         (WebInspector.Frame.prototype.markDOMContentReadyEvent): Added.
1507         (WebInspector.Frame.prototype.markLoadEvent): Added.
1508         * UserInterface/TimelineManager.js:
1509         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Use markLoadEvent and markDOMContentReadyEvent.
1510         Do it for all frames, not just the main frame.
1511         (WebInspector.TimelineManager.prototype.pageDidLoad): Call markLoadEvent on the Frame.
1512
1513 2013-10-25  Timothy Hatcher  <timothy@apple.com>
1514
1515         Remove a lot of the current Timelines code to make room for a new implementation.
1516
1517         https://bugs.webkit.org/show_bug.cgi?id=123368
1518
1519         Reviewed by Joseph Pecoraro.
1520
1521         * Localizations/en.lproj/localizedStrings.js:
1522         * UserInterface/ContentView.js:
1523         (WebInspector.ContentView):
1524         (WebInspector.ContentView.isViewable):
1525         * UserInterface/DashboardView.js:
1526         (WebInspector.DashboardView.prototype._networkItemWasClicked):
1527         * UserInterface/InspectorFrontendAPI.js:
1528         (InspectorFrontendAPI.setTimelineProfilingEnabled):
1529         (InspectorFrontendAPI.stopProfilingJavaScript):
1530         * UserInterface/InstrumentSidebarPanel.js: Removed.
1531         * UserInterface/Main.html:
1532         * UserInterface/Main.js:
1533         (WebInspector.contentLoaded):
1534         (WebInspector.sidebarPanelForRepresentedObject):
1535         (WebInspector.openURL):
1536         * UserInterface/Object.js:
1537         (WebInspector.Object.addEventListener):
1538         * UserInterface/TimelineManager.js:
1539         (WebInspector.TimelineManager):
1540         (WebInspector.TimelineManager.prototype.startRecording):
1541         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
1542         (WebInspector.TimelineManager.prototype.eventRecorded):
1543         (WebInspector.TimelineManager.prototype.objectForCookie):
1544         (WebInspector.TimelineManager.prototype._addRecord):
1545         * UserInterface/TimelinesObject.js: Removed.
1546         * UserInterface/TimelineOverview.css: Removed.
1547         * UserInterface/TimelineOverview.js: Removed.
1548         * UserInterface/TimelineSidebarPanel.css: Added.
1549         * UserInterface/TimelineSidebarPanel.js: Added.
1550         (WebInspector.TimelineSidebarPanel):
1551         * UserInterface/TimelinesContentView.css: Removed.
1552         * UserInterface/TimelinesContentView.js: Removed.
1553
1554 2014-01-20  Timothy Hatcher  <timothy@apple.com>
1555
1556         Fix jumping to a text position when showing a resource.
1557
1558         https://bugs.webkit.org/show_bug.cgi?id=127271
1559
1560         Reviewed by Joseph Pecoraro.
1561
1562         * UserInterface/FrameContentView.js:
1563         (WebInspector.FrameContentView.prototype.showSourceCode): Just use showResponse's arguments
1564         which already does the same logic to call revealPosition.
1565         * UserInterface/ResourceClusterContentView.js:
1566         (WebInspector.ResourceClusterContentView.prototype.restoreFromCookie): This was the bug.
1567         lineNumber and columnNumber need honored here. They were only honored by FrameContentView.
1568         * UserInterface/ResourceSidebarPanel.js:
1569         (WebInspector.ResourceSidebarPanel.prototype.showSourceCode): Use showContentViewForRepresentedObject
1570         which also accepts a cookie and handles creating the content view for us.
1571
1572 2014-01-16  Brian Burg  <bburg@apple.com>
1573
1574         Web Inspector: add more context to Object.addEventListener assertions
1575         https://bugs.webkit.org/show_bug.cgi?id=127125
1576
1577         Reviewed by Joseph Pecoraro.
1578
1579         Log invalid event type and listener parameters, and log the other
1580         parameters so the callsite is easier to figure out.
1581
1582         * UserInterface/Object.js:
1583         (WebInspector.Object.addEventListener):
1584
1585 2014-01-16  Brian Burg  <bburg@apple.com>
1586
1587         Web Inspector: CallFrame is missing saveIdentityToCookie, or should be excluded
1588         https://bugs.webkit.org/show_bug.cgi?id=126791
1589
1590         Reviewed by Timothy Hatcher.
1591
1592         * UserInterface/CallFrame.js: Add a dummy saveIdentityToCookie() implementation.
1593
1594 2014-01-16  Brian Burg  <bburg@apple.com>
1595
1596         Web Inspector: add probe breakpoint action to popup breakpoint editor
1597         https://bugs.webkit.org/show_bug.cgi?id=126931
1598
1599         Reviewed by Timothy Hatcher.
1600
1601         Add probes to the breakpoint action dropdown.
1602         Reuse the "evaluate JavaScript" input UI.
1603
1604         * Localizations/en.lproj/localizedStrings.js:
1605         * UserInterface/BreakpointAction.js:
1606         * UserInterface/BreakpointActionView.js:
1607         (WebInspector.BreakpointActionView.displayStringForType):
1608         (WebInspector.BreakpointActionView.prototype._updateBody.switch.break):
1609
1610 2014-01-15  Brian Burg  <bburg@apple.com>
1611
1612         Web Inspector: capture probe samples on the backend
1613         https://bugs.webkit.org/show_bug.cgi?id=126668
1614
1615         Reviewed by Joseph Pecoraro.
1616
1617         * UserInterface/InspectorJSBackendCommands.js: Add probe enumeration value.
1618
1619 2014-01-15  Andreas Kling  <akling@apple.com>
1620
1621         Remove the CSS selector profiler.
1622         <https://webkit.org/b/127039>
1623
1624         Purge selector profiler code from the new Web Inspector UI.
1625
1626         Reviewed by Sam Weinig.
1627
1628         * Localizations/en.lproj/localizedStrings.js:
1629         * UserInterface/CSSSelectorProfileObject.js: Removed.
1630         * UserInterface/CSSSelectorProfileType.js: Removed.
1631         * UserInterface/CSSSelectorProfileView.js: Removed.
1632         * UserInterface/ContentView.js:
1633         (WebInspector.ContentView):
1634         (WebInspector.ContentView.isViewable):
1635         * UserInterface/InspectorWebBackendCommands.js:
1636         * UserInterface/InstrumentSidebarPanel.js:
1637         (WebInspector.InstrumentSidebarPanel):
1638         (WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphMousedOver):
1639         (WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphMousedDown):
1640         (WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphClicked):
1641         (WebInspector.InstrumentSidebarPanel.prototype._profileTypeWasSelected):
1642         (WebInspector.InstrumentSidebarPanel.prototype._profilesCleared):
1643         * UserInterface/Main.html:
1644         * UserInterface/ProfileManager.js:
1645         (WebInspector.ProfileManager):
1646         (WebInspector.ProfileManager.prototype.initialize):
1647         (WebInspector.ProfileManager.prototype._checkForInterruptions):
1648         (WebInspector.ProfileManager.prototype._attemptToResumeProfiling):
1649         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1650         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1651
1652 2014-01-13  Timothy Hatcher  <timothy@apple.com>
1653
1654         Snap time dividers to nearest numbers instead of just dividing the time span into max density slices.
1655
1656         https://bugs.webkit.org/show_bug.cgi?id=125081
1657
1658         Reviewed by Joseph Pecoraro.
1659
1660         * UserInterface/TimelineDecorations.js:
1661         (WebInspector.TimelineDecorations.prototype.updateHeaderTimes): Snap the time slice to a nearest number.
1662         (WebInspector.TimelineDecorations.prototype.updateEventMarkers): Rename boundarySpan to timeSpan.
1663
1664 2014-01-10  Joseph Pecoraro  <pecoraro@apple.com>
1665
1666         Web Inspector: Remove unimplemented or static ScriptDebugServer features
1667         https://bugs.webkit.org/show_bug.cgi?id=126784
1668
1669         Reviewed by Timothy Hatcher.
1670
1671         * UserInterface/InspectorJSBackendCommands.js:
1672         * UserInterface/InspectorWebBackendCommands.js:
1673         * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
1674         * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
1675         * Versions/Inspector-iOS-6.0.json:
1676         * Versions/Inspector-iOS-7.0.json:
1677
1678 2014-01-10  Timothy Hatcher  <timothy@apple.com>
1679
1680         Web Inspector: support negative numbers in secondsToString and bytesToString.
1681
1682         https://bugs.webkit.org/show_bug.cgi?id=125708
1683
1684         Reviewed by Joseph Pecoraro.
1685
1686         * UserInterface/Utilities.js:
1687         (Number.secondsToString): Use Math.abs in the size checks.
1688         (Number.bytesToString): Ditto.
1689
1690 2014-01-10  Brian Burg  <bburg@apple.com>
1691
1692         Web Inspector: cycle clicked breakpoints between enabled, auto-continue, and disabled
1693         https://bugs.webkit.org/show_bug.cgi?id=126669
1694
1695         Reviewed by Joseph Pecoraro.
1696
1697         It's time-consuming to change a breakpoint's auto-continue setting through the
1698         breakpoint editor popup. This patch enables the user to toggle between enabled,
1699         auto-continue, and disabled by clicking on the breakpoint wedge in the sidebar
1700         tree and in the source text editor gutter. The auto-continue option is only
1701         cycled when the breakpoint has associated actions.
1702
1703         Clean up the breakpoint editor dialog so it hides irrelevant options when
1704         no breakpoint actions have been added.
1705
1706         Automatically unset auto-continue when the last breakpoint action is removed.
1707
1708         Rename the delegate textEditorBreakpointToggled to textEditorBreakpointClicked, since
1709         the behavior of the click depends on breakpoint state not available in the text editor.
1710
1711         * Localizations/en.lproj/localizedStrings.js:
1712         * UserInterface/Breakpoint.js:
1713         (WebInspector.Breakpoint.prototype.cycleToNextMode): Added.
1714         (WebInspector.Breakpoint.prototype.toggleAutoContinue): Added.
1715         (WebInspector.Breakpoint.prototype.appendContextMenuItems): Add auto-continue options.
1716         (WebInspector.Breakpoint.prototype.removeAction):
1717
1718         (WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
1719         (WebInspector.Breakpoint.prototype._popoverActionsAddActionButtonClicked):
1720         (WebInspector.Breakpoint.prototype.breakpointActionViewAppendActionView):
1721         (WebInspector.Breakpoint.prototype.breakpointActionViewRemoveActionView):
1722         (WebInspector.Breakpoint.prototype.willDismissPopover):
1723         * UserInterface/BreakpointTreeElement.css:
1724         (.item.breakpoint .status > .status-image.auto-continue):
1725         (.item.breakpoint .status > .status-image.disabled):
1726         * UserInterface/BreakpointTreeElement.js:
1727         (WebInspector.BreakpointTreeElement):
1728         (WebInspector.BreakpointTreeElement.prototype.onenter):
1729         (WebInspector.BreakpointTreeElement.prototype.onspace):
1730         (WebInspector.BreakpointTreeElement.prototype._updateStatus):
1731         (WebInspector.BreakpointTreeElement.prototype._breakpointLocationDidChange):
1732         (WebInspector.BreakpointTreeElement.prototype._statusImageElementClicked):
1733         * UserInterface/SourceCodeTextEditor.js:
1734         (WebInspector.SourceCodeTextEditor):
1735         (WebInspector.SourceCodeTextEditor.prototype.close):
1736         (WebInspector.SourceCodeTextEditor.prototype._breakpointInfoForBreakpoint):
1737         (WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointClicked):
1738         * UserInterface/TextEditor.css:
1739         (.text-editor > .CodeMirror .breakpoint-auto-continue:not(.breakpoint-disabled) .CodeMirror-linenumber::before):
1740         * UserInterface/TextEditor.js:
1741         (WebInspector.TextEditor.prototype._setBreakpointStylesOnLine.updateStyles):
1742         (WebInspector.TextEditor.prototype._setBreakpointStylesOnLine):
1743         (WebInspector.TextEditor.prototype.updateStyles):
1744         (WebInspector.TextEditor.prototype._removeBreakpointFromLineAndColumn):
1745         (WebInspector.TextEditor.prototype._documentMouseUp):
1746
1747 2014-01-10  Timothy Hatcher  <timothy@apple.com>
1748
1749         Clean up some areas of TreeOutline.
1750
1751         https://bugs.webkit.org/show_bug.cgi?id=123924
1752
1753         Reviewed by Joseph Pecoraro.
1754
1755         * UserInterface/TreeOutline.js:
1756         (TreeOutline.prototype.appendChild): Don't force create _childrenListNode, it will be created
1757         when the tree element is expanded. Only attach if _childrenListNode already exists.
1758         (TreeOutline.prototype.insertChild): Ditto.
1759         (TreeOutline.prototype.getCachedTreeElement): Check the value of __treeElementIdentifier
1760         not just the existence of the property. It should never be null/undefined/0, but be safe.
1761         (TreeOutline.prototype.findTreeElement): Null check isAncestor, it isn't required.
1762
1763 2014-01-10  Timothy Hatcher  <timothy@apple.com>
1764
1765         Fix an exception in WebInspector.Color.
1766
1767         https://bugs.webkit.org/show_bug.cgi?id=126765
1768
1769         Reviewed by Joseph Pecoraro.
1770
1771         * UserInterface/Color.js:
1772         (WebInspector.Color.fromString): Check hasOwnPrperty before using the nickname color array.
1773         (WebInspector.Color.prototype._toNicknameString): Ditto.
1774
1775 2014-01-10  Joseph Pecoraro  <pecoraro@apple.com>
1776
1777         [CSS Blending] Log blending as a layer creation reason in the WI
1778         https://bugs.webkit.org/show_bug.cgi?id=126159
1779
1780         Reviewed by Timothy Hatcher.
1781
1782         * Localizations/en.lproj/localizedStrings.js:
1783         * UserInterface/LayerTreeSidebarPanel.js:
1784         (WebInspector.LayerTreeSidebarPanel.prototype._populateListOfCompositingReasons):
1785
1786 2014-01-10  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
1787
1788         Add missing function stub in InspectorFrontendHostStub.js
1789         https://bugs.webkit.org/show_bug.cgi?id=126745
1790
1791         Reviewed by Timothy Hatcher.
1792
1793         * UserInterface/InspectorFrontendHostStub.js:
1794         (.WebInspector.InspectorFrontendHostStub.prototype.debuggableType):
1795         The function debuggableType() was added to InspectorFrontendHost.idl and InspectorFrontendHost.cpp
1796         in r160887, but not to InspectorFrontendHostStub.js.
1797
1798 2014-01-09  Seokju Kwon  <seokju@webkit.org>
1799
1800         Web Inspector: Remove unused overriding protocols.
1801         https://bugs.webkit.org/show_bug.cgi?id=126630
1802
1803         Reviewed by Timothy Hatcher.
1804
1805         Update InspectorWebBackendCommands.js after removing unused overriding protocols.
1806
1807         * UserInterface/InspectorWebBackendCommands.js:
1808         * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
1809         * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
1810         * Versions/Inspector-iOS-6.0.json:
1811         * Versions/Inspector-iOS-7.0.json:
1812
1813 2014-01-07  Joseph Pecoraro  <pecoraro@apple.com>
1814
1815         Web Inspector: Typo "clipboarPrefixString"
1816         https://bugs.webkit.org/show_bug.cgi?id=126595
1817
1818         Reviewed by Sam Weinig.
1819
1820         * UserInterface/ConsoleCommandResult.js:
1821         (WebInspector.ConsoleCommandResult.prototype.toMessageElement):
1822         (WebInspector.ConsoleCommandResult.prototype.get clipboardPrefixString):
1823         * UserInterface/ConsoleMessageImpl.js:
1824         (WebInspector.ConsoleMessageImpl.prototype.get clipboardPrefixString):
1825         (WebInspector.ConsoleMessageImpl.prototype.toClipboardString):
1826
1827 2014-01-06  Seokju Kwon  <seokju@webkit.org>
1828
1829         Web Inspector: Remove canOverrideDeviceMetrics and setDeviceMetricsOverride from protocol
1830         https://bugs.webkit.org/show_bug.cgi?id=126149
1831
1832         Reviewed by Joseph Pecoraro.
1833
1834         * UserInterface/InspectorWebBackendCommands.js: Remove unused codes.
1835         * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js: Ditto.
1836         * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js: Ditto.
1837         * Versions/Inspector-iOS-6.0.json: Ditto.
1838         * Versions/Inspector-iOS-7.0.json: Ditto.
1839
1840 2014-01-06  Seokju Kwon  <seokju@webkit.org>
1841
1842         Web Inspector: Remove support for FileSystem in Frontend.
1843         https://bugs.webkit.org/show_bug.cgi?id=126369
1844
1845         Reviewed by Joseph Pecoraro.
1846
1847         Update InspectorWebBackendCommands after removing 'FileSystem' domain.
1848
1849         * UserInterface/InspectorWebBackendCommands.js:
1850         * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
1851         * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
1852         * Versions/Inspector-iOS-6.0.json:
1853         * Versions/Inspector-iOS-7.0.json:
1854
1855 2014-01-06  Seokju Kwon  <seokju@webkit.org>
1856
1857         Web Inspector: Get rid of DOM.setFileInputFiles from Protocol
1858         https://bugs.webkit.org/show_bug.cgi?id=126312
1859
1860         Reviewed by Joseph Pecoraro.
1861
1862         Update InspectorWebBackendCommands.js after removing DOM.setFileInputFiles.
1863
1864         * UserInterface/InspectorWebBackendCommands.js:
1865
1866 2013-12-22  Martin Robinson  <mrobinson@igalia.com>
1867
1868         [GTK][CMake] Integrate GResource for inspector files (and others?)
1869         https://bugs.webkit.org/show_bug.cgi?id=125569
1870
1871         Reviewed by Gustavo Noronha Silva.
1872
1873         * GNUmakefile.am: Use the new generation script instead of generating with
1874         shell scripting in the makefile.
1875
1876 2013-12-19  Joseph Pecoraro  <pecoraro@apple.com>
1877
1878         Web Inspector: Frontend Error when selecting Database folder in Resources Sidebar
1879         https://bugs.webkit.org/show_bug.cgi?id=126029
1880
1881         Reviewed by Timothy Hatcher.
1882
1883         Treat the DatabaseHostTreeElement tree element like a folder. It pretty much
1884         is a folder, but inherits from StorageTreeElement to share some code there.
1885
1886         * UserInterface/ResourceSidebarPanel.js:
1887         (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
1888
1889 2013-12-19  Joseph Pecoraro  <pecoraro@apple.com>
1890
1891         Web Inspector: Uncaught Exception: NavigationSidebarPanel.js: TypeError: undefined is not a function
1892         https://bugs.webkit.org/show_bug.cgi?id=126018
1893
1894         Reviewed by Timothy Hatcher.
1895
1896         ERROR: TypeError: undefined is not a function (evaluating 'representedObject.saveIdentityToCookie(candidateObjectCookie)')
1897
1898         There are some TreeElements (Folders, and the special Databases Folder)
1899         which do not have a represented object, and would throw an exception
1900         when trying to use saveIdentityToCookie.
1901
1902         We should always provide a saveIdentityToCookie when possible. So just
1903         blacklist the tree element types we know do not have representedObjects,
1904         and where we don't want to save identity. This will continue to throw
1905         exceptions in the future for tree elements that don't have the save
1906         function implemented, but should.
1907
1908         Note that even if a TreeElement is constructed with a null represented
1909         object, it becomes an empty object (representedObject || {}).
1910
1911         * UserInterface/NavigationSidebarPanel.js:
1912         (WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
1913         (WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
1914         (WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
1915         (WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
1916
1917 2013-12-19  Joseph Pecoraro  <pecoraro@apple.com>
1918
1919         Web Inspector: Add InspectorFrontendHost.debuggableType to let the frontend know it's backend is JavaScript or Web
1920         https://bugs.webkit.org/show_bug.cgi?id=126016
1921
1922         Reviewed by Timothy Hatcher.
1923
1924         * UserInterface/LoadInspectorBackendCommands.js:
1925         If the debuggable target is "web" load both JS and Web backend commands.
1926         Otherwise, we only load the default, js backend commands.
1927
1928 2013-12-16  Alex Christensen  <achristensen@webkit.org>
1929
1930         Fixed Win64 build on VS2013.
1931         https://bugs.webkit.org/show_bug.cgi?id=125753
1932
1933         Reviewed by Brent Fulgham.
1934
1935         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1936         Added 64-bit configuration.
1937
1938 2013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
1939
1940         Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
1941         https://bugs.webkit.org/show_bug.cgi?id=125707
1942
1943         Reviewed by Timothy Hatcher.
1944
1945         * UserInterface/InspectorJSBackendCommands.js:
1946         * UserInterface/InspectorWebBackendCommands.js:
1947         Regenerate now that domains have moved around.
1948
1949 2013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
1950
1951         Web Inspector: Exception: TypeError: undefined is not a function (evaluating 'marker.find()')
1952         https://bugs.webkit.org/show_bug.cgi?id=125724
1953
1954         Reviewed by Darin Adler.
1955
1956         * UserInterface/CSSStyleDeclarationTextEditor.js:
1957         (WebInspector.CSSStyleDeclarationTextEditor.prototype.):
1958         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
1959         The callback changed to returning WebInspector.TextMarkers, however
1960         this class expected a raw CodeMirror marker. Since this class knows
1961         about CodeMirror and expects to access these markers later go
1962         directly to the CodeMirror marker.
1963
1964 2013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
1965
1966         Web Inspector: Add Inspector Code Generation to JavaScriptCore for Runtime Domain
1967         https://bugs.webkit.org/show_bug.cgi?id=125595
1968
1969         Reviewed by Timothy Hatcher.
1970
1971         * Scripts/copy-user-interface-resources.sh:
1972         Copy all the different backend commands files.
1973
1974         * Scripts/update-InspectorBackendCommands.rb:
1975         Update with respect to new script location and new file names.
1976
1977         * WebInspectorUI.xcodeproj/project.pbxproj:
1978         Remove Inputs and Outputs of build phase, which were wrong.
1979         Now this build phase always runs, and not by accident.
1980
1981         * UserInterface/InspectorJSBackendCommands.js: Added.
1982         * UserInterface/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/InspectorBackendCommands.js.
1983         * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Legacy/6.0/InspectorBackendCommands.js.
1984         * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Legacy/7.0/InspectorBackendCommands.js.
1985         * UserInterface/LoadInspectorBackendCommands.js:
1986         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1987         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1988
1989 2013-12-13  Antoine Quint  <graouts@apple.com>
1990
1991         Web Inspector: provide an abstraction for CodeMirror's TextMarker
1992         https://bugs.webkit.org/show_bug.cgi?id=125695
1993
1994         Reviewed by Timothy Hatcher.
1995
1996         Introduce a new WebInspector.TextMarker class which is used by code with CodeMirror knowledge
1997         to return information related to text markers to objects that should have no direct knowledge
1998         of CodeMirror. Start using this class in TextEditor and SourceCodeTextEditor to remove the
1999         last remaining pieces of CodeMirror knowledge added to SourceCodeTextEditor to fix
2000         https://webkit.org/b/124364.
2001
2002         * UserInterface/CodeMirrorAdditions.js:
2003         Stop using __markedColor to identify a color marker and instead use the type on the matching
2004         WebInspector.TextMarker. Additionally, create a WebInspector.TextMarker with type
2005         WebInspector.TextMarker.Type.Color in createColorMarkers().
2006         
2007         * UserInterface/CodeMirrorColorEditingController.js:
2008         (WebInspector.CodeMirrorColorEditingController):
2009         Use a WebInspector.TextRange to track the edited range and obtain it directly from the
2010         WebInspector.TextMaker used to instantiate the object. We also use the new "text" public
2011         property to create the color.
2012
2013         (WebInspector.CodeMirrorColorEditingController.prototype.set color):
2014         Simply assing the serialized color to the new "text" public property.
2015
2016         (WebInspector.CodeMirrorColorEditingController.prototype.get text):
2017         (WebInspector.CodeMirrorColorEditingController.prototype.set text):
2018         New public property to set get and set the text for the edited range, automatically updating
2019         the range upon setting to a new text.
2020
2021         (WebInspector.CodeMirrorColorEditingController.prototype.presentHoverMenu):
2022         Obtain the bounds directly from the WebInspector.TextMarker object.
2023
2024         * UserInterface/CodeMirrorTokenTrackingController.js:
2025         (WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
2026         Since we're now tracking the hoveredMarker as a WebInspector.TextMarker, get the CodeMirror
2027         TextMarker from that object to check if it's contained within the text markers at the
2028         hovered position.
2029
2030         * UserInterface/Main.html:
2031         Add the new TextMarker class source.
2032
2033         * UserInterface/SourceCodeTextEditor.js:
2034         (WebInspector.SourceCodeTextEditor.prototype._hasColorMarkers):
2035         Use the WebInspector.TextMarker type to identify a given text marker is marking a color.
2036
2037         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
2038         Use the renamed markersAtPosition() method from TextEditor.
2039
2040         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
2041         Use the WebInspector.TextMarker type to identify a given text marker is marking a color.
2042
2043         (WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidFinishEditing):
2044         Since the CodeMirrorColorEditingController is now using a WebInspector.TextRange for its range,
2045         update to use a WebInspector.TextRange API to get the range's start line.
2046
2047         * UserInterface/TextEditor.js:
2048         (WebInspector.TextEditor.prototype.get markers):
2049         Return WebInspector.TextMarker objects instead of CodeMirror TextRange objects.
2050
2051         (WebInspector.TextEditor.prototype.markersAtPosition):
2052         Rename method to a better name instead of using the CodeMirror-influenced name. Also, return
2053         WebInspector.TextMarker objects instead of CodeMirror TextRange objects.
2054
2055         * UserInterface/TextMarker.js: Added.
2056         (WebInspector.TextMarker):
2057         Create a WebInspector.TextMarker with a CodeMirror TextMarker and an optional type.
2058
2059         (WebInspector.TextMarker.textMarkerForCodeMirrorTextMarker):
2060         Static method to either obtain the existing WebInspector.TextMarker for a given CodeMirror
2061         TextMarker, or create a new WebInspector.TextMarker.
2062
2063         (WebInspector.TextMarker.prototype.get codeMirrorTextMarker):
2064         Public property to access the CodeMirror TextMarker objects for classes that have direct
2065         knowledge of CodeMirror.
2066
2067         (WebInspector.TextMarker.prototype.get type):
2068         Public property to access the type used to create this text marker.
2069
2070         (WebInspector.TextMarker.prototype.get range):
2071         (WebInspector.TextMarker.prototype.get bounds):
2072         Public properties allowing easy access to generally useful information related to marked text.
2073
2074         (WebInspector.TextMarker.prototype.clear):
2075         Wrapper for the CodeMirror TextMarker clear() method.
2076
2077 2013-12-13  Brent Fulgham  <bfulgham@apple.com>
2078
2079         [Win] Switch WebKit solution to Visual Studio 2013
2080         https://bugs.webkit.org/show_bug.cgi?id=125192
2081
2082         Reviewed by Anders Carlsson.
2083
2084         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Update for VS2013
2085
2086 2013-12-12  Laszlo Vidacs  <lac@inf.u-szeged.hu>
2087
2088         Web Inspector: ES6: JavaScript syntax highlighting and recognition of for..of
2089         https://bugs.webkit.org/show_bug.cgi?id=122868
2090
2091         Reviewed by Timothy Hatcher.
2092
2093         Update to CodeMirror 3.20 including javascript ES6 updates.
2094
2095         * Tools/PrettyPrinting/codemirror.css:
2096         * Tools/PrettyPrinting/codemirror.js: Minor local change due to error from jsmin.py
2097         * Tools/PrettyPrinting/css.js:
2098         * Tools/PrettyPrinting/javascript.js:
2099         * UserInterface/External/CodeMirror/codemirror.css:
2100         * UserInterface/External/CodeMirror/codemirror.js: Minor local change due to error from jsmin.py
2101         * UserInterface/External/CodeMirror/coffeescript.js:
2102         * UserInterface/External/CodeMirror/css.js:
2103         * UserInterface/External/CodeMirror/htmlmixed.js:
2104         * UserInterface/External/CodeMirror/javascript.js:
2105         * UserInterface/External/CodeMirror/less.js:
2106         * UserInterface/External/CodeMirror/matchbrackets.js:
2107         * UserInterface/External/CodeMirror/placeholder.js:
2108         * UserInterface/External/CodeMirror/runmode.js:
2109         * UserInterface/External/CodeMirror/searchcursor.js:
2110         * UserInterface/External/CodeMirror/sql.js:
2111         * UserInterface/External/CodeMirror/xml.js:
2112
2113 2013-12-12  Antoine Quint  <graouts@apple.com>
2114
2115         Web Inspector: allow editing of colors in CSS resources
2116         https://bugs.webkit.org/show_bug.cgi?id=124364
2117
2118         Reviewed by Timothy Hatcher.
2119
2120         Identify colors in CSS and HTML resources so that hovering these colors shows a HoverMenu
2121         allowing a ColorPicker hosted in a Popover to be shown to edit the hovered color.
2122
2123         * UserInterface/CSSStyleDeclarationTextEditor.js:
2124         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
2125         Remove the code that goes through the lines of the CodeMirror editor to look for
2126         color strings and replace it with a call to the .createColorMarkers() CodeMirror
2127         extension in which the code was refactored. The callback passed to
2128         .createColorMarkers() handles the CSSStyleDeclarationTextEditor-specific creation
2129         of color swatches to show the popover, keeping the existing behavior of the Styles
2130         sidebar panel.
2131
2132         * UserInterface/CodeMirrorAdditions.js:
2133         Refactor existing code into two new CodeMirror extensions: .boundsForRange(), which
2134         was previously defined on the CodeMirrorTokenTrackingController but was also needed
2135         in the new CodeMirrorColorEditingController, and .createColorMarkers(), discussed above.
2136
2137         * UserInterface/CodeMirrorColorEditingController.js: Added.
2138         (WebInspector.CodeMirrorColorEditingController):
2139         New class used by SourceCodeTextEditor to coordinate the editing of a color in a CodeMirror
2140         TextMarker by a ColorPicker hosted in a Popover shown by the activation of a HoverMenu. This
2141         controller automatically gets the color set by the user using the ColorPicker and updates
2142         the CodeMirror text editor with the new value. When the user presses the Esc. key while the
2143         popover is shown, it's automatically dismissed and the original color is reset in the editor.
2144
2145         (WebInspector.CodeMirrorColorEditingController.prototype.get marker):
2146         (WebInspector.CodeMirrorColorEditingController.prototype.get range):
2147         (WebInspector.CodeMirrorColorEditingController.prototype.get delegate):
2148         (WebInspector.CodeMirrorColorEditingController.prototype.set delegate):
2149         Getters and setters for public properties.
2150
2151         (WebInspector.CodeMirrorColorEditingController.prototype.get color):
2152         (WebInspector.CodeMirrorColorEditingController.prototype.set color):
2153         Get and set the color for the edited color marker, replacing the text in the marker's range
2154         upon setting.
2155
2156         (WebInspector.CodeMirrorColorEditingController.prototype.presentHoverMenu):
2157         Public API allowing for a HoverMenu to be shown around the bounds of the TextMarker passed
2158         in the constructor. This method is called from SourceCodeTextEditor when the
2159         CodeMirrorTokenTrackingController identifies that a token that is part of a TextMarker is
2160         hovered and that token is a color.
2161
2162         (WebInspector.CodeMirrorColorEditingController.prototype.dismissHoverMenu):
2163         Public API allowing for the HoverMenu to be dismissed. This method is called when the
2164         CodeMirrorTokenTrackingController identifies that its "hoveredMarker" is no longer being
2165         hovered as well as when we identify that editing of the color has completed.
2166
2167         (WebInspector.CodeMirrorColorEditingController.prototype.handleEvent):
2168         Event handler for the "keydown" event that are being listened to when the HoverMenu
2169         is activated such that the Esc. key can be used to dimiss the popover and reset the
2170         original color before any edits.
2171
2172         (WebInspector.CodeMirrorColorEditingController.prototype.hoverMenuButtonWasPressed):
2173         Implementation of the HoverMenu delegation method used to show a Popover containing a
2174         ColorPicker upon clicking on the color wheel attached to the HoverMenu. We also remember
2175         the color set on the marker so that it may be restored when Esc. is pressed and used to
2176         set the original state of the ColorPicker. The delegation method
2177         colorEditingControllerDidStartEditing() is also called at this point, which the
2178         SourceCodeTextEditor implements.
2179
2180         (WebInspector.CodeMirrorColorEditingController.prototype.didDismissPopover):
2181         Implementation of the Popover delegation method used to identify that color editing has
2182         completed. The delegation method colorEditingControllerDidFinishEditing() is called
2183         at this point, which the SourceCodeTextEditor implements.
2184
2185         (WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
2186         Apply the color set in the color picker to the CodeMirror text editor.
2187
2188         * UserInterface/CodeMirrorTokenTrackingController.js:
2189         Add two new modes to CodeMirrorTokenTrackingController. The first mode is "None" and is
2190         the default, incurring no specific token handling behavior. The second mode is "MarkedTokens"
2191         which identifies hover of a token contained in a CodeMirror TextMarker range. The new
2192         "MarkedTokens" mode is used by SourceCodeTextEditor to identify when a marked color is being
2193         hovered to display a HoverMenu.
2194
2195         (WebInspector.CodeMirrorTokenTrackingController):
2196         (WebInspector.CodeMirrorTokenTrackingController.prototype.set mode):
2197         Make "None" the new default mode for CodeMirrorTokenTrackingController.
2198
2199         (WebInspector.CodeMirrorTokenTrackingController.prototype.get hoveredMarker):
2200         (WebInspector.CodeMirrorTokenTrackingController.prototype.set hoveredMarker):
2201         (WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
2202         Check, when we have a "hoveredMarker" set on the CodeMirrorTokenTrackingController,
2203         whether the "hoveredMarker" is still being hovered when there is no token at the current
2204         mouse position. We can then determine when we're mousing out of the "hoveredMarker" and
2205         notify the delegate via the new tokenTrackingControllerMouseOutOfHoveredMarker delegate
2206         method. The SourceCodeTextEditor uses this method to dismiss its CodeMirrorColorEditingController.
2207
2208         (WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
2209         Add support for the new "MarkedTokens" mode.
2210
2211         (WebInspector.CodeMirrorTokenTrackingController.prototype._processMarkedToken):
2212         For the moment, use the same behavior as the existing "MarkedTokens" mode.
2213
2214         * UserInterface/Color.js:
2215         (WebInspector.Color):
2216         Add a new "valid" property to identify whether a color has any invalid (NaN) component. This property
2217         is used by SourceCodeTextEditor to establish whether a hovered color marker is indeed set to a
2218         valid color still.
2219
2220         (WebInspector.Color.prototype.copy):
2221         New method to create an exact copy of a Color instance, used by CodeMirrorColorEditingController
2222         to duplicate the edited color in case we need to revert it.
2223
2224         * UserInterface/HoverMenu.js:
2225         (WebInspector.HoverMenu.prototype._handleClickEvent):
2226         Rename hoverMenuWasActivated to hoverMenuButtonWasPressed per review feedback.
2227
2228         * UserInterface/Images/ColorIcon.png: Added.
2229         * UserInterface/Images/ColorIcon@2x.png: Added.
2230         New color wheel icon used to customize the HoverMenu shown by a CodeMirrorColorEditingController.
2231
2232         * UserInterface/Main.html:
2233         Link to the new CodeMirrorColorEditingController.js file.
2234
2235         * UserInterface/SourceCodeTextEditor.css:
2236         (.hover-menu.color):
2237         (.hover-menu.color > img):
2238         Customize the HoverMenu shown by a CodeMirrorColorEditingController to use the new ColorIcon asset.
2239
2240         * UserInterface/SourceCodeTextEditor.js:
2241         (WebInspector.SourceCodeTextEditor):
2242         Add a new "_ignoreContentDidChange" ivar that increments and decrements to track when handling
2243         of CodeMirror content changes should be disabled.
2244
2245         (WebInspector.SourceCodeTextEditor.prototype.close):
2246         Adopt the new ._updateTokenTrackingControllerState() method to update the state of the
2247         CodeMirrorTokenTrackingController.
2248
2249         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
2250         Override the new TextEditor public API called when content in the CodeMirror text editor is changed.
2251         We use this method to process any newly added line to create any newly added color marker.
2252
2253         (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
2254         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
2255         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
2256         (WebInspector.SourceCodeTextEditor.prototype._sourceCodeSourceMapAdded):
2257         Adopt the new ._updateTokenTrackingControllerState() method to update the state of the
2258         CodeMirrorTokenTrackingController.
2259
2260         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
2261         New method acting as the only point where we check the state of the text editor and set the right
2262         mode and settings on the CodeMirrorTokenTrackingController, including setting the new "MarkedTokens"
2263         mode when we have color markers, as determined by ._hasColorMarkers().
2264
2265         (WebInspector.SourceCodeTextEditor.prototype._hasColorMarkers):
2266         Check whether any of the TextMarkers set on the CodeMirror text editor were created for a color.
2267
2268         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
2269         Check the CodeMirrorTokenTrackingController mode rather than the removed "_jumpToSymbolTrackingModeEnabled"
2270         ivar to identify we're in the "NonSymbolTokens" mode.
2271
2272         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
2273         Refactor method to use the CodeMirrorTokenTrackingController mode to branch into mode-specific code
2274         and add a new branch for the new "MarkedTokens" mode where we check if the newly hovered token
2275         is part of a color TextMarker range.
2276
2277         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerMouseOutOfHoveredMarker):
2278         Implement this new CodeMirrorTokenTrackingController delegation method to dismiss the
2279         CodeMirrorColorEditingController as we identify we're no longer hovering over the TextMarker
2280         for which the CodeMirrorColorEditingController was created.
2281
2282         (WebInspector.SourceCodeTextEditor.prototype._showPopover):
2283         Adopt the new TextEditor boundsForRange() method.
2284
2285         (WebInspector.SourceCodeTextEditor.prototype._updateColorMarkers):
2286         Harness the new TextEditor createColorMarkers() method to create new TextMarkers for the provided
2287         line, or the entire text editor content if none provided. We then immediately call _updateTokenTrackingControllerState()
2288         so that the new "MarkedTokens" mode is entered in case color TextMarkers were created for the first
2289         time for this text editor.
2290
2291         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
2292         Called when we've identified the CodeMirrorTokenTrackingController highlighted a TextMarker. We check
2293         if any of the hovered TextMarkers are for a color, and in this case create a CodeMirrorColorEditingController
2294         to coordinate the display of a ColorPicker in a Popover to edit the hovered color token. We also check
2295         whether the hovered marker still contains a valid color, clearing the marker in case it was edited to
2296         no longer contain a color.
2297
2298         (WebInspector.SourceCodeTextEditor.prototype._dismissCodeMirrorColorEditingController):
2299         Used to dismiss the CodeMirrorColorEditingController, if previously presented, and reset some internal state.
2300
2301         (WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidStartEditing):
2302         Implement this CodeMirrorColorEditingController delegation method to temporarily disable the
2303         CodeMirrorTokenTrackingController while we edit the color with the ColorPicker, remove
2304         the TextMarker for the edited color and instruct that content changes should be ignored
2305         such that we act on the complete set of color edits upon completion.
2306
2307         (WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidFinishEditing):
2308         Update color markers for the edited line such that any color edits are correctly updated for
2309         the future and so that, as a side-effect, the CodeMirrorColorEditingController is reset to the
2310         appropriate mode depending on whether color TextMarkers are indeed available, resetting states
2311         that may have been altered by colorEditingControllerDidStartEditing().
2312
2313         * UserInterface/TextEditor.js:
2314         (WebInspector.TextEditor.prototype.contentDidChange):
2315         New public method meant to be overriden by subclasses, added for the use of SourceCodeTextEditor, exposing
2316         the list of TextRanges affected by the content change, both in the context of the old content and new content.
2317
2318         (WebInspector.TextEditor.prototype.boundsForRange):
2319         (WebInspector.TextEditor.prototype.get markers):
2320         (WebInspector.TextEditor.prototype.findMarkersAtPosition):
2321         (WebInspector.TextEditor.prototype.createColorMarkers):
2322         (WebInspector.TextEditor.prototype.colorEditingControllerForMarker):
2323         New public methods calling into the CodeMirror private ivar for the benefit of SourceCodeTextEditor.
2324
2325         (WebInspector.TextEditor.prototype._contentChanged):
2326         Call the new contentDidChange() method.
2327
2328 2013-12-05  Seokju Kwon  <seokju@webkit.org>
2329
2330         Web Inspector: Remove 'cookiesString' output from Page.getCookies
2331         https://bugs.webkit.org/show_bug.cgi?id=125268
2332
2333         Reviewed by Timothy Hatcher.
2334
2335         Remove 'cookiesString' output from Page.getCookies protocol.
2336         It is no longer meaningful because it is an unused parameter.
2337
2338         * UserInterface/CookieStorageContentView.js:
2339         (WebInspector.CookieStorageContentView.prototype.update):
2340         * UserInterface/InspectorBackendCommands.js:
2341
2342 2013-12-05  Brian J. Burg  <burg@cs.washington.edu>
2343
2344         Web Inspector: expose node and frame snapshot capabilities.
2345         https://bugs.webkit.org/show_bug.cgi?id=124326
2346
2347         Reviewed by Joseph Pecoraro.
2348
2349         Add method signatures for snapshotNode() and snapshotRect().
2350         Remove method signature for unimplemented Page.captureScreenshot.
2351
2352         * UserInterface/InspectorBackendCommands.js:
2353
2354 2013-12-05  Alexandru Chiculita  <achicu@adobe.com>
2355
2356         Web Inspector: [CSS Regions] Show a list of containing regions when clicking a node that is part of a flow
2357         https://bugs.webkit.org/show_bug.cgi?id=124614
2358
2359         Reviewed by Timothy Hatcher.
2360
2361         Added a new function in DOMTreeManager called getNodeContentFlowInfo that can be used
2362         to retrieve an object with the following structure:
2363         {
2364              "regionFlow": <Reference to the ContentFlow object referenced by the -webkit-flow-from property of the node>,
2365              "contentFlow": <Reference to the ContentFlow object referenced by the -webkit-flow-into property of 
2366                              the node or a parent of the node>,
2367              "regions": [ list of DOMNodes representing the regions containers of the node. The node is split across all these regions. ]
2368         }
2369
2370         Also, used this method to display a two new sections in the Computed Styles panel.
2371         1. Section "Flows": can have up to two Simple Rows: "Region Flow" and "Content Flow".
2372         2. Section "Container Regions" contains a DOMTreeDataGrid with the list of regions.
2373
2374         The sections are only visible when there's content to display.
2375
2376         Next to the "Region Flow" simple row I've added an arrow that will take the user to the "ContentFlowDOMTreeContentView" of the
2377         ContentFlow. The same happens for the "Content Flow", but in this case the element will also be highlighted.
2378
2379         Part of the patch I've added the DOMTreeDataGridNode. LayerTreeDataGrid has a lot of CSS in common with it, so I
2380         will make another patch to refactor LayerTreeDataGrid to use DOMTreeDataGridNode as a base class.
2381
2382         * Localizations/en.lproj/localizedStrings.js:
2383         * UserInterface/ComputedStyleDetailsPanel.css: Added.
2384         (.details-section > .content > .group > .row.simple.content-flow-link > .label):
2385         (.details-section > .content > .group > .row.simple.content-flow-link > .value):
2386         (.details-section > .content > .group > .row.simple.content-flow-link > .value > div):
2387         (.details-section > .content > .group > .row.simple.content-flow-link > .value > div > .icon):
2388         (.details-section > .content > .group > .row.simple.content-flow-link > .value > div > span):
2389         (.details-section > .content > .group > .row.simple.content-flow-link > .value > div > .go-to-arrow):
2390         (.details-section > .content > .group > .row.simple.content-flow-link:hover > .value > div > .go-to-arrow):
2391         * UserInterface/ComputedStyleDetailsPanel.js:
2392         (WebInspector.ComputedStyleDetailsPanel):
2393         (WebInspector.ComputedStyleDetailsPanel.prototype.get regionFlow):
2394         (WebInspector.ComputedStyleDetailsPanel.prototype.set regionFlow):
2395         (WebInspector.ComputedStyleDetailsPanel.prototype.get contentFlow):
2396         (WebInspector.ComputedStyleDetailsPanel.prototype.set contentFlow):
2397         (WebInspector.ComputedStyleDetailsPanel.prototype.get containerRegions):
2398         (WebInspector.ComputedStyleDetailsPanel.prototype.set containerRegions):
2399         (WebInspector.ComputedStyleDetailsPanel.prototype.refresh):
2400         (WebInspector.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
2401         (WebInspector.ComputedStyleDetailsPanel.prototype._resetFlowDetails):
2402         (WebInspector.ComputedStyleDetailsPanel.prototype._refreshFlowDetails.contentFlowInfoReady):
2403         (WebInspector.ComputedStyleDetailsPanel.prototype._refreshFlowDetails):
2404         (WebInspector.ComputedStyleDetailsPanel.prototype._goToRegionFlowArrowWasClicked):
2405         (WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
2406         * UserInterface/DOMTreeDataGrid.css: Added.
2407         (.dom-tree-data-grid .data-grid):
2408         (.dom-tree-data-grid .data-grid table.data):
2409         (.dom-tree-data-grid .data-container):
2410         (.dom-tree-data-grid .data-container tr):
2411         (.dom-tree-data-grid .data-container td > div):
2412         (.dom-tree-data-grid .data-container .name-column):
2413         (.dom-tree-data-grid .data-container .name-column .icon):
2414         (.dom-tree-data-grid .data-container .name-column .label):
2415         (.dom-tree-data-grid .data-container tr:hover .name-column .label):
2416         (.dom-tree-data-grid .data-container .go-to-arrow):
2417         (.dom-tree-data-grid .data-container tr:hover .go-to-arrow):
2418         (.dom-tree-data-grid .data-container tbody > tr:nth-child(2n)):
2419         (.dom-tree-data-grid .data-container tbody > tr:nth-child(2n+1)):
2420         * UserInterface/DOMTreeDataGrid.js: Added.
2421         (WebInspector.DOMTreeDataGrid):
2422         (WebInspector.DOMTreeDataGrid.prototype._onmousemove):
2423         (WebInspector.DOMTreeDataGrid.prototype._onmouseout):
2424         * UserInterface/DOMTreeDataGridNode.js: Added.
2425         (WebInspector.DOMTreeDataGridNode):
2426         (WebInspector.DOMTreeDataGridNode.prototype.get domNode):
2427         (WebInspector.DOMTreeDataGridNode.prototype.createCellContent):
2428         (WebInspector.DOMTreeDataGridNode.prototype._updateNodeName):
2429         (WebInspector.DOMTreeDataGridNode.prototype._makeNameCell):
2430         (WebInspector.DOMTreeDataGridNode.prototype._updateNameCellData):
2431         (WebInspector.DOMTreeDataGridNode.prototype._goToArrowWasClicked):
2432         * UserInterface/DOMTreeManager.js:
2433         (WebInspector.DOMTreeManager.prototype.unregisteredNamedFlowContentElement):
2434         (WebInspector.DOMTreeManager.prototype.nodeRequested):
2435         (WebInspector.DOMTreeManager.prototype._coerceRemoteArrayOfDOMNodes):
2436         (WebInspector.DOMTreeManager.prototype.domNodeResolved):
2437         (WebInspector.DOMTreeManager.prototype.regionNodesAvailable):
2438         (WebInspector.DOMTreeManager.prototype.get if):
2439         (WebInspector.DOMTreeManager.prototype.get var):
2440         (WebInspector.DOMTreeManager.prototype.backendFunction.getComputedProperty):
2441         (WebInspector.DOMTreeManager.prototype.backendFunction.getContentFlowName):
2442         (WebInspector.DOMTreeManager.prototype.):
2443         * UserInterface/DataGrid.css:
2444         (.data-grid.no-header > table.header):
2445         (.data-grid.no-header .data-container):
2446         * UserInterface/DetailsSection.js:
2447         (WebInspector.DetailsSection):
2448         * UserInterface/InspectorBackend.js:
2449         (InspectorBackendClass.prototype._wrap):
2450         * UserInterface/Main.html:
2451         * UserInterface/ResourceSidebarPanel.js:
2452         (WebInspector.ResourceSidebarPanel.prototype.showContentFlowDOMTree):
2453         * UserInterface/RuntimeManager.js:
2454         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
2455         (WebInspector.RuntimeManager.prototype.getPropertiesForRemoteObject):
2456
2457 2013-12-04  Antoine Quint  <graouts@apple.com>
2458
2459         Web Inspector: ColorWheel uses old Color constructor
2460         https://bugs.webkit.org/show_bug.cgi?id=125260
2461
2462         Reviewed by Joseph Pecoraro.
2463
2464         Update to new WebInspector.Color constructor signature and use a clear color.
2465
2466         * UserInterface/ColorWheel.js:
2467         (WebInspector.ColorWheel.prototype.get tintedColor):
2468         (WebInspector.ColorWheel.prototype.get rawColor):
2469
2470 2013-12-04  Antoine Quint  <graouts@apple.com>
2471
2472         Web Inspector: color picker doesn't work with "blue"
2473         https://bugs.webkit.org/show_bug.cgi?id=125262
2474
2475         Reviewed by Joseph Pecoraro.
2476
2477         Under certain circumstances rounding issues would have us compare
2478         two equal numbers that differ by 0.00000001 and sometime trip this
2479         if statement and yield a null color. We now add a little fudge to
2480         the test and also return a clear color rather than null to match what
2481         we do in the getters for "tintedColor" and "rawColor".
2482
2483         * UserInterface/ColorWheel.js:
2484         (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
2485
2486 2013-12-04  Antoine Quint  <graouts@apple.com>
2487
2488         Web Inspector: use only two decimals for opacity in rgba/hsla colors
2489         https://bugs.webkit.org/show_bug.cgi?id=125261
2490
2491         Reviewed by Joseph Pecoraro.
2492
2493         * UserInterface/ColorPicker.js:
2494         (WebInspector.ColorPicker.prototype._updateColor):
2495
2496 2013-12-04  Antoine Quint  <graouts@apple.com>
2497
2498         Web Inspector: "data detectors" menu on hover for actionable tokens
2499         https://bugs.webkit.org/show_bug.cgi?id=124363
2500
2501         Reviewed by Timothy Hatcher.
2502
2503         Add a new WebInspector.HoverMenu class to display an overlay menu that is presented
2504         with respect to a target frame that it draws itself around adding a customizable
2505         action button to its right. The menu uses fade animations as it's presented and
2506         dismissed and a single delegation method is fired when the button is pressed. Finally,
2507         just like a popover, it automatically dismisses itself upon scrolling anywhere
2508         outside of its bounds.
2509
2510         * UserInterface/HoverMenu.css: Added.
2511         * UserInterface/HoverMenu.js: Added.
2512         (WebInspector.HoverMenu):
2513         (WebInspector.HoverMenu.prototype.get element):
2514         (WebInspector.HoverMenu.prototype.dismiss):
2515         (WebInspector.HoverMenu.prototype.handleEvent):
2516         (WebInspector.HoverMenu.prototype._handleClickEvent):
2517         * UserInterface/Images/HoverMenuButton.png: Added.
2518         * UserInterface/Images/HoverMenuButton@2x.png: Added.
2519         * UserInterface/Main.html:
2520
2521 2013-12-04  Antoine Quint  <graouts@apple.com>
2522
2523         Web Inspector: edited color should serialize back to original format when possible
2524         https://bugs.webkit.org/show_bug.cgi?id=125244
2525
2526         Reviewed by Joseph Pecoraro.
2527
2528         Profoundly reworked WebInspector.Color to be more efficient and more flexible when
2529         serializing the color to the various supported formats.
2530
2531         * UserInterface/CSSStyleDeclarationTextEditor.js:
2532         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
2533         Use new WebInspector.Color.fromString() factory and check for a null return value
2534         rather than an exception to identify invalid color tokens.
2535
2536         * UserInterface/Color.js:
2537         (WebInspector.Color):
2538         Rewrote WebInspector.Color such that it would have, at all times, a canonical
2539         representation in terms of either RGBA or HSLA depending on the format used to
2540         create the color. The new constructor parameters lets the user pass a format
2541         and the RGBA or HSLA components, allowing to bypass the string-only creation
2542         system which was sub-optimal for the new color picker. Additionally, the toString()
2543         method now can provide the most accurate serialization of the color based on the
2544         provided format with a fallback mechanism to RGB/RGBA in cases where the desired
2545         format would incur a loss of fidelity. Finally, simplified the API to only feature
2546         essential features.
2547
2548         (WebInspector.Color.fromString):
2549         New factory method used to create a color from a string.
2550
2551         * UserInterface/ColorPicker.js:
2552         (WebInspector.ColorPicker.prototype.set color):
2553         Keep track of the original color format so that we can use it as the preferred format
2554         when serializing the updated color in _updateColor().
2555
2556         (WebInspector.ColorPicker.prototype._updateColor):
2557         Use the original color format as the prefered formation for color serialization. Also,
2558         use the new WebInspector.Color constructor in lieu of the removed .fromRGBA factory.
2559
2560         (WebInspector.ColorPicker.prototype._updateSliders):
2561         Use the new WebInspector.Color constructor in lieu of the removed .fromRGBA factory.
2562
2563         * UserInterface/ColorWheel.js:
2564         (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
2565         Use the new WebInspector.Color constructor in lieu of the removed .fromRGB factory.
2566
2567 2013-12-03  Seokju Kwon  <seokju@webkit.org>
2568
2569         Web Inspector: Remove '_attachedWindowHeight' property in InspectorFrontendHostStub.js
2570         https://bugs.webkit.org/show_bug.cgi?id=125204
2571
2572         Reviewed by Timothy Hatcher.
2573
2574         '_attachedWindowHeight' property is not used anywhere, so remove it.
2575
2576         * UserInterface/InspectorFrontendHostStub.js:
2577         (.WebInspector.InspectorFrontendHostStub):
2578
2579 2013-12-03  Brian J. Burg  <burg@cs.washington.edu>
2580
2581         Web Inspector: restore navigation panel state across reloads and reopens
2582         https://bugs.webkit.org/show_bug.cgi?id=122125
2583
2584         Reviewed by Timothy Hatcher.
2585
2586         The previous strategy for restoring content views after inspector
2587         re-open did not consider the active sidebar and its selection, and
2588         tried to recreate the appropriate selection from the saved content
2589         view. However, doesn't work for tree elements in the sidebar panel
2590         that don't change views when selected, such as script breakpoints,
2591         special breakpoints, call stack, timeline sections, etc.
2592
2593         This patch implements a new strategy that saves the navigation
2594         sidebar panel's view state by serializing the identity of the
2595         selected element's represented object. Relevant represented
2596         object classes implement the saveIdentityToCookie() method. Each
2597         represented object class also adds a TypeIdentifier property to
2598         its constructor, to aid inexact matching based on represented
2599         object type, rather than its complete identity.
2600
2601         When restoring, the navigation sidebar attempts to match added
2602         tree elements against the pending cookie, and selects the element
2603         if it matches. A represented object matches if its serialized
2604         identity matches the previously saved serialized identity.
2605
2606         The inspector view state is now only saved on the page hide event
2607         (for saving across reopen) and when the main frame commits its
2608         provisional load (for saving across same-page reloads). It
2609         consolidates similar view state settings into a single setting.
2610
2611         * UserInterface/ApplicationCacheFrame.js:
2612         (WebInspector.ApplicationCacheFrame): Add cookie keys and type identifier.
2613         (WebInspector.ApplicationCacheFrame.prototype.saveIdentityToCookie): Added.
2614         * UserInterface/ApplicationCacheManager.js: remove objectForCookie().
2615         * UserInterface/Breakpoint.js:
2616         (WebInspector.Breakpoint): Add cookie keys and type identifier.
2617         (WebInspector.Breakpoint.prototype.saveIdentityToCookie):
2618         * UserInterface/CookieStorageObject.js:
2619         (WebInspector.CookieStorageObject.prototype.saveIdentityToCookie): Added.
2620         * UserInterface/DOMStorageObject.js:
2621         (WebInspector.DOMStorageObject): Add cookie keys and type identifier.
2622         (WebInspector.DOMStorageObject.prototype.saveIdentityToCookie): Added.
2623         * UserInterface/DatabaseObject.js:
2624         (WebInspector.DatabaseObject): Add cookie keys and type identifier.
2625         (WebInspector.DatabaseObject.prototype.saveIdentityToCookie): Added.
2626         * UserInterface/DatabaseTableObject.js:
2627         (WebInspector.DatabaseTableObject): Add cookie keys and type identifier.
2628         (WebInspector.DatabaseTableObject.prototype.saveIdentityToCookie): Added.
2629         * UserInterface/DebuggerSidebarPanel.js:
2630         (WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie): Added.
2631         (WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie): Added.
2632         * UserInterface/Frame.js:
2633         (WebInspector.Frame): Add cookie keys and type identifier.
2634         (WebInspector.Frame.prototype.saveIdentityToCookie): Added.
2635         * UserInterface/FrameResourceManager.js: remove objectForCookie().
2636         * UserInterface/InstrumentSidebarPanel.js:
2637         (WebInspector.InstrumentSidebarPanel.prototype.showTimelineForRecordType):
2638         Return the shown timeline, if any.
2639
2640         (WebInspector.InstrumentSidebarPanel.prototype.saveStateToCookie): Added.
2641         (WebInspector.InstrumentSidebarPanel.prototype.restoreStateFromCookie): Added.
2642         (WebInspector.InstrumentSidebarPanel.prototype.showProfile):
2643         Return the shown profile, if any.
2644
2645         * UserInterface/Main.js:
2646         (WebInspector): Added cookie keys for the selected sidebar and
2647         typeidentifier of the sidebar's selected tree element.
2648
2649         (WebInspector.contentLoaded): Remove callbacks for
2650         resolveAndShowPendingContentViewCookie(). Consolidate all saved
2651         inspector view state into one Setting. Move special-cased
2652         restoring of the console to the restoration method. Move saving
2653         of last opened navigation panel to the saving method.
2654
2655         (WebInspector._mainResourceDidChange): Try to restore saved view
2656         state when the main resource changes.
2657
2658         (WebInspector._provisionalLoadCommitted): Update the saved view
2659         state when the navigation commits. This is the last chance to save
2660         it before the main resource changes and the navigation panel view
2661         state is discarded and rebuilt.
2662
2663         (WebInspector._pageHidden): Update the saved view state when the
2664         inspector page is hidden, but before state is discarded.
2665
2666         (WebInspector._navigationSidebarPanelSelected): Don't save last
2667         navigation sidebar panel.
2668         (WebInspector._updateCookieForInspectorViewState): Renamed from
2669         _updateCurrentContentViewCookie. It delegates view state
2670         serialization to the currently open navigation sidebar, rather
2671         than the current content view.
2672
2673         (WebInspector._contentBrowserRepresentedObjectsDidChange): Don't
2674         spuriously serialize the current view state cookie on every
2675         ContentView change.
2676
2677         (WebInspector._restoreInspectorViewStateFromCookie): Renamed from
2678         _showContentViewForCookie. It now restores a specific navigation
2679         panel and delegates remaining view state restoration to the panel
2680         itself. Last-resort selection of any tree element with the same
2681         type identifier was moved to the navigation panel's restore method.
2682
2683         * UserInterface/NavigationSidebarPanel.js:
2684         (WebInspector.NavigationSidebarPanel):
2685         (WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
2686         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
2687         Save references to all created TreeOutlines in a Set, so we can
2688         restore any tree's selection.
2689
2690         (WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
2691         Added. Find the selected tree element from all tree outlines and
2692         ask it to serialize its identity.
2693
2694         (WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie):
2695         Added. Eagerly search existing tree elements for a matching
2696         representedObject. If none exists, save the pending cookie and
2697         schedule last-resort matching using the provided timeout interval.
2698
2699         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
2700         Check if the added tree element matches a pending view state
2701         cookie, if one exists.
2702
2703         (WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
2704         Added. Check if the tree element's representedObject matches the
2705         pending view state cookie.
2706
2707         (WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
2708         Added. For each provided tree element, check if the tree
2709         element's represented object produces the same serialized identity
2710         as the pending view state cookie that we are trying to resolve.
2711         If a match is found (possibly by relaxing to matching anything
2712         with the same type), select the tree element and clear both the
2713         pending view state cookie and last-resort selection timer.
2714
2715         * UserInterface/Resource.js:
2716         (WebInspector.Resource): Add cookie keys and type identifier.
2717         (WebInspector.Resource.prototype.saveIdentityToCookie): Added.
2718
2719         * UserInterface/ResourceClusterContentView.js:
2720         (WebInspector.ResourceClusterContentView.prototype.saveToCookie):
2721         (WebInspector.ResourceClusterContentView.prototype.restoreFromCookie):
2722         Since identity state is serialized by the representedObject, these
2723         methods only need to save view-specific state, such as the visible
2724         subview. Remove extraneous state.
2725
2726         * UserInterface/Script.js:
2727         (WebInspector.Script): Add cookie keys and type identifier.
2728         (WebInspector.Script.prototype.saveIdentityToCookie): Added.
2729         * UserInterface/StorageManager.js: remove objectForCookie().
2730         * UserInterface/TimelineManager.js: remove objectForCookie().
2731         * UserInterface/TimelinesContentView.js:
2732         (WebInspector.TimelinesContentView.prototype.saveToCookie):
2733         (WebInspector.TimelinesContentView.prototype.restoreFromCookie):
2734         Since identity state is serialized by the representedObject, these
2735         methods only need to save view-specific state, such as the visible
2736         subview. Remove extraneous state.
2737
2738         * UserInterface/TreeOutline.js: Add TreeOutline.prototype.constructor
2739         so other code can assume the constructor property exists.
2740
2741 2013-12-02  Antoine Quint  <graouts@apple.com>
2742
2743         Web Inspector: popover can overlap target frame
2744         https://bugs.webkit.org/show_bug.cgi?id=125069
2745
2746         Reviewed by Joseph Pecoraro.
2747
2748         Fix a regression introduced in http://trac.webkit.org/changeset/159286. We should only
2749         offset the frame of the popover in the y-axis if the target edge is on the x-axis, and
2750         vice versa. We also remove the needsToDrawBackground check since it incorrectly disregarded
2751         the anchor point. We now always draw the background which is a lot safer and guarantees
2752         we'll always draw an adequate frame and anchor point.
2753
2754         * UserInterface/Popover.js:
2755         (WebInspector.Popover.prototype._update):
2756         (WebInspector.Popover.prototype._bestMetricsForEdge):
2757
2758 2013-12-02  Antoine Quint  <graouts@apple.com>
2759
2760         Web Inspector: add a method to add padding around a WebInspector.Rect
2761         https://bugs.webkit.org/show_bug.cgi?id=125072
2762
2763         Reviewed by Joseph Pecoraro.
2764
2765         Add a new WebInspector.Rect.prototype.pad() method which does not alter
2766         the rectangle it's called and returns a new rect much like .inset(). I've
2767         checked all call sites and there was no reuse of the rectangle that was
2768         padded so this patch won't have any side effects.
2769
2770         * UserInterface/Breakpoint.js:
2771         (WebInspector.Breakpoint.prototype._showEditBreakpointPopover):
2772         * UserInterface/CSSStyleDeclarationTextEditor.js:
2773         * UserInterface/Geometry.js:
2774         (WebInspector.Rect.prototype.pad):
2775         * UserInterface/LayerTreeSidebarPanel.js:
2776         (WebInspector.LayerTreeSidebarPanel.prototype._updatePopoverForSelectedNode):
2777         * UserInterface/SourceCodeTextEditor.js:
2778         (WebInspector.SourceCodeTextEditor.prototype._showPopover):
2779         * UserInterface/TimelineDataGrid.js:
2780         (WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
2781
2782 2013-11-26  Antoine Quint  <graouts@apple.com>
2783
2784         Web Inspector: Allow showing a context menu on all mouse events.
2785         https://bugs.webkit.org/show_bug.cgi?id=124747
2786
2787         Reviewed by Joseph Pecoraro.
2788
2789         Automatically dispatch a contextmenu event in case WebInspector.ContextMenu.prototype.show()
2790         is called outside of a contextmenu event handler and would therefore not show the expected
2791         context menu (except in the Remote Web Inspector where this already works). 
2792
2793         * UserInterface/ContextMenu.js:
2794         (WebInspector.ContextMenu.prototype.show):
2795         Check whether the event is a contextmenu event, and if not, add an event listener for a manually
2796         dispatched contextmenu event such that we may then call InspectorFrontendHost.showContextMenu()
2797         in a contextmenu event handler.
2798
2799         (WebInspector.ContextMenu.prototype.handleEvent):
2800         Call InspectorFrontendHost.showContextMenu() now that we received the manually dispatched
2801         contextmenu event.
2802
2803 2013-11-25  Alexandru Chiculita  <achicu@adobe.com>
2804
2805         Web Inspector: [CSS Regions] A page with many flows should collapse the resources tree
2806         https://bugs.webkit.org/show_bug.cgi?id=122926
2807
2808         Reviewed by Timothy Hatcher.
2809
2810         Refactored the code in FrameTreeElement._shouldGroupIntoFolders to make it easy to track
2811         more types of resources. Added the content flows as another type of resource that would trigger the
2812         collapsing.
2813
2814         * UserInterface/DOMTreeManager.js:
2815         (WebInspector.DOMTreeManager.prototype.namedFlowRemoved): Added code to remove the content nodes from
2816         a flow that has been removed.
2817         * UserInterface/FrameTreeElement.js:
2818         (WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushCategory):
2819         (WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushResourceType):
2820         (WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders):
2821
2822 2013-11-25  Dan Bernstein  <mitz@apple.com>
2823
2824         Set the svn:ignore property on the Xcode project to ignore the workspace and user data.
2825
2826         * WebInspectorUI.xcodeproj: Added property svn:ignore.
2827
2828 2013-11-21  Mark Rowe  <mrowe@apple.com>
2829
2830         <https://webkit.org/b/124702> Stop overriding VALID_ARCHS.
2831
2832         All modern versions of Xcode set it appropriately for our needs.
2833
2834         Reviewed by Alexey Proskuryakov.
2835
2836         * Configurations/Base.xcconfig:
2837
2838 2013-11-19  Antoine Quint  <graouts@apple.com>
2839
2840         Web Inspector: layer info sidebar should convert to MB for very large layers
2841         https://bugs.webkit.org/show_bug.cgi?id=124570
2842
2843         Reviewed by Timothy Hatcher.
2844
2845         Setting higherResolution to true (its default value if omitted) when calling
2846         Number.bytesToString() would always result in a KB-formatted string instead
2847         since it didn't check for a < 1024 value as well.
2848
2849         * UserInterface/Utilities.js:
2850         (Number.bytesToString):
2851
2852 2013-11-19  Antoine Quint  <graouts@apple.com>
2853
2854         Remove some unused utilities from Utilities.js
2855         https://bugs.webkit.org/show_bug.cgi?id=124590
2856
2857         Reviewed by Darin Adler.
2858
2859         Remove some methods and properties that were no longer used through the codebase.
2860
2861         * UserInterface/Utilities.js:
2862
2863 2013-11-18  Alexandru Chiculita  <achicu@adobe.com>
2864
2865         Web Inspector: Update WebInspectorUI to use the new "nodeIds" parameter for DOM.performSearch
2866         https://bugs.webkit.org/show_bug.cgi?id=124544
2867
2868         Reviewed by Joseph Pecoraro.
2869
2870         Added the new DOM.performSearch "nodeIds" parameter and made the two implementations
2871         of DOMTreeContentView provide the right context node ids.
2872
2873         DOMTreeContentView is just using the id of the document node while ContentFlowDOMTreeContentView
2874         is passing the list of content nodes.
2875
2876         Note that adding an extra optional parameter to DOM.performSearch does not break iOS 6 and 7 compatibility.
2877
2878         * UserInterface/ContentFlowDOMTreeContentView.js:
2879         (WebInspector.ContentFlowDOMTreeContentView.prototype.getSearchContextNodes):
2880         * UserInterface/DOMTreeContentView.js:
2881         (WebInspector.DOMTreeContentView.prototype.performSearch.contextNodesReady):
2882         (WebInspector.DOMTreeContentView.prototype.performSearch):
2883         (WebInspector.DOMTreeContentView.prototype.getSearchContextNodes):
2884         * UserInterface/FrameDOMTreeContentView.js:
2885         (WebInspector.FrameDOMTreeContentView.prototype.getSearchContextNodes):
2886         * UserInterface/InspectorBackendCommands.js:
2887
2888 2013-11-18  Joseph Pecoraro  <pecoraro@apple.com>
2889
2890         Web Inspector: Update localizedStrings, remove stale string
2891         https://bugs.webkit.org/show_bug.cgi?id=124543
2892
2893         Reviewed by Jessie Berlin.
2894
2895         Remove stale localized strings after r124543 remove the old color picker.
2896
2897         * Localizations/en.lproj/localizedStrings.js:
2898
2899 2013-11-15  Antoine Quint  <graouts@apple.com>
2900
2901         Web Inspector: New color picker
2902         https://bugs.webkit.org/show_bug.cgi?id=124354
2903
2904         Reviewed by Timothy Hatcher.
2905
2906         Beginning of a new color picker. The focus of this new picker is to let you pick from
2907         a color wheel as the primary mean of color picking, with additional slider controls for
2908         the brightness and the opacity, better matching the default OS X color picker. This is the
2909         basis for a color picker that will evolve to support the following:
2910
2911         - editable CSS value label (http://webkit.org/b/124356)
2912         - picking a color anywhere on screen (http://webkit.org/b/124357)
2913         - swatches based on other colors in page (http://webkit.org/b/124358)
2914
2915         Note also that the color wheel has not been tested on Retina displays
2916         (see http://webkit.org/b/124355).
2917
2918         * UserInterface/CSSColorPicker.css: Removed.
2919         * UserInterface/CSSColorPicker.js: Removed.
2920         Previous color picker, now removed in favor of the new ColorPicker class.
2921
2922         * UserInterface/CSSStyleDeclarationTextEditor.js:
2923         Adopt new class name for the color picker, add a little padding to the popover
2924         target frame and set the base color after the picker has been presented.
2925
2926         * UserInterface/Color.js:
2927         (WebInspector.Color.prototype._hslToRGB):
2928         Simplified math.
2929
2930         (WebInspector.Color.rgb2hsv):
2931         (WebInspector.Color.hsv2rgb):
2932         New utilities to deal with HSV colors used in the ColorWheel.
2933
2934         * UserInterface/ColorPicker.css: Added.
2935
2936         * UserInterface/ColorPicker.js: Added.
2937         (WebInspector.ColorPicker):
2938         (WebInspector.ColorPicker.prototype.get element):
2939         (WebInspector.ColorPicker.prototype.set brightness):
2940         (WebInspector.ColorPicker.prototype.set opacity):
2941         (WebInspector.ColorPicker.prototype.get color):
2942
2943         (WebInspector.ColorPicker.prototype.set color):
2944         We set the _dontUpdateColor flag here such that we don't attempt to
2945         notify about a color change at this point in case the selected color
2946         is too saturated to be represented accurately on the color wheel and
2947         we would end up changing the color by virtue of presenting the popover.
2948
2949         (WebInspector.ColorPicker.prototype.colorWheelColorDidChange):
2950         (WebInspector.ColorPicker.prototype.sliderValueDidChange):
2951         (WebInspector.ColorPicker.prototype._updateColor):
2952         (WebInspector.ColorPicker.prototype._updateSliders):
2953
2954         * UserInterface/ColorWheel.css: Added.
2955
2956         * UserInterface/ColorWheel.js: Added.
2957         The ColorWheel makes use of three different <canvas> elements to draw itself.
2958         The "raw" canvas is used to draw the raw, un-tinted color wheel with poor
2959         aliasing. The "raw" canvas is only drawn when the dimension is changed.
2960         The "tinted" canvas is used to draw the "raw" canvas with a black overlay
2961         based on the brightness set on the wheel. The "final" canvas, the only <canvas>
2962         element attached to the DOM, is used to draw the "tinted" canvas into a circle
2963         clip of a slightly narrower radius so that the drawn image is visually more pleasing
2964         and can be displayed above virtually any background color.
2965
2966         We use color math to generate the color wheel, courtesy of Dean Jackson, and also to
2967         figure out where to position the crosshair for the provided base color as well as
2968         the opposite operation where we get the color under the mouse pointer.
2969
2970         The color wheel fires a single delegate method call colorWheelColorDidChange(colorWheel),
2971         the colors themselves being retrieved via the public properties tintedColor and rawColor.
2972
2973         (WebInspector.ColorWheel):
2974         (WebInspector.ColorWheel.prototype.set dimension):
2975         (WebInspector.ColorWheel.prototype.get element):
2976         (WebInspector.ColorWheel.prototype.get brightness):
2977         (WebInspector.ColorWheel.prototype.set brightness):
2978         (WebInspector.ColorWheel.prototype.get tintedColor):
2979         (WebInspector.ColorWheel.prototype.set tintedColor):
2980         (WebInspector.ColorWheel.prototype.get rawColor):
2981         (WebInspector.ColorWheel.prototype.handleEvent):
2982         (WebInspector.ColorWheel.prototype._handleMousedown):
2983         (WebInspector.ColorWheel.prototype._handleMousemove):
2984         (WebInspector.ColorWheel.prototype._handleMouseup):
2985         (WebInspector.ColorWheel.prototype._pointInCircleForEvent):
2986         (WebInspector.ColorWheel.prototype._pointInCircleForEvent.angleFromCenterToPoint):
2987         (WebInspector.ColorWheel.prototype._pointInCircleForEvent.pointOnCircumference):
2988         (WebInspector.ColorWheel.prototype._updateColorForMouseEvent):
2989         (WebInspector.ColorWheel.prototype._setCrosshairPosition):
2990         (WebInspector.ColorWheel.prototype._tintedColorToPointAndBrightness):
2991         (WebInspector.ColorWheel.prototype._drawRawCanvas):
2992         (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
2993         (WebInspector.ColorWheel.prototype._drawTintedCanvas):
2994         (WebInspector.ColorWheel.prototype._draw):
2995
2996         * UserInterface/Images/SliderThumb.png: Added.
2997         * UserInterface/Images/SliderThumb@2x.png: Added.
2998         * UserInterface/Images/SliderThumbPressed.png: Added.
2999         * UserInterface/Images/SliderThumbPressed@2x.png: Added.
3000         Supporting artwork for the new Slider class.
3001
3002         * UserInterface/Main.html:
3003         Remove the previous color picker class and add the new one, as well as the new Slider class.
3004
3005         * UserInterface/Slider.css: Added.
3006
3007         * UserInterface/Slider.js: Added.
3008         New slider to match the look of the sliders used in the native OS X color picker. The most
3009         interesting feature of these sliders is that they can be transformed using CSS in any way
3010         and will still operate correctly due to always converting the mouse coordinates in the page
3011         coordinate system to the coordinate system local to the backing element. For instance, the
3012         color picker uses two sliders transformed to be displayed vertically.
3013
3014         As it stands these slides only support values between 0 and 1 and fire a single delegate
3015         method call sliderValueDidChange(slider, newValue).
3016
3017         (WebInspector.Slider):
3018         (WebInspector.Slider.prototype.get element):
3019         (WebInspector.Slider.prototype.get value):
3020         (WebInspector.Slider.prototype.set value):
3021         (WebInspector.Slider.prototype.handleEvent):
3022         (WebInspector.Slider.prototype._handleMousedown):
3023         (WebInspector.Slider.prototype._handleMousemove):
3024         (WebInspector.Slider.prototype._handleMouseup):
3025         (WebInspector.Slider.prototype._localPointForEvent):
3026         (WebInspector.Slider.prototype.get _maxX):
3027
3028         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
3029         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
3030         Update file names for the new color picker.
3031
3032 2013-11-14  Antoine Quint  <graouts@apple.com>
3033
3034         Web Inspector: Popovers may shrink unnecessarily
3035         https://bugs.webkit.org/show_bug.cgi?id=124350
3036
3037         Reviewed by Timothy Hatcher.
3038
3039         Because we always get the intersection of the preferred frame and the container frame to
3040         ensure the popover fits within its container based on a preferred frame that would place
3041         the arrow within the center of the attachment edge, we get in situations where we may
3042         shrink the popover instead of shifting it to fit within the container frame. We now first
3043         shift the preferred frame before getting its intersection with the container frame to
3044         avoid such situations. 
3045
3046         * UserInterface/Popover.js:
3047         (WebInspector.Popover.prototype._bestMetricsForEdge):
3048
3049 2013-11-13  Joseph Pecoraro  <pecoraro@apple.com>
3050
3051         Web Inspector: Split Inspector.json into individual domain json files
3052         https://bugs.webkit.org/show_bug.cgi?id=124098
3053
3054         Reviewed by Timothy Hatcher.
3055
3056         Removed now stale comments referring to the combined Inspector.json.
3057         Make update-InspectorBackendCommands helper script generate a
3058         combined Inspector.json to still work for tip of tree.
3059
3060         * Scripts/update-InspectorBackendCommands.rb:
3061         * UserInterface/ApplicationCacheObserver.js:
3062         * UserInterface/CSSObserver.js:
3063         * UserInterface/CanvasObserver.js:
3064         * UserInterface/ConsoleObserver.js:
3065         * UserInterface/DOMObserver.js:
3066         * UserInterface/DOMStorageObserver.js:
3067         * UserInterface/DatabaseObserver.js:
3068         * UserInterface/DebuggerObserver.js:
3069         * UserInterface/InspectorBackendCommands.js:
3070         * UserInterface/InspectorObserver.js:
3071         * UserInterface/LayerTreeObserver.js:
3072         * UserInterface/NetworkObserver.js:
3073         * UserInterface/PageObserver.js:
3074         * UserInterface/ProfilerObserver.js:
3075         * UserInterface/Resource.js:
3076         * UserInterface/RuntimeObserver.js:
3077         * UserInterface/TimelineObserver.js:
3078
3079 2013-11-12  Alexandru Chiculita  <achicu@adobe.com>
3080
3081         Web Inspector: ContentFlowTreeContentView should use only one DOMTreeOutline
3082         https://bugs.webkit.org/show_bug.cgi?id=124230
3083
3084         Reviewed by Timothy Hatcher.
3085
3086         Changed ContentFlowTreeContentView to use one DOMTreeOutline by just
3087         populating it with root DOMTreeElements directly. That is very
3088         similar to how DOMTreeOutline works when omitRootDOMNode is used.
3089
3090         Now that ContentFlowTreeContentView has only one DOMTreeOutline,
3091         it makes sense to change its base class to be DOMTreeContentView instead.
3092         Also, with that I've changed its name to ContentFlowDOMTreeContentView.
3093
3094         I had to move all the DOMTree document loading code from DOMTreeContentView to a
3095         new class called FrameDOMTreeContentView. This is used to display the DOM of the
3096         frame objects. FrameDOMTreeContentView is also inheriting from DOMTreeContentView.
3097
3098         Issues that are fixed as a side effect:
3099         - Selection path components are now displaying all the sibling elements for contentFlow.contentNodes
3100         (those are the nodes that have "-webkit-flow-into" set directly).
3101         - Keyboard navigation works for the contentFlow.contentNodes.
3102         - Search is implemented in DOMTreeContentView, so that code now works for flows too.
3103         The DOMAgents's search API will use all the Documents to lookup for nodes, so it might
3104         find DOM nodes that are not part of the flow. This is in line with the behavior for the
3105         frames.
3106
3107         * UserInterface/ContentFlowDOMTreeContentView.js: Renamed from ContentFlowTreeContentView
3108         to better reflect the inheritance from DOMTreeContentView.
3109         (WebInspector.ContentFlowDOMTreeContentView):
3110         (WebInspector.ContentFlowDOMTreeContentView.prototype.closed):
3111         (WebInspector.ContentFlowDOMTreeContentView.prototype._createContentTrees):
3112         (WebInspector.ContentFlowDOMTreeContentView.prototype._contentNodeWasAdded):
3113         (WebInspector.ContentFlowDOMTreeContentView.prototype._contentNodeWasRemoved):
3114         * UserInterface/ContentView.js:
3115         (WebInspector.ContentView):
3116         * UserInterface/DOMTreeContentView.js:
3117         (WebInspector.DOMTreeContentView):
3118         (WebInspector.DOMTreeContentView.prototype.closed):
3119         (WebInspector.DOMTreeContentView.prototype.):
3120         (WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
3121         (WebInspector.DOMTreeContentView.prototype._selectedNodeDidChange):
3122         * UserInterface/FrameDOMTreeContentView.js: Added.
3123         (WebInspector.FrameDOMTreeContentView):
3124         (WebInspector.FrameDOMTreeContentView.prototype.get domTree):
3125         (WebInspector.FrameDOMTreeContentView.prototype.closed):
3126         (WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
3127         (WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeInvalidated):
3128         (WebInspector.FrameDOMTreeContentView.prototype._requestRootDOMNode):
3129         * UserInterface/Main.html:
3130
3131 2013-11-08  Joseph Pecoraro  <pecoraro@apple.com>
3132
3133         Web Inspector: remove -webkit-min and -webkit-max from CSS completions
3134         https://bugs.webkit.org/show_bug.cgi?id=124072
3135
3136         Reviewed by Timothy Hatcher.
3137
3138         -webkit-min and -webkit-max are not implemented in WebCore, despite mentions of it.
3139
3140         * UserInterface/CSSKeywordCompletions.js:
3141
3142 2013-11-07  Alexandru Chiculita  <achicu@adobe.com>
3143
3144         Web Inspector: CSS Regions: Use a Map object to store the ContentFlows
3145         https://bugs.webkit.org/show_bug.cgi?id=124015
3146
3147         Reviewed by Joseph Pecoraro.
3148
3149         Changed the Object hashmap to a Map based hashmap when storing the flows in DOMTreeManager.
3150
3151         * UserInterface/DOMTreeManager.js:
3152         (WebInspector.DOMTreeManager):
3153         (WebInspector.DOMTreeManager.prototype.getNamedFlowCollection):
3154         (WebInspector.DOMTreeManager.prototype.namedFlowRemoved):
3155         (WebInspector.DOMTreeManager.prototype._sendNamedFlowUpdateEvents):
3156
3157 2013-11-07  Timothy Hatcher  <timothy@apple.com>
3158
3159         Fix up some sidebar switching details to make selections persist better.
3160
3161         Translate represented objects between sidebars so the same item can be reselected
3162         as you switch between frames and main reources. Also fix some null checks that are
3163         needed on selectedSidebarPanel.
3164
3165         https://bugs.webkit.org/show_bug.cgi?id=124001
3166
3167         Reviewed by Joseph Pecoraro.
3168
3169         * UserInterface/DebuggerSidebarPanel.js:
3170         (WebInspector.DebuggerSidebarPanel.prototype.treeElementForRepresentedObject): Added. Translate a Frame
3171         representedObject into a main resource representedObject.
3172         * UserInterface/Main.js:
3173         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): Null check selectedSidebarPanel.
3174         (WebInspector._updateNavigationSidebarForCurrentContentView): Fix a logic error to match other code.
3175         allowedNavigationSidebarPanels.length needs to have a length before using contains.
3176         (WebInspector._contentBrowserCurrentContentViewDidChange): Null check selectedSidebarPanel.
3177         * UserInterface/ResourceSidebarPanel.js:
3178         (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject): Translate a main resource
3179         representedObject into a Frame representedObject.
3180
3181 2013-11-07  Alexandru Chiculita  <achicu@adobe.com>
3182
3183         Web Inspector: CSS Regions: Removing a content node of a ContentFlow from the DOM will send a 0 nodeId
3184         https://bugs.webkit.org/show_bug.cgi?id=123577
3185
3186         Reviewed by  Timothy Hatcher.
3187
3188         Fixed the content node removal from the content flow.
3189
3190         * UserInterface/ContentFlowTreeContentView.js:
3191         * UserInterface/DOMTreeManager.js:
3192         (WebInspector.DOMTreeManager):
3193         (WebInspector.DOMTreeManager.prototype._createContentFlowFromPayload): Registered all the content nodes
3194         in the _contentNodesToFlowsMap.
3195         (WebInspector.DOMTreeManager.prototype._unbind): Added call to _removeContentNodeFromFlowIfNeeded.
3196         (WebInspector.DOMTreeManager.prototype._removeContentNodeFromFlowIfNeeded): Called from _unbind to check
3197         and remove a node from it's parent content flow if needed.
3198         (WebInspector.DOMTreeManager.prototype.unregisteredNamedFlowContentElement):
3199
3200 2013-11-06  Timothy Hatcher  <timothy@apple.com>
3201
3202         Properly null check positionToReveal in ResourceSidebarPanel.prototype.showSourceCode.
3203
3204         https://bugs.webkit.org/show_bug.cgi?id=123921
3205
3206         Reviewed by Joseph Pecoraro.
3207
3208         * UserInterface/ResourceSidebarPanel.js:
3209         (WebInspector.ResourceSidebarPanel.prototype.showSourceCode):
3210
3211 2013-11-06  Timothy Hatcher  <timothy@apple.com>
3212
3213         Fix the display of query parameters when the value is missing. 
3214
3215         https://bugs.webkit.org/show_bug.cgi?id=123920
3216
3217         Reviewed by Joseph Pecoraro.
3218
3219         * UserInterface/ResourceDetailsSidebarPanel.js:
3220         (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid):
3221
3222 2013-11-06  Alexandru Chiculita  <achicu@adobe.com>
3223
3224         Web Inspector: CSS Regions: When a flow is clicked the content of flow needs to be displayed
3225         https://bugs.webkit.org/show_bug.cgi?id=122927
3226
3227         Reviewed by Joseph Pecoraro.
3228
3229         ContentFlowTreeContentView is now used to display the content nodes of a ContentFlow. It is
3230         very similar to the DOMTreeContentView class, but can handle multiple root nodes.
3231
3232         * UserInterface/ContentFlowTreeContentView.js: Added.
3233         (WebInspector.ContentFlowTreeContentView):
3234         (WebInspector.ContentFlowTreeContentView.prototype.get selectionPathComponents):
3235         (WebInspector.ContentFlowTreeContentView.prototype.updateLayout):
3236         (WebInspector.ContentFlowTreeContentView.prototype.shown):
3237         (WebInspector.ContentFlowTreeContentView.prototype.hidden):
3238         (WebInspector.ContentFlowTreeContentView.prototype.closed):
3239         (WebInspector.ContentFlowTreeContentView.prototype._selectedNodeDidChange):
3240         (WebInspector.ContentFlowTreeContentView.prototype._pathComponentSelected):
3241         (WebInspector.ContentFlowTreeContentView.prototype._createContentNodeTree):
3242         (WebInspector.ContentFlowTreeContentView.prototype._createContentTrees):
3243         (WebInspector.ContentFlowTreeContentView.prototype._contentNodeWasAdded):
3244         (WebInspector.ContentFlowTreeContentView.prototype._contentNodeWasRemoved):
3245         * UserInterface/ContentView.js:
3246         (WebInspector.ContentView):
3247         (WebInspector.ContentView.isViewable):
3248         * UserInterface/DOMTreeElement.js:
3249         (WebInspector.DOMTreeElement.prototype.ondeselect): We need to remove the selected "dom node"
3250         so that the element is not going to stay selected after the we move to a different DOM tree.
3251         * UserInterface/DOMTreeOutline.js:
3252         (WebInspector.DOMTreeOutline.prototype.selectDOMNode):
3253         * UserInterface/Main.html:
3254         * UserInterface/Main.js:
3255         (WebInspector.sidebarPanelForRepresentedObject):
3256         * UserInterface/ResourceSidebarPanel.js:
3257         (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
3258
3259 2013-11-01  Antoine Quint  <graouts@apple.com>
3260
3261         Remove custom Function.prototype.bind() in favor of native version
3262         https://bugs.webkit.org/show_bug.cgi?id=123608
3263
3264         Reviewed by Joseph Pecoraro.
3265
3266         * UserInterface/Utilities.js:
3267
3268 2013-11-01  Antoine Quint  <graouts@apple.com>
3269
3270         Error trying to serialize a color created without an alpha component to RGBA or HSLA
3271         https://bugs.webkit.org/show_bug.cgi?id=123623
3272
3273         Reviewed by Joseph Pecoraro.
3274
3275         Check whether we have .rgba and .hsla ivars before trying to retrieve them to serialize
3276         the color to RGBA or HSLA format.
3277
3278         * UserInterface/Color.js:
3279         (WebInspector.Color.prototype.toString):
3280
3281 2013-11-01  Antoine Quint  <graouts@apple.com>
3282
3283         Remove custom Element.prototype.remove() in favor of native version
3284         https://bugs.webkit.org/show_bug.cgi?id=123607
3285
3286         Reviewed by Timothy Hatcher.
3287
3288         * UserInterface/Utilities.js:
3289