8ada0bef6586cdc8841e26cdf14486952683d53f
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2016-03-14  Joseph Pecoraro  <pecoraro@apple.com>
2
3         Web Inspector: Show path from root to instances in the Heap Snapshot content view
4         https://bugs.webkit.org/show_bug.cgi?id=155478
5         <rdar://problem/25157408>
6
7         Reviewed by Timothy Hatcher.
8
9         * Localizations/en.lproj/localizedStrings.js:
10         * UserInterface/Main.html:
11         New strings and resources.
12
13         * UserInterface/Models/HeapSnapshotNode.js:
14         (WebInspector.HeapSnapshotNode.prototype.get shortestGCRootPath):
15         (WebInspector.HeapSnapshotNode.prototype._gcRootPaths.visitNode):
16         (WebInspector.HeapSnapshotNode.prototype._gcRootPaths):
17         Helper to get the shortest path from a GC root to the node.
18
19         * UserInterface/Models/HeapSnapshotRootPath.js: Added.
20         (WebInspector.HeapSnapshotRootPath):
21         (WebInspector.HeapSnapshotRootPath.emptyPath):
22         (WebInspector.HeapSnapshotRootPath.prototype.get node):
23         (WebInspector.HeapSnapshotRootPath.prototype.get parent):
24         (WebInspector.HeapSnapshotRootPath.prototype.get pathComponent):
25         (WebInspector.HeapSnapshotRootPath.prototype.get rootNode):
26         (WebInspector.HeapSnapshotRootPath.prototype.get fullPath):
27         (WebInspector.HeapSnapshotRootPath.prototype.isRoot):
28         (WebInspector.HeapSnapshotRootPath.prototype.isEmpty):
29         (WebInspector.HeapSnapshotRootPath.prototype.isGlobalScope):
30         (WebInspector.HeapSnapshotRootPath.prototype.isPathComponentImpossible):
31         (WebInspector.HeapSnapshotRootPath.prototype.isFullPathImpossible):
32         (WebInspector.HeapSnapshotRootPath.prototype.appendInternal):
33         (WebInspector.HeapSnapshotRootPath.prototype.appendArrayIndex):
34         (WebInspector.HeapSnapshotRootPath.prototype.appendPropertyName):
35         (WebInspector.HeapSnapshotRootPath.prototype.appendVariableName):
36         (WebInspector.HeapSnapshotRootPath.prototype.appendGlobalScopeName):
37         (WebInspector.HeapSnapshotRootPath.prototype.appendEdge):
38         (WebInspector.HeapSnapshotRootPath.prototype._canPropertyNameBeDotAccess):
39         Helper class, like PropertyPath, for building a string path to
40         a HeapSnapshotNode. Typically the path is built up with
41         HeapSnapshotEdges and so you can build a string such as:
42         `window.foo[0]["prop erty"]._foo`.
43
44         * UserInterface/Views/HeapAllocationsTimelineView.js:
45         (WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotList):
46         (WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotTimelineRecord):
47         (WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotDiff):
48         (WebInspector.HeapAllocationsTimelineView.prototype.shown):
49         (WebInspector.HeapAllocationsTimelineView.prototype.hidden):
50         (WebInspector.HeapAllocationsTimelineView.prototype.closed):
51         Propogate shown/hidden to the contentViewContainer.
52         Cleanup the contentViewContainer when closing.
53
54         * UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
55         (WebInspector.HeapSnapshotInstanceDataGridNode.logHeapSnapshotNode):
56         Helper for logging a HeapSnapshotNode value to the console. If the
57         path is possible from the root, just output the path in the console
58         otherwise use a synthetic "Heap Snapshot Object (@1234)" like string.
59         For strings, just get the preview as we won't get a real RemoteObject.
60
61         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
62         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPath):
63         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPathRow):
64         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.sanitizeClassName):
65         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.stringifyEdge):
66         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler):
67         Give the @1234 id element a mouseover handler to display a popover
68         with the path from a root. Stop the path at "Window" if possible
69         to avoid displaying internals like "JSDOMWindowShell".
70
71         * UserInterface/Views/HeapSnapshotInstancesContentView.css:
72         (.heap-snapshot .object-id):
73         (.heap-snapshot .object-id:hover):
74         (.heap-snapshot > .data-grid tr:not(.selected) td .object-id): Deleted.
75         (.heap-snapshot .icon):
76         (.heap-snapshot-instance-popover-content):
77         (.heap-snapshot-instance-popover-content table):
78         (.heap-snapshot-instance-popover-content tr):
79         (.heap-snapshot-instance-popover-content td):
80         (.heap-snapshot-instance-popover-content td.edge-name):
81         (.heap-snapshot-instance-popover-content td.object-data):
82         (.heap-snapshot-instance-popover-content .node):
83         (.heap-snapshot-instance-popover-content .node *):
84         Styles for contents of the popover.
85
86         * UserInterface/Views/HeapSnapshotInstancesContentView.js:
87         (WebInspector.HeapSnapshotInstancesContentView.prototype.hidden):
88         * UserInterface/Views/HeapSnapshotInstancesDataGridTree.js:
89         (WebInspector.HeapSnapshotInstancesDataGridTree):
90         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.get popover):
91         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.get popoverNode):
92         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.set popoverNode):
93         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.hidden):
94         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.willDismissPopover):
95         Have a single popover for the entire tree. Cache and clear
96         contents of the popover when appropriate.
97
98 2016-03-14  Daniel Bates  <dabates@apple.com>
99
100         Web Inspector: Display Content Security Policy hash in details sidebar for script and style elements
101         https://bugs.webkit.org/show_bug.cgi?id=155466
102         <rdar://problem/25152480>
103
104         Reviewed by Joseph Pecoraro and Timothy Hatcher.
105
106         * Localizations/en.lproj/localizedStrings.js: Add English localized string for the CSP hash UI label.
107         * UserInterface/Models/DOMNode.js:
108         (WebInspector.DOMNode): Initialize the instance variable this._contentSecurityPolicyHash
109         with the value passed from the Inspector back end.
110         (WebInspector.DOMNode.prototype.contentSecurityPolicyHash): Returns the CSP hash for this node.
111         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
112         (WebInspector.DOMNodeDetailsSidebarPanel): Append a row to the end of section Identity to display
113         the CSP hash (if applicable).
114         (WebInspector.DOMNodeDetailsSidebarPanel.prototype.refresh): Query the underlying WebInspector.DOMNode
115         for the CSP hash of the selected node.
116
117 2016-03-14  Joseph Pecoraro  <pecoraro@apple.com>
118
119         Web Inspector: REGRESSION(r197974): HeapAllocationsTimelineView broken, doesn't handle Timeline Sidebar Navigation removal
120         https://bugs.webkit.org/show_bug.cgi?id=155458
121         <rdar://problem/25150803>
122
123         Reviewed by Timothy Hatcher.
124
125         * UserInterface/Views/HeapAllocationsTimelineView.js:
126         (WebInspector.HeapAllocationsTimelineView):
127         (WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotTimelineRecord):
128         (WebInspector.HeapAllocationsTimelineView.prototype.get selectionPathComponents):
129         (WebInspector.HeapAllocationsTimelineView.prototype.layout):
130         (WebInspector.HeapAllocationsTimelineView.prototype._compareHeapSnapshotsClicked):
131         (WebInspector.HeapAllocationsTimelineView.prototype._dataGridNodeSelected):
132         (WebInspector.HeapAllocationsTimelineView.prototype.get navigationSidebarTreeOutlineLabel): Deleted.
133         Update the TimelineView now that there is no sidebar.
134         Remove any TreeOutline logic and replace with DataGrid logic.
135
136 2016-03-14  Joseph Pecoraro  <pecoraro@apple.com>
137
138         Web Inspector: REGRESSION(r198026): Can't click on Snapshot in Timeline Overview
139         https://bugs.webkit.org/show_bug.cgi?id=155457
140         <rdar://problem/25150706>
141
142         Reviewed by Timothy Hatcher.
143
144         * UserInterface/Views/TimelineRuler.js:
145         (WebInspector.TimelineRuler.prototype._handleClick):
146         The conditional was accidentally inverted in r198026.
147
148 2016-03-14  Timothy Hatcher  <timothy@apple.com>
149
150         Web Inspector: cssmin.py does not handle calc(var(--toolbar-height) + var(--tab-bar-height))
151
152         https://bugs.webkit.org/show_bug.cgi?id=155464
153         rdar://problem/25152196
154
155         Reviewed by Joseph Pecoraro.
156
157         * Scripts/cssmin.py:
158         (cssminify): Check for var when stripping spaces around + and -.
159
160         * UserInterface/Views/TimelineOverview.js:
161         (WebInspector.TimelineOverview.prototype._viewModeDidChange):
162         Drive-by fix to add a missing semi-colon found by the copy-user-interface-resources-dryrun.rb script.
163
164 2016-03-14  Joseph Pecoraro  <pecoraro@apple.com>
165
166         Reduce generated JSON HeapSnapshot size
167         https://bugs.webkit.org/show_bug.cgi?id=155460
168
169         Reviewed by Geoffrey Garen.
170
171         * UserInterface/Models/HeapSnapshot.js:
172         (WebInspector.HeapSnapshot.fromPayload):
173         Update for the slightly modified format.
174
175 2016-03-14  Commit Queue  <commit-queue@webkit.org>
176
177         Unreviewed, rolling out r198095.
178         https://bugs.webkit.org/show_bug.cgi?id=155467
179
180         Made text look poor (Requested by JoePeck on #webkit).
181
182         Reverted changeset:
183
184         "Web Inspector: Large repaints when typing any character in
185         console"
186         https://bugs.webkit.org/show_bug.cgi?id=155387
187         http://trac.webkit.org/changeset/198095
188
189 2016-03-14  Nikita Vasilyev  <nvasilyev@apple.com>
190
191         Web Inspector: Reduce unnecessary dashboard repaints
192         https://bugs.webkit.org/show_bug.cgi?id=155425
193         <rdar://problem/25138247>
194
195         Reviewed by Timothy Hatcher.
196
197         * UserInterface/Views/DefaultDashboardView.js:
198         (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.):
199         newText is a number for console message counters.
200
201 2016-03-13  Nikita Vasilyev  <nvasilyev@apple.com>
202
203         Web Inspector: Large repaints when typing any character in console
204         https://bugs.webkit.org/show_bug.cgi?id=155387
205         <rdar://problem/25125720>
206
207         Reviewed by Timothy Hatcher.
208
209         * UserInterface/Views/Main.css:
210         (#content):
211
212 2016-03-13  Devin Rousso  <dcrousso+webkit@gmail.com>
213
214         Web Inspector: Memory timeline pie charts are misaligned when there is no recording
215         https://bugs.webkit.org/show_bug.cgi?id=155421
216
217         Reviewed by Timothy Hatcher.
218
219         * UserInterface/Views/MemoryTimelineView.css:
220         (.timeline-view.memory > .content > .overview):
221         Removed top padding to match bottom padding.
222
223         (.timeline-view.memory .legend > .row):
224         (.timeline-view.memory .legend):
225         Moved specified width to prevent unrecorded timelines from having graphs
226         that are offset horizontally.
227
228 2016-03-13  Devin Rousso  <dcrousso+webkit@gmail.com>
229
230         Web Inspector: REGRESSION: Styles sidebar inline swatches are oddly shaped
231         https://bugs.webkit.org/show_bug.cgi?id=155410
232
233         Reviewed by Timothy Hatcher.
234
235         * UserInterface/Views/InlineSwatch.css:
236         (.inline-swatch):
237         (.inline-swatch > span):
238         Added more consistent border-radius with UserInterface/Images/CubicBezier.svg.
239
240         * UserInterface/Views/VisualStyleColorPicker.css:
241         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color):
242         Made border-radius consistent with the adjacent input field.
243
244 2016-03-12  Nikita Vasilyev  <nvasilyev@apple.com>
245
246         Web Inspector: Convert toolbar and tab bar to position absolute to reduce repaint areas
247         https://bugs.webkit.org/show_bug.cgi?id=155386
248
249         Reviewed by Timothy Hatcher.
250
251         Using CSS flexbox causes unnecessary large repaints.
252         Convert top level elements (.toolbar, .tab-bar, #main)
253         from flexbox to "position: absolute".
254
255         * UserInterface/Views/Main.css:
256         (#main):
257         * UserInterface/Views/TabBar.css:
258         (.tab-bar):
259         * UserInterface/Views/Toolbar.css:
260         (.toolbar):
261         (body.mac-platform:not(.docked, .mavericks) .toolbar):
262         (body.mac-platform:not(.docked, .mavericks)):
263         (body.window-inactive:not(.mavericks) .toolbar): Deleted.
264         * UserInterface/Views/Variables.css:
265         (:root):
266
267 2016-03-11  Matt Baker  <mattbaker@apple.com>
268
269         Web Inspector: Wrong TimelineOverview height after switching from Events to Frames
270         https://bugs.webkit.org/show_bug.cgi?id=155366
271         <rdar://problem/25111028>
272
273         Reviewed by Timothy Hatcher.
274
275         * UserInterface/Views/TimelineRecordingContentView.js:
276         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
277         Update the overview height after setting a new view mode.
278
279 2016-03-11  Matt Baker  <mattbaker@apple.com>
280
281         Web Inspector: Make it possible to disable TimelineRuler UI
282         https://bugs.webkit.org/show_bug.cgi?id=155348
283         <rdar://problem/25103505>
284
285         Reviewed by Timothy Hatcher.
286
287         Adds an "enabled" property to TimelineRuler, allowing the selection UI
288         to be disabled without removing the current selection.
289
290         * UserInterface/Views/TimelineRuler.css:
291         (.timeline-ruler.allows-time-range-selection:not(.disabled)):
292         (.timeline-ruler > .selection-drag):
293         (.timeline-ruler:not(.disabled) > .selection-drag):
294         (.timeline-ruler:not(.disabled) > .selection-drag:active):
295         (.timeline-ruler.disabled > .selection-handle):
296         (.timeline-ruler.allows-time-range-selection): Deleted.
297         (.timeline-ruler > .selection-drag:active): Deleted.
298         Updated ruler styles for "disabled" state: pointer events are disabled,
299         selection handles hidden, and the default cursor is shown.
300
301         * UserInterface/Views/TimelineRuler.js:
302         (WebInspector.TimelineRuler):
303         (WebInspector.TimelineRuler.prototype.get enabled):
304         (WebInspector.TimelineRuler.prototype.set enabled):
305         New property.
306         (WebInspector.TimelineRuler.prototype._handleClick):
307         Corrected code which always reset the pointer events to "all", instead
308         of setting it back to the original value.
309
310 2016-03-10  Daniel Strokis  <dstrokis@icloud.com>
311
312         Web Inspector: color swatch and border are misaligned in Visual Styles sidebar
313         https://bugs.webkit.org/show_bug.cgi?id=154471
314
315         Reviewed by Timothy Hatcher.
316
317         Color swatches in the Visual Styles sidebar now have only their left corners rounded (thanks to Matt Baker for the idea).
318
319         * UserInterface/Views/InlineSwatch.css:
320         (.inline-swatch > span):
321         (.inline-swatch): Deleted.
322         * UserInterface/Views/VisualStyleColorPicker.css:
323         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color):
324
325 2016-03-10  Matt Baker  <mattbaker@apple.com>
326
327         Web Inspector: Timelines UI redesign: remove navigation sidebar
328         https://bugs.webkit.org/show_bug.cgi?id=153036
329         <rdar://problem/24195627>
330
331         Reviewed by Timothy Hatcher.
332
333         Removed TimelineView methods used by the sidebar to setup the content tree
334         outline and handle tree element events, which are no longer used. Tree elements
335         are no longer created by TimelineViews as records are processed.
336
337         * UserInterface/Main.html:
338         Removed files.
339
340         * UserInterface/Views/LayoutTimelineView.js:
341         (WebInspector.LayoutTimelineView):
342         Removed tree outline event listeners and data grid parameter.
343         (WebInspector.LayoutTimelineView.prototype._processPendingRecords):
344         (WebInspector.LayoutTimelineView.prototype._dataGridFiltersDidChange):
345         (WebInspector.LayoutTimelineView.prototype._hoveredOrSelectedRecord):
346         Get record from data grid node instead of tree element.
347         (WebInspector.LayoutTimelineView.prototype.get navigationSidebarTreeOutlineLabel): Deleted.
348         (WebInspector.LayoutTimelineView.prototype._mouseOverTreeOutline): Deleted.
349         (WebInspector.LayoutTimelineView.prototype._mouseLeaveTreeOutline): Deleted.
350         No longer needed, highlighting performed by data grid event handlers.
351
352         * UserInterface/Views/MemoryTimelineView.js:
353         (WebInspector.MemoryTimelineView.prototype.get navigationSidebarTreeOutlineLabel): Deleted.
354         No longer needed.
355
356         * UserInterface/Views/NavigationSidebarPanel.js:
357         (WebInspector.NavigationSidebarPanel.prototype._updateFilter): Deleted.
358         Removed hack which was specific to TimelineSidebarPanel.
359
360         * UserInterface/Views/NetworkTimelineView.js:
361         (WebInspector.NetworkTimelineView):
362         Removed sidebar styles and tree outline data grid parameter.
363         (WebInspector.NetworkTimelineView.prototype._processPendingRecords):
364         (WebInspector.NetworkTimelineView.prototype._dataGridFiltersDidChange):
365         (WebInspector.NetworkTimelineView.prototype.get navigationSidebarTreeOutlineLabel): Deleted.
366         (WebInspector.NetworkTimelineView.prototype.treeElementSelected): Deleted.
367         No longer needed.
368
369         * UserInterface/Views/OverviewTimelineView.js:
370         (WebInspector.OverviewTimelineView):
371         (WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
372         (WebInspector.OverviewTimelineView.prototype.dataGridNodePathComponentSelected):
373         Create path components from the grid selection. This should have been
374         included in https://webkit.org/b/154954.
375
376         (WebInspector.OverviewTimelineView.prototype._compareDataGridNodesByStartTime.getStartTime):
377         (WebInspector.OverviewTimelineView.prototype._compareDataGridNodesByStartTime):
378         (WebInspector.OverviewTimelineView.prototype._insertDataGridNode):
379         (WebInspector.OverviewTimelineView.prototype._addResourceToDataGridIfNeeded):
380         (WebInspector.OverviewTimelineView.prototype._addSourceCodeTimeline):
381         Refactored to accept grid nodes instead of tree elements.
382
383         (WebInspector.OverviewTimelineView.prototype._processPendingRepresentedObjects):
384         (WebInspector.OverviewTimelineView.prototype.get navigationSidebarTreeOutlineLabel): Deleted.
385         (WebInspector.OverviewTimelineView.prototype.shown):
386         (WebInspector.OverviewTimelineView.prototype.treeElementPathComponentSelected): Deleted.
387         (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails): Deleted.
388         Not used anywhere.
389
390         (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByStartTime.getStartTime): Deleted.
391         (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByStartTime): Deleted.
392         (WebInspector.OverviewTimelineView.prototype._insertTreeElement): Deleted.
393         (WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded): Deleted.
394         Reimplemented as _compareDataGridNodesByStartTime, _insertDataGridNode and _addResourceToDataGridIfNeeded.
395
396         * UserInterface/Views/RenderingFrameTimelineView.js:
397         (WebInspector.RenderingFrameTimelineView):
398         Removed sidebar styles and tree outline data grid parameter.
399
400         (WebInspector.RenderingFrameTimelineView.prototype.get selectionPathComponents):
401         (WebInspector.RenderingFrameTimelineView.prototype.dataGridNodePathComponentSelected):
402         Create path components from the grid selection. This should have been
403         included in https://webkit.org/b/154954.
404
405         (WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords):
406         (WebInspector.RenderingFrameTimelineView.prototype._scopeBarSelectionDidChange):
407         (WebInspector.RenderingFrameTimelineView.prototype.get navigationSidebarTreeOutlineLabel): Deleted.
408         (WebInspector.RenderingFrameTimelineView.prototype.treeElementDeselected): Deleted.
409         (WebInspector.RenderingFrameTimelineView.prototype.treeElementSelected): Deleted.
410         (WebInspector.RenderingFrameTimelineView.prototype.treeElementPathComponentSelected): Deleted.
411
412         * UserInterface/Views/ScriptClusterTimelineView.js:
413         (WebInspector.ScriptClusterTimelineView):
414         Don't hold reference to extraArguments, just pass to subviews.
415
416         * UserInterface/Views/ScriptDetailsTimelineView.js:
417         (WebInspector.ScriptDetailsTimelineView):
418         Removed sidebar styles and tree outline data grid parameter.
419         (WebInspector.ScriptDetailsTimelineView.prototype._processPendingRecords):
420         (WebInspector.ScriptDetailsTimelineView.prototype._dataGridFiltersDidChange):
421         (WebInspector.ScriptDetailsTimelineView.prototype.get navigationSidebarTreeOutlineLabel): Deleted.
422         (WebInspector.ScriptDetailsTimelineView.prototype.treeElementSelected): Deleted.
423         (WebInspector.ScriptDetailsTimelineView.prototype.dataGridNodeForTreeElement): Deleted.
424         (WebInspector.ScriptDetailsTimelineView.prototype.populateProfileNodeTreeElement): Deleted.
425
426         * UserInterface/Views/TimelineDataGrid.js:
427         (WebInspector.TimelineDataGrid.prototype.addRowInSortOrder):
428         Fixed failure when treeElement and parentTreeElementOrDataGridNode are both null.
429
430         * UserInterface/Views/TimelineRecordingContentView.js:
431         (WebInspector.TimelineRecordingContentView):
432         Removed extraArguments and sidebar panel references.
433         (WebInspector.TimelineRecordingContentView.prototype.contentBrowserTreeElementForRepresentedObject):
434         Use icon style from the tab, instead of the sidebar.
435         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
436         Removed updates to the sidebar.
437         (WebInspector.TimelineRecordingContentView.prototype._pathComponentSelected):
438         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
439         (WebInspector.TimelineRecordingContentView.prototype._instrumentAdded):
440         Removed sidebar reference when creating new TimelineViews.
441         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
442
443         * UserInterface/Views/TimelineSidebarPanel.css: Removed.
444
445         * UserInterface/Views/TimelineTabContentView.js:
446         (WebInspector.TimelineTabContentView):
447         Removed hidden sidebar FIXME.
448         (WebInspector.TimelineTabContentView.prototype._addRecording):
449         New location for sidebar style class constant StopwatchIconStyleClass.
450
451         * UserInterface/Views/TimelineView.js:
452         (WebInspector.TimelineView):
453         (WebInspector.TimelineView.prototype.get navigationItems): Deleted.
454         (WebInspector.TimelineView.prototype.get navigationSidebarTreeOutline): Deleted.
455         (WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineLabel): Deleted.
456         (WebInspector.TimelineView.prototype.get timelineSidebarPanel): Deleted.
457         (WebInspector.TimelineView.prototype.treeElementPathComponentSelected): Deleted.
458         (WebInspector.TimelineView.prototype.treeElementDeselected): Deleted.
459         (WebInspector.TimelineView.prototype.treeElementSelected): Deleted.
460         (WebInspector.TimelineView.prototype._treeSelectionDidChange): Deleted.
461         Sidebar logic for panel and content tree outline removed.
462
463 2016-03-10  Joseph Pecoraro  <pecoraro@apple.com>
464
465         Web Inspector: Enable Memory Timelines by default if supported
466         https://bugs.webkit.org/show_bug.cgi?id=155333
467         <rdar://problem/25097319>
468
469         Reviewed by Timothy Hatcher.
470
471         * UserInterface/Controllers/TimelineManager.js:
472         (WebInspector.TimelineManager.defaultInstruments):
473
474 2016-03-10  Matt Baker  <mattbaker@apple.com>
475
476         Web Inspector: Add "Quick Open" dialog to debugger and resources tabs
477         https://bugs.webkit.org/show_bug.cgi?id=153028
478         <rdar://problem/24194239>
479
480         Reviewed by Timothy Hatcher.
481
482         * Localizations/en.lproj/localizedStrings.js:
483         New placeholder text for open resource dialog field.
484
485         * UserInterface/Base/Main.js:
486         (WebInspector.contentLoaded):
487         Keep a reference to the content element to use as global dialog parent,
488         and create keyboard shortcut for new dialog.
489
490         (WebInspector._showOpenResourceDialog):
491         Create dialog if needed, return if already visible.
492         (WebInspector.dialogWasDismissed):
493         Show represented object, if any, when dialog is dismissed.
494
495         * UserInterface/Main.html:
496         New files.
497
498         * UserInterface/Views/Dialog.js: Added.
499         Base class for modal dialog popovers. Implements basic setup and
500         teardown, and logic for validating and returning a represented object.
501
502         (WebInspector.Dialog):
503         (WebInspector.Dialog.prototype.get visible):
504         (WebInspector.Dialog.prototype.get delegate):
505         (WebInspector.Dialog.prototype.get representedObject):
506         (WebInspector.Dialog.prototype.present):
507         (WebInspector.Dialog.prototype.dismiss):
508         (WebInspector.Dialog.prototype.didPresetDialog):
509         (WebInspector.Dialog.prototype.representedObjectIsValid):
510
511         * UserInterface/Views/GoToLineDialog.js:
512         Subclass the Dialog base class.
513         (WebInspector.GoToLineDialog):
514         (WebInspector.GoToLineDialog.prototype.didPresentDialog):
515         Implement base class behavior hook. Replaces "present".
516         (WebInspector.GoToLineDialog.prototype._handleInputEvent):
517         (WebInspector.GoToLineDialog.prototype._handleKeydownEvent):
518         Line number validation handled by base class/delegate.
519         (WebInspector.GoToLineDialog.prototype._clear):
520         (WebInspector.GoToLineDialog.prototype.present): Deleted.
521         (WebInspector.GoToLineDialog.prototype.dismiss): Deleted.
522         No longer needed, handled by base class.
523
524         * UserInterface/Views/OpenResourceDialog.css: Added.
525         (.open-resource-dialog):
526         (.open-resource-dialog > .field):
527         (.open-resource-dialog > .field > input):
528         (.open-resource-dialog > .field > input::-webkit-input-placeholder):
529         (.open-resource-dialog > .field > img):
530         (.open-resource-dialog > .field > img:active):
531         (.open-resource-dialog.non-empty > .field > img):
532         (.open-resource-dialog > .tree-outline):
533         (.open-resource-dialog > .tree-outline .item):
534         (.open-resource-dialog > .tree-outline .item:first-child):
535         (.open-resource-dialog > .tree-outline .item.selected):
536         (.open-resource-dialog > .tree-outline .item.selected .subtitle):
537         Styles for "quick open" dialog.
538
539         * UserInterface/Views/OpenResourceDialog.js: Added.
540         New dialog type, based on the Quick Open dialog found in Xcode (and its
541         equivalent in most modern editors).
542
543         (WebInspector.OpenResourceDialog):
544         (WebInspector.OpenResourceDialog.prototype._populateResourceTreeOutline.createTreeElement):
545         (WebInspector.OpenResourceDialog.prototype._populateResourceTreeOutline):
546         Populate the auto-completion tree from the list of filtered resources.
547
548         (WebInspector.OpenResourceDialog.prototype.didPresentDialog):
549         Build resource list once, when the dialog is presented. Update the list
550         when resources are added/removed in a follow-up: https://webkit.org/b/155321.
551
552         (WebInspector.OpenResourceDialog.prototype._handleInputEvent):
553         (WebInspector.OpenResourceDialog.prototype._handleKeydownEvent):
554         Escape key: dismiss dialog if input is empty, otherwise clear input.
555         Enter key: dismiss dialog if object selected.
556         Key up/down: cycle through auto-completion tree items, if any.
557
558         (WebInspector.OpenResourceDialog.prototype._handleKeyupEvent):
559         (WebInspector.OpenResourceDialog.prototype._handleBlurEvent):
560         (WebInspector.OpenResourceDialog.prototype._handleMousedownEvent):
561         (WebInspector.OpenResourceDialog.prototype._handleClickEvent):
562         (WebInspector.OpenResourceDialog.prototype._clear):
563         (WebInspector.OpenResourceDialog.prototype._updateFilter):
564         Rebuild filter regular expressions and apply to all resources. Each
565         resource is given a weight based on the first matching filter. Filters
566         are ordered by relevancy, from most to least relevant. Filtered resources
567         are sorted based on weight. If no matches are found, the tree is hidden.
568
569         * UserInterface/Views/ResourceTreeElement.js:
570         (WebInspector.ResourceTreeElement.prototype.get filterableData):
571         make filterable resource data more fine-grained. Priority should be given
572         to the resource's name, before the complete URL.
573
574         * UserInterface/Views/SourceCodeTextEditor.js:
575         (WebInspector.SourceCodeTextEditor.prototype.showGoToLineDialog):
576         (WebInspector.SourceCodeTextEditor.prototype.dialogWasDismissed):
577         (WebInspector.SourceCodeTextEditor.prototype.goToLineDialogValueWasValidated): Deleted.
578         (WebInspector.SourceCodeTextEditor.prototype.goToLineDialogWasDismissed): Deleted.
579         Updated for new Dialog delegate behavior.
580
581         * UserInterface/Views/TreeOutline.css:
582         (.tree-outline.large .item .titles):
583         (.tree-outline.large .item .titles.no-subtitle): Deleted.
584         Styles for tree elements in "quick open" dialog auto-completion tree.
585
586 2016-03-10  Matt Baker  <mattbaker@apple.com>
587
588         Web Inspector: TreeOutlineDataGridSynchronizer should be optional in TimelineDataGrid
589         https://bugs.webkit.org/show_bug.cgi?id=155318
590         <rdar://problem/25091949>
591
592         Reviewed by Timothy Hatcher.
593
594         * UserInterface/Views/TimelineDataGrid.js:
595         (WebInspector.TimelineDataGrid):
596         TreeOutline is optional, and if non-null a tree outline synchronizer is created.
597
598         (WebInspector.TimelineDataGrid.prototype.shown):
599         (WebInspector.TimelineDataGrid.prototype.treeElementForDataGridNode):
600         (WebInspector.TimelineDataGrid.prototype.dataGridNodeForTreeElement):
601         (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
602         Safety checks for the synchronizer.
603
604         (WebInspector.TimelineDataGrid.prototype.addRowInSortOrder):
605         treeElement is now an optional parameter. If non-null, a tree synchronizer
606         should exist. The third parameter has been overloaded, to allow passing
607         a parent tree element or data grid node.
608
609         (WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
610         (WebInspector.TimelineDataGrid.prototype._sort):
611         Safety checks for the synchronizer.
612
613 2016-03-09  Joseph Pecoraro  <pecoraro@apple.com>
614
615         Web Inspector: JavaScript Heap Allocations Timeline
616         https://bugs.webkit.org/show_bug.cgi?id=155287
617         <rdar://problem/25078088>
618
619         Reviewed by Timothy Hatcher.
620
621         Initial JavaScript Heap Allocations Timeline includes:
622
623             - Snapshot markers in the timeline
624             - Initial/Periodic/End snapshots during recording
625             - Ability to manually take a snapshot
626             - View of all objects in a Snapshot and Diff between snapshots
627               - Summary view - rough display of the size/count of large objects
628               - Instances view - view each of the individual objects
629
630         * UserInterface/Main.html:
631         * UserInterface/Test.html:
632         * UserInterface/Images/Compare.svg: Added.
633         * UserInterface/Images/HeapSnapshot.svg: Added.
634         * UserInterface/Images/HeapSnapshotDiff.svg: Added.
635         * UserInterface/Images/HeapSnapshotInstances.svg: Added.
636         * UserInterface/Images/HeapSnapshotSummary.svg: Added.
637         * Localizations/en.lproj/localizedStrings.js:
638         New resources and strings.
639
640         * UserInterface/Controllers/TimelineManager.js:
641         (WebInspector.TimelineManager.prototype.heapTrackingStarted):
642         (WebInspector.TimelineManager.prototype.heapTrackingCompleted):
643         (WebInspector.TimelineManager.prototype.heapSnapshotAdded):
644         * UserInterface/Protocol/HeapObserver.js:
645         (WebInspector.HeapObserver.prototype.trackingStart):
646         (WebInspector.HeapObserver.prototype.trackingComplete):
647         (WebInspector.HeapObserver):
648         Add snapshot records to the active recording's timeline.
649
650         * UserInterface/Models/HeapAllocationsInstrument.js: Added.
651         (WebInspector.HeapAllocationsInstrument):
652         (WebInspector.HeapAllocationsInstrument.supported):
653         (WebInspector.HeapAllocationsInstrument.prototype.get timelineRecordType):
654         (WebInspector.HeapAllocationsInstrument.prototype.startInstrumentation):
655         (WebInspector.HeapAllocationsInstrument.prototype.stopInstrumentation):
656         (WebInspector.HeapAllocationsInstrument.prototype._takeHeapSnapshot):
657         Start, stop, and periodic snapshots.
658
659         * UserInterface/Models/HeapAllocationsTimelineRecord.js:
660         (WebInspector.HeapAllocationsTimelineRecord):
661         (WebInspector.HeapAllocationsTimelineRecord.prototype.get timestamp):
662         (WebInspector.HeapAllocationsTimelineRecord.prototype.get heapSnapshot):
663         * UserInterface/Models/TimelineRecord.js:
664         * UserInterface/Models/TimelineRecording.js:
665         (WebInspector.TimelineRecording):
666         (WebInspector.TimelineRecording.prototype.addRecord):
667         * UserInterface/Views/TimelineOverviewGraph.js:
668         (WebInspector.TimelineOverviewGraph.createForTimeline):
669         * UserInterface/Views/TimelineTabContentView.js:
670         (WebInspector.TimelineTabContentView.displayNameForTimeline):
671         (WebInspector.TimelineTabContentView.iconClassNameForTimeline):
672         (WebInspector.TimelineTabContentView.genericClassNameForTimeline):
673         (WebInspector.TimelineTabContentView.iconClassNameForRecord):
674         (WebInspector.TimelineTabContentView.displayNameForRecord):
675         New timeline and record type.
676
677         * UserInterface/Models/HeapSnapshotDiff.js: Added.
678         (WebInspector.HeapSnapshotDiff):
679         (WebInspector.HeapSnapshotDiff.prototype.get snapshot1):
680         (WebInspector.HeapSnapshotDiff.prototype.get snapshot2):
681         (WebInspector.HeapSnapshotDiff.prototype.get addedInstances):
682         (WebInspector.HeapSnapshotDiff.prototype.get removedInstances):
683         (WebInspector.HeapSnapshotDiff.prototype.get sizeDifference):
684         (WebInspector.HeapSnapshotDiff.prototype.get growth):
685         (WebInspector.HeapSnapshotDiff.prototype.snapshotForDiff):
686         Compare two snapshots and create a "diff snapshot" which is just
687         the newly added objects.
688
689         * UserInterface/Views/ContentView.js:
690         (WebInspector.ContentView.createFromRepresentedObject):
691         (WebInspector.ContentView.isViewable):
692         A HeapSnapshot creates a HeapSnapshotClusterView.
693
694         * UserInterface/Views/HeapAllocationsTimelineDataGridNode.js: Added.
695         (WebInspector.HeapAllocationsTimelineDataGridNode):
696         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype.get record):
697         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype.get data):
698         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
699         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype.markAsBaseline):
700         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype.clearBaseline):
701         * UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css: Copied from Source/WebInspectorUI/UserInterface/Protocol/HeapObserver.js.
702         (.timeline-overview-graph.heap-allocations):
703         (.timeline-overview-graph.heap-allocations > img.snapshot):
704         * UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js: Added.
705         (WebInspector.HeapAllocationsTimelineOverviewGraph):
706         (WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.reset):
707         (WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout.xScale):
708         (WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout):
709         (WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._visibleRecords):
710         (WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._heapAllocationTimelineRecordAdded):
711         * UserInterface/Views/HeapAllocationsTimelineView.css: Copied from Source/WebInspectorUI/UserInterface/Protocol/HeapObserver.js.
712         (.timeline-view.heap-allocations > .data-grid):
713         (.timeline-view.heap-allocations > .data-grid td .icon.heap-snapshot):
714         (.timeline-view.heap-allocations > .data-grid tr.baseline):
715         (.timeline-view.heap-allocations > .content-view-container):
716         (.timeline-view.heap-allocations > .content-view-container > .content-view):
717         * UserInterface/Views/HeapAllocationsTimelineView.js: Added.
718         (WebInspector.HeapAllocationsTimelineView):
719         (WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotList):
720         (WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotTimelineRecord):
721         (WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotDiff):
722         (WebInspector.HeapAllocationsTimelineView.prototype.get navigationItems):
723         (WebInspector.HeapAllocationsTimelineView.prototype.get selectionPathComponents):
724         (WebInspector.HeapAllocationsTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
725         (WebInspector.HeapAllocationsTimelineView.prototype.treeElementPathComponentSelected):
726         (WebInspector.HeapAllocationsTimelineView.prototype.userSelectedRecordFromOverview):
727         (WebInspector.HeapAllocationsTimelineView.prototype.closed):
728         (WebInspector.HeapAllocationsTimelineView.prototype.layout):
729         (WebInspector.HeapAllocationsTimelineView.prototype.reset):
730         (WebInspector.HeapAllocationsTimelineView.prototype._heapAllocationsTimelineRecordAdded):
731         (WebInspector.HeapAllocationsTimelineView.prototype._snapshotListPathComponentClicked):
732         (WebInspector.HeapAllocationsTimelineView.prototype._snapshotPathComponentSelected):
733         (WebInspector.HeapAllocationsTimelineView.prototype._currentContentViewDidChange):
734         (WebInspector.HeapAllocationsTimelineView.prototype._contentViewSelectionPathComponentDidChange):
735         (WebInspector.HeapAllocationsTimelineView.prototype._updateCompareHeapSnapshotButton):
736         (WebInspector.HeapAllocationsTimelineView.prototype._takeHeapSnapshotClicked):
737         (WebInspector.HeapAllocationsTimelineView.prototype._cancelSelectComparisonHeapSnapshots):
738         (WebInspector.HeapAllocationsTimelineView.prototype._compareHeapSnapshotsClicked):
739         (WebInspector.HeapAllocationsTimelineView.prototype._dataGridNodeSelected):
740         * UserInterface/Views/HeapSnapshotClassDataGridNode.js: Added.
741         (WebInspector.HeapSnapshotClassDataGridNode):
742         (WebInspector.HeapSnapshotClassDataGridNode.prototype.get data):
743         (WebInspector.HeapSnapshotClassDataGridNode.prototype.createCellContent):
744         (WebInspector.HeapSnapshotClassDataGridNode.prototype.sort):
745         (WebInspector.HeapSnapshotClassDataGridNode.prototype._populate):
746         (WebInspector.HeapSnapshotClassDataGridNode.prototype._fetchBatch):
747         (WebInspector.HeapSnapshotClassDataGridNode.prototype._updateBatchedSort):
748         (WebInspector.HeapSnapshotClassDataGridNode.prototype._updateBatchedChildren):
749         (WebInspector.HeapSnapshotClassDataGridNode.prototype._removeFetchMoreDataGridNode):
750         (WebInspector.HeapSnapshotClassDataGridNode.prototype._appendFetchMoreDataGridNode):
751         * UserInterface/Views/HeapSnapshotClusterContentView.js: Added.
752         (WebInspector.HeapSnapshotClusterContentView.createPathComponent):
753         (WebInspector.HeapSnapshotClusterContentView):
754         (WebInspector.HeapSnapshotClusterContentView.iconStyleClassNameForClassName):
755         (WebInspector.HeapSnapshotClusterContentView.prototype.get heapSnapshot):
756         (WebInspector.HeapSnapshotClusterContentView.prototype.get summaryContentView):
757         (WebInspector.HeapSnapshotClusterContentView.prototype.get instancesContentView):
758         (WebInspector.HeapSnapshotClusterContentView.prototype.get navigationItems):
759         (WebInspector.HeapSnapshotClusterContentView.prototype.get selectionPathComponents):
760         (WebInspector.HeapSnapshotClusterContentView.prototype.shown):
761         (WebInspector.HeapSnapshotClusterContentView.prototype.closed):
762         (WebInspector.HeapSnapshotClusterContentView.prototype.saveToCookie):
763         (WebInspector.HeapSnapshotClusterContentView.prototype.restoreFromCookie):
764         (WebInspector.HeapSnapshotClusterContentView.prototype.showSummary):
765         (WebInspector.HeapSnapshotClusterContentView.prototype.showInstances):
766         (WebInspector.HeapSnapshotClusterContentView.prototype._contentViewExtraArguments):
767         (WebInspector.HeapSnapshotClusterContentView.prototype._pathComponentForContentView):
768         (WebInspector.HeapSnapshotClusterContentView.prototype._identifierForContentView):
769         (WebInspector.HeapSnapshotClusterContentView.prototype._showContentViewForIdentifier):
770         (WebInspector.HeapSnapshotClusterContentView.prototype._pathComponentSelected):
771         (WebInspector.HeapSnapshotClusterContentView.prototype._toggleShowInternalObjectsSetting):
772         (WebInspector.HeapSnapshotClusterContentView.prototype._updateViewsForShowInternalObjectsSettingValue):
773         (WebInspector.HeapSnapshotClusterContentView.prototype._updateShowInternalObjectsButtonNavigationItem):
774         * UserInterface/Views/HeapSnapshotInstanceDataGridNode.js: Added.
775         (WebInspector.HeapSnapshotInstanceDataGridNode):
776         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype.get data):
777         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype.get selectable):
778         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCells):
779         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
780         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype.sort):
781         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype._contextMenuHandler.):
782         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype._contextMenuHandler):
783         * UserInterface/Views/HeapSnapshotInstanceFetchMoreDataGridNode.js: Added.
784         (WebInspector.HeapSnapshotInstanceFetchMoreDataGridNode):
785         (WebInspector.HeapSnapshotInstanceFetchMoreDataGridNode.prototype.createCellContent):
786         (WebInspector.HeapSnapshotInstanceFetchMoreDataGridNode.prototype.sort):
787         * UserInterface/Views/HeapSnapshotInstancesContentView.css: Added.
788         * UserInterface/Views/HeapSnapshotInstancesContentView.js: Added.
789         (WebInspector.HeapSnapshotInstancesContentView):
790         (WebInspector.HeapSnapshotInstancesContentView.prototype.get showInternalObjects):
791         (WebInspector.HeapSnapshotInstancesContentView.prototype.set showInternalObjects):
792         (WebInspector.HeapSnapshotInstancesContentView.prototype._sortDataGrid):
793         * UserInterface/Views/HeapSnapshotInstancesDataGridTree.js: Added.
794         (WebInspector.HeapSnapshotInstancesDataGridTree):
795         (WebInspector.HeapSnapshotInstancesDataGridTree.buildSortComparator):
796         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.get heapSnapshot):
797         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.get includeInternalObjects):
798         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.set includeInternalObjects):
799         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.get children):
800         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.appendChild):
801         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.insertChild):
802         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.removeChildren):
803         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.set sortComparator):
804         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype.sort):
805         (WebInspector.HeapSnapshotInstancesDataGridTree.prototype._populateTopLevel):
806         * UserInterface/Views/HeapSnapshotSummaryContentView.css: Added.
807         * UserInterface/Views/HeapSnapshotSummaryContentView.js: Added.
808         (WebInspector.HeapSnapshotSummaryContentView.createChartContainer):
809         (WebInspector.HeapSnapshotSummaryContentView.appendLegendRow):
810         (WebInspector.HeapSnapshotSummaryContentView.appendEmptyMessage):
811         (WebInspector.HeapSnapshotSummaryContentView):
812         (WebInspector.HeapSnapshotSummaryContentView.prototype.layout):
813         * UserInterface/Views/PathComponentIcons.css:
814         (.heap-snapshot-summary-icon .icon):
815         (.heap-snapshot-instances-icon .icon):
816         (.snapshot-list-icon .icon):
817         (.snapshot-diff-icon .icon):
818         (body:not(.mac-platform, .windows-platform) .snapshot-diff-icon .icon):
819         (body:not(.mac-platform, .windows-platform) .call-trees-icon .icon): Deleted.
820         * UserInterface/Views/TextNavigationItem.css:
821         (.navigation-bar .item.text):
822         * UserInterface/Views/TextNavigationItem.js:
823         (WebInspector.TextNavigationItem):
824         (WebInspector.TextNavigationItem.prototype.get text):
825         (WebInspector.TextNavigationItem.prototype.set text):
826         * UserInterface/Views/TimelineIcons.css:
827         (.heap-snapshot-record .icon):
828         * UserInterface/Views/Variables.css:
829         (:root):
830         New views.
831
832         * UserInterface/Views/FormattedValue.js:
833         (WebInspector.FormattedValue.createElementForNodePreview):
834         (WebInspector.FormattedValue.createElementForFunctionWithName):
835         (WebInspector.FormattedValue.createObjectPreviewOrFormattedValueForObjectPreview):
836         Better display for a raw object preview.
837
838         * UserInterface/Views/TimelineOverview.js:
839         (WebInspector.TimelineOverview):
840         (WebInspector.TimelineOverview.prototype.userSelectedRecord):
841         * UserInterface/Views/TimelineRecordingContentView.js:
842         (WebInspector.TimelineRecordingContentView):
843         (WebInspector.TimelineRecordingContentView.prototype.timelineOverviewUserSelectedRecord):
844         * UserInterface/Views/TimelineRuler.js:
845         (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):
846         (WebInspector.TimelineRuler.prototype._handleClick):
847         (WebInspector.TimelineRuler.prototype._handleMouseDown):
848         (WebInspector.TimelineRuler.prototype._handleMouseMove):
849         * UserInterface/Views/TimelineView.js:
850         (WebInspector.TimelineView.prototype.userSelectedRecordFromOverview):
851         Hook up a way for clicking in the TimelineOverview / TimelineRuler
852         to redispatch to an OverviewGraph element, and provide a patch for
853         the Overview -> RecordingContentView -> TimelineView for records.
854
855 2016-03-09  Matt Baker  <mattbaker@apple.com>
856
857         Web Inspector: LayoutTimelineView path components should reflect grid row nesting
858         https://bugs.webkit.org/show_bug.cgi?id=155279
859         <rdar://problem/25075355>
860
861         Reviewed by Timothy Hatcher.
862
863         * UserInterface/Views/LayoutTimelineView.js:
864         (WebInspector.LayoutTimelineView.prototype.get selectionPathComponents):
865         Walk grid nodes to build path component array.
866
867 2016-03-09  Matt Baker  <mattbaker@apple.com>
868
869         Web Inspector: Timelines UI redesign: use DataGridNode for TimelineView selection path components
870         https://bugs.webkit.org/show_bug.cgi?id=154954
871         <rdar://problem/24947939>
872
873         Reviewed by Timothy Hatcher.
874
875         This patch adds a new path component, TimelineDataGridNodePathComponent,
876         for creating a path component from the current grid selection. This is
877         needed since TimelineViews will no longer have an associated content tree
878         outline once the navigation sidebar is removed.
879
880         TimelineDataGridNode has new protected methods, "displayName" and
881         "iconClassNames", which are used to populate hierarchical path components,
882         create grid node data, and create cell content.
883
884         TimelineView subclasses share a certain amount of boilerplate code for
885         getting selection path components and handling path component selection.
886         In the future we may be able to reduce this code by introducing a new
887         DataGridTimelineView base class.
888
889         * UserInterface/Main.html:
890         Added/removed files.
891
892         * UserInterface/Views/LayoutTimelineDataGridNode.js:
893         (WebInspector.LayoutTimelineDataGridNode.prototype.get data):
894         (WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
895         (WebInspector.LayoutTimelineDataGridNode):
896         (WebInspector.LayoutTimelineDataGridNode.prototype.get record): Deleted.
897         Moved to base class.
898
899         * UserInterface/Views/LayoutTimelineView.js:
900         (WebInspector.LayoutTimelineView.prototype.get selectionPathComponents):
901         (WebInspector.LayoutTimelineView.prototype.dataGridNodePathComponentSelected):
902         (WebInspector.LayoutTimelineView.prototype.treeElementPathComponentSelected): Deleted.
903         TimelineView tree outlines are going away.
904
905         * UserInterface/Views/MemoryTimelineView.js:
906         (WebInspector.MemoryTimelineView.prototype.treeElementPathComponentSelected): Deleted.
907         TimelineView tree outlines are going away.
908
909         * UserInterface/Views/NetworkTimelineView.js:
910         (WebInspector.NetworkTimelineView.prototype.get selectionPathComponents):
911         (WebInspector.NetworkTimelineView.prototype.dataGridNodePathComponentSelected):
912         (WebInspector.NetworkTimelineView.prototype.treeElementPathComponentSelected): Deleted.
913         TimelineView tree outlines are going away.
914
915         * UserInterface/Views/ProfileNodeDataGridNode.js:
916         (WebInspector.ProfileNodeDataGridNode.prototype.get data):
917         (WebInspector.ProfileNodeDataGridNode.prototype.createCellContent):
918         (WebInspector.ProfileNodeDataGridNode.prototype.displayName):
919         (WebInspector.ProfileNodeDataGridNode.prototype.iconClassNames):
920         (WebInspector.ProfileNodeDataGridNode):
921         (WebInspector.ProfileNodeDataGridNode.prototype._iconClassNameForProfileNode): Deleted.
922         (WebInspector.ProfileNodeDataGridNode.prototype._titleForProfileNode): Deleted.
923         Re-implemented as overrides of the base class methods "iconClassNames"
924         and "displayName".
925
926         * UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
927         (WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
928         (WebInspector.RenderingFrameTimelineDataGridNode):
929         (WebInspector.RenderingFrameTimelineDataGridNode.prototype.get record): Deleted.
930         Moved to base class.
931
932         * UserInterface/Views/ResourceTimelineDataGridNode.js:
933         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
934         (WebInspector.ResourceTimelineDataGridNode.prototype.displayName):
935         (WebInspector.ResourceTimelineDataGridNode.prototype.iconClassNames):
936         Override base class methods, making it possible to remove ResourceTimelineDataGridNodePathComponent,
937         and treat all TimelineDataGridNodes in a uniform manner.
938
939         (WebInspector.ResourceTimelineDataGridNode.prototype._createNameCellDocumentFragment):
940         Replace duplicated code with call to "displayName".
941
942         * UserInterface/Views/ResourceTimelineDataGridNodePathComponent.js: Removed.
943         Replaced by more generic solution, TimelineDataGridNodePathComponent.
944
945         * UserInterface/Views/ScriptDetailsTimelineView.js:
946         (WebInspector.ScriptDetailsTimelineView.prototype.get selectionPathComponents):
947         (WebInspector.ScriptDetailsTimelineView.prototype.dataGridNodePathComponentSelected):
948         (WebInspector.ScriptDetailsTimelineView.prototype.treeElementPathComponentSelected): Deleted.
949         TimelineView tree outlines are going away.
950
951         * UserInterface/Views/ScriptTimelineDataGridNode.js:
952         (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
953         (WebInspector.ScriptTimelineDataGridNode.prototype._createNameCellDocumentFragment):
954         Replace duplicated code with call to "displayName".
955
956         (WebInspector.ScriptTimelineDataGridNode):
957         (WebInspector.ScriptTimelineDataGridNode.prototype.get record): Deleted.
958         Moved to base class.
959
960         * UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
961         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.createCellContent):
962         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype._createNameCellContent):
963         Replace duplicated code with call to "displayName".
964
965         * UserInterface/Views/TimelineDataGridNode.js:
966         (WebInspector.TimelineDataGridNode.prototype.get record):
967         Implemented in terms of the "records" getter, since all subclasses simply returned the
968         node's first (or only) record.
969
970         (WebInspector.TimelineDataGridNode.prototype.displayName):
971         (WebInspector.TimelineDataGridNode.prototype.iconClassNames):
972         Base class implementations, using utility methods in TimelineTabContentView
973         to get display data based on the node's timeline record. Can be overridden
974         by nodes that either don't have a timeline record (ProfileNodeDataGridNode)
975
976         * UserInterface/Views/TimelineDataGridNodePathComponent.js:
977         (WebInspector.TimelineDataGridNodePathComponent):
978         (WebInspector.TimelineDataGridNodePathComponent.prototype.get timelineDataGridNode):
979         (WebInspector.TimelineDataGridNodePathComponent.prototype.get previousSibling):
980         (WebInspector.TimelineDataGridNodePathComponent.prototype.get nextSibling):
981
982         * UserInterface/Views/TimelineView.js:
983         (WebInspector.TimelineView):
984         (WebInspector.TimelineView.prototype.get selectionPathComponents):
985         Must be implemented by subclasses since not all TimelineViews use a DataGrid.
986
987 2016-03-09  Matt Baker  <mattbaker@apple.com>
988
989         Web Inspector: Nodes in Computed Styles > Container Regions formatted incorrectly.
990         https://bugs.webkit.org/show_bug.cgi?id=155277
991         <rdar://problem/25072711>
992
993         Reviewed by Timothy Hatcher.
994
995         * UserInterface/Views/DOMTreeDataGrid.js:
996         (WebInspector.DOMTreeDataGrid):
997         Enable icon column property.
998
999         * UserInterface/Views/DOMTreeDataGridNode.js:
1000         (WebInspector.DOMTreeDataGridNode):
1001         Removed calls to unused methods.
1002
1003         (WebInspector.DOMTreeDataGridNode.prototype.createCellContent):
1004         (WebInspector.DOMTreeDataGridNode.prototype._createNameCellDocumentFragment):
1005         Simplified cell content creation.
1006
1007         (WebInspector.DOMTreeDataGridNode.prototype._updateNodeName): Deleted.
1008         (WebInspector.DOMTreeDataGridNode.prototype._makeNameCell): Deleted.
1009         Renamed _createNameCellDocumentFragment to be consistent with similar
1010         methods in other data grid node classes.
1011
1012         (WebInspector.DOMTreeDataGridNode.prototype._updateNameCellData): Deleted.
1013         No longer needed.
1014
1015 2016-03-09  Joseph Pecoraro  <pecoraro@apple.com>
1016
1017         Web Inspector: Remove unnecessary constructor
1018         https://bugs.webkit.org/show_bug.cgi?id=155249
1019
1020         Reviewed by Timothy Hatcher.
1021
1022         * UserInterface/Views/ScriptTimelineDataGrid.js:
1023         (WebInspector.ScriptTimelineDataGrid):
1024
1025 2016-03-08  Joseph Pecoraro  <pecoraro@apple.com>
1026
1027         Web Inspector: Timelines keeps switching to overview instead of keeping the selected timeline
1028         https://bugs.webkit.org/show_bug.cgi?id=155212
1029         <rdar://problem/25052504>
1030
1031         Reviewed by Timothy Hatcher.
1032
1033         * UserInterface/Views/TimelineSidebarPanel.js:
1034         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
1035         The sidebar was using out of date information in its tree outline causing it to
1036         switch to the wrong sidebar. Use the up to date information from the recording view.
1037
1038         * UserInterface/Views/TimelineTabContentView.js:
1039         (WebInspector.TimelineTabContentView.prototype._recordingSelected):
1040         Fix typo not getting the right timeline type.
1041
1042 2016-03-08  Joseph Pecoraro  <pecoraro@apple.com>
1043
1044         Web Inspector: Memory Timeline should show MemoryPressure events
1045         https://bugs.webkit.org/show_bug.cgi?id=155158
1046         <rdar://problem/25026610>
1047
1048         Reviewed by Brian Burg.
1049
1050         * UserInterface/Main.html:
1051         New resources.
1052
1053         * UserInterface/Base/Main.js:
1054         (WebInspector.loaded):
1055         * UserInterface/Controllers/MemoryManager.js:
1056         (WebInspector.MemoryManager):
1057         (WebInspector.MemoryManager.prototype.memoryPressure):
1058         * UserInterface/Protocol/MemoryObserver.js:
1059         (WebInspector.MemoryObserver.prototype.memoryPressure):
1060         New manager for Memory domain events.
1061
1062         * UserInterface/Controllers/TimelineManager.js:
1063         (WebInspector.TimelineManager):
1064         (WebInspector.TimelineManager.defaultInstruments):
1065         (WebInspector.TimelineManager.prototype._memoryPressure):
1066         * UserInterface/Models/TimelineRecording.js:
1067         (WebInspector.TimelineRecording.prototype.addMemoryPressureEvent):
1068         Add events to the Memory Timeline of the active recording.
1069
1070         * UserInterface/Models/MemoryTimeline.js:
1071         (WebInspector.MemoryTimeline.prototype.get memoryPressureEvents):
1072         (WebInspector.MemoryTimeline.prototype.addMemoryPressureEvent):
1073         (WebInspector.MemoryTimeline.prototype.reset):
1074         (WebInspector.MemoryTimeline):
1075         * UserInterface/Models/Timeline.js:
1076         (WebInspector.Timeline.create):
1077         Create a specific MemoryTimeline to hold records and memory pressure events.
1078
1079         * UserInterface/Models/MemoryPressureEvent.js:
1080         (WebInspector.MemoryPressureEvent):
1081         (WebInspector.MemoryPressureEvent.fromPayload):
1082         (WebInspector.MemoryPressureEvent.prototype.get timestamp):
1083         (WebInspector.MemoryPressureEvent.prototype.get severity):
1084         Model object for a memory pressure event.
1085
1086         * UserInterface/Views/MemoryTimelineOverviewGraph.css:
1087         (.timeline-overview-graph.memory .memory-pressure-event):
1088         * UserInterface/Views/MemoryTimelineOverviewGraph.js:
1089         (WebInspector.MemoryTimelineOverviewGraph):
1090         (WebInspector.MemoryTimelineOverviewGraph.prototype.reset):
1091         (WebInspector.MemoryTimelineOverviewGraph.prototype._visibleMemoryPressureEvents):
1092         (WebInspector.MemoryTimelineOverviewGraph.prototype._memoryTimelineMemoryPressureEventAdded):
1093         Include markers for memory pressure events.
1094
1095 2016-03-08  Joseph Pecoraro  <pecoraro@apple.com>
1096
1097         Web Inspector: Add Heap domain start/stop tracking commands
1098         https://bugs.webkit.org/show_bug.cgi?id=155190
1099
1100         Reviewed by Brian Burg.
1101
1102         * UserInterface/Protocol/HeapObserver.js:
1103         (WebInspector.HeapObserver.prototype.trackingStart):
1104         (WebInspector.HeapObserver.prototype.trackingComplete):
1105         To be used when we have a HeapAllocationsInstrument and timeline.
1106
1107 2016-03-08  Joseph Pecoraro  <pecoraro@apple.com>
1108
1109         Web Inspector: Make debugging Test.html easier
1110         https://bugs.webkit.org/show_bug.cgi?id=155207
1111
1112         Reviewed by Brian Burg.
1113
1114         * UserInterface/Base/InspectorFrontendHostStub.js: Renamed from Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendHostStub.js.
1115         (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.unbufferedLog):
1116         Add new stub for test function.
1117
1118         * UserInterface/Main.html:
1119         * UserInterface/Test.html:
1120         Move the stub to the Base directory.
1121
1122 2016-03-08  Joseph Pecoraro  <pecoraro@apple.com>
1123
1124         Web Inspector: Add a way to create a Heap Snapshot
1125         https://bugs.webkit.org/show_bug.cgi?id=155188
1126
1127         Reviewed by Brian Burg.
1128
1129         * UserInterface/Main.html:
1130         * UserInterface/Test.html:
1131         Add new Model resources.
1132
1133         * UserInterface/Models/HeapSnapshot.js: Added.
1134         (WebInspector.HeapSnapshotClassCategory):
1135         (WebInspector.HeapSnapshot):
1136         (WebInspector.HeapSnapshot.fromPayload):
1137         (WebInspector.HeapSnapshot.prototype.get rootNode):
1138         (WebInspector.HeapSnapshot.prototype.get nodes):
1139         (WebInspector.HeapSnapshot.prototype.get identifier):
1140         (WebInspector.HeapSnapshot.prototype.get instances):
1141         (WebInspector.HeapSnapshot.prototype.get categories):
1142         (WebInspector.HeapSnapshot.prototype.get totalSize):
1143         (WebInspector.HeapSnapshot.prototype.get totalObjectCount):
1144         (WebInspector.HeapSnapshot.prototype.instancesWithClassName):
1145         (WebInspector.HeapSnapshot.prototype.nodeWithObjectIdentifier):
1146         * UserInterface/Models/HeapSnapshotEdge.js: Added.
1147         (WebInspector.HeapSnapshotEdge):
1148         (WebInspector.HeapSnapshotEdge.prototype.stringify):
1149         * UserInterface/Models/HeapSnapshotNode.js: Added.
1150         (WebInspector.HeapSnapshotNode):
1151         Data structures for a HeapSnapshot.
1152
1153 2016-03-08  Joseph Pecoraro  <pecoraro@apple.com>
1154
1155         Web Inspector: Miscellaneous inspector fixes for typos / stale code
1156         https://bugs.webkit.org/show_bug.cgi?id=155193
1157
1158         Reviewed by Timothy Hatcher.
1159
1160         * UserInterface/Models/SourceCodeLocation.js:
1161         (WebInspector.SourceCodeLocation.prototype._locationString):
1162         Fix whitespace.
1163
1164         * UserInterface/Views/ApplicationCacheFrameContentView.js:
1165         (WebInspector.ApplicationCacheFrameContentView):
1166         Remove unused class name.
1167
1168         * UserInterface/Views/SourceCodeTextEditor.js:
1169         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
1170         Remove inferredName, as that was never sent by our backend and is getting removed.
1171
1172         * UserInterface/Views/TimelineRuler.js:
1173         (WebInspector.TimelineRuler.prototype._handleMouseUp):
1174         Fix variable name typo.
1175
1176 2016-03-08  Joseph Pecoraro  <pecoraro@apple.com>
1177
1178         Web Inspector: Images being blocked by CSP 2.0
1179         https://bugs.webkit.org/show_bug.cgi?id=155182
1180         <rdar://problem/25040640>
1181
1182         Reviewed by Daniel Bates.
1183
1184         * UserInterface/Main.html:
1185         Allow Web Inspector to load file: and blob: image resources.
1186         Also blob: media and font resources.
1187
1188 2016-03-06  Nikita Vasilyev  <nvasilyev@apple.com>
1189
1190         Web Inspector: Use half-pixel borders for data grids
1191         https://bugs.webkit.org/show_bug.cgi?id=154437
1192         <rdar://problem/24736365>
1193
1194         Reviewed by Timothy Hatcher.
1195
1196         * UserInterface/Views/DataGrid.css:
1197         (.data-grid.inline):
1198         (.data-grid th):
1199         (.data-grid :matches(th, td):not(:last-child)):
1200         Half-pixel borders round to 1px on 1x (non-retina) screens since r192444.
1201
1202         * UserInterface/Views/DataGrid.js:
1203         (WebInspector.DataGrid.prototype._positionResizerElements):
1204         Use getBoundingClientRect for better precision since it provides subpixel values.
1205
1206 2016-03-05  Joseph Pecoraro  <pecoraro@apple.com>
1207
1208         Web Inspector: Have separate path component for Script Timeline content views
1209         https://bugs.webkit.org/show_bug.cgi?id=155075
1210         <rdar://problem/24996564>
1211
1212         Reviewed by Timothy Hatcher.
1213
1214         * UserInterface/Images/CallTrees.svg: Added.
1215         * UserInterface/Images/Events.svg: Added.
1216         New icons based off of ResultLine.svg.
1217
1218         * UserInterface/Views/PathComponentIcons.css:
1219         (.events-icon .icon):
1220         (.call-trees-icon .icon):
1221         (body:not(.mac-platform, .windows-platform) .call-trees-icon .icon):
1222         Use the new icons and fallback to ResultLine.svg for other ports.
1223
1224         * UserInterface/Views/ScriptClusterTimelineView.js:
1225         (WebInspector.ScriptClusterTimelineView):
1226         (WebInspector.ScriptClusterTimelineView.prototype.get eventsContentView):
1227         (WebInspector.ScriptClusterTimelineView.prototype.showEvents):
1228         (WebInspector.ScriptClusterTimelineView.prototype.showProfile):
1229         (WebInspector.ScriptClusterTimelineView.prototype._pathComponentForContentView):
1230         (WebInspector.ScriptClusterTimelineView.prototype._identifierForContentView):
1231         (WebInspector.ScriptClusterTimelineView.prototype._showContentViewForIdentifier):
1232         (WebInspector.ScriptClusterTimelineView.prototype._scriptClusterViewCurrentContentViewDidChange):
1233         (WebInspector.ScriptClusterTimelineView.prototype.get detailsContentView): Deleted.
1234         (WebInspector.ScriptClusterTimelineView.prototype.showDetails): Deleted.
1235         Rename "Details" to "Events".
1236
1237         * UserInterface/Views/TimelineRecordingContentView.js:
1238         (WebInspector.TimelineRecordingContentView.prototype.contentBrowserTreeElementForRepresentedObject): Deleted.
1239         Always include the top level "Details" component.
1240
1241 2016-03-05  Joseph Pecoraro  <pecoraro@apple.com>
1242
1243         Web Inspector: Add back support for a heavy / bottom up profile view
1244         https://bugs.webkit.org/show_bug.cgi?id=140578
1245         <rdar://problem/19506794>
1246
1247         Reviewed by Timothy Hatcher.
1248
1249         * Localizations/en.lproj/localizedStrings.js:
1250         * UserInterface/Main.html:
1251         New strings and resources.
1252
1253         * UserInterface/Base/Utilities.js:
1254         (Number.secondsToMillisecondsString):
1255         Helper for providing a consistent milliseconds string used in profiles.
1256
1257         * UserInterface/Controllers/TimelineManager.js:
1258         (WebInspector.TimelineManager.prototype.scriptProfilerTrackingCompleted):
1259         The calling context tree should be stored on a Recording, not on the global
1260         TimelineManager. Also create two trees, one top down and one bottom up.
1261
1262         * UserInterface/Models/CallingContextTree.js:
1263         (WebInspector.CallingContextTree):
1264         (WebInspector.CallingContextTree.prototype.get type):
1265         (WebInspector.CallingContextTree.prototype.get totalExecutionTime):
1266         (WebInspector.CallingContextTree.prototype.reset):
1267         (WebInspector.CallingContextTree.prototype.numberOfSamplesInTimeRange):
1268         (WebInspector.CallingContextTree.prototype.increaseExecutionTime):
1269         Give a CallingContextTree a type (TopDown / BottomUp) and some getters.
1270
1271         (WebInspector.CallingContextTree.prototype.updateTreeWithStackTrace):
1272         Build a bottom up or top down tree from samples.
1273
1274         (WebInspector.CallingContextTree.prototype.forEachChild):
1275         Allow iterating from the root.
1276
1277         (WebInspector.CCTNode):
1278         (WebInspector.CCTNode.prototype.hasChildrenInTimeRange):
1279         (WebInspector.CCTNode.prototype.numberOfLeafTimestamps):
1280         (WebInspector.CCTNode.prototype.addTimestampAndExpressionLocation):
1281         (WebInspector.CCTNode.prototype.equals):
1282         (WebInspector.CCTNode.prototype.hasChildren): Deleted.
1283         Give a CCTNode a list of leaf timestamps alongside the list of all timestamps.
1284         Leaf timestamps will count as "self time" in a profile view.
1285
1286         * UserInterface/Models/SourceCodeLocation.js:
1287         (WebInspector.SourceCodeLocation.prototype._locationString):
1288         Nobody was using "ColumnStyle.Hidden" so repurpose it to be even simpler.
1289
1290         * UserInterface/Models/TimelineRecording.js:
1291         (WebInspector.TimelineRecording):
1292         (WebInspector.TimelineRecording.prototype.get topDownCallingContextTree):
1293         (WebInspector.TimelineRecording.prototype.get bottomUpCallingContextTree):
1294         (WebInspector.TimelineRecording.prototype.reset):
1295         Store the two types of calling context trees and allow reseting them.
1296
1297         * UserInterface/Protocol/InspectorFrontendAPI.js:
1298         (InspectorFrontendAPI.contextMenuItemSelected):
1299         Helper for debugging uncaught exceptions in context menus.
1300
1301         * UserInterface/Views/ContentView.js:
1302         (WebInspector.ContentView.createFromRepresentedObject):
1303         (WebInspector.ContentView.isViewable):
1304         A ScriptTimeline now has a cluster view.
1305         A CallingContextTree now has a ProfileView.
1306
1307         * UserInterface/Views/DataGrid.js:
1308         (WebInspector.DataGrid.prototype.insertChild):
1309         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
1310         (WebInspector.DataGridNode.prototype.refreshRecursively):
1311         (WebInspector.DataGridNode.prototype.elementWithColumnIdentifier):
1312         (WebInspector.DataGridNode.prototype.forEachImmediateChild):
1313         (WebInspector.DataGridNode.prototype.forEachChildInSubtree):
1314         (WebInspector.DataGridNode.prototype.isInSubtreeOfNode):
1315         Provide some helpers for iterating DataGridNodes, useful when the
1316         actual DataGrid comes from a DataGridTree.
1317
1318         (WebInspector.DataGridNode.prototype.select):
1319         (WebInspector.DataGridNode.prototype.deselect):
1320         The indent width of DataGridNodes was not getting reset when a
1321         node was removed and re-added to a tree due to a cached padding.
1322
1323         (WebInspector.DataGridNode.prototype.appendContextMenuItems):
1324         Allow DataGridNodes to provide context menu items by overriding this method.
1325
1326         * UserInterface/Views/PathComponentIcons.css:
1327         (.function-icon .icon):
1328         (.native-icon .icon):
1329         (.program-icon .icon):
1330         Icons for profile nodes in path components.
1331
1332         * UserInterface/Views/ProfileDataGridNode.js: Added.
1333         (WebInspector.ProfileDataGridNode):
1334         (WebInspector.ProfileDataGridNode.prototype.get node):
1335         (WebInspector.ProfileDataGridNode.prototype.displayName):
1336         (WebInspector.ProfileDataGridNode.prototype.iconClassName):
1337         (WebInspector.ProfileDataGridNode.prototype.get data):
1338         (WebInspector.ProfileDataGridNode.prototype.createCellContent):
1339         (WebInspector.ProfileDataGridNode.prototype.sort):
1340         (WebInspector.ProfileDataGridNode.prototype.refresh):
1341         (WebInspector.ProfileDataGridNode.prototype.appendContextMenuItems):
1342         (WebInspector.ProfileDataGridNode.prototype._updateChildrenForModifiers):
1343         (WebInspector.ProfileDataGridNode.prototype._recalculateData):
1344         (WebInspector.ProfileDataGridNode.prototype._totalTimeContent):
1345         (WebInspector.ProfileDataGridNode.prototype._displayContent):
1346         (WebInspector.ProfileDataGridNode.prototype._populate):
1347         CCTNode DataGridNode. A row in the ProfileDataGridTree. Handles
1348         tree modifiers like charge to caller.
1349
1350         * UserInterface/Views/ProfileDataGridTree.js: Added.
1351         (WebInspector.ProfileDataGridTree):
1352         (WebInspector.ProfileDataGridTree.buildSortComparator):
1353         (WebInspector.ProfileDataGridTree.prototype.get callingContextTree):
1354         (WebInspector.ProfileDataGridTree.prototype.get sampleInterval):
1355         (WebInspector.ProfileDataGridTree.prototype.get focusNodes):
1356         (WebInspector.ProfileDataGridTree.prototype.get currentFocusNode):
1357         (WebInspector.ProfileDataGridTree.prototype.get modifiers):
1358         (WebInspector.ProfileDataGridTree.prototype.get startTime):
1359         (WebInspector.ProfileDataGridTree.prototype.get endTime):
1360         (WebInspector.ProfileDataGridTree.prototype.get numberOfSamples):
1361         (WebInspector.ProfileDataGridTree.prototype.get children):
1362         (WebInspector.ProfileDataGridTree.prototype.appendChild):
1363         (WebInspector.ProfileDataGridTree.prototype.insertChild):
1364         (WebInspector.ProfileDataGridTree.prototype.removeChildren):
1365         (WebInspector.ProfileDataGridTree.prototype.set sortComparator):
1366         (WebInspector.ProfileDataGridTree.prototype.sort):
1367         (WebInspector.ProfileDataGridTree.prototype.refresh):
1368         (WebInspector.ProfileDataGridTree.prototype.addFocusNode):
1369         (WebInspector.ProfileDataGridTree.prototype.rollbackFocusNode):
1370         (WebInspector.ProfileDataGridTree.prototype.clearFocusNodes):
1371         (WebInspector.ProfileDataGridTree.prototype.hasModifiers):
1372         (WebInspector.ProfileDataGridTree.prototype.addModifier):
1373         (WebInspector.ProfileDataGridTree.prototype.clearModifiers):
1374         (WebInspector.ProfileDataGridTree.prototype._repopulate):
1375         (WebInspector.ProfileDataGridTree.prototype._focusChanged):
1376         (WebInspector.ProfileDataGridTree.prototype._updateCurrentFocusDetails):
1377         (WebInspector.ProfileDataGridTree.prototype._restoreFocusedNodeToOriginalParent):
1378         (WebInspector.ProfileDataGridTree.prototype._modifiersChanged):
1379         Start of a DataGridTree for a CallingContextTree.
1380         Contains special logic for focused nodes and modifiers.
1381
1382         * UserInterface/Views/ProfileView.css: Added.
1383         (.profile > .data-grid):
1384         (.profile > .data-grid th):
1385         (.profile > .data-grid td .icon):
1386         (.profile > .data-grid td .percentage):
1387         (.profile > .data-grid td .location):
1388         (.profile > .data-grid:matches(:focus, .force-focus) tr.selected td .location):
1389         (.profile > .data-grid td .icon.function-icon):
1390         (.profile > .data-grid td .icon.native-icon):
1391         (.profile > .data-grid td .icon.program-icon):
1392         (.profile > .data-grid tr:matches(.selected, :hover) .go-to-arrow):
1393         (.profile > .data-grid td.function-column):
1394         (.profile > .data-grid td .guidance):
1395         (.profile > .data-grid td .guidance.hover):
1396         (.profile > .data-grid td .guidance.base):
1397         (.profile > .data-grid tr:not(.expanded) td .guidance.base):
1398         (.profile > .data-grid tr.expanded td .guidance.base):
1399         * UserInterface/Views/ProfileView.js: Added.
1400         (WebInspector.ProfileView):
1401         (WebInspector.ProfileView.prototype.get callingContextTree):
1402         (WebInspector.ProfileView.prototype.get startTime):
1403         (WebInspector.ProfileView.prototype.get endTime):
1404         (WebInspector.ProfileView.prototype.setStartAndEndTime):
1405         (WebInspector.ProfileView.prototype.hasFocusNodes):
1406         (WebInspector.ProfileView.prototype.clearFocusNodes):
1407         (WebInspector.ProfileView.prototype.get selectionPathComponents):
1408         (WebInspector.ProfileView.prototype._recreate):
1409         (WebInspector.ProfileView.prototype._repopulateDataGridFromTree):
1410         (WebInspector.ProfileView.prototype._pathComponentClicked):
1411         (WebInspector.ProfileView.prototype._dataGridTreeFocusChanged):
1412         (WebInspector.ProfileView.prototype._dataGridTreeModifiersChanged):
1413         (WebInspector.ProfileView.prototype._dataGridSortChanged):
1414         (WebInspector.ProfileView.prototype._dataGridNodeSelected):
1415         (WebInspector.ProfileView.prototype._dataGridNodeExpanded):
1416         (WebInspector.ProfileView.prototype._mouseOverDataGrid):
1417         (WebInspector.ProfileView.prototype._mouseLeaveDataGrid):
1418         (WebInspector.ProfileView.prototype._guidanceElementKey):
1419         (WebInspector.ProfileView.prototype._removeGuidanceElement):
1420         (WebInspector.ProfileView.prototype._appendGuidanceElement):
1421         ProfileView holds a data grid which is populated from the data grid tree.
1422         Special handing for guidance markers when hovering / selecting parts of the tree.
1423
1424         * UserInterface/Views/ScriptClusterTimelineView.js: Added.
1425         (WebInspector.ScriptClusterTimelineView.createPathComponent):
1426         (WebInspector.ScriptClusterTimelineView):
1427         (WebInspector.ScriptClusterTimelineView.prototype.get zeroTime):
1428         (WebInspector.ScriptClusterTimelineView.prototype.set zeroTime):
1429         (WebInspector.ScriptClusterTimelineView.prototype.get startTime):
1430         (WebInspector.ScriptClusterTimelineView.prototype.set startTime):
1431         (WebInspector.ScriptClusterTimelineView.prototype.get endTime):
1432         (WebInspector.ScriptClusterTimelineView.prototype.set endTime):
1433         (WebInspector.ScriptClusterTimelineView.prototype.get currentTime):
1434         (WebInspector.ScriptClusterTimelineView.prototype.set currentTime):
1435         (WebInspector.ScriptClusterTimelineView.prototype.get navigationSidebarTreeOutline):
1436         (WebInspector.ScriptClusterTimelineView.prototype.reset):
1437         (WebInspector.ScriptClusterTimelineView.prototype.filterDidChange):
1438         (WebInspector.ScriptClusterTimelineView.prototype.matchTreeElementAgainstCustomFilters):
1439         (WebInspector.ScriptClusterTimelineView.prototype.get detailsContentView):
1440         (WebInspector.ScriptClusterTimelineView.prototype.get profileContentView):
1441         (WebInspector.ScriptClusterTimelineView.prototype.get selectionPathComponents):
1442         (WebInspector.ScriptClusterTimelineView.prototype.saveToCookie):
1443         (WebInspector.ScriptClusterTimelineView.prototype.restoreFromCookie):
1444         (WebInspector.ScriptClusterTimelineView.prototype.showDetails):
1445         (WebInspector.ScriptClusterTimelineView.prototype.showProfile):
1446         (WebInspector.ScriptClusterTimelineView.prototype._pathComponentForContentView):
1447         (WebInspector.ScriptClusterTimelineView.prototype._identifierForContentView):
1448         (WebInspector.ScriptClusterTimelineView.prototype._showContentViewForIdentifier):
1449         (WebInspector.ScriptClusterTimelineView.prototype._pathComponentSelected):
1450         (WebInspector.ScriptClusterTimelineView.prototype._scriptClusterViewCurrentContentViewDidChange):
1451         Script Timeline ClusterContentView. Toggle between the normal "Details" data grid
1452         and the new "Call Tree" profile view. Currently the recording expects child content
1453         views to be TimelineViews, this ClusterContentView forwards TimelineView relevant
1454         methods to the real TimelineView children.
1455
1456         * UserInterface/Views/ScriptDetailsTimelineView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ScriptTimelineView.js.
1457         (WebInspector.ScriptDetailsTimelineView):
1458         (WebInspector.ScriptDetailsTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
1459         (WebInspector.ScriptDetailsTimelineView.prototype.shown):
1460         (WebInspector.ScriptDetailsTimelineView.prototype.hidden):
1461         (WebInspector.ScriptDetailsTimelineView.prototype.closed):
1462         (WebInspector.ScriptDetailsTimelineView.prototype.get selectionPathComponents):
1463         (WebInspector.ScriptDetailsTimelineView.prototype.reset):
1464         (WebInspector.ScriptDetailsTimelineView.prototype.canShowContentViewForTreeElement):
1465         (WebInspector.ScriptDetailsTimelineView.prototype.showContentViewForTreeElement):
1466         (WebInspector.ScriptDetailsTimelineView.prototype.treeElementPathComponentSelected):
1467         (WebInspector.ScriptDetailsTimelineView.prototype.treeElementSelected):
1468         (WebInspector.ScriptDetailsTimelineView.prototype.dataGridNodeForTreeElement):
1469         (WebInspector.ScriptDetailsTimelineView.prototype.populateProfileNodeTreeElement):
1470         (WebInspector.ScriptDetailsTimelineView.prototype.layout):
1471         (WebInspector.ScriptDetailsTimelineView.prototype._processPendingRecords):
1472         (WebInspector.ScriptDetailsTimelineView.prototype._scriptTimelineRecordAdded):
1473         (WebInspector.ScriptDetailsTimelineView.prototype._scriptTimelineRecordRefreshed):
1474         (WebInspector.ScriptDetailsTimelineView.prototype._dataGridFiltersDidChange):
1475         (WebInspector.ScriptDetailsTimelineView.prototype._dataGridNodeSelected):
1476         * UserInterface/Views/ScriptProfileTimelineView.js: Added.
1477         (WebInspector.ScriptProfileTimelineView):
1478         (WebInspector.ScriptProfileTimelineView.prototype.closed):
1479         (WebInspector.ScriptProfileTimelineView.prototype.get navigationItems):
1480         (WebInspector.ScriptProfileTimelineView.prototype.get selectionPathComponents):
1481         (WebInspector.ScriptProfileTimelineView.prototype.layout):
1482         (WebInspector.ScriptProfileTimelineView.prototype._callingContextTreeForOrientation):
1483         (WebInspector.ScriptProfileTimelineView.prototype._profileViewSelectionPathComponentsDidChange):
1484         (WebInspector.ScriptProfileTimelineView.prototype._scriptTimelineRecordRefreshed):
1485         (WebInspector.ScriptProfileTimelineView.prototype._updateProfileOrientationButtonItem):
1486         (WebInspector.ScriptProfileTimelineView.prototype._toggleProfileOrientation):
1487         (WebInspector.ScriptProfileTimelineView.prototype._updateClearFocusNodesButtonItem):
1488         (WebInspector.ScriptProfileTimelineView.prototype._clearFocusNodes):
1489         The two TimelineViews.
1490
1491         * UserInterface/Views/TimelineRecordingContentView.js:
1492         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
1493         (WebInspector.TimelineRecordingContentView.prototype.contentBrowserTreeElementForRepresentedObject):
1494         The timeline content browser may now hold a ClusterContentView. It is not exactly a TimelineView,
1495         but it holds TimelineViews, so treat it like one. Assume the ClusterContentView will add its own
1496         path components.
1497
1498         (WebInspector.TimelineRecordingContentView.prototype._instrumentAdded):
1499         Add extra information other than the sidebar to TimelineViews. The ProfileView looks
1500         at the recording for the calling context trees.
1501
1502 2016-03-03  Timothy Hatcher  <timothy@apple.com>
1503
1504         Web Inspector: Temporarily hide the TimelineSidebarPanel
1505
1506         https://bugs.webkit.org/show_bug.cgi?id=154974
1507         rdar://problem/24956380
1508
1509         Reviewed by Joseph Pecoraro.
1510
1511         * UserInterface/Views/TimelineTabContentView.js:
1512         (WebInspector.TimelineTabContentView): Remove _showNavigationSidebarItem and hide the sidebar.
1513
1514 2016-03-03  Matt Baker  <mattbaker@apple.com>
1515
1516         Web Inspector: Selected range path component should be zero time corrected
1517         https://bugs.webkit.org/show_bug.cgi?id=154950
1518         <rdar://problem/24947022>
1519
1520         Reviewed by Timothy Hatcher.
1521
1522         Subtracts zero time from TimelineRange start and end values, and corrects
1523         a cosmetic issue in TimelineRuler which showed selection handle tooltips
1524         that weren't adjusted for the ruler's zero time.
1525
1526         * UserInterface/Views/TimelineRecordingContentView.js:
1527         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
1528
1529         * UserInterface/Views/TimelineRuler.js:
1530         (WebInspector.TimelineRuler.prototype._updateSelection):
1531
1532 2016-03-03  Matt Baker  <mattbaker@apple.com>
1533
1534         Web Inspector: Events and Frames mode switch does not fully switch until first zoom
1535         https://bugs.webkit.org/show_bug.cgi?id=154971
1536         <rdar://problem/24955871>
1537
1538         Reviewed by Timothy Hatcher.
1539
1540         Switching modes toggles the visibility of the tree outline, which changes
1541         the width of the overview's ruler, graphs, and scroll container. When the
1542         view mode changes, the overview needs a forced "resize" layout.
1543
1544         * UserInterface/Views/TimelineOverview.js:
1545         (WebInspector.TimelineOverview.prototype._viewModeDidChange):
1546
1547 2016-03-03  Matt Baker  <mattbaker@apple.com>
1548
1549         Web Inspector: Assertion Failed: Cannot show timeline because it does not belong to the shown recording. – "overview"
1550         https://bugs.webkit.org/show_bug.cgi?id=154972
1551         <rdar://problem/24956233>
1552
1553         Reviewed by Timothy Hatcher.
1554
1555         * UserInterface/Views/TimelineTabContentView.js:
1556         (WebInspector.TimelineTabContentView.prototype._showTimelineViewForType):
1557         Just show the overview if the recording has no timeline of the given type.
1558
1559 2016-03-02  Matt Baker  <mattbaker@apple.com>
1560
1561         Web Inspector: Update MemoryTimelineView for new ruler height
1562         https://bugs.webkit.org/show_bug.cgi?id=153904
1563         <rdar://problem/24517259>
1564
1565         Reviewed by Timothy Hatcher.
1566
1567         * UserInterface/Views/MemoryTimelineView.css:
1568         (.timeline-view.memory > .content > .details > .timeline-ruler):
1569         (.timeline-view.memory > .content > .details > .subtitle):
1570         Adjust ruler top and subtitle padding for shorter timeline ruler.
1571         Also reduced padding in the Categories heading area to tighen up
1572         the layout a bit.
1573
1574 2016-03-02  Matt Baker  <mattbaker@apple.com>
1575
1576         Web Inspector: Timelines UI redesign: replace content view container with a content browser
1577         https://bugs.webkit.org/show_bug.cgi?id=153033
1578         <rdar://problem/24195565>
1579
1580         Reviewed by Timothy Hatcher.
1581
1582         This patch replaces the ContentViewContainer in the Timelines tab with a ContentBrowser,
1583         moves filtering controls from the sidebar to the new browser's navigation bar, and adds
1584         a new leaf path component for the current ruler selection to the main content browser's
1585         navigation bar.
1586
1587         * Localizations/en.lproj/localizedStrings.js:
1588         New UI strings.
1589
1590         * UserInterface/Base/Utilities.js:
1591         Added global en dash string.
1592
1593         * UserInterface/Main.html:
1594         * UserInterface/Test.html:
1595         New files.
1596
1597         * UserInterface/Models/TimelineRange.js:
1598         (WebInspector.TimelineRange):
1599         (WebInspector.TimelineRange.prototype.get startValue):
1600         (WebInspector.TimelineRange.prototype.set startValue):
1601         (WebInspector.TimelineRange.prototype.get endValue):
1602         (WebInspector.TimelineRange.prototype.set endValue):
1603         New represented object used by ruler selection path components.
1604
1605         * UserInterface/Views/FilterBarNavigationItem.js:
1606         (WebInspector.FilterBarNavigationItem):
1607         (WebInspector.FilterBarNavigationItem.prototype.get filterBar):
1608         Adapter class for using a FilterBar as a NavigationItem.
1609
1610         * UserInterface/Views/TimelineIcons.css:
1611         (.time-icon .icon):
1612         Icon class used by ruler selection path component.
1613
1614         * UserInterface/Views/TimelineRecordingContentView.css:
1615         (.content-view.timeline-recording > .content-browser):
1616         (.content-view.timeline-recording > .content-browser > .navigation-bar):
1617         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
1618         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
1619         (.content-view.timeline-recording > .content-browser > .content-view-container > .timeline-view > .data-grid td):
1620         (.content-view.timeline-recording > .content-browser > .content-view-container > .timeline-view > .data-grid table.data):
1621         (.content-view.timeline-recording > .content-view-container): Deleted.
1622         (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid td): Deleted.
1623         (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid table.data): Deleted.
1624         New styles for the ContentBrowser that replaces the ContentViewContainer.
1625
1626         * UserInterface/Views/TimelineRecordingContentView.js:
1627         (WebInspector.TimelineRecordingContentView):
1628         Create the ContentBrowser, ruler selection path components, and the browser's filter bar.
1629
1630         (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
1631         (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
1632         Implemented by the content browser instead of the view container.
1633
1634         (WebInspector.TimelineRecordingContentView.prototype.get selectionPathComponents):
1635         Add timeline and selection path components. Components for the current TimelineView
1636         are now located in the lower content browser's navigation bar.
1637
1638         (WebInspector.TimelineRecordingContentView.prototype.get supplementalRepresentedObjects):
1639         (WebInspector.TimelineRecordingContentView.prototype.get handleCopyEvent):
1640         (WebInspector.TimelineRecordingContentView.prototype.get supportsSave):
1641         (WebInspector.TimelineRecordingContentView.prototype.get saveData):
1642         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
1643         (WebInspector.TimelineRecordingContentView.prototype.shown):
1644         (WebInspector.TimelineRecordingContentView.prototype.hidden):
1645         (WebInspector.TimelineRecordingContentView.prototype.closed):
1646         (WebInspector.TimelineRecordingContentView.prototype.canGoBack):
1647         (WebInspector.TimelineRecordingContentView.prototype.canGoForward):
1648         (WebInspector.TimelineRecordingContentView.prototype.goBack):
1649         (WebInspector.TimelineRecordingContentView.prototype.goForward):
1650         (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
1651         Implemented by the content browser instead of the view container.
1652
1653         (WebInspector.TimelineRecordingContentView.prototype.contentBrowserTreeElementForRepresentedObject):
1654         Create the root tree element for the lower content browser's navigation bar.
1655
1656         (WebInspector.TimelineRecordingContentView.prototype._timeRangePathComponentSelected):
1657         Update the ruler selection based on the new path component.
1658
1659         (WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
1660         (WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange):
1661         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
1662         (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
1663         Implemented by the content browser instead of the view container.
1664
1665         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
1666         Update the currently selected path component when the ruler selection changes.
1667         If the entire range is selected, show the "Entire Recording" path component,
1668         otherwise update the TimelineRange of the path component for the user-defined
1669         selection and refresh all timeline range path components.
1670
1671         (WebInspector.TimelineRecordingContentView.prototype._updateTimeRangePathComponents):
1672         Update title text and sibling relationships for ruler selection path components.
1673
1674         (WebInspector.TimelineRecordingContentView.prototype._createTimelineRangePathComponent):
1675         Helper function for creating TimelineRange path components.
1676
1677         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
1678         The TimelineView scope bar is no longer added to the sidebar. The UI has been moved
1679         to the lower content browser navigation bar.
1680
1681         (WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection): Deleted.
1682         No longer needed since the selected range is shown in the navigation bar.
1683
1684         * UserInterface/Views/TimelineView.js:
1685         (WebInspector.TimelineView.prototype.get navigationItems):
1686         Adds the TimelineView's scope bar (if any) to the lower content browser's navigation
1687         bar. Items are inserted before the filter bar, which is always the right-most item.
1688
1689 2016-03-02  Matt Baker  <mattbaker@apple.com>
1690
1691         Web Inspector: Timelines UI redesign: show content tree outline records in timeline data grids
1692         https://bugs.webkit.org/show_bug.cgi?id=153032
1693         <rdar://problem/24195317>
1694
1695         Reviewed by Timothy Hatcher.
1696
1697         This patch relocates the data shown in the Timelines navigation sidebar content tree outline
1698         to a new grid column in each TimelineDataGrid. Logic for creating subtitles, goto arrow buttons,
1699         and status elements (the progress spinner used for network resources) has been replicated in
1700         the appropriate TimelineDataGridNode classes.
1701
1702         Duplicate logic contained in TimelineRecordTreeElement classes is left in place for now, but
1703         will be removed in <https://webkit.org/b/153036>.
1704
1705         * UserInterface/Views/DataGrid.css:
1706         (.data-grid td.error):
1707         Use --error-text-color CSS variable.
1708
1709         * UserInterface/Views/DataGrid.js:
1710         Removed GoToArrowClicked event.
1711         (WebInspector.DataGridNode.prototype.createGoToArrowButton.buttonClicked): Deleted.
1712         (WebInspector.DataGridNode.prototype.createGoToArrowButton): Deleted.
1713         Now part of TimelineDataGridNode.
1714
1715         * UserInterface/Views/LayoutTimelineDataGridNode.js:
1716         (WebInspector.LayoutTimelineDataGridNode):
1717         (WebInspector.LayoutTimelineDataGridNode.prototype.get data):
1718         Add name cell to row data.
1719         (WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
1720         Create name cell.
1721
1722         * UserInterface/Views/LayoutTimelineView.css:
1723         (.timeline-view.layout > .data-grid .eventType-column): Deleted.
1724         Column border no longer hidden.
1725
1726         * UserInterface/Views/LayoutTimelineView.js:
1727         (WebInspector.LayoutTimelineView):
1728         Setup name column.
1729
1730         * UserInterface/Views/NetworkTimelineView.css:
1731         (.timeline-view.network > .data-grid .name-column .subtitle):
1732         Don't show subtitles in the Network grid's name column.
1733
1734         * UserInterface/Views/NetworkTimelineView.js:
1735         (WebInspector.NetworkTimelineView):
1736         Setup name column.
1737
1738         * UserInterface/Views/OverviewTimelineView.css:
1739         (.timeline-view.overview > .data-grid th.graph-column > .timeline-ruler):
1740         (.timeline-view.overview > .data-grid th.graph-column > .timeline-ruler > .header):
1741         (.timeline-view.overview > .data-grid th):
1742         (body.window-inactive .timeline-view.overview > .data-grid th):
1743         (.timeline-view.overview .timeline-ruler > .event-markers):
1744         (.timeline-view.overview > .data-grid):
1745         (.timeline-view.overview > .timeline-ruler): Deleted.
1746         (.timeline-view.overview > .timeline-ruler > .header): Deleted.
1747         (body.window-inactive .timeline-view.overview > .timeline-ruler > .header): Deleted.
1748         (.timeline-view.overview > .timeline-ruler > .event-markers): Deleted.
1749         New styles for adding grid column headers and using a TimelineRuler as the
1750         graph column header.
1751
1752         * UserInterface/Views/OverviewTimelineView.js:
1753         (WebInspector.OverviewTimelineView):
1754         Setup name column and add ruler to graph column header.
1755
1756         * UserInterface/Views/ProfileNodeDataGridNode.js:
1757         (WebInspector.ProfileNodeDataGridNode):
1758         Use cached data instead of creating row data at construction time.
1759         (WebInspector.ProfileNodeDataGridNode.prototype.get data):
1760         Add name cell to row data.
1761         (WebInspector.ProfileNodeDataGridNode.prototype.createCellContent):
1762         Create name cell.
1763         (WebInspector.ProfileNodeDataGridNode.prototype._iconClassNameForProfileNode):
1764         (WebInspector.ProfileNodeDataGridNode.prototype._titleForProfileNode):
1765         Copied from ProfileNodeTreeElement.
1766
1767         * UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
1768         (WebInspector.RenderingFrameTimelineDataGridNode):
1769         (WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data):
1770         Add name cell to row data.
1771         (WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
1772         Create name cell.
1773
1774         * UserInterface/Views/RenderingFrameTimelineView.js:
1775         (WebInspector.RenderingFrameTimelineView):
1776         Setup name column.
1777
1778         * UserInterface/Views/ResourceTimelineDataGridNode.js:
1779         (WebInspector.ResourceTimelineDataGridNode):
1780         Renamed "graphOnly" to "includesGraph", since resource rows in the overview
1781         now show the name column in addition to the graph column. Resource events
1782         LoadingDidFinish and LoadingDidFail now need to be handled for both types
1783         of resource rows.
1784
1785         (WebInspector.ResourceTimelineDataGridNode.prototype.get data):
1786         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
1787         Update resource status element and create name cell content.
1788         (WebInspector.ResourceTimelineDataGridNode.prototype._createNameCellDocumentFragment):
1789         Create DOM fragment with titles. Based on code in TimelineRecordTreeElement.
1790         (WebInspector.ResourceTimelineDataGridNode.prototype._dataGridNodeGoToArrowClicked):
1791         Show resource when goto arrow is clicked.
1792         (WebInspector.ResourceTimelineDataGridNode.prototype._updateStatus):
1793         Update name cell's text color and progress spinner.
1794
1795         * UserInterface/Views/ResourceTreeElement.css:
1796         (.item.resource.failed):
1797         (.item.resource.failed .subtitle):
1798         Use --error-text-color CSS variable.
1799
1800         * UserInterface/Views/ScriptTimelineDataGridNode.js:
1801         (WebInspector.ScriptTimelineDataGridNode):
1802         (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
1803         (WebInspector.ScriptTimelineDataGridNode.prototype._createNameCellDocumentFragment):
1804         Create DOM fragment with titles. Based on code in TimelineRecordTreeElement.
1805
1806         * UserInterface/Views/ScriptTimelineView.js:
1807         (WebInspector.ScriptTimelineView):
1808         Setup name column.
1809
1810         * UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
1811         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.createCellContent):
1812         Added now that this node type is no longer "graph only".
1813         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype._createNameCellContent):
1814         Create DOM fragment with titles. Based on code in TimelineRecordTreeElement.
1815
1816         * UserInterface/Views/TimelineDataGridNode.js:
1817         (WebInspector.TimelineDataGridNode):
1818         Renamed `graphOnly` to `includesGraph`.
1819         (WebInspector.TimelineDataGridNode.prototype.createCellContent):
1820         Removed icon element creation. This is now handled by the DataGrid.
1821         (WebInspector.TimelineDataGridNode.prototype.refresh):
1822         Refresh of all node cells after updating the graph.
1823         (WebInspector.TimelineDataGridNode.prototype.createGoToArrowButton):
1824         (WebInspector.TimelineDataGridNode.prototype.createGoToArrowButton.buttonClicked):
1825         Relocated from DataGrid, as it's only used by TimelineDataGridNodes.
1826
1827         * UserInterface/Views/TimelineView.css:
1828         (.timeline-view > .data-grid .indeterminate-progress-spinner):
1829         Styles for grid cell progress spinners.
1830
1831         * UserInterface/Views/Variables.css:
1832         (:root):
1833         Added --error-text-color variable to remove duplication.
1834
1835 2016-03-02  Matt Baker  <mattbaker@apple.com>
1836
1837         Web Inspector: Timelines UI redesign: relocate recording controls to TimelineTabContentView's content browser
1838         https://bugs.webkit.org/show_bug.cgi?id=153532
1839         <rdar://problem/24361611>
1840
1841         Reviewed by Timothy Hatcher.
1842
1843         This patch shifts UI controller responsibilities from the sidebar panel
1844         to the tab content view. Controls for starting/stopping the recording and
1845         switching view modes are now located in the tab's navigation bar, as is
1846         the hidden tree outline of open timeline recordings.
1847
1848         * Localizations/en.lproj/localizedStrings.js:
1849         New UI strings. Renamed view-mode radio buttons located from the sidebar
1850         to "Events" and "Frames". UI for switching modes isn't final, and the
1851         labels may change or be removed entirely in favor of image-only buttons.
1852
1853         * UserInterface/Main.html:
1854         New file.
1855
1856         * UserInterface/Views/ContentBrowserTabContentView.js:
1857         (WebInspector.ContentBrowserTabContentView.prototype.contentBrowserTreeElementForRepresentedObject):
1858         (WebInspector.ContentBrowserTabContentView.prototype.treeElementForRepresentedObject):
1859         Allow subclasses to override behavior for retrieving the tree element
1860         for a represented object. Default behavior delegates the implementation
1861         to the navigation sidebar.
1862
1863         (WebInspector.ContentBrowserTabContentView.prototype._contentBrowserCurrentContentViewDidChange):
1864         (WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):
1865         (WebInspector.ContentBrowserTabContentView):
1866         (WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObjectInNavigationSidebar): Deleted.
1867         Renamed to _revealAndSelectRepresentedObject as it's no longer specific
1868         to the sidebar.
1869
1870         * UserInterface/Views/TabContentView.js:
1871         (WebInspector.TabContentView):
1872         (WebInspector.TabContentView.prototype.restoreStateFromCookie):
1873         (WebInspector.TabContentView.prototype.saveStateToCookie):
1874         A navigation sidebar shouldn't be required to save/restore cookie state.
1875
1876         * UserInterface/Views/TimelineTabContentView.css: Added.
1877         (.timeline.tab.content-view .navigation-bar > .item.toggle-navigation-sidebar.activate.button):
1878         (.timeline.tab.content-view .navigation-bar > .item.record-start-stop):
1879         (.timeline.tab.content-view .navigation-bar > .item.record-start-stop:hover):
1880         (.timeline.tab.content-view .navigation-bar > .item.record-start-stop:active):
1881         (.timeline.tab.content-view .navigation-bar > .item.record-start-stop *):
1882         (.timeline.tab.content-view .navigation-bar > .item.radio):
1883         Styles for new navigation items: record button and view mode radio buttons.
1884
1885         * UserInterface/Views/TimelineTabContentView.js:
1886         Logic for maintaining the timeline recording hierarchy and the state
1887         of the active recording has been added to the tab content view.
1888
1889         (WebInspector.TimelineTabContentView):
1890         (WebInspector.TimelineTabContentView.prototype.shown):
1891         (WebInspector.TimelineTabContentView.prototype.hidden):
1892         (WebInspector.TimelineTabContentView.prototype.canShowRepresentedObject):
1893         Objects other than recordings are no longer shown in the tab's content
1894         browser. Displaying other objects (such as timeline resources) in the
1895         content browser will be addressed in a follow-up patch: https://bugs.webkit.org/show_bug.cgi?id=154920.
1896
1897         (WebInspector.TimelineTabContentView.prototype.get supportsSplitContentBrowser):
1898         (WebInspector.TimelineTabContentView.prototype.restoreFromCookie):
1899         (WebInspector.TimelineTabContentView.prototype.saveToCookie):
1900         Persist view state that was previously located in the sidebar.
1901
1902         (WebInspector.TimelineTabContentView.prototype.treeElementForRepresentedObject):
1903         Implements logic previously limited to the navigation sidebar. Only tree
1904         elements for timeline recordings are supported, since other represented
1905         objects (timeline resources) no longer have content tree outline tree elements.
1906
1907         (WebInspector.TimelineTabContentView.prototype._capturingStartedOrStopped):
1908         (WebInspector.TimelineTabContentView.prototype._toggleRecordingOnSpacebar):
1909         (WebInspector.TimelineTabContentView.prototype._toggleNewRecordingOnSpacebar):
1910         (WebInspector.TimelineTabContentView.prototype._toggleRecording):
1911         (WebInspector.TimelineTabContentView.prototype._recordButtonClicked):
1912         (WebInspector.TimelineTabContentView.prototype._recordingsTreeSelectionDidChange):
1913         (WebInspector.TimelineTabContentView.prototype._recordingCreated):
1914         (WebInspector.TimelineTabContentView.prototype._addRecording):
1915         (WebInspector.TimelineTabContentView.prototype._recordingCountChanged):
1916         (WebInspector.TimelineTabContentView.prototype._recordingLoaded):
1917         Implementations copied from the sidebar panel.
1918
1919         (WebInspector.TimelineTabContentView.prototype._recordingSelected):
1920         Implementation similar to that which existed in the sidebar panel, except
1921         that logic related to instruments isn't needed. Updates to timeline view
1922         filters will be implemented in a follow-up patch: https://bugs.webkit.org/show_bug.cgi?id=154924.
1923
1924         (WebInspector.TimelineTabContentView.prototype._viewModeSelected):
1925         This method is now limited to the handling of the radio button event only.
1926         Additional logic which existed in the sidebar panel's implementation has
1927         been pushed into _changeViewMode, which does the actual work of toggling
1928         view modes.
1929
1930         (WebInspector.TimelineTabContentView.prototype._changeViewMode):
1931         Updates the current view mode state. If triggered by a user selection (was
1932         called by the radio button event handler), the correct timeline view for
1933         the new mode is shown.
1934
1935         (WebInspector.TimelineTabContentView.prototype._showTimelineViewForType):
1936         Helper function for showing the view for the specified timeline type, if
1937         the timeline exists in the current recording. Otherwise the overview timeline
1938         view is displayed.
1939
1940         (WebInspector.TimelineTabContentView.prototype._displayedContentViewNavigationItemsDidChange):
1941         Keep the view mode in sync with the content browser.
1942
1943         (WebInspector.TimelineTabContentView.prototype._getTimelineForCurrentContentView):
1944         Helper function for getting the currently displayed timeline.
1945
1946 2016-03-02  Matt Baker  <mattbaker@apple.com>
1947
1948         Web Inspector: Timelines UI redesign: add the timelines tree outline to the TimelineOverview
1949         https://bugs.webkit.org/show_bug.cgi?id=153034
1950         <rdar://problem/24195628>
1951
1952         Reviewed by Timothy Hatcher.
1953
1954         Move the Timelines tree outline to the overview, in preparation for <https://webkit.org/b/153036>.
1955
1956         * UserInterface/Views/OverviewTimelineView.css:
1957         (.timeline-view.overview > .timeline-ruler > .header): Deleted.
1958         (.timeline-view.overview > .timeline-ruler > .event-markers): Deleted.
1959         These are now part of the default ruler style.
1960
1961         * UserInterface/Views/TimelineOverview.css:
1962         (.timeline-overview > .tree-outline.timelines):
1963         (.timeline-overview > .tree-outline.timelines::before):
1964         (body.window-inactive .timeline-overview > .tree-outline.timelines):
1965         (.timeline-overview.frames > .tree-outline.timelines):
1966         (.timeline-overview > .tree-outline.timelines .close-button):
1967         (.timeline-overview > .tree-outline.timelines .item.selected .close-button):
1968         (.timeline-overview > .tree-outline.timelines .item:not(.selected):nth-child(even)):
1969         (.timeline-overview > .tree-outline.timelines .item:not(.selected):not(:first-child)):
1970         (.timeline-overview > .tree-outline.timelines .item.selected + .item):
1971         (body.window-inactive .timeline-overview > .tree-outline.timelines .item.selected + .item):
1972         (.timeline-overview > .tree-outline.timelines :focus .item.selected + .item):
1973         (.timeline-overview > .scroll-container):
1974         (.timeline-overview.frames > .scroll-container):
1975         (.timeline-overview > .timeline-ruler):
1976         (.timeline-overview.frames > .timeline-ruler):
1977         (.timeline-overview > .timeline-ruler > .markers):
1978         (.timeline-overview > .graphs-container):
1979         (.timeline-overview.frames > .graphs-container):
1980         Styles for the timelines tree outline. A content element is inserted before the
1981         tree to fill the gap created by the timeline ruler. For now the tree has a fixed
1982         width of 185px, and is hidden when displaying the FPS instrument.
1983
1984         * UserInterface/Views/TimelineOverview.js:
1985         (WebInspector.TimelineOverview):
1986         (WebInspector.TimelineOverview.prototype.get selectedTimeline):
1987         (WebInspector.TimelineOverview.prototype.set selectedTimeline):
1988         Make the selected timeline accessible to the parent view, since the overview doesn't
1989         have a "represented object", or receive ContentView change notifications.
1990
1991         (WebInspector.TimelineOverview.prototype._instrumentAdded):
1992         (WebInspector.TimelineOverview.prototype._instrumentRemoved):
1993         (WebInspector.TimelineOverview.prototype._viewModeDidChange):
1994         Add and remove instrument tree elements. Each tree element is created with a height
1995         equal to it's overview graph, and is shown/hidden based on the current view mode.
1996
1997         (WebInspector.TimelineOverview.prototype._timelinesTreeSelectionDidChange):
1998         Update the selected timeline and dispatch change event.
1999
2000         * UserInterface/Views/TimelineRecordingContentView.js:
2001         (WebInspector.TimelineRecordingContentView):
2002         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
2003         (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
2004         (WebInspector.TimelineRecordingContentView.prototype._timelineSelected):
2005         Sync the overview's timeline selection with the current ContentView's represented object.
2006
2007         * UserInterface/Views/TimelineRuler.css:
2008         (.timeline-ruler > .header):
2009         (.timeline-ruler > .header > .divider > .label):
2010         (.timeline-ruler > .selection-drag):
2011         (.timeline-ruler > .selection-handle):
2012         Ruler height changed to 23px, to be consistent with the DataGrid header.
2013
2014         * UserInterface/Views/TreeOutline.css:
2015         (.tree-outline.large .item .icon):
2016         Large icon style updated to match TimelineSidebarPanel.css. The 32px
2017         size is outdated and no longer used.
2018
2019         * UserInterface/Views/Variables.css:
2020         (:root):
2021         New color variables, used by TimelineOverview.css.
2022
2023 2016-02-29  Devin Rousso  <dcrousso+webkit@gmail.com>
2024
2025         Web Inspector: Add direct number inputs to Bezier editor
2026         https://bugs.webkit.org/show_bug.cgi?id=154809
2027         <rdar://problem/24881465>
2028
2029         Reviewed by Timothy Hatcher.
2030
2031         * UserInterface/Base/Main.js:
2032         (WebInspector._updateWindowKeydownListener):
2033         Now only adds the shared event listener when the first keydown listener
2034         is added via WebInspector.addWindowKeydownListener
2035
2036         * UserInterface/Controllers/CodeMirrorBezierEditingController.js:
2037         (WebInspector.CodeMirrorBezierEditingController.prototype.popoverDidDismiss):
2038
2039         * UserInterface/Controllers/CodeMirrorEditingController.js:
2040         (WebInspector.CodeMirrorEditingController.prototype.popoverDidDismiss):
2041         (WebInspector.CodeMirrorEditingController.prototype.didDismissPopover):
2042         Added function that is called when the popover is dismissed so that
2043         removing event listeners is possible.
2044
2045         * UserInterface/Views/BezierEditor.css:
2046         (.bezier-editor):
2047         (.bezier-editor > .number-input-container):
2048         (.bezier-editor > .number-input-container > input):
2049
2050         * UserInterface/Views/BezierEditor.js:
2051         (WebInspector.BezierEditor.createControl):
2052         (WebInspector.BezierEditor.createBezierInput):
2053         (WebInspector.BezierEditor):
2054         Added usage of Element.prototype.createChild for ease of readability.
2055         Also added input elements for manually changing the values of each bezier
2056         point's x and y values.
2057
2058         (WebInspector.BezierEditor.prototype.set bezier):
2059         (WebInspector.BezierEditor.prototype.removeListeners):
2060         (WebInspector.BezierEditor.prototype._handleMousedown):
2061         (WebInspector.BezierEditor.prototype._updateBezier):
2062         (WebInspector.BezierEditor.prototype._updateBezierPreview):
2063         (WebInspector.BezierEditor.prototype._triggerPreviewAnimation):
2064         (WebInspector.BezierEditor.prototype._handleNumberInputInput):
2065         (WebInspector.BezierEditor.prototype._handleNumberInputKeydown):
2066         (WebInspector.BezierEditor.prototype._changeBezierForInput):
2067         Refactored code to make it more reusable, as well as adding event listeners
2068         to the newly created inputs, including value chaning from the arrow keys.
2069
2070         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2071         (WebInspector.CSSStyleDeclarationTextEditor.prototype.didDismissPopover): Deleted.
2072         Removed unused code.
2073
2074         * UserInterface/Views/InlineSwatch.js:
2075         (WebInspector.InlineSwatch):
2076         (WebInspector.InlineSwatch.prototype.didDismissPopover):
2077         Removes any global event listeners added by the current editor if able.
2078
2079         (WebInspector.InlineSwatch.prototype._swatchElementClicked):
2080         Now saves the current editor object as a member variable.
2081
2082 2016-02-28  Nikita Vasilyev  <nvasilyev@apple.com>
2083
2084         Web Inspector: DataGrid's resizers aren't horizontally centered
2085         https://bugs.webkit.org/show_bug.cgi?id=154787
2086         <rdar://problem/24876901>
2087
2088         Reviewed by Timothy Hatcher.
2089
2090         * UserInterface/Views/DataGrid.css:
2091         (.data-grid .resizer):
2092         Use CSS transforms as margin-left doesn't support sub-pixel values.
2093
2094 2016-02-26  Nikita Vasilyev  <nvasilyev@apple.com>
2095
2096         Web Inspector: Increase clickable area of the console prompt
2097         https://bugs.webkit.org/show_bug.cgi?id=154719
2098         <rdar://problem/24854538>
2099
2100         Reviewed by Timothy Hatcher.
2101
2102         Clicking on the area around CodeMirror element now moves
2103         focus to the console prompt.
2104
2105         * UserInterface/Views/QuickConsole.js:
2106         (WebInspector.QuickConsole.prototype._handleMouseDown):
2107         Only capture mousedown events on .quick-console.
2108         Don't capture clicks on CodeMirror.
2109
2110         * UserInterface/Views/QuickConsole.css:
2111         (.quick-console > .console-prompt):
2112         (.quick-console > .console-prompt > .CodeMirror):
2113         Make sure .console-prompt is never an event.target for _handleMouseDown.
2114
2115 2016-02-26  Joseph Pecoraro  <pecoraro@apple.com>
2116
2117         Web Inspector: Remove unused member variables from overview graphs
2118         https://bugs.webkit.org/show_bug.cgi?id=154774
2119
2120         Reviewed by Timothy Hatcher.
2121
2122         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
2123         (WebInspector.LayoutTimelineOverviewGraph.prototype.reset):
2124         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
2125         (WebInspector.ScriptTimelineOverviewGraph.prototype.reset):
2126
2127 2016-02-26  Nikita Vasilyev  <nvasilyev@apple.com>
2128
2129         REGRESSION (r196741): Web Inspector: Bottom section of Layers sidebar is 1px shorter than the console prompt
2130         https://bugs.webkit.org/show_bug.cgi?id=154773
2131         <rdar://problem/24873345>
2132
2133         Reviewed by Timothy Hatcher.
2134
2135         * UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
2136         (.sidebar > .panel.details.layer-tree > .content):
2137         (.panel.details.layer-tree .bottom-bar):
2138
2139 2016-02-26  Devin Rousso  <dcrousso+webkit@gmail.com>
2140
2141         Web Inspector: Custom transition bezier curve editor preview should loop when not editing curve
2142         https://bugs.webkit.org/show_bug.cgi?id=154738
2143         <rdar://problem/24861563>
2144
2145         Reviewed by Timothy Hatcher.
2146
2147         Added extra frames to bezier preview animation to allow it to infinitely
2148         repeat without being jarring to watch.
2149
2150         * UserInterface/Views/BezierEditor.css:
2151         (.bezier-editor > .bezier-preview-timing.animate):
2152         (@keyframes bezierPreview):
2153         * UserInterface/Views/BezierEditor.js:
2154
2155 2016-02-26  Devin Rousso  <dcrousso+webkit@gmail.com>
2156
2157         Web Inspector: Keyboard controls to nudge control points in custom transition bezier curve editor would be nice
2158         https://bugs.webkit.org/show_bug.cgi?id=154739
2159         <rdar://problem/24861498>
2160
2161         Reviewed by Timothy Hatcher.
2162
2163         Adds ability for user to nudge the most recently selected bezier control
2164         handle by using the arrow keys. Also makes the currently selected bezier
2165         control line snap to an axis, which is defined when the user mouses down,
2166         whenever the mouse is dragged while the shift key is pressed.
2167
2168
2169         * UserInterface/Views/BezierEditor.js:
2170         (WebInspector.BezierEditor):
2171         (WebInspector.BezierEditor.prototype.handleKeydownEvent):
2172         (WebInspector.BezierEditor.prototype._handleMouseup):
2173         (WebInspector.BezierEditor.prototype._updateControlPointsForMouseEvent):
2174
2175 2016-02-26  Devin Rousso  <dcrousso+webkit@gmail.com>
2176
2177         Web Inspector: Option-clicking on the a CSS property sometimes doesn't work
2178         https://bugs.webkit.org/show_bug.cgi?id=154384
2179         <rdar://problem/24714755>
2180
2181         Reviewed by Timothy Hatcher.
2182
2183         It seems as though there were race conditions between CodeMirror's event
2184         and the native mousemove such that if CodeMirror fired second, the current
2185         candidate was cleared, and would not reset itself until the cursor was
2186         moved, at which point the same issue could happen. To fix this, the current
2187         candidate is no longer cleared by CodeMirror's event and is instead only
2188         modified by the native mouse-events.
2189
2190         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
2191         (WebInspector.CodeMirrorTokenTrackingController.prototype._hidePopover):
2192
2193 2016-02-25  Nikita Vasilyev  <nvasilyev@apple.com>
2194
2195         Web Inspector: Unify selected item colors
2196         https://bugs.webkit.org/show_bug.cgi?id=154668
2197         <rdar://problem/24832178>
2198
2199         Reviewed by Timothy Hatcher.
2200
2201         Use the same CSS variable color for all selected items.
2202
2203         * UserInterface/Views/TreeOutline.css:
2204         (.tree-outline:matches(:focus, .force-focus) .item.selected):
2205         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
2206         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.selected):
2207         * UserInterface/Views/VisualStyleSelectorTreeItem.css:
2208         (.item.visual-style-selector-item.selected):
2209         * UserInterface/Views/VisualStyleTabbedPropertiesRow.css:
2210         (.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button.selected):
2211
2212 2016-02-24  Joseph Pecoraro  <pecoraro@apple.com>
2213
2214         Web Inspector: Expose Proxy target and handler internal properties to Inspector
2215         https://bugs.webkit.org/show_bug.cgi?id=154663
2216
2217         Reviewed by Timothy Hatcher.
2218
2219         * UserInterface/Models/NativeFunctionParameters.js:
2220         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2221         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
2222         Improve the native parameter list for the global Reflect object methods.
2223         Include "enumerate" even though it is deprecated, because we implement it.
2224
2225 2016-02-24  Devin Rousso  <dcrousso+webkit@gmail.com>
2226
2227         Web Inspector: Visual Styles sidebar should support multiple animations
2228         https://bugs.webkit.org/show_bug.cgi?id=154546
2229         <rdar://problem/24773861>
2230
2231         Reviewed by Timothy Hatcher.
2232
2233         * UserInterface/Views/VisualStyleDetailsPanel.js:
2234         (WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection):
2235         Set additional flags on the optional properties of transition to ensure
2236         that the initial value of a new row is not considered invalid.
2237
2238         (WebInspector.VisualStyleDetailsPanel.prototype._populateAnimationSection):
2239         Added a comma-separated keyword list to provide support for multiple
2240         animations per rule.
2241
2242 2016-02-24  Timothy Hatcher  <timothy@apple.com>
2243
2244         Web Inspector: Remove unused Profile.png images
2245
2246         https://bugs.webkit.org/show_bug.cgi?id=154647
2247         rdar://problem/24820825
2248
2249         Reviewed by Brian Burg.
2250
2251         * UserInterface/Images/Profile.png: Removed.
2252         * UserInterface/Images/Profile@2x.png: Removed.
2253         * UserInterface/Images/gtk/Profile.png: Removed.
2254         * UserInterface/Images/gtk/Profile@2x.png: Removed.
2255         * UserInterface/Views/TimelineIcons.css:
2256         (.profile-icon .icon): Deleted.
2257
2258 2016-02-24  Matt Baker  <mattbaker@apple.com>
2259
2260         Web Inspector: TimelineViews should use the recording's end time when entire ruler range is selected
2261         https://bugs.webkit.org/show_bug.cgi?id=154644
2262         <rdar://problem/24818442>
2263
2264         Reviewed by Timothy Hatcher.
2265
2266         * UserInterface/Views/TimelineRecordingContentView.js:
2267         (WebInspector.TimelineRecordingContentView):
2268         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
2269         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
2270         Update current timeline view when entire range selected.
2271
2272         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
2273         Live-update the OverviewTimelineView during recording when entire range selected.
2274         
2275         (WebInspector.TimelineRecordingContentView.prototype._updateTimelineViewSelection):
2276         Update timeline view start and end times. When entire range selected, use the recording
2277         end time or current time (while capturing).
2278
2279 2016-02-24  Timothy Hatcher  <timothy@apple.com>
2280
2281         Follow up fix for the TimelineRuler "select all" mode to fix zeroTime.
2282
2283         https://bugs.webkit.org/show_bug.cgi?id=154561
2284         rdar://problem/24779872
2285
2286         * UserInterface/Views/TimelineRuler.js:
2287         (WebInspector.TimelineRuler.prototype.set zeroTime): Change selectionStartTime
2288         before _zeroTime so the check for entireRangeSelected still works.
2289
2290 2016-02-24  Matt Baker  <mattbaker@apple.com>
2291
2292         Web Inspector: TimelineRuler should have a "select all" mode
2293         https://bugs.webkit.org/show_bug.cgi?id=154561
2294         <rdar://problem/24779872>
2295
2296         Reviewed by Timothy Hatcher.
2297
2298         TimelineRuler is initialized with a selected range of [0, Number.MAX_VALUE),
2299         indicating the entire timeline is selected. This patch makes it possible to
2300         return the ruler to this state, after being overwritten by a custom selection.
2301         When no custom selection exists, the selection handles are hidden.
2302
2303         * UserInterface/Views/TimelineRuler.css:
2304         (.timeline-ruler.selection-hidden > :matches(.selection-drag, .selection-handle, .shaded-area)):
2305         Style for hiding selection controls as needed.
2306
2307         * UserInterface/Views/TimelineRuler.js:
2308         (WebInspector.TimelineRuler):
2309         Represent unbounded selection interval as [0, Number.MAX_VALUE).
2310
2311         (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):
2312         Register double-click event listener.
2313
2314         (WebInspector.TimelineRuler.prototype.set zeroTime):
2315         (WebInspector.TimelineRuler.prototype.get entireRangeSelected):
2316         (WebInspector.TimelineRuler.prototype.selectEntireRange):
2317         Let clients check and set the selection of the entire range without needing
2318         to use the internal sentinel values 0 and Number.MAX_VALUE.
2319
2320         (WebInspector.TimelineRuler.prototype._updateSelection):
2321         Update ruler styles and dispatch selection change event when entire
2322         range is selected.
2323
2324         (WebInspector.TimelineRuler.prototype._handleDoubleClick):
2325         If a user-defined selection exists, select the entire range.
2326
2327 2016-02-24  Nikita Vasilyev  <nvasilyev@apple.com>
2328
2329         Web Inspector: Dim selected items when docked Inspector window is inactive
2330         https://bugs.webkit.org/show_bug.cgi?id=154526
2331         <rdar://problem/24764365>
2332
2333         Abstract selected item and SVG glyph colors into CSS variables.
2334
2335         Reviewed by Timothy Hatcher.
2336
2337         * UserInterface/Views/BezierEditor.css:
2338         (.bezier-editor > .bezier-preview > div):
2339         * UserInterface/Views/ButtonNavigationItem.css:
2340         (.navigation-bar .item.button > .glyph):
2341         (.navigation-bar .item.button:not(.disabled):active > .glyph):
2342         (.navigation-bar .item.button:not(.disabled):matches(:focus, .activate.activated, .radio.selected) > .glyph):
2343         (.navigation-bar .item.button:not(.disabled):active:matches(:focus, .activate.activated, .radio.selected) > .glyph):
2344         (.navigation-bar .item.button.disabled > .glyph):
2345         * UserInterface/Views/ButtonToolbarItem.css:
2346         (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated) > .glyph):
2347         (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated) > .glyph):
2348         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
2349         (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle.selected):
2350         (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:not(.selected):hover):
2351         * UserInterface/Views/ConsoleMessageView.css:
2352         (.console-user-command.special-user-log > .console-message-text):
2353         * UserInterface/Views/DOMTreeOutline.css:
2354         (.tree-outline.dom li.pseudo-class-enabled > .selection::before):
2355         * UserInterface/Views/Main.css:
2356         (input[type=range]::-webkit-slider-runnable-track::before):
2357         * UserInterface/Views/RadioButtonNavigationItem.css:
2358         (.navigation-bar .item.radio.button.text-only:hover):
2359         (.navigation-bar .item.radio.button.text-only.selected):
2360         (.navigation-bar .item.radio.button.text-only:active):
2361         (.navigation-bar .item.radio.button.text-only.selected:active):
2362         * UserInterface/Views/ScopeBar.css:
2363         (.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows):
2364         (.scope-bar > li:hover):
2365         (.scope-bar > li.selected):
2366         (.scope-bar > li:active):
2367         (.scope-bar > li.selected:active):
2368         * UserInterface/Views/Variables.css:
2369         (:root):
2370         (body.window-inactive):
2371         * UserInterface/Views/VisualStyleDetailsPanel.css:
2372         (.sidebar > .panel.details.css-style .visual > .details-section .details-section.has-set-property > .header > span::after):
2373         * UserInterface/Views/VisualStyleKeywordIconList.css:
2374         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected)):
2375         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
2376
2377 2016-02-23  Dan Bernstein  <mitz@apple.com>
2378
2379         [Xcode] Linker errors display mangled names, but no longer should
2380         https://bugs.webkit.org/show_bug.cgi?id=154632
2381
2382         Reviewed by Sam Weinig.
2383
2384         * Configurations/Base.xcconfig: Stop setting LINKER_DISPLAYS_MANGLED_NAMES to YES.
2385
2386 2016-02-22  Matt Baker  <mattbaker@apple.com>
2387
2388         Web Inspector: Timelines sidebar and overview attempt to access undefined properties when FPS instrument is absent
2389         https://bugs.webkit.org/show_bug.cgi?id=154567
2390         <rdar://problem/24781536>
2391
2392         Reviewed by Joseph Pecoraro.
2393
2394         * UserInterface/Views/TimelineOverview.js:
2395         (WebInspector.TimelineOverview):
2396         The viewMode property should be in a valid state before attempting
2397         to access the current view mode settings.
2398
2399         * UserInterface/Views/TimelineSidebarPanel.js:
2400         (WebInspector.TimelineSidebarPanel.prototype.get minimumWidth):
2401         (WebInspector.TimelineSidebarPanel.prototype._updateViewModeIfNeeded):
2402         (WebInspector.TimelineSidebarPanel):
2403         Added missing checks for FPSInstrument support.
2404
2405 2016-02-22  Nikita Vasilyev  <nvasilyev@apple.com>
2406
2407         REGRESSION (r196620): Web Inspector: Filter bar in the left sidebar is 1px shorter than the console prompt
2408         https://bugs.webkit.org/show_bug.cgi?id=154529
2409
2410         Reviewed by Timothy Hatcher.
2411
2412         * UserInterface/Views/NavigationSidebarPanel.css:
2413         (.sidebar > .panel.navigation > .overflow-shadow):
2414
2415 2016-02-20  Devin Rousso  <dcrousso+webkit@gmail.com>
2416
2417         Web Inspector: Opacity slider thumb sometimes goes past the bar in Visual Styles sidebar
2418         https://bugs.webkit.org/show_bug.cgi?id=154497
2419
2420         Reviewed by Timothy Hatcher.
2421
2422         Since WebInspector.Slider uses CSS transforms to move the slider knob
2423         along the track, if the width of the track changes then the position
2424         of the knob would stay the same since it was translated instead of
2425         adjusting its position relative to the new width.
2426
2427         * UserInterface/Views/Slider.js:
2428         (WebInspector.Slider.prototype.recalculateKnobX):
2429         Resets the maxX value to 0 to ensure that a new maxX is calculated with
2430         the current width.
2431
2432         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
2433         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set specifiedWidth): Deleted.
2434         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.recalculateWidth):
2435
2436         * UserInterface/Views/VisualStyleDetailsPanel.js:
2437         (WebInspector.VisualStyleDetailsPanel.prototype.widthDidChange):
2438         (WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
2439         (WebInspector.VisualStyleDetailsPanel.prototype._populateDisplaySection):
2440
2441         * UserInterface/Views/VisualStyleUnitSlider.js:
2442         (WebInspector.VisualStyleUnitSlider.prototype.recalculateWidth):
2443
2444 2016-02-20  Devin Rousso  <dcrousso+webkit@gmail.com>
2445
2446         Web Inspector: Visual Styles: Modifying background expands Font section
2447         https://bugs.webkit.org/show_bug.cgi?id=154491
2448         <rdar://problem/24755440>
2449
2450         Reviewed by Timothy Hatcher.
2451
2452         When the user selects a new style, the Visual sidebar examines the property
2453         editors in each subsection to see if any have a value and expands/collapses
2454         the subsection accordingly. This issue was happening because that logic was
2455         also being triggered when the user didn't select a new style, which is
2456         controlled by DOMNodeStyles and the significantChange value in refresh().
2457
2458         * UserInterface/Base/Utilities.js:
2459         (String.prototype.toCamelCase):
2460         Added utility function to transform a string into a camel-cased version.
2461
2462         * UserInterface/Models/DOMNodeStyles.js:
2463         (WebInspector.DOMNodeStyles.prototype.refresh.fetchedComputedStyle):
2464         Dropped unused variable and added checks to make sure doubly-matching styles
2465         don't count as a significant change and cause refreshes of the styles sidebar.
2466
2467         * UserInterface/Views/VisualStyleDetailsPanel.js:
2468         (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
2469         If this function has an event, meaning it was triggered by a newly selected
2470         selector in the selector section, loop through each subsection and perform
2471         the logic described above, but instead only to open sections.
2472
2473         (WebInspector.VisualStyleDetailsPanel.prototype._generateSection.replaceDashWithCapital): Deleted.
2474         (WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
2475         Removed logic that was already being called by _sectionModified().
2476
2477 2016-02-20  Devin Rousso  <dcrousso+webkit@gmail.com>
2478
2479         Web Inspector: Text Align segmented control blinks while editing other properties in Visual Styles sidebar
2480         https://bugs.webkit.org/show_bug.cgi?id=154487
2481         <rdar://problem/24754703>
2482
2483         Reviewed by Timothy Hatcher.
2484
2485         The icon list property editor blinking issue was caused by the fact that
2486         the selected value was toggled on/off each time the value was set on the
2487         editor. In order to prevent this, the logic for the setter value() was
2488         modified to just match a keyword icon to the given value and select it.
2489
2490         * UserInterface/Views/VisualStyleKeywordIconList.js:
2491         (WebInspector.VisualStyleKeywordIconList.prototype.set value):
2492         (WebInspector.VisualStyleKeywordIconList.prototype._handleKeywordChanged):
2493
2494 2016-02-20  Nikita Vasilyev  <nvasilyev@apple.com>
2495
2496         Web Inspector: Placeholder text in Visual Styles sidebar table row should be white
2497         https://bugs.webkit.org/show_bug.cgi?id=154488
2498         <rdar://problem/24754715>
2499
2500         Reviewed by Timothy Hatcher.
2501
2502         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
2503         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle):
2504
2505 2016-02-19  Nikita Vasilyev  <nvasilyev@apple.com>
2506
2507         Web Inspector: Inherited selector rows have text too low
2508         https://bugs.webkit.org/show_bug.cgi?id=154489
2509         <rdar://problem/24754774>
2510
2511         Reviewed by Timothy Hatcher.
2512
2513         * UserInterface/Views/VisualStyleSelectorSection.css:
2514         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
2515
2516 2016-02-19  Devin Rousso  <dcrousso+webkit@gmail.com>
2517
2518         Web Inspector: Color picker in Visual Styles sidebar should not default to zero alpha
2519         https://bugs.webkit.org/show_bug.cgi?id=154474
2520         <rdar://problem/24750217>
2521
2522         Reviewed by Timothy Hatcher.
2523
2524         * UserInterface/Views/InlineSwatch.js:
2525         (WebInspector.InlineSwatch.prototype._fallbackValue):
2526         Changed the fallback value for color from transparent to white so that
2527         the color picker starts out with an alpha value of 1.
2528
2529         (WebInspector.InlineSwatch.prototype._handleContextMenuEvent):
2530         Prevents context menu events from having an effect if there is no value
2531         for them to modify.
2532
2533 2016-02-19  Matt Baker  <mattbaker@apple.com>
2534
2535         Web Inspector: CSS var() function should be syntax highlighted
2536         https://bugs.webkit.org/show_bug.cgi?id=154406
2537         <rdar://problem/24726136>
2538
2539         Reviewed by Timothy Hatcher.
2540
2541         * UserInterface/Models/CSSCompletions.js:
2542         Added "var" to CodeMirror value keywords for syntax highlighting.
2543
2544         * UserInterface/Models/CSSKeywordCompletions.js:
2545         (WebInspector.CSSKeywordCompletions.forProperty):
2546         Added "var" to accepted keywords for auto-completion.
2547
2548 2016-02-18  Devin Rousso  <dcrousso+webkit@gmail.com>
2549
2550         Web Inspector: Styles Sidebar focus jumps when trying to edit a color
2551         https://bugs.webkit.org/show_bug.cgi?id=154404
2552         <rdar://problem/24725744>
2553
2554         Reviewed by Timothy Hatcher.
2555
2556         Clicking an inline swatch in the CSS Rules sidebar causes any focused
2557         editor, if any, to become blurred and therefore fire its handler function.
2558         This causes an issue because when a CodeMirror instance in the styles
2559         sidebar becomes blurred, it is possible for the entire Rules sidebar to
2560         refresh and recreate all of the sections (r187714), meaning that it will
2561         reselect whatever editor was previously selected before the refresh,
2562         causing the swatch popup to be blurred and therefore dismiss.
2563
2564         * UserInterface/Views/CSSStyleDeclarationSection.js:
2565         (WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorBlurActiveEditor):
2566
2567         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2568         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.createSwatch):
2569         (WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchBeforeClicked):
2570         Add listener for new event and call to delegate function for handling it.
2571
2572         * UserInterface/Views/InlineSwatch.js:
2573         (WebInspector.InlineSwatch.prototype._swatchElementClicked):
2574         Now fires an event before the clicked logic happens, but still after the
2575         click event is fired on the element.
2576
2577         * UserInterface/Views/RulesStyleDetailsPanel.js:
2578         (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionBlurActiveEditor):
2579         Clears the previously focused editor so when a reset happens no editor
2580         is refocused.
2581
2582 2016-02-18  Joseph Pecoraro  <pecoraro@apple.com>
2583
2584         Web Inspector: Add Native Parameter Lists to Console prototype functions
2585         https://bugs.webkit.org/show_bug.cgi?id=154419
2586         <rdar://problem/24730314>
2587
2588         Reviewed by Timothy Hatcher.
2589
2590         * UserInterface/Models/NativeFunctionParameters.js:
2591
2592 2016-02-18  Nikita Vasilyev  <nvasilyev@apple.com>
2593
2594         Web Inspector: Align console prompt with execution context selector
2595         https://bugs.webkit.org/show_bug.cgi?id=154381
2596
2597         Reviewed by Timothy Hatcher.
2598
2599         * UserInterface/Views/QuickConsole.css:
2600         (.quick-console > .console-prompt > .CodeMirror):
2601         (.quick-console .execution-context):
2602
2603 2016-02-18  Devin Rousso  <dcrousso+webkit@gmail.com>
2604
2605         Web Inspector: Storage tab navigation bar should fit on a single line
2606         https://bugs.webkit.org/show_bug.cgi?id=152473
2607         <rdar://problem/24023435>
2608
2609         Reviewed by Timothy Hatcher.
2610
2611         * UserInterface/Base/Utilities.js:
2612         (Number.constrain):
2613         Reworked logic to ensure that the returned value is never less than the
2614         given minimum value.
2615
2616 2016-02-17  Devin Rousso  <dcrousso+webkit@gmail.com>
2617
2618         Web Inspector: In the styles sidebar, Option-clicking on --css-variable should jump to its definition
2619         https://bugs.webkit.org/show_bug.cgi?id=154082
2620         <rdar://problem/24593361>
2621
2622         Reviewed by Timothy Hatcher.
2623
2624         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2625         (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked.showRangeInSourceCode):
2626         (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
2627         Now tests to see if the highlighted token was a CSS variable and if
2628         so, attempts to show the declaration of the CSS variable instead of
2629         the location where it is used.
2630
2631 2016-02-17  Nikita Vasilyev  <nvasilyev@apple.com>
2632
2633         REGRESSION (r196620): Web Inspector: DataGrid headers and resizers are misaligned when the scrollbar is visible
2634         https://bugs.webkit.org/show_bug.cgi?id=154280
2635         <rdar://problem/24670567>
2636
2637         Reviewed by Timothy Hatcher.
2638
2639         Revert back to "overflow-y: overlay".
2640
2641         * UserInterface/Views/DataGrid.css:
2642         (.data-grid .data-container):
2643         * UserInterface/Views/DatabaseContentView.css:
2644         (.storage-view.query):
2645
2646 2016-02-17  Nikita Vasilyev  <nvasilyev@apple.com>
2647
2648         REGRESSION (r196620): Web Inspector: When the scrollbars are always visible, the console prompt is 1px taller
2649         https://bugs.webkit.org/show_bug.cgi?id=154328
2650         <rdar://problem/24692996>
2651
2652         Introduce a CSS variable to ensure that the quick console is the
2653         same height as the bottom right section of the styles sidebar.
2654
2655         Reviewed by Timothy Hatcher.
2656
2657         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
2658         (.sidebar > .panel.details.css-style > .content ~ .options-container):
2659         (.sidebar > .panel.details.css-style > .content ~ .class-list-container):
2660         * UserInterface/Views/QuickConsole.css:
2661         (.quick-console):
2662         * UserInterface/Views/Variables.css:
2663         (:root):
2664
2665 2016-02-17  Devin Rousso  <dcrousso+webkit@gmail.com>
2666
2667         Web Inspector: Add Context menu separators to Styles sidebar
2668         https://bugs.webkit.org/show_bug.cgi?id=154360
2669
2670         Reviewed by Joseph Pecoraro.
2671
2672         In the Styles sidebar, there are three main sections for the context menu:
2673         - Copy and Duplicate/Show-source
2674         - Add pseudo-class rules
2675         - Add/Select pseudo-element rules
2676         These three sections were all put together in the same context menu, which
2677         was very crowded as a result. Separators have been added to make it so that
2678         these three sections are now separated and clearly show their different uses.
2679
2680         * UserInterface/Views/CSSStyleDeclarationSection.js:
2681         (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
2682
2683         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
2684         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
2685
2686 2016-02-17  Matt Baker  <mattbaker@apple.com>
2687
2688         Web Inspector: add CSS variables for common border/background colors
2689         https://bugs.webkit.org/show_bug.cgi?id=154302
2690         <rdar://problem/24680944>
2691
2692         Reviewed by Timothy Hatcher.
2693
2694         Added CSS variables for commonly used border and background colors, and removed
2695         duplicate CSS variables with less generic names. Inactive border colors declared in
2696         rules with a body.window-inactive selector have been removed. A new rule using this
2697         selector in Variables.css sets "--border-color" to the inactive color.
2698
2699         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
2700         (.sidebar > .panel.details.css-style > .content > .pseudo-classes):
2701         (.sidebar > .panel.details.css-style > .content ~ :matches(.options-container, .class-list-container)):
2702         (.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-has-label)):
2703         * UserInterface/Views/DataGrid.css:
2704         (.data-grid.inline):
2705         (.data-grid th):
2706         (.data-grid :matches(th, td):not(:last-child)):
2707         (body.window-inactive .data-grid th): Deleted.
2708         (body.window-inactive .data-grid :matches(th, td):not(:last-child)): Deleted.
2709         * UserInterface/Views/DebuggerSidebarPanel.css:
2710         (.sidebar > .panel.navigation.debugger.paused .details-section.scripts):
2711         * UserInterface/Views/DetailsSection.css:
2712         (.details-section):
2713         (.details-section .details-section:first-child):
2714         (.details-section > .header):
2715         (.details-section > .content > .group):
2716         (.details-section > .content > .group:nth-child(even) > .row:matches(.simple:first-child > *, :not(.simple):first-child)):
2717         * UserInterface/Views/FilterBar.css:
2718         (.filter-bar):
2719         * UserInterface/Views/FindBanner.css:
2720         (.find-banner):
2721         (body.window-inactive .find-banner): Deleted.
2722         * UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
2723         (.panel.details.layer-tree .bottom-bar):
2724         * UserInterface/Views/Main.css:
2725         (body.docked.bottom):
2726         (body.docked.right):
2727         (#split-content-browser):
2728         (#split-content-browser > .navigation-bar):
2729         (body.window-inactive.docked.bottom): Deleted.
2730         (body.window-inactive.docked.right): Deleted.
2731         (body.window-inactive #split-content-browser): Deleted.
2732         * UserInterface/Views/MemoryCategoryView.css:
2733         (.memory-category-view):
2734         (.memory-category-view > .details):
2735         (body.window-inactive .memory-category-view): Deleted.
2736         (body.window-inactive .memory-category-view > .details): Deleted.
2737         * UserInterface/Views/MemoryTimelineView.css:
2738         (.timeline-view.memory):
2739         (.timeline-view.memory > .content > .overview):
2740         (.timeline-view.memory > .content > .details > .subtitle):
2741         (.timeline-view.memory > .content > .overview > .divider):
2742         (body.window-inactive .timeline-view.memory): Deleted.
2743         (body.window-inactive .timeline-view.memory > .content > .overview): Deleted.
2744         (body.window-inactive .timeline-view.memory > .content > .details > .subtitle): Deleted.
2745         (body.window-inactive .timeline-view.memory > .content > .overview > .divider): Deleted.
2746         * UserInterface/Views/NavigationBar.css:
2747         (.navigation-bar):
2748         (body.window-inactive .navigation-bar): Deleted.
2749         * UserInterface/Views/NavigationSidebarPanel.css:
2750         (.sidebar > .panel.navigation > .overflow-shadow):
2751         (body.window-inactive .sidebar > .panel.navigation > .overflow-shadow): Deleted.
2752         * UserInterface/Views/NetworkSidebarPanel.css:
2753         (.sidebar > .panel.navigation.network > .title-bar):
2754         (body.window-inactive .sidebar > .panel.navigation.network > .title-bar): Deleted.
2755         * UserInterface/Views/OverviewTimelineView.css:
2756         (.timeline-view.overview > .timeline-ruler > .header):
2757         (body.window-inactive .timeline-view.overview > .timeline-ruler > .header): Deleted.
2758         * UserInterface/Views/QuickConsole.css:
2759         (.quick-console):
2760         (body.window-inactive .quick-console): Deleted.
2761         * UserInterface/Views/Sidebar.css:
2762         (.sidebar):
2763         (.sidebar.left):
2764         (.sidebar.right):
2765         (body.window-inactive .sidebar.left): Deleted.
2766         (body.window-inactive .sidebar.right): Deleted.
2767         * UserInterface/Views/TimelineDataGrid.css:
2768         (.data-grid.timeline th):
2769         (body.window-inactive .data-grid.timeline th): Deleted.
2770         * UserInterface/Views/TimelineRuler.css:
2771         (.timeline-ruler > .header):
2772         (body.window-inactive .timeline-ruler > .header): Deleted.
2773         * UserInterface/Views/TimelineSidebarPanel.css:
2774         (.sidebar > .panel.navigation.timeline > .title-bar):
2775         (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
2776         (body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar): Deleted.
2777         (body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar.timeline-events): Deleted.
2778         * UserInterface/Views/Toolbar.css:
2779         (body.latest-mac .toolbar .dashboard-container):
2780         * UserInterface/Views/Variables.css:
2781         (:root):
2782         (body.window-inactive *):
2783         * UserInterface/Views/VisualStyleSelectorSection.css:
2784         (.details-section.visual-style-selector-section:not(.collapsed) > .header):
2785         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
2786
2787 2016-02-17  Matt Baker  <mattbaker@apple.com>
2788
2789         Web Inspector: Add singular and plural cases for "Ignore n times before stopping" label in breakpoint editor
2790         https://bugs.webkit.org/show_bug.cgi?id=154335
2791         <rdar://problem/24655491>
2792
2793         Reviewed by Timothy Hatcher.
2794
2795         * Localizations/en.lproj/localizedStrings.js:
2796         Added string for singular ignore count.
2797
2798         * UserInterface/Controllers/BreakpointPopoverController.js:
2799         (WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
2800         Remove unused variable "this._ignoreCount" and update ignore count text.
2801
2802         (WebInspector.BreakpointPopoverController.prototype._popoverIgnoreInputChanged):
2803         Update ignore count text as value changes.
2804
2805         (WebInspector.BreakpointPopoverController.prototype._updateIgnoreCountText):
2806         Set singular text when count === 1, otherwise set plural text.
2807
2808 2016-02-16  Nikita Vasilyev  <nvasilyev@apple.com>
2809
2810         REGRESSION (r196620): Web Inspector: Selecting last message in the console makes the scrollbar visible
2811         https://bugs.webkit.org/show_bug.cgi?id=154326
2812         <rdar://problem/24692717>
2813
2814         Reviewed by Timothy Hatcher.
2815
2816         * UserInterface/Views/LogContentView.css:
2817         (.console-item.selected::after):
2818         Make sure the selected message marker (blue vertical line) doesn't
2819         go over the content view.
2820
2821 2016-02-16  Joseph Pecoraro  <pecoraro@apple.com>
2822
2823         JSContext Inspector: Support for inline source maps
2824         https://bugs.webkit.org/show_bug.cgi?id=154303
2825         <rdar://problem/24670392>
2826
2827         Reviewed by Timothy Hatcher.
2828
2829         * UserInterface/Base/URLUtilities.js:
2830         (parseDataURL):
2831         Break a data URL into components.
2832
2833         * UserInterface/Controllers/SourceMapManager.js:
2834         (WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
2835         Handle a data URL without using NetworkAgent. Also move references
2836         to a main frame after checking for NetworkAgent.
2837
2838         * UserInterface/Models/SourceMap.js:
2839         (WebInspector.SourceMap.prototype.get sourceMappingBasePathURLComponents):
2840         * UserInterface/Models/SourceMapResource.js:
2841         (WebInspector.SourceMapResource.prototype.get sourceMapDisplaySubpath):
2842         Handle JavaScript debuggable script URLs which may not be complete URLs.
2843
2844         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
2845         Also handle if NetworkAgent does not exist.
2846
2847         * UserInterface/Views/ResourceSidebarPanel.js:
2848         (WebInspector.ResourceSidebarPanel):
2849         When connected to a JavaScript debuggable we were hiding disclosure
2850         triangles as we did not expect resources to have subresources. If
2851         a SourceMap is added, show them again.
2852
2853 2016-02-16  Nikita Vasilyev  <nvasilyev@apple.com>
2854
2855         Web Inspector: Increase the width of the find banner's search field
2856         https://bugs.webkit.org/show_bug.cgi?id=154284
2857
2858         Reviewed by Timothy Hatcher.
2859
2860         * UserInterface/Views/FindBanner.css:
2861         (.find-banner > input[type="search"]):
2862         Keep the minimum width the same as the current width.
2863
2864         (body .find-banner.console-find-banner):
2865         Overwrite ".navigation-bar .item {flex-wrap: nowrap}".
2866
2867 2016-02-15  Nikita Vasilyev  <nvasilyev@apple.com>
2868
2869         Web Inspector: Non-overlay scrollbars obscure the ends of lines in the console and sidebars
2870         https://bugs.webkit.org/show_bug.cgi?id=154276
2871
2872         Reviewed by Timothy Hatcher.
2873
2874         * UserInterface/Views/DataGrid.css:
2875         (.data-grid .data-container):
2876         * UserInterface/Views/DatabaseContentView.css:
2877         (.storage-view.query):
2878         * UserInterface/Views/LogContentView.css:
2879         (.content-view.log):
2880         Replace all occurrences of "overflow-y: overlay" with "overflow-y: auto".
2881
2882 2016-02-15  Devin Rousso  <dcrousso+webkit@gmail.com>
2883
2884         Web Inspector: Visual sidebar minor regression fixes
2885         https://bugs.webkit.org/show_bug.cgi?id=154237
2886         <rdar://problem/24653135>
2887
2888         Reviewed by Timothy Hatcher.
2889
2890         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
2891         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-special-property-placeholder):
2892         Do not display the placeholder, as it is not used in comma separated value
2893         property editors.
2894
2895         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle::before):
2896         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle): Deleted.
2897         Added ::before to get rid of the "-" on subtitle elements (r196266).
2898
2899         * UserInterface/Views/VisualStyleDetailsPanel.js:
2900         (WebInspector.VisualStyleDetailsPanel.prototype.widthDidChange):
2901         Recalculates the width for all comma separated value elements (r196266).
2902
2903         (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
2904         Only open/close sections with properties that have values when a new node
2905         or selector item is selected.
2906
2907         (WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
2908         Make copies of the default unit lists to prevent modifying the values used
2909         later in other sections (r194728).
2910
2911 2016-02-15  Matt Baker  <mattbaker@apple.com>
2912
2913         Web Inspector: eliminate the linear and rendering frames TimelineOverview subclasses
2914         https://bugs.webkit.org/show_bug.cgi?id=154000
2915         <rdar://problem/24553105>
2916
2917         Reviewed by Timothy Hatcher.
2918
2919         This patch eliminates the TimelineOverview subclasses, and moves logic for switching between
2920         a time-based or frame-based graph into the overview itself. The values of the overview's start
2921         time, current time, and end time now match the values in the timeline recording regardless of the
2922         current view mode. When viewing the rendering frames graph, the recording times are ignored and
2923         all frames are included. The overview maintains separate zoom level and ruler selection settings
2924         for each view mode.
2925
2926         * UserInterface/Main.html:
2927         * UserInterface/Views/LinearTimelineOverview.js: Removed.
2928         * UserInterface/Views/RenderingFrameTimelineOverview.js: Removed.
2929         Removed TimelineOverview subclasses.
2930
2931         * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
2932         (WebInspector.RenderingFrameTimelineOverviewGraph.prototype.get height):
2933         Set FPS graph height to 108 pixels.
2934
2935         * UserInterface/Views/TimelineOverview.css:
2936         (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
2937         (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:not(:first-child)):
2938         (.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)): Deleted.
2939         (.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)): Deleted.
2940         Disable alternating graph styles when showing FPS instrument.
2941
2942         * UserInterface/Views/TimelineOverview.js:
2943         (WebInspector.TimelineOverview):
2944         Create separate settings for timelines and FPS view modes.
2945         (WebInspector.TimelineOverview.prototype.get viewMode):
2946         (WebInspector.TimelineOverview.prototype.set viewMode):
2947         (WebInspector.TimelineOverview.prototype.set startTime):
2948         Adjust the current ruler selection when start time changes. Not necessary
2949         when showing the FPS instrument, which doesn't have a start time.
2950         (WebInspector.TimelineOverview.prototype.get secondsPerPixel):
2951         (WebInspector.TimelineOverview.prototype.set secondsPerPixel):
2952         Now a wrapper around the corresponding view mode setting.
2953         (WebInspector.TimelineOverview.prototype.set pixelAlignDuration):
2954         (WebInspector.TimelineOverview.prototype.get scrollStartTime):
2955         (WebInspector.TimelineOverview.prototype.set scrollStartTime):
2956         Now a wrapper around the corresponding view mode setting.
2957         (WebInspector.TimelineOverview.prototype.get visibleDuration):
2958         (WebInspector.TimelineOverview.prototype.get height):
2959         Return the sum height of all visible overview graphs.
2960         (WebInspector.TimelineOverview.prototype.shown):
2961         Show overview graphs for the current view mode.
2962         (WebInspector.TimelineOverview.prototype.hidden):
2963         (WebInspector.TimelineOverview.prototype.reset):
2964         (WebInspector.TimelineOverview.prototype.recordWasFiltered):
2965         (WebInspector.TimelineOverview.prototype.selectRecord):
2966         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
2967         (WebInspector.TimelineOverview.prototype.layout):
2968         Layout for both view modes is largely identical, and differs only in the treatment
2969         of the overview's start time, current time, and end time. Time-based instruments
2970         use time values from the recording, while the FPS instrument has a fixed start time
2971         of zero, and a current and end time pinned to the last rendering frame.
2972         (WebInspector.TimelineOverview.prototype._handleScrollEvent):
2973         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
2974         (WebInspector.TimelineOverview._handleGestureStart):
2975         (WebInspector.TimelineOverview.prototype._handleGestureChange):
2976         (WebInspector.TimelineOverview.prototype._instrumentAdded):
2977         (WebInspector.TimelineOverview.prototype._instrumentRemoved):
2978         (WebInspector.TimelineOverview.prototype._timelineRulerMouseClicked):
2979         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
2980         Save the selection for the current view mode.
2981         (WebInspector.TimelineOverview.prototype._recordSelected):
2982         (WebInspector.TimelineOverview.prototype._resetSelection.reset):
2983         (WebInspector.TimelineOverview.prototype._resetSelection):
2984         (WebInspector.TimelineOverview.prototype._canShowTimelineType):
2985         (WebInspector.TimelineOverview.prototype._viewModeDidChange):
2986         Sets zoom level, ruler selection, and graph visibility based on current view mode.
2987         (WebInspector.TimelineOverview.prototype._createViewModeSettings):
2988         Helper function for creating an object to track the zoom level and ruler
2989         selection of each view mode.
2990         (WebInspector.TimelineOverview.prototype.get _currentSettings):
2991         Internal getter for retrieving the settings for the current view mode.
2992         (WebInspector.TimelineOverview.prototype.canShowTimeline): Deleted.
2993         Not needed now that the overview contains all timelines.
2994
2995         * UserInterface/Views/TimelineOverviewGraph.js:
2996         (WebInspector.TimelineOverviewGraph):
2997         (WebInspector.TimelineOverviewGraph.prototype.shown):
2998         (WebInspector.TimelineOverviewGraph.prototype.hidden):
2999         Toggle CSS hidden class.
3000
3001         * UserInterface/Views/TimelineRecordFrame.js:
3002         No need to query offsetHeight now that TimelineOverviewGraph has a height property.
3003
3004         * UserInterface/Views/TimelineRecordingContentView.js:
3005         (WebInspector.TimelineRecordingContentView):
3006         Create a single timeline overview.
3007         (WebInspector.TimelineRecordingContentView.prototype.get timelineOverviewHeight):
3008         (WebInspector.TimelineRecordingContentView.prototype.shown):
3009         (WebInspector.TimelineRecordingContentView.prototype.hidden):
3010         (WebInspector.TimelineRecordingContentView.prototype.recordWasFiltered):
3011         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
3012         Update the timeline  overview's mode based on the current timeline view.
3013         (WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
3014         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
3015         Removed special handling for the FPS overview.
3016         Removed selection start time adjustment, which is now handled internally by TimelineOverview.
3017         (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
3018         (WebInspector.TimelineRecordingContentView.prototype._recordingReset):
3019         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
3020         (WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
3021
3022         * UserInterface/Views/TimelineSidebarPanel.js:
3023         (WebInspector.TimelineSidebarPanel):
3024         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
3025         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
3026         (WebInspector.TimelineSidebarPanel.prototype._renderingFrameTimelineTimesUpdated):
3027         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
3028         Refresh the view mode when the content view changes.
3029         (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
3030         (WebInspector.TimelineSidebarPanel.prototype._viewModeSelected):
3031         (WebInspector.TimelineSidebarPanel.prototype._viewModeForTimeline):
3032         (WebInspector.TimelineSidebarPanel.prototype._updateViewModeIfNeeded):
3033         Sync the tree outline, frames chart, and navigation bar with the current view mode.
3034         (WebInspector.TimelineSidebarPanel.prototype.shown):
3035         Refreshing the frame selection is unnecessary. It's updated by the recording content
3036         view whenever the ruler selection changes.
3037         (WebInspector.TimelineSidebarPanel.prototype.get viewMode): Deleted.
3038         No longer public, since the timeline overview now owns the view mode. Internally the sidebar
3039         still tracks the current state so it can determine when the value has changed.
3040         (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
3041         (WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForTimeline):
3042         The sidebar should only be synced to the overview after the content view has changed.
3043         (WebInspector.TimelineSidebarPanel.prototype.updateFrameSelection):
3044         Removed unnecessary assertion.
3045         (WebInspector.TimelineSidebarPanel.prototype._changeViewMode): Deleted.
3046         Replaced by _updateViewModeIfNeeded.
3047
3048 2016-02-15  Timothy Hatcher  <timothy@apple.com>
3049
3050         Web Inspector: Show inherited CSS variables in the Style sidebar
3051         https://bugs.webkit.org/show_bug.cgi?id=154215
3052         rdar://problem/24644058
3053
3054         Reviewed by Joseph Pecoraro.
3055
3056         * UserInterface/Models/CSSProperty.js:
3057         (WebInspector.CSSProperty.isInheritedPropertyName): Added.
3058         (WebInspector.CSSProperty.prototype.update): Use WebInspector.CSSProperty.isInheritedPropertyName.
3059         * UserInterface/Models/DOMNodeStyles.js:
3060         (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload): Use WebInspector.CSSProperty.isInheritedPropertyName.
3061
3062 2016-02-15  Timothy Hatcher  <timothy@apple.com>
3063
3064         Web Inspector: Sidebars are defaulting to their minimum width, instead of a good width
3065         https://bugs.webkit.org/show_bug.cgi?id=154218
3066         rdar://problem/24644192
3067
3068         Reviewed by Joseph Pecoraro.
3069
3070         * UserInterface/Views/SidebarPanel.js:
3071         (WebInspector.SidebarPanel): Default the setting value to 300 instead of 0, so the minimum isn't used.
3072
3073 2016-02-15  Timothy Hatcher  <timothy@apple.com>
3074
3075         Web Inspector: CSS variables are not formatted correctly
3076         https://bugs.webkit.org/show_bug.cgi?id=154217
3077         rdar://problem/24644154
3078
3079         Reviewed by Joseph Pecoraro.
3080
3081         * UserInterface/Views/CodeMirrorFormatters.js:
3082         (newlineBeforeToken): Check for `variable-2` token in the `maybeprop` state.
3083
3084 2016-02-15  Timothy Hatcher  <timothy@apple.com>
3085
3086         Web Inspector: CodeMirror styles needs updated for CSS variables
3087         https://bugs.webkit.org/show_bug.cgi?id=154216
3088         rdar://problem/24644146
3089
3090         Reviewed by Joseph Pecoraro.
3091
3092         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
3093         (.cm-s-default .cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Added .cm-variable-2.
3094         (.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Ditto.
3095
3096 2016-02-13  Dan Bernstein  <mitz@apple.com>
3097
3098         Removed the unused Frameworks group.
3099
3100         Rubber-stamped by Sam Weinig.
3101
3102         * WebInspectorUI.xcodeproj/project.pbxproj:
3103
3104 2016-02-13  Devin Rousso  <dcrousso+webkit@gmail.com>
3105
3106         Web Inspector: DataGrid Header Cells should have Context Menu for Sorting
3107         https://bugs.webkit.org/show_bug.cgi?id=154050
3108
3109         Reviewed by Joseph Pecoraro.
3110
3111         * Localizations/en.lproj/localizedStrings.js:
3112         * UserInterface/Views/DataGrid.js:
3113         (WebInspector.DataGrid.prototype.set sortOrder):
3114         (WebInspector.DataGrid.prototype._toggledSortOrder):
3115         Returns the opposite sort order from the current order.
3116
3117         (WebInspector.DataGrid.prototype._selectSortColumnAndSetOrder):
3118         Changes the selected column to the one with the specified identifier and
3119         then switches the sort order to the given order.
3120
3121         (WebInspector.DataGrid.prototype._headerCellClicked):
3122         Moved logic for switching cells/sort-order to a separate function for
3123         better reusability.
3124
3125         (WebInspector.DataGrid.prototype._contextMenuInHeader):
3126         Adds context menu items on DataGrid header items to change the current
3127         sort order to the specified order. If the context menu is on the selected
3128         header item, only show the sort order that is not currently applied.
3129
3130 2016-02-12  Joseph Pecoraro  <pecoraro@apple.com>
3131
3132         Web Inspector: Rename domAgent to domTreeManager in DOMNode
3133         https://bugs.webkit.org/show_bug.cgi?id=154194
3134
3135         Reviewed by Timothy Hatcher.
3136
3137         * UserInterface/Models/DOMNode.js:
3138         (WebInspector.DOMNode):
3139
3140 2016-02-12  Joseph Pecoraro  <pecoraro@apple.com>
3141
3142         Web Inspector: Avoid including ESLint until it is used
3143         https://bugs.webkit.org/show_bug.cgi?id=154196
3144
3145         Reviewed by Timothy Hatcher.
3146
3147         * Scripts/copy-user-interface-resources.pl:
3148         Do not include ESLint in optimized output yet.
3149
3150         * UserInterface/Controllers/AnalyzerManager.js:
3151         Do not reference `eslint` until we use it.
3152
3153         * UserInterface/Main.html:
3154         Remove include to ESLint until we need it.
3155
3156 2016-02-12  Joseph Pecoraro  <pecoraro@apple.com>
3157
3158         Web Inspector: Tabs: Conflicts with multiple Formatters per SourceCode
3159         https://bugs.webkit.org/show_bug.cgi?id=144717
3160         <rdar://problem/20845163>
3161
3162         Reviewed by Timothy Hatcher.
3163
3164         The underlying issue here is that each tab may create its own ContentView,
3165         and therefore SourceCodeTextEditor, per-SourceCode. Each SourceCodeTextEditor
3166         was mutating the SourceCode's state without listening for or expecting
3167         updates from the other. This causes a bunch of different issues:
3168
3169             - editing in one tab does not get reflected in another tab for
3170               the same resource. This is common when using the Search tab
3171               to find and make an edit, then debug in another tab.
3172
3173             - one tab may auto format (pretty print) a resource and set
3174               the formatter on the SourceCode to make SourceCodeLocations
3175               know about formatted locations. However, a jump to location
3176               that opens a new ContentView for the same Resource will
3177               start out un-formatted, and misunderstand the location.
3178               This often results in an unexpected jump to 0:0.
3179
3180         The solution taken by this change is to have a single ContentView
3181         per represented object. When that ContentView gets shown in a new
3182         ContentViewContainer it gets transferred, leaving a tombstone in the
3183         previous ContentViewContainer that can be revived later. This keeps
3184         back foward lists with expected values. It also means there is a
3185         single ContentView that doesn't need to worry about having the
3186         state of its represented object getting overrun.
3187
3188         Currently this makes the assumption that we won't ever show multiple
3189         ContentViews for the same represented object at the same time. This
3190         may need to change if we were to support split pane editor or
3191         something like that.
3192
3193         This also makes the assumption that ContentViewContainer's showEntry
3194         and hideEntry do not modify the back forward list. That has not been
3195         the case, and I think it is safe to assume it will never be the case.
3196
3197         The contracts this patch maintains:
3198
3199             - a ContentView is always owned by one ViewContainer.
3200               This ViewContainer is the one showing the ContentView.
3201
3202             - when another ViewContainer wants to share the ContentView
3203               ownership is transferred. Creating tombstones in the old
3204               ViewContainer and Reviving tombstones in the new ViewContainer.
3205
3206             - ViewContainer's have a tombstone per-BackForwardEntry that
3207               references the ContentView.
3208
3209             - In order to ensure a ContentView always gets closed, when
3210               the owning ViewContainer would close the ContentView it
3211               checks if it should instead transfer ownership of the
3212               ContentView to another interested ViewContainer.
3213
3214         This also maintains the contract that a ContentView should only be
3215         closed once. When the ContentView is transferred between two
3216         ContentViewContainers it should hide/show from the old to the new.
3217         The last ContentViewContainer to reference a ContentView should
3218         be the one to close the ContentView.
3219
3220         * UserInterface/Models/BackForwardEntry.js:
3221         (WebInspector.BackForwardEntry):
3222         (WebInspector.BackForwardEntry.prototype.get tombstone):
3223         (WebInspector.BackForwardEntry.prototype.set tombstone):
3224         (WebInspector.BackForwardEntry.prototype.prepareToShow):
3225         (WebInspector.BackForwardEntry.prototype.prepareToHide):
3226         Tombstone state and assertions that we don't show/hide tombstones,
3227         that should all be done before a back forward entry has become a tombstone.
3228
3229         * UserInterface/Views/ContentView.js:
3230         (WebInspector.ContentView.contentViewForRepresentedObject):
3231         (WebInspector.ContentView.closedContentViewForRepresentedObject):
3232         (WebInspector.ContentView.resolvedRepresentedObjectForRepresentedObject):
3233         Helpers for getting / creating / clearing the single ContentView that
3234         is associated with a represented object.
3235
3236         * UserInterface/Views/ContentViewContainer.js:
3237         (WebInspector.ContentViewContainer.prototype.contentViewForRepresentedObject):
3238         (WebInspector.ContentViewContainer.prototype.showContentView):
3239         Eliminate code that dealt with multiple content views per represented object.
3240         That is replaced by multiple ContentViewContainers per ContentView.
3241
3242         (WebInspector.ContentViewContainer.prototype.replaceContentView):
3243         This is called in special places where we don't need to worry about a tombstone.
3244         It is an in replace of a content view.
3245
3246         (WebInspector.ContentViewContainer.closeAllContentViewsOfPrototype):
3247         (WebInspector.ContentViewContainer.prototype.closeContentView):
3248         (WebInspector.ContentViewContainer.prototype.closeAllContentViews):
3249         (WebInspector.ContentViewContainer.prototype._disassociateFromContentView):
3250         Deal with closing BackForwardEntrys that are tombstones.
3251
3252         (WebInspector.ContentViewContainer.prototype._takeOwnershipOfContentView):
3253         (WebInspector.ContentViewContainer.prototype._placeTombstonesForContentView):
3254         (WebInspector.ContentViewContainer.prototype._clearTombstonesForContentView):
3255         Helpers for transfering ownership of a ContentView to a ContentViewContainer.
3256         There is always one owner of the ContentView. Non-owners have tombstone
3257         BackForward entries.
3258
3259         (WebInspector.ContentViewContainer.prototype._showEntry):
3260         If we are showing a tombstone, gain ownership.
3261
3262         (WebInspector.ContentViewContainer.prototype._hideEntry):
3263         This may happen in closing, for simplicity we bail here instead of include
3264         messy logic at the call site. We would have already hidden this entry
3265         when making it a tombstone.
3266
3267 2016-02-11  Joseph Pecoraro  <pecoraro@apple.com>
3268
3269         Web Inspector: SourceCodeTextEditor close() generates removeEventListener warnings
3270         https://bugs.webkit.org/show_bug.cgi?id=154150
3271
3272         Reviewed by Timothy Hatcher.
3273
3274         * UserInterface/Views/SourceCodeTextEditor.js:
3275         (WebInspector.SourceCodeTextEditor.prototype.close):
3276         Remove the event listeners in the cases that we would have added them.
3277         If we have SourceMap information we should remove the key listener,
3278         and if we don't we should remove the SourceMapAdded listener.
3279
3280 2016-02-10  Timothy Hatcher  <timothy@apple.com>
3281
3282         Web Inspector: Add new icon for the Timeline Recording navigation bar item
3283         https://bugs.webkit.org/show_bug.cgi?id=154089
3284         rdar://problem/24595652
3285
3286         Reviewed by Brian Burg.
3287
3288         * UserInterface/Images/Stopwatch.png: Removed.
3289         * UserInterface/Images/Stopwatch@2x.png: Removed.
3290         * UserInterface/Images/Stopwatch.svg: Added.
3291         * UserInterface/Views/TimelineIcons.css:
3292         (.stopwatch-icon .icon): Use Stopwatch.svg.
3293         (body:not(.mac-platform, .windows-platform) .stopwatch-icon .icon): Added for GTK+.
3294
3295 2016-02-10  Matt Baker  <mattbaker@apple.com>
3296
3297         Web Inspector: Switching actions in Edit Breakpoint popover causes a jerk
3298         https://bugs.webkit.org/show_bug.cgi?id=154093
3299         <rdar://problem/24597869>
3300
3301         Reviewed by Timothy Hatcher.
3302
3303         Adjusted CodeMirror eval editor styles to match vanilla input field.
3304
3305         * UserInterface/Views/BreakpointActionView.css:
3306         (.breakpoint-action-eval-editor):
3307
3308 2016-02-09  Joseph Pecoraro  <pecoraro@apple.com>
3309
3310         Regression: Web Inspector: Sometimes in Elements panel two elements showed as selected at the same time
3311         https://bugs.webkit.org/show_bug.cgi?id=149742
3312         <rdar://problem/24492481>
3313
3314         Reviewed by Timothy Hatcher.
3315
3316         * UserInterface/Views/DOMTreeElement.js:
3317         (WebInspector.DOMTreeElement.prototype.moveChild):
3318         Since removing and re-adding this tree element may forgot its
3319         entire child tree, re-select the selected child that may have
3320         just been lost in the shuffle.
3321
3322         * UserInterface/Views/TreeOutline.js:
3323         (WebInspector.TreeOutline.prototype._forgetTreeElement):
3324         When forgetting the selected tree element, also deselect the
3325         forgotten tree element so it clears its selected state.
3326
3327 2016-02-09  Joseph Pecoraro  <pecoraro@apple.com>
3328
3329         Web Inspector: Allow copying all headers in the request/response header tables
3330         https://bugs.webkit.org/show_bug.cgi?id=154048
3331         <rdar://problem/24576302>
3332
3333         Reviewed by Timothy Hatcher.
3334
3335         * Localizations/en.lproj/localizedStrings.js:
3336         New "Copy Table" string.
3337
3338         * UserInterface/Views/DataGrid.js:
3339         (WebInspector.DataGrid):
3340         (WebInspector.DataGrid.prototype._contextMenuInHeader):
3341         Add context menu support for table header cells, and give them a
3342         "Copy Table" context menu if there is copyable data.
3343
3344         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
3345         Add "Copy Table" context menu for copyable rows.
3346
3347         (WebInspector.DataGrid.prototype._copyTextForDataGridNode):
3348         (WebInspector.DataGrid.prototype._copyTextForDataGridHeaders):
3349         (WebInspector.DataGrid.prototype._copyTable):
3350         (WebInspector.DataGrid.prototype._hasCopyableData):
3351         Helpers for determining copyability and copying tab separated data.
3352
3353 2016-02-09  Joseph Pecoraro  <pecoraro@apple.com>
3354
3355         Web Inspector: localStorage inspector very slow on big values
3356         https://bugs.webkit.org/show_bug.cgi?id=123750
3357         <rdar://problem/15384930>
3358
3359         Reviewed by Timothy Hatcher.
3360
3361         It is not useful to show very large strings in the DOM Storage DataGrid.
3362         This change truncates display strings to roughly 200 characters. If the
3363         developer really wants the full value of the string they can just access
3364         it through localStorage.
3365
3366         * UserInterface/Models/DOMStorageObject.js:
3367         (WebInspector.DOMStorageObject.prototype.getEntries.innerCallback):
3368         (WebInspector.DOMStorageObject.prototype.getEntries):
3369         (WebInspector.DOMStorageObject.prototype.itemUpdated):
3370         Modernize.
3371
3372         * UserInterface/Views/DOMStorageContentView.js:
3373         (WebInspector.DOMStorageContentView):
3374         (WebInspector.DOMStorageContentView.prototype.itemRemoved):
3375         Modernize.
3376
3377         (WebInspector.DOMStorageContentView.prototype.itemAdded):
3378         (WebInspector.DOMStorageContentView.prototype.itemUpdated):
3379         (WebInspector.DOMStorageContentView.prototype._truncateValue):
3380         (WebInspector.DOMStorageContentView.prototype._populate):
3381         Whenever we get a value that we will display, truncate it to
3382         just 200 characters.
3383
3384 2016-02-09  Joseph Pecoraro  <pecoraro@apple.com>
3385
3386         Web Inspector: Expiration column in Storage tab can't be sorted
3387         https://bugs.webkit.org/show_bug.cgi?id=154043
3388         <rdar://problem/24572272>
3389
3390         Reviewed by Brian Burg.
3391
3392         * UserInterface/Views/CookieStorageContentView.js:
3393         (WebInspector.CookieStorageContentView.prototype._sortDataGrid.expiresCompare):
3394         Sort Session as the shortest time, not the longest time. Use the
3395         cookie.expires date when sorting, not the locale string.
3396
3397 2016-02-09  Joseph Pecoraro  <pecoraro@apple.com>
3398
3399         Web Inspector: Limit max and min zoom factor of Inspector
3400         https://bugs.webkit.org/show_bug.cgi?id=154041
3401         <rdar://problem/24571326>
3402
3403         Reviewed by Brian Burg.
3404
3405         Chose reasonable zoom levels that looked good to my eye and
3406         roughly matched Safari's page zoom levels.
3407
3408         * UserInterface/Base/Main.js:
3409         (WebInspector.contentLoaded):
3410         Do not implicitly prevent default for zoom in/out keyboard shortcuts to
3411         allow for a system beep if we do not do anything. 
3412
3413         (WebInspector._increaseZoom):
3414         (WebInspector._decreaseZoom):
3415         Do not go beyond a max or min zoom level. Prevent default in the case
3416         where we actually zoom, but don't prevent default where we do not
3417         actually zoom to cause a system beep. Allow for a slight drift of
3418         the floating point value as it increases / decreases by 0.2 at the
3419         different zoom factors.
3420
3421         (WebInspector._resetZoom):
3422         (WebInspector._showTabAtIndex):
3423         Remove redundant prevent default calls, since it would happen
3424         implicitly for these keyboard shortcuts.
3425
3426 2016-02-08  Joseph Pecoraro  <pecoraro@apple.com>
3427
3428         Web Inspector: Uncaught exception merging script profiler records
3429         https://bugs.webkit.org/show_bug.cgi?id=154004
3430
3431         Reviewed by Brian Burg.
3432
3433         * UserInterface/Controllers/TimelineManager.js:
3434         (WebInspector.TimelineManager.prototype._mergeScriptProfileRecords):
3435         Stop if we've merged all script profiler records.
3436
3437 2016-02-08  Joseph Pecoraro  <pecoraro@apple.com>
3438
3439         Web Inspector: Search doesn't seem to find text that is present in multiple places
3440         https://bugs.webkit.org/show_bug.cgi?id=154016
3441         <rdar://problem/23391307>
3442
3443         Reviewed by Brian Burg.
3444
3445         * UserInterface/Controllers/DebuggerManager.js:
3446         (WebInspector.DebuggerManager.prototype.get searchableScripts):
3447         * UserInterface/Views/SearchSidebarPanel.js:
3448         (WebInspector.SearchSidebarPanel.prototype.performSearch):
3449         Only search scripts with a URL. Don't search the potentially
3450         large number of anonymous scripts.
3451
3452 2016-02-08  Joseph Pecoraro  <pecoraro@apple.com>
3453
3454         Web Inspector: Zooming in on the timeline graph does not increase its time resolution from minutes
3455         https://bugs.webkit.org/show_bug.cgi?id=154013
3456         <rdar://problem/23844527>
3457
3458         Reviewed by Brian Burg.
3459
3460         * UserInterface/Base/Utilities.js:
3461         (Number.secondsToString):
3462         Simplify logic and ensure that when under high resolution we
3463         don't go above seconds for our units.
3464
3465         (Number.bytesToString):
3466         Simplify logic.
3467
3468         * UserInterface/Views/LinearTimelineOverview.js:
3469         (WebInspector.LinearTimelineOverview):
3470         Reduce the rather large maximum seconds per pixel from 60 seconds
3471         per pixel to 2 seconds per pixel. This means when the user zooms
3472         out of a timeline they don't see such large time values.
3473
3474 2016-02-08  Joseph Pecoraro  <pecoraro@apple.com>
3475
3476         Web Inspector: Extract a few common unicode characters into global variables
3477         https://bugs.webkit.org/show_bug.cgi?id=154008
3478
3479         Reviewed by Timothy Hatcher.
3480
3481         * UserInterface/Base/Utilities.js:
3482         Create global variables for `emDash` and `ellipsis` to use all over the tools.
3483
3484         * UserInterface/Views/ConsoleMessageView.js:
3485         (WebInspector.ConsoleMessageView.prototype._formatParameterAsTable): Deleted.
3486         * UserInterface/Views/DefaultDashboardView.js:
3487         (WebInspector.DefaultDashboardView.prototype._updateDisplay):
3488         * UserInterface/Views/HierarchicalPathComponent.js:
3489         (WebInspector.HierarchicalPathComponent.prototype._updateElementTitleAndText):
3490         (WebInspector.HierarchicalPathComponent.prototype._updateSelectElement.createOption):
3491         (WebInspector.HierarchicalPathComponent.prototype._updateSelectElement):
3492         * UserInterface/Views/HierarchicalPathNavigationItem.js:
3493         (WebInspector.HierarchicalPathNavigationItem.prototype.updateLayout):
3494         * UserInterface/Views/LayerTreeDataGridNode.js:
3495         (WebInspector.LayerTreeDataGridNode.prototype.set layer):
3496         * UserInterface/Views/LayoutTimelineDataGridNode.js:
3497         (WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
3498         (WebInspector.LayoutTimelineDataGridNode):
3499         * UserInterface/Views/MemoryCategoryView.js:
3500         (WebInspector.MemoryCategoryView.prototype._updateDetails): Deleted.
3501         (WebInspector.MemoryCategoryView): Deleted.
3502         * UserInterface/Views/MemoryTimelineView.js:
3503         (WebInspector.MemoryTimelineView.prototype._clearUsageLegend):
3504         (WebInspector.MemoryTimelineView.prototype._updateUsageLegend):
3505         (WebInspector.MemoryTimelineView.prototype._clearMaxComparisonLegend):
3506         (WebInspector.MemoryTimelineView.prototype._updateMaxComparisonLegend):
3507         * UserInterface/Views/MultipleScopeBarItem.js:
3508         (WebInspector.MultipleScopeBarItem.set scopeBarItems.createOption):
3509         (WebInspector.MultipleScopeBarItem.prototype.set scopeBarItems):
3510         * UserInterface/Views/ObjectPreviewView.js:
3511         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
3512         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
3513         * UserInterface/Views/ProfileNodeDataGridNode.js:
3514         (WebInspector.ProfileNodeDataGridNode.prototype.createCellContent):
3515         (WebInspector.ProfileNodeDataGridNode):
3516         * UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
3517         (WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
3518         (WebInspector.RenderingFrameTimelineDataGridNode):
3519         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
3520         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse): Deleted.
3521         (WebInspector.ResourceDetailsSidebarPanel.prototype._valueForSize): Deleted.
3522         * UserInterface/Views/ResourceTimelineDataGridNode.js:
3523         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
3524         * UserInterface/Views/ScriptTimelineDataGridNode.js:
3525         (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
3526         (WebInspector.ScriptTimelineDataGridNode):
3527         * UserInterface/Views/SearchResultTreeElement.js:
3528         (WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
3529         * UserInterface/Views/TimelineDataGridNode.js:
3530         (WebInspector.TimelineDataGridNode.prototype.createCellContent):
3531         * UserInterface/Views/TypeTreeElement.js:
3532         (WebInspector.TypeTreeElement.prototype.onpopulate):
3533         * UserInterface/Views/TypeTreeView.js:
3534         (WebInspector.TypeTreeView.prototype._populate):
3535         (WebInspector.TypeTreeView):
3536
3537 2016-02-08  Joseph Pecoraro  <pecoraro@apple.com>
3538
3539         Web Inspector: ⇧⌘→ when editing text in the Elements tree shouldn't switch inspector tab
3540         https://bugs.webkit.org/show_bug.cgi?id=154006
3541         <rdar://problem/22892489>
3542
3543         Reviewed by Timothy Hatcher.
3544
3545         * UserInterface/Views/EditingSupport.js:
3546         (WebInspector.isEventTargetAnEditableField):
3547         Check the WebInspector's custom __editing state.
3548
3549 2016-02-08  Devin Rousso  <dcrousso+webkit@gmail.com>
3550
3551         Web Inspector: Long values for comma separated CSS properties overflow the Visual sidebar area
3552         https://bugs.webkit.org/show_bug.cgi?id=153890
3553         <rdar://problem/24510216>
3554
3555         Reviewed by Timothy Hatcher.
3556
3557         For especially long values in comma-separated CSS properties (such as
3558         background-image), the text will not be clipped as expected due to the
3559         way in which the width is calculated for the element (the value, inside
3560         the title element, is the only child with a specified width other than
3561         100%). This overflowing causes the width of the section containing that
3562         property to expand, pushing content outside of the inspector window. To
3563         remedy this, a specified width is set on the relevant properties based
3564         on the width of the sidebar to ensure proper text clipping.
3565
3566         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
3567         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item > .visual-style-comma-separated-keyword-item-editor):
3568         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles):
3569         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle):
3570         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container): Deleted.
3571         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list): Deleted.
3572         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item): Deleted.
3573
3574         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
3575         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set specifiedWidth):
3576         Calculates the necessary subtractions from the given width value based on
3577         the margins and size of sibling elements.
3578
3579         * UserInterface/Views/VisualStyleDetailsPanel.js:
3580         (WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
3581         (WebInspector.VisualStyleDetailsPanel.prototype._populateFontSection):
3582         (WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
3583         (WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection):
3584         (WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection):
3585         Added another list to each group which, if set, will pass the current
3586         sidebar width to all contained property editors.
3587
3588         * UserInterface/Views/VisualStylePropertyEditor.js:
3589         (WebInspector.VisualStylePropertyEditor.prototype.update):
3590         Somewhat unrelated (r196146), but added another check to ensure that the
3591         CSS property exists before checking to see if it has an invalid value.
3592
3593 2016-02-08  Matt Baker  <mattbaker@apple.com>
3594
3595         Web Inspector: WebInspector.Setting should have a "reset" method
3596         https://bugs.webkit.org/show_bug.cgi?id=153971
3597         <rdar://problem/24544101>
3598
3599         Reviewed by Brian Burg.
3600
3601         Currently UI needing to restore a setting to its default must retain a copy
3602         of the default value. This should be a basic operation of WebInspector.Setting.
3603
3604         * UserInterface/Base/Setting.js:
3605         (WebInspector.Setting):
3606         (WebInspector.Setting.prototype.reset):
3607         Sets value to a copy of the default.
3608
3609 2016-02-06  Nikita Vasilyev  <nvasilyev@apple.com>
3610
3611         REGRESSION (r195432): Web Inspector: bottom right section of the styles sidebar is 1px taller than the console prompt
3612         https://bugs.webkit.org/show_bug.cgi?id=153959
3613         <rdar://problem/24541053>
3614
3615         Reviewed by Timothy Hatcher.
3616
3617         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
3618         (.sidebar > .panel.details.css-style > .content ~ .options-container):
3619         (.sidebar > .panel.details.css-style > .content ~ .class-list-container)::
3620         Revert the height to what it used to be prior r195432.
3621
3622 2016-02-05  Devin Rousso  <dcrousso+webkit@gmail.com>
3623
3624         Web Inspector: Visual Styles sidebar should be more forgiving to long labels
3625         https://bugs.webkit.org/show_bug.cgi?id=153927
3626         <rdar://problem/24343897>
3627
3628         Reviewed by Timothy Hatcher.
3629
3630         If a label is too long for it's container, it overflows and is visible
3631         above the rest of the elements nearby.
3632
3633         * UserInterface/Views/VisualStylePropertyEditor.css:
3634         (.visual-style-property-container > .visual-style-property-title):
3635         Adds text overflow to properties that extend beyond the container's width.
3636
3637         * UserInterface/Views/VisualStylePropertyEditor.js:
3638         (WebInspector.VisualStylePropertyEditor):
3639         Now also adds the label value as a title attribute to the element, just in
3640         case the content overflows.
3641
3642 2016-02-05  Saam barati  <sbarati@apple.com>
3643
3644         Web Inspector: Include SamplingProfiler's expression-level data for stack frames in the protocol
3645         https://bugs.webkit.org/show_bug.cgi?id=153455
3646         <rdar://problem/24335884>
3647
3648         Reviewed by Joseph Pecoraro.
3649
3650         JSC has been collecting expression-level data in the sampling
3651         profiler, and with this patch, we now get that information
3652         in the inspector. With this information, we probably have
3653         all the data we need to make real heat maps.
3654
3655         * UserInterface/Models/CallingContextTree.js:
3656         (WebInspector.CallingContextTree.prototype.updateTreeWithStackTrace):
3657         (WebInspector.CCTNode):
3658         (WebInspector.CCTNode.prototype.findOrMakeChild):
3659         (WebInspector.CCTNode.prototype.addTimestampAndExpressionLocation):
3660         (WebInspector.CCTNode.prototype.addTimestamp): Deleted.
3661
3662 2016-02-05  Devin Rousso  <dcrousso+webkit@gmail.com>
3663
3664         Web Inspector: Navigation bar in sidebars should always fit on a single line
3665         https://bugs.webkit.org/show_bug.cgi?id=153412
3666         <rdar://problem/24318706>
3667
3668         Reviewed by Timothy Hatcher.
3669
3670         This happened because the allowed maximum width of the sidebar was greater
3671         than the minimum width derived from the currently visible sidebar.
3672
3673         * UserInterface/Base/Utilities.js:
3674         (Number.constrain):
3675         Added logic to reverse the values of min and max if max is less than min.
3676
3677 2016-02-05  Timothy Hatcher  <timothy@apple.com>
3678
3679         Web Inspector: Don't wrap labels in Breakpoint Editor popover
3680         https://bugs.webkit.org/show_bug.cgi?id=153926
3681         rdar://problem/24149542
3682
3683         Reviewed by Brian Burg.
3684
3685         * UserInterface/Views/BreakpointPopoverController.css:
3686         (.popover .edit-breakpoint-popover-content > table > tr > th): Added white-space: nowrap.
3687
3688 2016-02-05  Devin Rousso  <dcrousso+webkit@gmail.com>
3689
3690         Web Inspector: Replace all instances of '%s' with “%s“
3691         https://bugs.webkit.org/show_bug.cgi?id=153891
3692         <rdar://problem/24510236>
3693
3694         Reviewed by Timothy Hatcher.
3695
3696         Switched all WebInspector.UIString() from using '' to ““.
3697
3698         * Localizations/en.lproj/localizedStrings.js:
3699         * UserInterface/Views/CSSStyleDeclarationSection.js:
3700         (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
3701         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
3702         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
3703         * UserInterface/Views/VisualStylePropertyEditor.js:
3704         (WebInspector.VisualStylePropertyEditor.prototype.update):
3705         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
3706         (WebInspector.VisualStyleSelectorTreeItem.prototype._updateSelectorIcon):
3707
3708 2016-02-05  Nikita Vasilyev  <nvasilyev@apple.com>
3709
3710         REGRESSION (r193913): Web Inspector: Wrong z-index of inner sections
3711         https://bugs.webkit.org/show_bug.cgi?id=153914
3712
3713         Reviewed by Timothy Hatcher.
3714
3715         * UserInterface/Views/DetailsSection.css:
3716         (.details-section .details-section > .header):
3717
3718 2016-02-05  Nikita Vasilyev  <nvasilyev@apple.com>
3719
3720         Web Inspector: Decrease font-weight of inner sections
3721         https://bugs.webkit.org/show_bug.cgi?id=153913
3722         <rdar://problem/24520326>
3723
3724         Reviewed by Timothy Hatcher.
3725
3726         * UserInterface/Views/DetailsSection.css:
3727         (.details-section .details-section > .header):
3728
3729 2016-02-04  Nikita Vasilyev  <nvasilyev@apple.com>
3730
3731         Web Inspector: console.table background stripes are misaligned
3732         https://bugs.webkit.org/show_bug.cgi?id=152954
3733         <rdar://problem/24197735>
3734
3735         Reviewed by Timothy Hatcher.
3736
3737         * UserInterface/Views/LogContentView.css:
3738         (.console-item .data-grid table.data):
3739         (.console-item .data-grid table.data tr:nth-child(even)):
3740         Replace CSS gradient that produces fixed height stripes with
3741         a rule that sets background only on even table rows.
3742
3743 2016-02-04  Joseph Pecoraro  <pecoraro@apple.com>
3744
3745         Unreviewed, follow-up fix to r196151 that removes some more images.
3746
3747         * UserInterface/Images/Colors.png: Removed.
3748         * UserInterface/Images/Colors@2x.png: Removed.
3749         * UserInterface/Images/Network.png: Removed.
3750         * UserInterface/Images/Network@2x.png: Removed.
3751         * UserInterface/Images/Script.png: Removed.
3752         * UserInterface/Images/Script@2x.png: Removed.
3753         These images were supposed to also be removed.
3754
3755         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
3756         Also remove references to now removed images.
3757
3758 2016-02-04  Joseph Pecoraro  <pecoraro@apple.com>
3759
3760         Web Inspector: New timeline images for instruments
3761         https://bugs.webkit.org/show_bug.cgi?id=153884
3762         <rdar://problem/24509429>
3763
3764         Reviewed by Timothy Hatcher.
3765
3766         * UserInterface/Views/TimelineTabContentView.js:
3767         (WebInspector.TimelineTabContentView.iconClassNameForTimeline):
3768         Better names and give Memory timeline a name for an icon.
3769
3770         * UserInterface/Views/TreeOutline.css:
3771         (.tree-outline.large .item .icon):
3772         Add more padding next to large icons.
3773
3774         * UserInterface/Images/ColorsLarge.png: Removed.
3775         * UserInterface/Images/ColorsLarge@2x.png: Removed.
3776         * UserInterface/Images/Frames.png: Removed.
3777         * UserInterface/Images/Frames@2x.png: Removed.
3778         * UserInterface/Images/LayoutInstrument.svg: Added.
3779         * UserInterface/Images/MemoryInstrument.svg: Added.
3780         * UserInterface/Images/NetworkInstrument.svg: Added.
3781         * UserInterface/Images/NetworkLarge.png: Removed.
3782         * UserInterface/Images/NetworkLarge@2x.png: Removed.
3783         * UserInterface/Images/RenderingFramesInstrument.svg: Added.
3784         * UserInterface/Images/ScriptLarge.png: Removed.
3785         * UserInterface/Images/ScriptLarge@2x.png: Removed.
3786         Remove old timeline pngs.
3787
3788         * UserInterface/Images/ScriptsInstrument.svg: Added.
3789         * UserInterface/Views/TimelineIcons.css:
3790         (.network-icon .icon):
3791         (.script-icon .icon):
3792         (.memory-icon .icon):
3793         (.layout-icon .icon):
3794         (.rendering-frame-icon .icon):
3795         Use the new SVGs.
3796
3797         (body:not(.mac-platform, .windows-platform) .network-icon .icon):
3798         (body:not(.mac-platform, .windows-platform) .network-icon.large .icon):
3799         (body:not(.mac-platform, .windows-platform) .layout-icon .icon):
3800         (body:not(.mac-platform, .windows-platform) .layout-icon.large .icon):
3801         (body:not(.mac-platform, .windows-platform) .script-icon .icon):
3802         (body:not(.mac-platform, .windows-platform) .script-icon.large .icon):
3803         (body:not(.mac-platform, .windows-platform) .rendering-frame-icon .icon):
3804         Fallback to old icons for non-Mac/Windows ports using Images/gtk images.
3805
3806 2016-02-04  Devin Rousso  <dcrousso+webkit@gmail.com>
3807
3808         Web Inspector: Show error icons if invalid values already exist for properties in the Visual sidebar
3809         https://bugs.webkit.org/show_bug.cgi?id=153702
3810         <rdar://problem/24424025>
3811
3812         Reviewed by Timothy Hatcher.
3813
3814         When CSS properties have invalid values, instead of displaying the computed
3815         value for that property in the Visual sidebar, show an error icon with the
3816         the invalid value.
3817
3818         * Localizations/en.lproj/localizedStrings.js: