Web Inspector: Sort by size issues with Cookies and ApplicationCache DataGrids
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2017-09-13  Joseph Pecoraro  <pecoraro@apple.com>
2
3         Web Inspector: Sort by size issues with Cookies and ApplicationCache DataGrids
4         https://bugs.webkit.org/show_bug.cgi?id=176879
5         <rdar://problem/34237096>
6
7         Reviewed by Matt Baker.
8
9         * UserInterface/Views/ApplicationCacheFrameContentView.js:
10         (WI.ApplicationCacheFrameContentView.prototype._sortDataGrid):
11         (WI.ApplicationCacheFrameContentView.prototype._populateDataGrid):
12         This uses very dumb DataGridNodes with a pure data object. In that
13         object `size` is a bytes string not a number. Include the number size
14         in this data object that can be used during sorting.
15
16         * UserInterface/Views/CookieStorageContentView.js:
17         (WI.CookieStorageContentView.prototype._rebuildTable):
18         Simplify creation. Also don't reset sort options. Note that here the
19         DataGridNodes have access to the Cookie object and can already sort size
20         using the cookie's size (a number) and not the data's size (string).
21
22         * UserInterface/Views/DataGrid.js:
23         (WI.DataGrid.prototype.sortNodes):
24         (WI.DataGrid.prototype._sortNodesCallback):
25         If sortNodes was called twice, it would defer the sort and actually
26         do the sort with the first comparator and not the latest, preferred
27         comparator. Make it use the latest comparator.
28
29 2017-09-13  Nikita Vasilyev  <nvasilyev@apple.com>
30
31         Web Inspector: Styles Redesign: display @media section headers
32         https://bugs.webkit.org/show_bug.cgi?id=176289
33         <rdar://problem/34228389>
34
35         Reviewed by Devin Rousso.
36
37         Prepend CSS media query selectors to every matching rule.
38
39         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
40         (.spreadsheet-css-declaration .media-label):
41         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
42         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
43         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._createMediaHeader):
44         Don't localize "@media" since it's CSS code.
45         Don't display "all" or "screen" media query selectors. One of the goals of the
46         Styles sidebar redesign is to fit more data.
47
48 2017-09-13  Nikita Vasilyev  <nvasilyev@apple.com>
49
50         Web Inspector: Frontend should be made to expect and handle disabled properties
51         https://bugs.webkit.org/show_bug.cgi?id=166787
52         <rdar://problem/34379593>
53
54         Reviewed by Joseph Pecoraro.
55
56         This change introduces WI.CSSStyleDeclaration.prototype.allProperties getter,
57         that includes both enabled and disabled (commented out) CSS properties.
58
59         The existing WI.CSSStyleDeclaration.prototype.properties getter only includes enabled CSS properties,
60         same as before the backend change.
61
62         There is no behaviour change in the current styles sidebar. The new redesigned styles sidebar will
63         use disabled properties and display them as commented out.
64
65         * UserInterface/Models/CSSProperty.js:
66         (WI.CSSProperty.prototype.get attached):
67         Rename `enabled` to `attached`, as it didn't correspond to `_enabled` property. Attached means that the property
68         is enabled and has a ownerStyle with a set index (unless it's a computed style, where index is not applicable).
69
70         (WI.CSSProperty.prototype.get enabled):
71         * UserInterface/Models/CSSStyleDeclaration.js:
72         (WI.CSSStyleDeclaration.prototype.get allProperties):
73         Add allProperties getter that will be used in the new styles sidebar.
74
75         * UserInterface/Models/DOMNodeStyles.js:
76         (WI.DOMNodeStyles.prototype._markOverriddenProperties):
77         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
78         (WI.CSSStyleDeclarationTextEditor.prototype.highlightProperty.propertiesMatch):
79         Rename "enabled" to "attached" without any behavior change.
80
81 2017-09-13  Joseph Pecoraro  <pecoraro@apple.com>
82
83         Web Inspector: Escape in global search field should clear it
84         https://bugs.webkit.org/show_bug.cgi?id=176764
85
86         Reviewed by Timothy Hatcher.
87
88         * UserInterface/Views/QuickConsole.js:
89         (WI.QuickConsole.prototype._toggleOrFocus):
90         Don't implicitly prevent default. So if we didn't cause an action we
91         can let the default system action happen.
92
93         * UserInterface/Views/SearchBar.js:
94         (WI.SearchBar):
95         Remove unused keyboard shortcuts.
96
97 2017-09-12  Joseph Pecoraro  <pecoraro@apple.com>
98
99         Web Inspector: Add Experimental setting for new Network tab
100         https://bugs.webkit.org/show_bug.cgi?id=176750
101
102         Reviewed by Matt Baker.
103
104         * Localizations/en.lproj/localizedStrings.js:
105         * UserInterface/Main.html:
106         * UserInterface/Base/Main.js:
107         (WI.contentLoaded):
108         New files and strings.
109
110         * UserInterface/Base/Setting.js:
111         New experimental setting.
112
113         * UserInterface/Views/LegacyNetworkTabContentView.js:
114         (WI.LegacyNetworkTabContentView.isTabAllowed):
115         Legacy tab availability depends on the setting.
116
117         * UserInterface/Views/NetworkTabContentView.js:
118         (WI.NetworkTabContentView):
119         (WI.NetworkTabContentView.isTabAllowed):
120         (WI.NetworkTabContentView.prototype.get contentBrowser):
121         (WI.NetworkTabContentView.prototype.get type):
122         (WI.NetworkTabContentView.prototype.canShowRepresentedObject):
123         (WI.NetworkTabContentView.prototype.get supportsSplitContentBrowser):
124         Modern network tab. Only difference right now is it allows the split console.
125
126         * UserInterface/Views/NetworkTableContentView.js: Added.
127         (WI.NetworkTableContentView):
128         (WI.NetworkTableContentView.prototype.get selectionPathComponents):
129         (WI.NetworkTableContentView.prototype.get navigationItems):
130         (WI.NetworkTableContentView.prototype.shown):
131         (WI.NetworkTableContentView.prototype.hidden):
132         (WI.NetworkTableContentView.prototype.closed):
133         (WI.NetworkTableContentView.prototype.reset):
134         (WI.NetworkTableContentView.prototype.layout):
135         (WI.NetworkTableContentView.prototype.handleClearShortcut):
136         (WI.NetworkTableContentView.prototype._resourceCachingDisabledSettingChanged):
137         (WI.NetworkTableContentView.prototype._toggleDisableResourceCache):
138         Add a stubbed out ContentView. This will be implemented next.
139
140         * UserInterface/Views/SettingsTabContentView.js:
141         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
142         Add an experimental setting to toggle the new network tab. Only
143         show the experimental settings that relate to the debuggable target.
144         For JSContext targets, none of the settings are applicable, so don't
145         even show the experimental section.
146
147         * UserInterface/Views/TabBrowser.js:
148         (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
149         Treat all network tabs the same.
150
151 2017-09-11  Matt Baker  <mattbaker@apple.com>
152
153         Web Inspector: Canvas: improve recording controls and state management
154         https://bugs.webkit.org/show_bug.cgi?id=176762
155         <rdar://problem/34382294>
156
157         Reviewed by Devin Rousso.
158
159         CanvasManager should be responsible for starting/stopping recordings
160         and tracking state. Fixing this layering issue lets CanvasContentView
161         better manage its recording UI.
162
163         * UserInterface/Controllers/CanvasManager.js:
164         (WI.CanvasManager):
165         (WI.CanvasManager.prototype.get recordingCanvas):
166         (WI.CanvasManager.prototype.startRecording):
167         (WI.CanvasManager.prototype.stopRecording):
168
169         * UserInterface/Models/Canvas.js:
170         (WI.Canvas.prototype.get isRecording):
171         (WI.Canvas.prototype.toggleRecording): Deleted.
172
173         * UserInterface/Views/CanvasContentView.css:
174         (.navigation-bar > .item.canvas-record.disabled):
175
176         * UserInterface/Views/CanvasContentView.js:
177         (WI.CanvasContentView.prototype.shown):
178         (WI.CanvasContentView.prototype._toggleRecording):
179         (WI.CanvasContentView.prototype._recordingFinished):
180         (WI.CanvasContentView.prototype._updateRecordNavigationItem):
181
182 2017-09-11  Joseph Pecoraro  <pecoraro@apple.com>
183
184         Web Inspector: Cleanup and test MIMETypeUtilities
185         https://bugs.webkit.org/show_bug.cgi?id=176731
186
187         Reviewed by Matt Baker.
188
189         * UserInterface/Base/FileUtilities.js:
190         (WI.saveDataToFile):
191         * UserInterface/Models/SourceMapResource.js:
192         (WI.SourceMapResource):
193         Update callers to handle new return values.
194
195         * UserInterface/Base/MIMETypeUtilities.js:
196         (WI.fileExtensionForURL):
197         Return null in error cases.
198         Only provide the content after the last period.
199
200         (WI.fileExtensionForMIMEType):
201         Handle generic "+json" and "+xml" cases.
202
203         * UserInterface/Test.html:
204         Include MIMETypeUtilities for testing.
205
206 2017-09-11  Joseph Pecoraro  <pecoraro@apple.com>
207
208         Web Inspector: Rename NetworkTab / NetworkSidebar to LegacyNetwork*
209         https://bugs.webkit.org/show_bug.cgi?id=176739
210
211         Reviewed by Matt Baker.
212
213         * UserInterface/Main.html:
214         * UserInterface/Views/LegacyNetworkSidebarPanel.css: Renamed from Source/WebInspectorUI/UserInterface/Views/NetworkSidebarPanel.css.
215         * UserInterface/Views/LegacyNetworkSidebarPanel.js: Renamed from Source/WebInspectorUI/UserInterface/Views/NetworkSidebarPanel.js.
216         * UserInterface/Views/LegacyNetworkTabContentView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/NetworkTabContentView.js.
217         Rename resources.
218
219         * UserInterface/Base/Main.js:
220         (WI.contentLoaded):
221         * UserInterface/Views/NetworkGridContentView.js:
222         (WI.NetworkGridContentView):
223         (WI.NetworkGridContentView.prototype._networkTimelineRecordAdded):
224         * UserInterface/Views/TabBrowser.js:
225         (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
226         Update names at callsites.
227
228 2017-09-11  Joseph Pecoraro  <pecoraro@apple.com>
229
230         Web Inspector: Remove unused parameter to UIString
231         https://bugs.webkit.org/show_bug.cgi?id=176738
232
233         Reviewed by Matt Baker.
234
235         * UserInterface/Base/LoadLocalizedStrings.js:
236         (WI.UIString):
237         Remove unused parameter. We moved to String.format for this behavior a while ago.
238
239 2017-09-11  Joseph Pecoraro  <pecoraro@apple.com>
240
241         Web Inspector: Do not allow the split console in the Settings tab
242         https://bugs.webkit.org/show_bug.cgi?id=176726
243
244         Reviewed by Matt Baker.
245
246         * UserInterface/Views/SettingsTabContentView.js:
247         (WI.SettingsTabContentView.prototype.get supportsSplitContentBrowser):
248
249 2017-09-11  Joseph Pecoraro  <pecoraro@apple.com>
250
251         Web Inspector: Include a DebugContentView for debugging
252         https://bugs.webkit.org/show_bug.cgi?id=176733
253
254         Reviewed by Matt Baker.
255
256         Provide a DebugContentView which can be used to debug lifecycle
257         events of a ContentView (shown, hidden, closed), and displays a
258         provided string. It can be created like so:
259
260             `new WI.DebugContentView("Name")`
261
262         * UserInterface/Debug/DebugContentView.css: Added.
263         (.content-view.debug):
264         * UserInterface/Debug/DebugContentView.js: Added.
265         (WI.DebugContentView):
266         (WI.DebugContentView.prototype.shown):
267         (WI.DebugContentView.prototype.hidden):
268         (WI.DebugContentView.prototype.closed):
269         Log events for debugging.
270
271         * UserInterface/Main.html:
272         Include new Debug resources.
273
274 2017-09-11  Joseph Pecoraro  <pecoraro@apple.com>
275
276         Web Inspector: Make Dashboard Timeline icon and Timeline tab icon more similar
277         https://bugs.webkit.org/show_bug.cgi?id=176582
278
279         Reviewed by Timothy Hatcher.
280
281         * UserInterface/Images/Time.svg:
282         Change the clock hands to match the time of Timelines.svg.
283
284 2017-09-10  Matt Baker  <mattbaker@apple.com>
285
286         Web Inspector: change style of RecordingNavigationSidebarPanel
287         https://bugs.webkit.org/show_bug.cgi?id=175451
288         <rdar://problem/34040769>
289
290         Reviewed by Devin Rousso.
291
292         This patch adds UI polish to the Canvas recording navigation sidebar:
293          - New icons for Canvas2D operations
294          - Removed extraneous colors: zebra striping, frame element background color
295          - Visual action color changed to match details sidebar "changed" color
296          - Make tree item indent a convenient multiple of the base indent
297          - Move RecordingActionTreeElement styles to a separate file
298
299         * UserInterface/Images/Clip.svg: Added.
300         * UserInterface/Images/Composite.svg: Added.
301         * UserInterface/Images/Fill.svg: Added.
302         * UserInterface/Images/LineStyle.svg: Added.
303         * UserInterface/Images/Palette.svg: Added.
304         * UserInterface/Images/PathArc.svg: Added.
305         * UserInterface/Images/PathCurve.svg: Added.
306         * UserInterface/Images/PathEllipse.svg: Added.
307         * UserInterface/Images/PathLineTo.svg: Added.
308         * UserInterface/Images/PathMoveTo.svg: Added.
309         * UserInterface/Images/PathRect.svg: Added.
310         * UserInterface/Images/Pixels.svg: Added.
311         * UserInterface/Images/PointInPath.svg: Added.
312         * UserInterface/Images/PointInStroke.svg: Added.
313         * UserInterface/Images/Shadow.svg: Added.
314         * UserInterface/Images/Stroke.svg: Added.
315         * UserInterface/Images/Text.svg: Added.
316         * UserInterface/Images/Transform.svg: Added.
317         New icons for Canvas2D operations.
318
319         * UserInterface/Main.html:
320         New file.
321
322         * UserInterface/Views/GeneralTreeElement.js:
323         (WI.GeneralTreeElement.prototype.customTitleTooltip):
324         (WI.GeneralTreeElement.prototype._updateTitleTooltip):
325         Allow derived classes to supply a custom tooltip, when
326         simply getting the title element text is insufficient.
327
328         * UserInterface/Views/RecordingActionTreeElement.css: Added.
329         (.item.action.initial-state > .icon):
330         (.tree-outline:not(:focus, .force-focus) .item.action:not(.initial-state, .parent, .invalid) > .icon):
331         (.item.action:not(.initial-state)::before):
332         (body[dir=ltr] .item.action::before):
333         (body[dir=rtl] .item.action::before):
334         (.tree-outline:matches(:focus, .force-focus) .item.action.selected:not(.initial-state, .invalid) > .icon):
335         (body:not(.window-inactive, .window-docked-inactive) :matches(:focus, .force-focus) .item.action.selected > .titles .parameter.swizzled,):
336         (.tree-outline[data-indent="1"] .item.action::before,):
337         (.tree-outline[data-indent="3"] .item.action::before):
338         (.tree-outline[data-indent="4"] .item.action::before):
339         (.tree-outline[data-indent="5"] .item.action::before):
340         (.tree-outline[data-indent="6"] .item.action::before):
341         (.tree-outline[data-indent="7"] .item.action::before):
342         (body[dir=ltr] .tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):
343         (body[dir=rtl] .tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):
344         (.item.action.visual:not(.selected, .invalid)):
345         (.item.action.attribute > .titles .parameters::before):
346         (.item.action:not(.attribute) > .titles .parameters::before):
347         (.item.action:not(.attribute) > .titles .parameters::after):
348         (.item.action > .titles .parameter:not(:last-child)::after):
349         (.item.action:not(.selected) > .titles .parameter.swizzled):
350         (.item.action.composite > .icon):
351         (.item.action.fill > .icon):
352         (.item.action.image > .icon):
353         (.item.action.line-style > .icon):
354         (.item.action.shadow > .icon):
355         (.item.action.stroke > .icon):
356         (.item.action.style > .icon):
357         (.item.action.text > .icon):
358         (.item.action.transform > .icon):
359         (.item.action.arc > .icon):
360         (.item.action.clip > .icon):
361         (.item.action.curve > .icon):
362         (.item.action.ellipse > .icon):
363         (.item.action.line-to > .icon):
364         (.item.action.move-to > .icon):
365         (.item.action.point-in-path > .icon):
366         (.item.action.point-in-stroke > .icon):
367         (.item.action.rect > .icon):
368         (.item.action.restore > .icon):
369         (.item.action.save > .icon):
370         (.item.action.invalid > .icon):
371
372         * UserInterface/Views/RecordingActionTreeElement.js:
373         (WI.RecordingActionTreeElement):
374         (WI.RecordingActionTreeElement._generateDOM.createParameterElement):
375         (WI.RecordingActionTreeElement._generateDOM):
376         (WI.RecordingActionTreeElement._getClassNames):
377         Broke out into its own helper, to simplify _generateDOM which had
378         too many responsibilities.
379
380         (WI.RecordingActionTreeElement._classNameForAction.classNameForActionName):
381         (WI.RecordingActionTreeElement._classNameForAction):
382         Get an icon for the action "type". Actions are grouped by similar
383         operations. For example, lineCap, lineDash, lineJoin, lineWidth, and
384         miterLimit are assigned the icon LineStyle.svg.
385
386         (WI.RecordingActionTreeElement.prototype.customTitleTooltip):
387
388         * UserInterface/Views/RecordingNavigationSidebarPanel.css:
389         (.sidebar > .panel.navigation.recording > .content > .tree-outline .item.folder-icon > .icon):
390         (.sidebar > .panel.navigation.recording > .content > .tree-outline:not(:empty)): Deleted.
391         (.sidebar > .panel.navigation.recording > .content > .tree-outline > .item.parent:not(.action, .selected).expanded): Deleted.
392         (.sidebar > .panel.navigation.recording > .content > .tree-outline .item.action:not(.initial-state)::before): Deleted.
393         (body[dir=ltr] .sidebar > .panel.navigation.recording > .content > .tree-outline .item.action:not(.initial-state)::before): Deleted.
394         (body[dir=rtl] .sidebar > .panel.navigation.recording > .content > .tree-outline .item.action:not(.initial-state)::before): Deleted.
395         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="2"] .item.action:not(.initial-state)::before): Deleted.
396         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="3"] .item.action:not(.initial-state)::before): Deleted.
397         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="4"] .item.action:not(.initial-state)::before): Deleted.
398         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="5"] .item.action:not(.initial-state)::before): Deleted.
399         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="6"] .item.action:not(.initial-state)::before): Deleted.
400         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="7"] .item.action:not(.initial-state)::before): Deleted.
401         (.sidebar > .panel.navigation.recording > .content .action > .icon): Deleted.
402         (.sidebar > .panel.navigation.recording > .content .action.function > .icon): Deleted.
403         (.sidebar > .panel.navigation.recording > .content .action.attribute.getter > .icon): Deleted.
404         (.sidebar > .panel.navigation.recording > .content .tree-outline:matches(:focus, .force-focus) .action.attribute.getter.selected > .icon): Deleted.
405         (.sidebar > .panel.navigation.recording > .content .action.attribute.boolean > .icon): Deleted.
406         (.sidebar > .panel.navigation.recording > .content .action.attribute.number > .icon): Deleted.
407         (.sidebar > .panel.navigation.recording > .content .action.attribute.object > .icon): Deleted.
408         (.sidebar > .panel.navigation.recording > .content .action.attribute.string > .icon): Deleted.
409         (.sidebar > .panel.navigation.recording > .content > .tree-outline > .item.parent:not(.action) > .icon): Deleted.
410         (.sidebar > .panel.navigation.recording > .content .action:matches(.invalid, .missing) > .icon): Deleted.
411         (body[dir=ltr] .sidebar > .panel.navigation.recording > .content .action:not(.initial-state) > .icon): Deleted.
412         (body[dir=rtl] .sidebar > .panel.navigation.recording > .content .action:not(.initial-state) > .icon): Deleted.
413         (.sidebar > .panel.navigation.recording > .content .action.visual:not(.selected, .invalid)): Deleted.
414         (.sidebar > .panel.navigation.recording > .content .action:not(.selected, .initial-state) > .titles .parameter.swizzled): Deleted.
415         (.sidebar > .panel.navigation.recording > .content .action.invalid:not(.selected, .initial-state) > .titles :matches(.name, .parameter.invalid)): Deleted.
416         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
417
418 2017-09-08  Joseph Pecoraro  <pecoraro@apple.com>
419
420         Uncaught Exception: TypeError: this._heapSnapshot.addEventListener is not a function.
421         https://bugs.webkit.org/show_bug.cgi?id=176633
422
423         Reviewed by Michael Saboff.
424
425         * UserInterface/Proxies/HeapSnapshotDiffProxy.js:
426         (WI.HeapSnapshotDiffProxy):
427         This class has listeners of another object's events. It should extend WI.Object.
428
429 2017-09-08  Devin Rousso  <webkit@devinrousso.com>
430
431         Web Inspector: Canvas: changes to currentX/currentY aren't highlighted in the details sidebar
432         https://bugs.webkit.org/show_bug.cgi?id=176569
433
434         Reviewed by Matt Baker.
435
436         * UserInterface/Models/RecordingAction.js:
437         Add entries to WI.RecordingAction._stateModifiers for each path function.
438
439 2017-09-07  Joseph Pecoraro  <pecoraro@apple.com>
440
441         Augmented Inspector: Provide a way to inspect a DOM Node (DOM.inspect)
442         https://bugs.webkit.org/show_bug.cgi?id=176563
443         <rdar://problem/19639583>
444
445         Reviewed by Matt Baker.
446
447         * UserInterface/Base/Main.js:
448         (WI.contentLoaded):
449         Always create the element search toolbar icon. Only show it if the DOM domain
450         is available. With augmented agents the DOM domain may be activated later.
451
452         * UserInterface/Protocol/DOMObserver.js:
453         (WI.DOMObserver.prototype.inspect):
454         Select the node in the DOM tree outline.
455
456 2017-09-07  Devin Rousso  <webkit@devinrousso.com>
457
458         Web Inspector: Canvas RecordingAction tree outline virtualization is broken
459         https://bugs.webkit.org/show_bug.cgi?id=176547
460
461         Reviewed by Joseph Pecoraro.
462
463         * UserInterface/Views/TreeOutline.js:
464         (WI.TreeOutline.prototype.updateVirtualizedElements.walk):
465         (WI.TreeOutline.prototype.updateVirtualizedElements):
466         Pass the current `count` to each recursive call of `walk` so that the cumulative index of a
467         TreeElement in any given sub-tree is correct.
468         Drive-by: if there is a focused TreeElement when scrolling, only change the current
469         `scrollTop` if it is not already visible. Also rewrote some loops for clarity.
470
471 2017-09-07  Devin Rousso  <webkit@devinrousso.com>
472
473         Unreviewed, change my copyright email.
474
475         * Scripts/copy-user-interface-resources.pl:
476         * UserInterface/Controllers/CodeMirrorSpringEditingController.js:
477         * UserInterface/Images/AnimationPlayStatePaused.svg:
478         * UserInterface/Images/AnimationPlayStateRunning.svg:
479         * UserInterface/Images/CSSVariable.svg:
480         * UserInterface/Images/ListStylePositionInside.svg:
481         * UserInterface/Images/ListStylePositionOutside.svg:
482         * UserInterface/Images/StyleRule.svg:
483         * UserInterface/Images/StyleRulePseudoElement.svg:
484         * UserInterface/Models/Collection.js:
485         * UserInterface/Models/ResourceCollection.js:
486         * UserInterface/Views/CollectionContentView.css:
487         * UserInterface/Views/CollectionContentView.js:
488         * UserInterface/Views/ContextMenuUtilities.js:
489         * UserInterface/Views/GeneralTabBarItem.js:
490         * UserInterface/Views/GradientEditor.css:
491         * UserInterface/Views/GradientEditor.js:
492         * UserInterface/Views/InlineSwatch.css:
493         * UserInterface/Views/InlineSwatch.js:
494         * UserInterface/Views/PinnedTabBarItem.js:
495         * UserInterface/Views/SettingsTabContentView.css:
496         * UserInterface/Views/SettingsTabContentView.js:
497         * UserInterface/Views/SpringEditor.css:
498         * UserInterface/Views/SpringEditor.js:
499         * UserInterface/Views/StyleRuleIcons.css:
500         * UserInterface/Views/TabBarItem.js:
501         * UserInterface/Views/TitleView.css:
502         * UserInterface/Views/TitleView.js:
503         * UserInterface/Views/VisualStyleBackgroundPicker.css:
504         * UserInterface/Views/VisualStyleBackgroundPicker.js:
505         * UserInterface/Views/VisualStyleBasicInput.js:
506
507 2017-09-06  Matt Baker  <mattbaker@apple.com>
508
509         Web Inspector: Relax the maximum sidebar width
510         https://bugs.webkit.org/show_bug.cgi?id=175808
511         <rdar://problem/34005339>
512
513         Reviewed by Devin Rousso.
514
515         This patch introduces a constant, `minimumContentBrowserWidth`, which
516         constrains the maximum width of either sidebar:
517
518         maxSidebarWidth = window.innerWidth - minimumContentBrowserWidth - otherSidebarWidth
519
520         A value of 100px for `minimumContentBrowserWidth` leaves enough space for
521         three NavigationItems at their minimum width (32px), with a few pixels
522         left over for good measure. For most tabs this will ensure that the buttons
523         for showing the sidebars will be visible, along with an addition button.
524
525         * UserInterface/Base/Main.js:
526         * UserInterface/Views/Sidebar.js:
527         (WI.Sidebar.prototype.get maximumWidth):
528
529 2017-09-06  Devin Rousso  <webkit@devinrousso.com>
530
531         Web Inspector: Support overloaded CanvasRenderingContext2D actions with identical parameter counts
532         https://bugs.webkit.org/show_bug.cgi?id=176178
533         <rdar://problem/34192229>
534
535         Reviewed by Matt Baker.
536
537         * UserInterface/Models/Recording.js:
538         (WI.Recording.displayNameForSwizzleType):
539         (WI.Recording.prototype.swizzle):
540         Replace WI.Recording.Swizzle with an object of swizzle type keys to int values. This object
541         matches the values in WebCore::RecordingSwizzleTypes.h.
542
543         * UserInterface/Models/RecordingAction.js:
544         (WI.RecordingAction):
545         (WI.RecordingAction.fromPayload):
546         (WI.RecordingAction.prototype.get swizzleTypes):
547         (WI.RecordingAction.prototype.swizzle):
548         (WI.RecordingAction.prototype.toJSON):
549         (WI.RecordingAction.prototype.parameterSwizzleTypeForTypeAtIndex): Deleted.
550         Replace WI.RecordingAction._parameterSwizzleTypeForTypeAtIndex with an array of parameter
551         types sent in the payload. This gives more control over the swizzling to the JSON, but also
552         simplifies the way we regenerate the data in the frontend.
553
554         * UserInterface/Views/RecordingActionTreeElement.js:
555         (WI.RecordingActionTreeElement._generateDOM):
556
557         * UserInterface/Views/RecordingContentView.js:
558         (WI.RecordingContentView.prototype._generateContentCanvas2D):
559         (WI.RecordingContentView.prototype._applyAction):
560
561         * UserInterface/Views/RecordingNavigationSidebarPanel.css:
562         (.sidebar > .panel.navigation.recording > .content .action.invalid:not(.selected, .initial-state) > .titles :matches(.name, .parameter.invalid)):
563         (.sidebar > .panel.navigation.recording > .content .action.invalid:not(.selected, .initial-state) > .titles .name,): Deleted.
564
565 2017-09-06  Joseph Pecoraro  <pecoraro@apple.com>
566
567         Web Inspector: ⌘E and ⌘G do not work in main content area when quick console drawer is open
568         https://bugs.webkit.org/show_bug.cgi?id=176433
569
570         Reviewed by Brian Burg.
571
572         Make the ⌘E and ⌘G keyboard shortcuts behave more like the global ⌘K clear shortcut.
573         Instead of keeping them inside of FindBanner, and enabling/disabling them when they
574         make sense to apply, we make a single global instance of the keyboard shortcut and
575         apply it to whatever content view / content browser is active. This avoids conflicts
576         in situations where there are two ContentViews that are visible and each can handle
577         the keyboard shortcut.
578
579         * UserInterface/Base/Main.js:
580         (WI.contentLoaded):
581         New keyboard shortcuts.
582
583         (WI._populateFind):
584         (WI._findNext):
585         (WI._findPrevious):
586         Perform the shortcut on the active content view or content browser.
587
588         * UserInterface/Views/ContentBrowser.js:
589         (WI.ContentBrowser.prototype.shown):
590         (WI.ContentBrowser.prototype.hidden):
591         (WI.ContentBrowser.prototype.handlePopulateFindShortcut):
592         (WI.ContentBrowser.prototype.handleFindNextShortcut):
593         (WI.ContentBrowser.prototype.handleFindPreviousShortcut):
594         (WI.ContentBrowser.prototype.findBannerSearchQueryForSelection): Deleted.
595         * UserInterface/Views/LogContentView.js:
596         (WI.LogContentView.prototype.handlePopulateFindShortcut):
597         (WI.LogContentView.prototype.handleFindNextShortcut):
598         (WI.LogContentView.prototype.handleFindPreviousShortcut):
599         ContentBrowser and LogContentView (the only content view with a custom find banner)
600         now each handle the global keyboard shortcut handlers to do the right thing for
601         their respective cases.
602
603         * UserInterface/Views/FindBanner.js:
604         (WI.FindBanner.prototype.enableKeyboardShortcuts): Deleted.
605         (WI.FindBanner.prototype.disableKeyboardShortcuts): Deleted.
606         (WI.FindBanner.prototype._populateSearchQueryFromSelection): Deleted.
607         Move keyboard shortcut handling up to Main.js to be global.
608
609         * UserInterface/Views/ContentView.js:
610         (WI.ContentView.prototype.searchQueryWithSelection):
611         Default implementation should grab the selected text from the selection.
612         Previously shortcut selections only worked for selections in text editors.
613
614 2017-09-05  Nikita Vasilyev  <nvasilyev@apple.com>
615
616         Web Inspector: Styles Redesign: display "Inherited From" section headers
617         https://bugs.webkit.org/show_bug.cgi?id=176033
618         <rdar://problem/34116930>
619
620         Reviewed by Devin Rousso.
621
622         Compared to the old styles sidebar, the new "Inherited From" sections are more compact.
623         One of the goals of the styles redesign is to make it fit more data vertically.
624
625         The contrast is inceased. The text is darker while the background stayed the same.
626
627         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
628         (.spreadsheet-style-panel .section-inherited):
629         (.spreadsheet-style-panel .section-inherited .node-link):
630         (.spreadsheet-style-panel .section-inherited .node-link:hover):
631         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
632         (WI.SpreadsheetRulesStyleDetailsPanel):
633         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
634         Don't show two identical "Inherited From" sections.
635
636 2017-09-05  Nikita Vasilyev  <nvasilyev@apple.com>
637
638         Web Inspector: Layout flashing for internal View.prototype.layout
639         https://bugs.webkit.org/show_bug.cgi?id=176389
640
641         Reviewed by Matt Baker.
642
643         Add a checkbox to Settings (Debug panel) to draw an orange outline around an element every time View.prototype.layout is called.
644         This is similar to paint flashing, except this is only for View.prototype.layout.
645
646         * UserInterface/Base/Setting.js:
647         * UserInterface/Views/SettingsTabContentView.js:
648         (WI.SettingsTabContentView.prototype._createDebugSettingsView):
649         * UserInterface/Views/View.js:
650         (WI.View.prototype._layoutSubtree):
651         (WI.View.prototype._drawLayoutFlashingOutline):
652
653 2017-09-04  Nikita Vasilyev  <nvasilyev@apple.com>
654
655         Web Inspector: Styles Redesign: hook up real data to spreadsheet style editor
656         https://bugs.webkit.org/show_bug.cgi?id=175343
657         <rdar://problem/33784793>
658
659         Reviewed by Devin Rousso.
660
661         Replace static HTML added in <https://webkit.org/b/174838> with actual data.
662
663         Addressed in this patch:
664         - CSS rules can be copied.
665         - Source links work as expected.
666         - Nonmatching selectors are grayed out.
667
668         Known limitations:
669         - Neither CSS selectors nor CSS properties are editable.
670         - "Inherited from" and media query section headers are missing.
671         - No syntax highlighting of complex CSS values, e.g. hsl(0, 0%, 70%).
672
673         * UserInterface/Main.html:
674         * UserInterface/Models/CSSStyleDeclaration.js:
675         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
676         (WI.CSSStyleDeclarationTextEditor):
677         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
678         (WI.CSSStyleDetailsSidebarPanel):
679         * UserInterface/Views/RulesStyleSpreadsheetDetailsPanel.js: Removed.
680         Rename RulesStyleSpreadsheetDetailsPanel to SpreadsheetRulesStyleDetailsPanel. All files related to the spreadsheet editor start with "Spreadsheet" now.
681
682         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: Added.
683         (.spreadsheet-style-declaration-editor):
684         (.spreadsheet-style-declaration-editor .name):
685         (.spreadsheet-style-declaration-editor .value):
686         (.spreadsheet-style-declaration-editor.no-properties):
687         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: Added.
688         (WI.SpreadsheetCSSStyleDeclarationEditor):
689         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
690         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get delegate):
691         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set delegate):
692         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get style):
693         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set style):
694         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get _propertiesToRender):
695         Similar condition is commonly used in CSSStyleDeclarationTextEditor. Abstact it out to its own method.
696
697         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._renderProperty):
698         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: Copied from Source/WebInspectorUI/UserInterface/Views/RulesStyleSpreadsheetDetailsPanel.css.
699         (.spreadsheet-css-declaration):
700         (.spreadsheet-css-declaration .origin):
701         (.spreadsheet-css-declaration.locked .origin::after):
702         (.spreadsheet-css-declaration .origin .go-to-link):
703         (.spreadsheet-css-declaration .origin .go-to-link:hover):
704         (.spreadsheet-css-declaration .styles-source):
705         (.spreadsheet-css-declaration .selector.style-attribute):
706         (.spreadsheet-css-declaration .selector > span):
707         (.spreadsheet-css-declaration .selector > .matched):
708         (.spreadsheet-css-declaration .properties):
709         (.spreadsheet-css-declaration.locked):
710         (.spreadsheet-css-declaration .locked-icon):
711         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: Added.
712         (WI.SpreadsheetCSSStyleDeclarationSection):
713         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.get element):
714         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.get style):
715         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
716         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout):
717         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorFocused):
718         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.get locked):
719         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.get selectorEditable):
720         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css: Renamed from Source/WebInspectorUI/UserInterface/Views/RulesStyleSpreadsheetDetailsPanel.css.
721         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: Added.
722         (WI.SpreadsheetRulesStyleDetailsPanel):
723         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
724         * UserInterface/Views/StyleDetailsPanel.js:
725         (WI.StyleDetailsPanel.prototype.filterDidChange):
726
727         * UserInterface/Views/View.js:
728         (WI.View.prototype.removeAllSubviews):
729         Add a method to remove all subviews more efficiently.
730
731 2017-08-29  Matt Baker  <mattbaker@apple.com>
732
733         Web Inspector: Critical content browser toolbar buttons are hidden at narrow widths
734         https://bugs.webkit.org/show_bug.cgi?id=175999
735
736         Reviewed by Devin Rousso.
737
738         This patch adds a VisibilityPriority concept to NavigationItems. If a
739         NavigationBar cannot fit all of its items in the available space, items
740         are hidden to make room, starting with the lowest priority item. Consecutive
741         dividers are then collapsed, as well as leading and trailing dividers.
742
743         * UserInterface/Main.html:
744         New file.
745
746         * UserInterface/Views/CanvasContentView.js:
747         (WI.CanvasContentView):
748         * UserInterface/Views/ConsoleDrawer.js:
749         (WI.ConsoleDrawer):
750         * UserInterface/Views/ContentBrowser.js:
751         (WI.ContentBrowser):
752         * UserInterface/Views/ContentBrowserTabContentView.js:
753         (WI.ContentBrowserTabContentView):
754         * UserInterface/Views/DOMTreeContentView.js:
755         (WI.DOMTreeContentView):
756         Set `High` and `Low` priorities, and group the back/forward buttons.
757
758         * UserInterface/Views/GroupNavigationItem.js: Added.
759         (WI.GroupNavigationItem):
760         (WI.GroupNavigationItem.prototype.get navigationItems):
761         (WI.GroupNavigationItem.prototype.get minimumWidth):
762         (WI.GroupNavigationItem.prototype.updateLayout):
763         (WI.GroupNavigationItem.prototype.didAttach):
764         (WI.GroupNavigationItem.prototype.didDetach):
765         NavigationItem groups. Grouped items are shown/hidden together.
766
767         * UserInterface/Views/HierarchicalPathNavigationItem.js:
768         (WI.HierarchicalPathNavigationItem.prototype.updateLayout):
769         * UserInterface/Views/ImageResourceContentView.js:
770         (WI.ImageResourceContentView):
771         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
772         (WI.IndexedDatabaseObjectStoreContentView):
773         * UserInterface/Views/LogContentView.js:
774         (WI.LogContentView):
775         Set `High` and `Low` priorities.
776
777         * UserInterface/Views/NavigationBar.css:
778         (.navigation-bar .item.force-hidden):
779         New hidden class, which must be tracked separately from ".hidden".
780         The former is an implementation detail of NavigationBar, while the
781         latter is set by the client.
782
783         * UserInterface/Views/NavigationBar.js:
784         (WI.NavigationBar.prototype.insertNavigationItem):
785         (WI.NavigationBar.prototype.removeNavigationItem):
786         (WI.NavigationBar.prototype.findNavigationItem.matchingSelfOrChild):
787         (WI.NavigationBar.prototype.findNavigationItem):
788         (WI.NavigationBar.prototype.layout.forceItemHidden):
789         (WI.NavigationBar.prototype.layout.isDivider):
790         (WI.NavigationBar.prototype.layout.calculateVisibleItemWidth):
791         (WI.NavigationBar.prototype.layout):
792         (WI.NavigationBar.prototype._calculateMinimumWidth):
793         (WI.NavigationBar.prototype.get _visibleNavigationItems):
794         (WI.NavigationBar):
795
796         * UserInterface/Views/NavigationItem.js:
797         Add support for visibility priority, an integer value that determines the
798         order in which items are hidden when the NavigationBar becomes too narrow
799         to fit all of items child items. NavigationIte3m defines constants for
800         Low, Normal (the default), and High priority.
801
802         (WI.NavigationItem):
803         (WI.NavigationItem.prototype.get minimumWidth):
804         (WI.NavigationItem.prototype.get width):
805         (WI.NavigationItem.prototype.get visibilityPriority):
806         (WI.NavigationItem.prototype.set visibilityPriority):
807         (WI.NavigationItem.prototype.updateLayout):
808         (WI.NavigationItem.prototype.didAttach):
809         (WI.NavigationItem.prototype.didDetach):
810         Encapsulate the setting of the parent NavigationBar. Needed so that
811         GroupNavigationItem can forward this action to its children.
812
813         * UserInterface/Views/NetworkGridContentView.js:
814         (WI.NetworkGridContentView):
815         * UserInterface/Views/RadioButtonNavigationItem.js:
816         (WI.RadioButtonNavigationItem.prototype.updateLayout):
817         * UserInterface/Views/RecordingContentView.js:
818         (WI.RecordingContentView):
819         * UserInterface/Views/ScriptContentView.js:
820         (WI.ScriptContentView):
821         * UserInterface/Views/TextContentView.js:
822         (WI.TextContentView):
823         * UserInterface/Views/TextResourceContentView.js:
824         (WI.TextResourceContentView):
825         * UserInterface/Views/TimelineRecordingContentView.js:
826         (WI.TimelineRecordingContentView):
827         * UserInterface/Views/TimelineTabContentView.js:
828         (WI.TimelineTabContentView):
829         Set `High` and `Low` priorities, and group Timeline view mode buttons.
830
831 2017-08-29  Joseph Pecoraro  <pecoraro@apple.com>
832
833         REGRESSION(r220235): Web Inspector: Global search should not happen incrementally
834         https://bugs.webkit.org/show_bug.cgi?id=176063
835
836         Reviewed by Devin Rousso.
837
838         * UserInterface/Base/Main.js:
839         (WI.contentLoaded):
840         * UserInterface/Views/SearchBar.js:
841         (WI.SearchBar):
842         (WI.SearchBar.prototype._handleKeydownEvent):
843         Remove delegate and simplify setting incremental.
844
845 2017-08-29  Nikita Vasilyev  <nvasilyev@apple.com>
846
847         Web Inspector: Convert all methods in Utilities.js to ECMAScript 2015 shorthand syntax
848         https://bugs.webkit.org/show_bug.cgi?id=176067
849
850         Reviewed by Joseph Pecoraro.
851
852         * UserInterface/Base/Utilities.js:
853         (get return):
854         (addStringToken):
855         (prettyFunctionName):
856         (warn):
857         (error):
858         (isEmptyObject):
859         (isEnterKey):
860         (resolveDotsInPath):
861         (parseMIMEType):
862         (simpleGlobStringToRegExp):
863         (defaultComparator):
864         (get Object):
865         (appendWebInspectorSourceURL):
866         (appendWebInspectorConsoleEvaluationSourceURL):
867         (isWebInspectorInternalScript):
868         (isWebInspectorConsoleEvaluationScript):
869         (isWebKitInjectedScript):
870         (isWebKitInternalScript):
871         (isFunctionStringNativeCode):
872         (isTextLikelyMinified):
873         (doubleQuotedString):
874         (insertionIndexForObjectInListSortedByFunction):
875         (insertObjectIntoSortedArray):
876         (decodeBase64ToBlob):
877
878 2017-08-29  Nikita Vasilyev  <nvasilyev@apple.com>
879
880         Web Inspector: Optimize View.prototype.removeSubview
881         https://bugs.webkit.org/show_bug.cgi?id=176041
882
883         Reviewed by Matt Baker.
884
885         Look up a subview in an array only once, not twice.
886
887         * UserInterface/Base/Utilities.js:
888         (Array.prototype.removeAll):
889         (Array.prototype.remove):
890         Split Array.propotype.remove(value, onlyFirst) into Array.propotype.removeAll(value) and
891         Array.propotype.remove(value).
892
893         * UserInterface/Controllers/DebuggerManager.js:
894         (WI.DebuggerManager.prototype._debuggerBreakpointOptions):
895         * UserInterface/Views/ContentViewContainer.js:
896         (WI.ContentViewContainer.prototype._clearTombstonesForContentView):
897         (WI.ContentViewContainer.prototype._disassociateFromContentView):
898         * UserInterface/Views/View.js:
899         (WI.View.prototype.removeSubview):
900
901 2017-08-28  Joseph Pecoraro  <pecoraro@apple.com>
902
903         Web Inspector: Remove some unused DataGrid code
904         https://bugs.webkit.org/show_bug.cgi?id=176029
905
906         Reviewed by Matt Baker.
907
908         * UserInterface/Views/DataGrid.js:
909         (WI.DataGrid.prototype.get copyTextDelimiter):
910         (WI.DataGrid.prototype.set copyTextDelimiter):
911         (WI.DataGrid.prototype.resizerDragging):
912         (WI.DataGrid.prototype.columnWidthsMap): Deleted.
913         (WI.DataGrid.prototype.applyColumnWidthsMap): Deleted.
914         (WI.DataGrid.prototype.get resizeMethod): Deleted.
915         (WI.DataGrid.prototype.set resizeMethod): Deleted.
916
917 2017-08-27  Devin Rousso  <webkit@devinrousso.com>
918
919         Web Inspector: Record actions performed on WebGLRenderingContext
920         https://bugs.webkit.org/show_bug.cgi?id=174483
921         <rdar://problem/34040722>
922
923         Reviewed by Matt Baker.
924
925         * UserInterface/Models/Recording.js:
926         (WI.Recording):
927         (WI.Recording.fromPayload):
928         (WI.Recording.prototype.swizzle):
929         Add swizzle types for WebGL parameters.
930
931         * UserInterface/Models/RecordingAction.js:
932         (WI.RecordingAction):
933         (WI.RecordingAction.fromPayload):
934         (WI.RecordingAction.prototype.get snapshot):
935         (WI.RecordingAction.prototype.swizzle):
936         (WI.RecordingAction.prototype.toJSON):
937         Include an optional fourth parameter `snapshot` that will be sent for visual actions when
938         recording WebGL canvas contexts.
939
940         * UserInterface/Views/RecordingContentView.js:
941         (WI.RecordingContentView):
942         (WI.RecordingContentView.prototype.get navigationItems):
943         (WI.RecordingContentView.prototype.updateActionIndex):
944         (WI.RecordingContentView.prototype.shown):
945         (WI.RecordingContentView.prototype._generateContentCanvasWebGL):
946         * UserInterface/Views/RecordingContentView.css:
947         (.content-view:not(.tab).recording :matches(img, canvas)):
948         (.content-view:not(.tab).recording canvas): Deleted.
949         Instead of regenerating the canvas context in the WebInspector frontend, just display the
950         snapshot image for the last visual action.
951
952         * UserInterface/Views/CanvasContentView.js:
953         (WI.CanvasContentView):
954
955         * UserInterface/Views/RecordingActionTreeElement.js:
956         (WI.RecordingActionTreeElement._generateDOM):
957
958 2017-08-24  Devin Rousso  <webkit@devinrousso.com>
959
960         Web Inspector: add filter for draw actions in Recordings
961         https://bugs.webkit.org/show_bug.cgi?id=175448
962         <rdar://problem/34040764>
963
964         Reviewed by Matt Baker.
965
966         * Localizations/en.lproj/localizedStrings.js:
967         
968         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
969         (WI.RecordingNavigationSidebarPanel.prototype.initialLayout):
970         (WI.RecordingNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
971         Add button to filter visual actions.
972         Drive-by fix: ensure that frame folders are still visible when filtering.
973
974         * UserInterface/Images/Paint.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/PaintFlashing.svg.
975         * UserInterface/Images/gtk/Paint.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/gtk/PaintFlashing.svg.
976         * UserInterface/Views/DOMTreeContentView.js:
977         (WI.DOMTreeContentView):
978         Rename PaintFlashing.svg to Paint.svg.
979
980 2017-08-24  Ross Kirsling  <ross.kirsling@sony.com>
981
982         Web Inspector: Create experimental Layers tab
983         https://bugs.webkit.org/show_bug.cgi?id=175728
984
985         Reviewed by Devin Rousso.
986
987         * Localizations/en.lproj/localizedStrings.js:
988         * UserInterface/Base/Main.js:
989         * UserInterface/Base/Setting.js:
990         * UserInterface/Images/Layers.svg: Added.
991         * UserInterface/Main.html:
992         * UserInterface/Views/Layers3DContentView.js: Added.
993         * UserInterface/Views/LayersTabContentView.js: Added.
994         * UserInterface/Views/SettingsTabContentView.js:
995
996 2017-08-24  Devin Rousso  <webkit@devinrousso.com>
997
998         Web Inspector: Table grid shouldn't show behind empty state
999         https://bugs.webkit.org/show_bug.cgi?id=175943
1000
1001         Reviewed by Brian Burg.
1002
1003         * UserInterface/Views/RecordingNavigationSidebarPanel.css:
1004         (.sidebar > .panel.navigation.recording > .content > .tree-outline):
1005         (.sidebar > .panel.navigation.recording > .content > .tree-outline:not(:empty)):
1006         Only apply the background when the TreeOutline has children.
1007
1008 2017-08-23  Nikita Vasilyev  <nvasilyev@apple.com>
1009
1010         Web Inspector: Make lock icon crispier
1011         https://bugs.webkit.org/show_bug.cgi?id=175868
1012
1013         Reviewed by Matt Baker.
1014
1015         * UserInterface/Images/Locked.svg:
1016
1017 2017-08-22  Devin Rousso  <webkit@devinrousso.com>
1018
1019         Web Inspector: provide way for ShaderPrograms to be enabled/disabled
1020         https://bugs.webkit.org/show_bug.cgi?id=175400
1021
1022         Reviewed by Matt Baker.
1023
1024         Adds a status element to ShaderProgramTreeElement that, when clicked, will toggle the
1025         disabled state of the corresponding ShaderProgram. Disabled shader programs will not draw
1026         anything to the context.
1027
1028         * Localizations/en.lproj/localizedStrings.js:
1029         * UserInterface/Main.html:
1030
1031         * UserInterface/Models/ShaderProgram.js:
1032         (WI.ShaderProgram):
1033         (WI.ShaderProgram.prototype.get disabled):
1034         (WI.ShaderProgram.prototype.toggleDisabled):
1035
1036         * UserInterface/Views/ShaderProgramTreeElement.js:
1037         (WI.ShaderProgramTreeElement):
1038         (WI.ShaderProgramTreeElement.prototype.selectOnMouseDown):
1039         (WI.ShaderProgramTreeElement.prototype._disabledImageElementClicked):
1040         * UserInterface/Views/ShaderProgramTreeElement.css: Added.
1041         (.item.shader-program .status > img):
1042         (.item.shader-program:not(:hover, .selected, .disabled) .status > img):
1043         (.tree-outline:matches(:focus, .force-focus) .item.shader-program.selected .status > img):
1044         (.item.shader-program.disabled > *):
1045
1046 2017-08-21  Devin Rousso  <webkit@devinrousso.com>
1047
1048         Web Inspector: Can't copy text from "View variable value" popover in Styles sidebar
1049         https://bugs.webkit.org/show_bug.cgi?id=175758
1050
1051         Reviewed by Matt Baker.
1052
1053         * UserInterface/Views/InlineSwatch.js:
1054         (WI.InlineSwatch.prototype._swatchElementClicked):
1055         Change CodeMirror readOnly from "nocursor" to true. The former prevents the editor from
1056         being focused during selection, therefore preventing the content from being copied.
1057
1058 2017-08-17  Matt Baker  <mattbaker@apple.com>
1059
1060         Web Inspector: create better icon for Canvas Path navigation item
1061         https://bugs.webkit.org/show_bug.cgi?id=175274
1062
1063         Reviewed by Joseph Pecoraro.
1064
1065         * UserInterface/Images/Path.svg: Added.
1066         * UserInterface/Views/RecordingContentView.js:
1067         (WI.RecordingContentView):
1068
1069 2017-08-17  Nikita Vasilyev  <nvasilyev@apple.com>
1070
1071         Web Inspector: Styles: replace "Enter Class Name" with "Add New Class"
1072         https://bugs.webkit.org/show_bug.cgi?id=175686
1073
1074         Reviewed by Matt Baker.
1075
1076         "Enter Class Name" isn't very descriptive. It doesn't suggest what's going to happen after you enter a class name.
1077
1078         * Localizations/en.lproj/localizedStrings.js:
1079         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
1080         (WI.CSSStyleDetailsSidebarPanel.prototype.initialLayout):
1081
1082 2017-08-17  Ross Kirsling  <ross.kirsling@sony.com>
1083
1084         Web Inspector: Ensure three.js gets minified properly for production builds.
1085         https://bugs.webkit.org/show_bug.cgi?id=175452
1086
1087         Reviewed by Brian Burg.
1088
1089         * Scripts/copy-user-interface-resources.pl:
1090
1091 2017-08-14  Simon Fraser  <simon.fraser@apple.com>
1092
1093         Remove Proximity Events and related code
1094         https://bugs.webkit.org/show_bug.cgi?id=175545
1095
1096         Reviewed by Daniel Bates.
1097
1098         No platform enables Proximity Events, so remove code inside ENABLE(PROXIMITY_EVENTS)
1099         and other related code.
1100
1101         * UserInterface/Models/ScriptTimelineRecord.js:
1102         (WI.ScriptTimelineRecord.EventType.displayName):
1103
1104 2017-08-14  Matt Baker  <mattbaker@apple.com>
1105
1106         Web Inspector: Remove text-shadow and gradient backgrounds
1107         https://bugs.webkit.org/show_bug.cgi?id=175430
1108
1109         Reviewed by Brian Burg.
1110
1111         Inspector should more closely match flat system look. Remove text-shadow
1112         embossing and replace linear gradients in popover backgrounds and selected
1113         tree item background color.
1114
1115         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
1116         (.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
1117         * UserInterface/Views/CompletionSuggestionsView.css:
1118         (.completion-suggestions-container:not(:active) > .item.selected,):
1119         * UserInterface/Views/DebuggerDashboardView.css:
1120         (.toolbar .dashboard.debugger):
1121         * UserInterface/Views/HierarchicalPathComponent.css:
1122         (.hierarchical-path-component > .title):
1123         * UserInterface/Views/Main.css:
1124         (.bouncy-highlight):
1125         * UserInterface/Views/NavigationSidebarPanel.css:
1126         (.sidebar > .panel.navigation > .content .empty-content-placeholder > .message):
1127         * UserInterface/Views/Popover.js:
1128         (WI.Popover.prototype._drawBackground):
1129         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.css:
1130         (.sidebar > .details.recording-trace > .content > .no-trace-data > .message):
1131         * UserInterface/Views/RulesStyleDetailsPanel.css:
1132         (.sidebar > .panel.details.css-style .rules .label):
1133         (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results > .no-filter-results-message):
1134         (@media (-webkit-min-device-pixel-ratio: 2)): Deleted.
1135         (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .label.filter-matching-label,): Deleted.
1136         * UserInterface/Views/RulesStyleSpreadsheetDetailsPanel.css:
1137         (.style-spreadsheet .inherited):
1138         * UserInterface/Views/TimelineDataGrid.css:
1139         (.tree-outline.timeline-data-grid .item:hover):
1140         * UserInterface/Views/TimelineDataGrid.js:
1141         (WI.TimelineDataGrid.prototype._createPopoverContent):
1142         * UserInterface/Views/Variables.css:
1143         (:root):
1144
1145 2017-08-11  Nikita Vasilyev  <nvasilyev@apple.com>
1146
1147         Web Inspector: Clicking on suggestion hint should apply it, not dismiss
1148         https://bugs.webkit.org/show_bug.cgi?id=175409
1149
1150         Reviewed by Matt Baker.
1151
1152         Make clicking on the suggestion hint apply the completion, and place the text caret after it.
1153
1154         * UserInterface/Controllers/CodeMirrorCompletionController.js:
1155         (WI.CodeMirrorCompletionController.prototype._createCompletionHintMarker):
1156
1157 2017-08-11  Nikita Vasilyev  <nvasilyev@apple.com>
1158
1159         Web Inspector: Styles: Update the filter icon to match Xcode
1160         https://bugs.webkit.org/show_bug.cgi?id=175458
1161         <rdar://problem/33838660>
1162
1163         Reviewed by Matt Baker.
1164
1165         * UserInterface/Images/FilterFieldGlyph.svg:
1166         Half-pixel transform is necessary for a cleaner rasterisation.
1167
1168         * UserInterface/Views/FilterBar.css:
1169         (.filter-bar > input[type="search"]::-webkit-search-decoration):        
1170         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
1171         ::-webkit-search-decoration is a flexbox item. Remove `vertical-align: bottom`,
1172         since it didn't do anything for it.
1173
1174         * UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
1175         * UserInterface/Views/FilterBar.js:
1176         (WI.FilterBar):        
1177         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
1178         (WI.CSSStyleDetailsSidebarPanel.prototype.initialLayout):
1179         * UserInterface/Views/DebuggerSidebarPanel.js:
1180         * UserInterface/Views/LogContentView.js:
1181         (WI.LogContentView):
1182         * UserInterface/Views/NetworkSidebarPanel.js:
1183         (WI.NetworkSidebarPanel):
1184         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
1185         (WI.RecordingNavigationSidebarPanel):
1186         * UserInterface/Views/ResourceSidebarPanel.js:
1187         (WI.ResourceSidebarPanel):
1188         * UserInterface/Views/SearchSidebarPanel.js:
1189         (WI.SearchSidebarPanel):
1190         * UserInterface/Views/StorageSidebarPanel.js:
1191         (WI.StorageSidebarPanel):
1192         * UserInterface/Views/TimelineRecordingContentView.js:
1193         (WI.TimelineRecordingContentView):
1194         * Localizations/en.lproj/localizedStrings.js:        
1195         Replace placeholder text for all filter fields with "Filter".
1196
1197 2017-08-10  Ross Kirsling  <ross.kirsling@sony.com>
1198
1199         Web Inspector: Add three.js in preparation for layer visualization.
1200         https://bugs.webkit.org/show_bug.cgi?id=174798
1201
1202         Reviewed by Brian Burg.
1203
1204         * UserInterface/External/three.js/LICENSE: Added.
1205         * UserInterface/External/three.js/OrbitControls.js: Added.
1206         * UserInterface/External/three.js/three.js: Added.
1207
1208 2017-08-09  Nikita Vasilyev  <nvasilyev@apple.com>
1209
1210         Web Inspector: Styles: Add pre-populated data to spreadsheet-style view
1211         https://bugs.webkit.org/show_bug.cgi?id=174838
1212         <rdar://problem/33523220>
1213
1214         Reviewed by Matt Baker.
1215
1216         This patch adds static content to the experimental RulesStyleSpreadsheetDetailsPanel.
1217         The static content will be replaced with actual data in the follow up patches.
1218
1219         * UserInterface/Main.html:
1220         * UserInterface/Views/RulesStyleSpreadsheetDetailsPanel.css: Added.
1221         (.style-spreadsheet .style-rule):
1222         (.style-spreadsheet .selector-line):
1223         (.style-spreadsheet .selector):
1224         (.style-spreadsheet :matches(.selector .matched, .selector:focus)):
1225         (.style-spreadsheet .name):
1226         (.style-spreadsheet .value):
1227         (.style-spreadsheet :matches(.selector, .name, .value)):
1228         (.style-spreadsheet :matches(.selector, .name, .value):focus):
1229         (.style-spreadsheet .selector-inline):
1230         (.style-spreadsheet .property):
1231         (.style-spreadsheet .property-disabled,):
1232         (.style-spreadsheet .property-disabled :matches(.name, .value)):
1233         (.style-spreadsheet .styles-source):
1234         (.style-spreadsheet :matches(a, .node-link)):
1235         (.style-spreadsheet :matches(a, .node-link):hover):
1236         (.style-spreadsheet .inherited):
1237         (.style-spreadsheet .declarations):
1238         (.style-spreadsheet input[type="checkbox"]):
1239         (.style-spreadsheet input[type="checkbox"]:not(:checked)):
1240         (.style-spreadsheet .declarations:hover input[type="checkbox"]):
1241         * UserInterface/Views/RulesStyleSpreadsheetDetailsPanel.js:
1242
1243 2017-08-08  Devin Rousso  <drousso@apple.com>
1244
1245         Web Inspector: Canvas: support editing WebGL shaders
1246         https://bugs.webkit.org/show_bug.cgi?id=124211
1247         <rdar://problem/15448958>
1248
1249         Reviewed by Matt Baker.
1250
1251         * UserInterface/Models/ShaderProgram.js:
1252         (WI.ShaderProgram.prototype.updateVertexShader):
1253         (WI.ShaderProgram.prototype.updateFragmentShader):
1254         (WI.ShaderProgram.prototype._updateShader):
1255
1256         * UserInterface/Views/ShaderProgramContentView.js:
1257         (WI.ShaderProgramContentView):
1258         (WI.ShaderProgramContentView.prototype._contentDidChange):
1259
1260 2017-08-07  Devin Rousso  <drousso@apple.com>
1261
1262         Web Inspector: Preview Canvas path when viewing a recording
1263         https://bugs.webkit.org/show_bug.cgi?id=174967
1264
1265         Reviewed by Brian Burg.
1266
1267         * Localizations/en.lproj/localizedStrings.js:
1268         * UserInterface/Base/Setting.js:
1269
1270         * UserInterface/Views/RecordingContentView.js:
1271         (WI.RecordingContentView):
1272         (WI.RecordingContentView.supportsCanvasPathDebugging):
1273         (WI.RecordingContentView.prototype.get navigationItems):
1274         (WI.RecordingContentView.prototype.shown):
1275         (WI.RecordingContentView.prototype._generateContentCanvas2D):
1276         (WI.RecordingContentView.prototype._actionModifiesPath):
1277         (WI.RecordingContentView.prototype._updateCanvasPath):
1278         (WI.RecordingContentView.prototype._showPathButtonClicked):
1279         Show each segment of the current path as an overlay when the setting is enabled.
1280         Drive-by: fix forgotten function rename.
1281
1282         * UserInterface/Views/RecordingContentView.css:
1283         (.content-view:not(.tab).recording canvas.path):
1284
1285         * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
1286         (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
1287         Show the currentX/currentY in the current state.
1288
1289         * UserInterface/Models/RecordingAction.js:
1290         (WI.RecordingAction.isFunctionForType):
1291         (WI.RecordingAction.prototype.swizzle):
1292         Use Sets for better performance.
1293
1294 2017-08-04  Devin Rousso  <drousso@apple.com>
1295
1296         Web Inspector: add source view for WebGL shader programs
1297         https://bugs.webkit.org/show_bug.cgi?id=138593
1298         <rdar://problem/18936194>
1299
1300         Reviewed by Matt Baker.
1301
1302         Shader programs are now listed in the Resources sidebar as items within the owner Canvas
1303         context. When selected, the shown content view has two editors, one for the Vertex shader
1304         and one for the Fragment shader. These editors use CodeMirror's "clike" mode for GLSL syntax.
1305
1306         * Localizations/en.lproj/localizedStrings.js:
1307         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1308         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1309         * UserInterface/Main.html:
1310
1311         * UserInterface/Controllers/CanvasManager.js:
1312         (WI.CanvasManager):
1313         (WI.CanvasManager.prototype.canvasRemoved):
1314         (WI.CanvasManager.prototype.programCreated):
1315         (WI.CanvasManager.prototype.programDeleted):
1316         (WI.CanvasManager.prototype._mainResourceDidChange):
1317
1318         * UserInterface/Models/Collection.js:
1319         * UserInterface/Models/Canvas.js:
1320         (WI.Canvas.prototype.get shaderProgramCollection)
1321
1322         * UserInterface/Models/ShaderProgram.js:
1323         (WI.ShaderProgram.prototype.requestVertexShaderSource):
1324         (WI.ShaderProgram.prototype.requestFragmentShaderSource):
1325         (WI.ShaderProgram.prototype._requestShaderSource):
1326
1327         * UserInterface/Views/CanvasTreeElement.js:
1328         (WI.CanvasTreeElement):
1329         (WI.CanvasTreeElement.prototype.onattach):
1330         (WI.CanvasTreeElement.prototype.ondetach):
1331         (WI.CanvasTreeElement.prototype.onpopulate):
1332         (WI.CanvasTreeElement.prototype._shaderProgramAdded):
1333         (WI.CanvasTreeElement.prototype._shaderProgramRemoved):
1334
1335         * UserInterface/Views/ShaderProgramTreeElement.js: Added.
1336         (WI.ShaderProgramTreeElement):
1337
1338         * UserInterface/Views/ShaderProgramContentView.js: Added.
1339         (WI.ShaderProgramContentView):
1340         (WI.ShaderProgramContentView.prototype.shown):
1341         (WI.ShaderProgramContentView.prototype.hidden):
1342         (WI.ShaderProgramContentView.prototype.closed):
1343         (WI.ShaderProgramContentView.prototype.get supportsSave):
1344         (WI.ShaderProgramContentView.prototype.get saveData):
1345         (WI.ShaderProgramContentView.prototype.get supportsSearch):
1346         (WI.ShaderProgramContentView.prototype.get numberOfSearchResults):
1347         (WI.ShaderProgramContentView.prototype.get hasPerformedSearch):
1348         (WI.ShaderProgramContentView.prototype.set automaticallyRevealFirstSearchResult):
1349         (WI.ShaderProgramContentView.prototype.performSearch):
1350         (WI.ShaderProgramContentView.prototype.searchCleared):
1351         (WI.ShaderProgramContentView.prototype.searchQueryWithSelection):
1352         (WI.ShaderProgramContentView.prototype.revealPreviousSearchResult):
1353         (WI.ShaderProgramContentView.prototype.revealNextSearchResult):
1354         (WI.ShaderProgramContentView.prototype.revealPosition):
1355         (WI.ShaderProgramContentView.prototype._editorFocused):
1356         (WI.ShaderProgramContentView.prototype._numberOfSearchResultsDidChange):
1357         * UserInterface/Views/ShaderProgramContentView.css: Added.
1358         (.content-view.shader-program > .text-editor.shader):
1359         (body[dir=ltr] .content-view.shader-program > .text-editor.shader.vertex,):
1360         (body[dir=ltr] .content-view.shader-program > .text-editor.shader.fragment,):
1361         (body[dir=ltr] .content-view.shader-program > .text-editor.shader + .text-editor.shader):
1362         (body[dir=rtl] .content-view.shader-program > .text-editor.shader + .text-editor.shader):
1363         (.content-view.shader-program > .text-editor.shader > .type-title):
1364         (.content-view.shader-program > .text-editor.shader > .CodeMirror):
1365
1366         * UserInterface/Images/DocumentGL.png: Added.
1367         * UserInterface/Images/DocumentGL@2x.png: Added.
1368         * UserInterface/Views/ResourceIcons.css:
1369         (.shader-program .icon):
1370
1371         * UserInterface/Base/Main.js:
1372         * UserInterface/Views/ContentView.js:
1373         (WI.ContentView.createFromRepresentedObject):
1374         (WI.ContentView.isViewable):
1375         * UserInterface/Views/ResourceSidebarPanel.js:
1376         (WI.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
1377         (WI.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
1378         (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange):
1379         * UserInterface/Views/ResourcesTabContentView.js:
1380         (WI.ResourcesTabContentView.prototype.canShowRepresentedObject):
1381         Plumbing for displaying ShaderProgram content.
1382
1383         * UserInterface/Views/TextEditor.js:
1384         (WebInspector.TextEditor):
1385         (WebInspector.TextEditor.prototype._editorFocused):
1386
1387         * Scripts/update-codemirror-resources.rb:
1388         * UserInterface/External/CodeMirror/clike.js: Added.
1389         Add C-like mode for highlighting GLSL.
1390
1391 2017-08-03  Joseph Pecoraro  <pecoraro@apple.com>
1392
1393         JSContext Inspector: Scripts sometimes do not show in resources tab
1394         https://bugs.webkit.org/show_bug.cgi?id=175153
1395         <rdar://problem/33708683>
1396
1397         Reviewed by Matt Baker.
1398
1399         * UserInterface/Views/ResourceSidebarPanel.js:
1400         (WI.ResourceSidebarPanel.prototype.initialLayout):
1401         When the ResourceSidebar is lazily created, be sure to add any scripts
1402         to the sidebar that are not backed by Resources.
1403
1404         (WI.ResourceSidebarPanel.prototype._scriptWasAdded):
1405         (WI.ResourceSidebarPanel.prototype._addScript):
1406         Extract so it can be used outside of an event handler.
1407
1408 2017-08-03  Devin Rousso  <drousso@apple.com>
1409
1410         Web Inspector: add button to open Inspector^2
1411         https://bugs.webkit.org/show_bug.cgi?id=175108
1412
1413         Reviewed by Brian Burg.
1414
1415         * UserInterface/Debug/Bootstrap.js:
1416         (updateDebugUI):
1417         (WI.runBootstrapOperations):
1418
1419         * UserInterface/Views/ButtonToolbarItem.js:
1420         (WI.ButtonToolbarItem):
1421         (WI.ButtonToolbarItem.prototype.get label): Deleted.
1422         (WI.ButtonToolbarItem.prototype.set label): Deleted.
1423         * UserInterface/Views/ButtonToolbarItem.css:
1424         (.toolbar .item.button):
1425         (.toolbar .item.button:not(.disabled):active):
1426         (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
1427         (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)):
1428         (.toolbar .item.button > .glyph):
1429         (.toolbar .item.button:not(.disabled):active > .glyph): Deleted.
1430         (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated) > .glyph): Deleted.
1431         (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated) > .glyph): Deleted.
1432         (.toolbar .item.button > .label): Deleted.
1433         * UserInterface/Views/ActivateButtonToolbarItem.js:
1434         (WI.ActivateButtonToolbarItem):
1435         (WI.ActivateButtonToolbarItem.prototype.get label): Deleted.
1436         (WI.ActivateButtonToolbarItem.prototype.set label): Deleted.
1437         * UserInterface/Base/Main.js:
1438         (WI.contentLoaded):
1439         Remove unused `label` parameter from Toolbar objects.
1440
1441 2017-08-03  Matt Baker  <mattbaker@apple.com>
1442
1443         Web Inspector: Instrument WebGLProgram created/deleted
1444         https://bugs.webkit.org/show_bug.cgi?id=175059
1445
1446         Reviewed by Devin Rousso.
1447
1448         This patch adds frontend support for shader program instrumentation.
1449         The frontend creates a ShaderProgram model object for each WebGLProgram.
1450         Since only canvases with a WebGL context have programs, the Canvas model
1451         object does not contain any logic specific to programs. CanvasManager
1452         dispatches program added/removed events, and the parent Canvas can be
1453         accessed from ShaderProgram but not the other way around.
1454
1455         * UserInterface/Controllers/CanvasManager.js:
1456         (WI.CanvasManager):
1457         (WI.CanvasManager.prototype.get shaderPrograms):
1458         (WI.CanvasManager.prototype.canvasRemoved):
1459         (WI.CanvasManager.prototype.programCreated):
1460         (WI.CanvasManager.prototype.programDeleted):
1461         (WI.CanvasManager.prototype._mainResourceDidChange):
1462         (WI.CanvasManager.prototype._dispatchShaderProgramRemoved):
1463
1464         * UserInterface/Main.html:
1465
1466         * UserInterface/Models/Canvas.js:
1467         (WI.Canvas.prototype.nextShaderProgramDisplayNumber):
1468         (WI.Canvas):
1469
1470         * UserInterface/Models/ShaderProgram.js: Added.
1471         (WI.ShaderProgram):
1472         (WI.ShaderProgram.prototype.get identifier):
1473         (WI.ShaderProgram.prototype.get canvas):
1474         (WI.ShaderProgram.prototype.get displayName):
1475
1476         * UserInterface/Protocol/CanvasObserver.js:
1477         (WI.CanvasObserver.prototype.programCreated):
1478         (WI.CanvasObserver.prototype.programDeleted):
1479         (WI.CanvasObserver):
1480
1481         * UserInterface/Test.html:
1482
1483 2017-08-03  Joseph Pecoraro  <pecoraro@apple.com>
1484
1485         JSContext Inspector: Recording tab should not be available in New Tab picker
1486         https://bugs.webkit.org/show_bug.cgi?id=175155
1487
1488         Reviewed by Brian Burg.
1489
1490         * UserInterface/Views/RecordingTabContentView.js:
1491         (WI.RecordingTabContentView.isTabAllowed):
1492         Only allow the Recording Tab if we have a CanvasAgent.
1493
1494 2017-08-02  Devin Rousso  <drousso@apple.com>
1495
1496         Web Inspector: add stack trace information for each RecordingAction
1497         https://bugs.webkit.org/show_bug.cgi?id=174663
1498
1499         Reviewed by Joseph Pecoraro.
1500
1501         * Localizations/en.lproj/localizedStrings.js:
1502         * UserInterface/Main.html:
1503
1504         * UserInterface/Models/Recording.js:
1505         (WI.Recording.prototype.swizzle):
1506         Add Array type for swizzling array values.
1507
1508         * UserInterface/Models/RecordingAction.js:
1509         (WI.RecordingAction):
1510         (WI.RecordingAction.fromPayload):
1511         (WI.RecordingAction.prototype.get trace):
1512         (WI.RecordingAction.prototype.swizzle):
1513         (WI.RecordingAction.prototype.toJSON):
1514
1515         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js: Added.
1516         (WI.RecordingTraceDetailsSidebarPanel):
1517         (WI.RecordingTraceDetailsSidebarPanel.disallowInstanceForClass):
1518         (WI.RecordingTraceDetailsSidebarPanel.prototype.inspect):
1519         (WI.RecordingTraceDetailsSidebarPanel.prototype.set recording):
1520         (WI.RecordingTraceDetailsSidebarPanel.prototype.updateActionIndex):
1521         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.css: Added.
1522         (.sidebar > .panel.details.recording-trace > .content > .call-frame):
1523         (.sidebar > .details.recording-trace > .content > .no-trace-data):
1524         (.sidebar > .details.recording-trace > .content > .no-trace-data > .message):
1525
1526         * UserInterface/Views/RecordingTabContentView.js:
1527         (WI.RecordingTabContentView):
1528
1529         * UserInterface/Views/RecordingActionTreeElement.js:
1530         (WI.RecordingActionTreeElement.prototype.populateContextMenu):
1531
1532         * UserInterface/Views/CallFrameView.css:
1533         (.call-frame):
1534         (body[dir=ltr] .call-frame .icon):
1535         (body[dir=rtl] .call-frame .icon):
1536         Apply the same trailing margin for CallFrameView icons as TreeElement.
1537
1538 2017-08-02  Devin Rousso  <drousso@apple.com>
1539
1540         Web Inspector: add TreeElement virtualization for the Recording tab
1541         https://bugs.webkit.org/show_bug.cgi?id=174968
1542
1543         Reviewed by Joseph Pecoraro.
1544
1545         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
1546         (WI.RecordingNavigationSidebarPanel):
1547
1548         * UserInterface/Views/TreeOutline.js:
1549         (WI.TreeOutline):
1550         (WI.TreeOutline.prototype.get virtualized):
1551         (WI.TreeOutline.prototype.registerScrollVirtualizer):
1552         (WI.TreeOutline.prototype.updateVirtualizedElements.walk):
1553         (WI.TreeOutline.prototype.updateVirtualizedElements):
1554         Add spacer elements before and after the TreeOutline element that will size to ensure that
1555         the TreeOutline node still takes up the same amount of space after some of the TreeElements
1556         are removed. Whenever the scroll of the container view changes, recalculate the visible area
1557         and add/remove TreeElements based on whether they would be in that. This is only possible if
1558         every TreeElement has the same vertical height, which is given when setting up the scroll
1559         listener on the container view.
1560
1561         * UserInterface/Views/TreeElement.js:
1562         (WI.TreeElement.prototype.set hidden):
1563         (WI.TreeElement.prototype._attach):
1564         (WI.TreeElement.prototype.collapse):
1565         (WI.TreeElement.prototype.expand):
1566         (WI.TreeElement.prototype.reveal):
1567         If the TreeOutline is being virtualized, don't add each TreeElement's node to the DOM. They
1568         will be added at the end of the frame (via setTimeout) if they are within the visible + padding
1569         area of the TreeOutline.
1570
1571 2017-08-01  Devin Rousso  <drousso@apple.com>
1572
1573         Web Inspector: simplify WebInspector with WI
1574         https://bugs.webkit.org/show_bug.cgi?id=175058
1575
1576         Reviewed by Joseph Pecoraro.
1577
1578         * .eslintrc:
1579
1580         * Tools/PrettyPrinting/FormatterDebug.js:
1581         * Tools/PrettyPrinting/index.html:
1582
1583         * UserInterface/Main.html:
1584         * UserInterface/Test.html:
1585
1586         * UserInterface/Base/*.js:
1587         * UserInterface/Controllers/*.js:
1588         * UserInterface/Debug/*.js:
1589         * UserInterface/Models/*.js:
1590         * UserInterface/Protocol/*.js:
1591         * UserInterface/Proxies/*.js:
1592         * UserInterface/Test/*.js:
1593         * UserInterface/Views/*.js:
1594
1595 2017-08-01  Devin Rousso  <drousso@apple.com>
1596
1597         Web Inspector: create Recording tab for displaying recordings
1598         https://bugs.webkit.org/show_bug.cgi?id=174484
1599
1600         Reviewed by Joseph Pecoraro.
1601
1602         * Localizations/en.lproj/localizedStrings.js:
1603         * UserInterface/Main.html:
1604         * UserInterface/Test.html:
1605
1606         * UserInterface/Controllers/CanvasManager.js:
1607         (WebInspector.CanvasManager.prototype.recordingFinished):
1608         * UserInterface/Models/Canvas.js:
1609         (WebInspector.Canvas.prototype.toggleRecording):
1610
1611         * UserInterface/Models/Recording.js:
1612         (WebInspector.Recording):
1613         (WebInspector.Recording.synthesizeError):
1614         (WebInspector.Recording.prototype.get actions):
1615         (WebInspector.Recording.prototype.get source):
1616         (WebInspector.Recording.prototype.set source):
1617         (WebInspector.Recording.prototype.swizzle):
1618
1619         * UserInterface/Models/RecordingAction.js:
1620         (WebInspector.RecordingAction):
1621         (WebInspector.RecordingAction.isFunctionForType):
1622         (WebInspector.RecordingAction.get name):
1623         (WebInspector.RecordingAction.get parameters):
1624         (WebInspector.RecordingAction.prototype.get valid):
1625         (WebInspector.RecordingAction.prototype.set valid):
1626         (WebInspector.RecordingAction.get isFunction):
1627         (WebInspector.RecordingAction.get isGetter):
1628         (WebInspector.RecordingAction.get isVisual):
1629         (WebInspector.RecordingAction.get stateModifiers):
1630         (WebInspector.RecordingAction.prototype.swizzle):
1631         (WebInspector.RecordingAction.prototype.parameterSwizzleTypeForTypeAtIndex):
1632
1633         * UserInterface/Models/RecordingInitialStateAction.js: Added.
1634         (WebInspector.RecordingInitialStateAction):
1635
1636         * UserInterface/Views/RecordingTabContentView.js: Added.
1637         (WebInspector.RecordingTabContentView):
1638         (WebInspector.RecordingTabContentView.tabInfo):
1639         (WebInspector.RecordingTabContentView.prototype.get type):
1640         (WebInspector.RecordingTabContentView.prototype.canShowRepresentedObject):
1641         (WebInspector.RecordingTabContentView.prototype.showRepresentedObject):
1642         (WebInspector.RecordingTabContentView.prototype.restoreStateFromCookie):
1643         (WebInspector.RecordingTabContentView.prototype.saveStateToCookie):
1644         (WebInspector.RecordingTabContentView.prototype.closed):
1645         (WebInspector.RecordingTabContentView.prototype._updateActionIndex):
1646         (WebInspector.RecordingTabContentView.prototype._scrubberNavigationItemValueChanged):
1647         (WebInspector.RecordingTabContentView.prototype._navigationSidebarImport):
1648         (WebInspector.RecordingTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged):
1649
1650         * UserInterface/Views/RecordingContentView.js: Added.
1651         (WebInspector.RecordingContentView):
1652         (WebInspector.RecordingContentView.prototype.get navigationItems):
1653         (WebInspector.RecordingContentView.prototype.updateActionIndex):
1654         (WebInspector.RecordingContentView.prototype.shown):
1655         (WebInspector.RecordingContentView.prototype.get supplementalRepresentedObjects):
1656         (WebInspector.RecordingContentView.prototype._generateContentCanvas2D):
1657         (WebInspector.RecordingContentView.prototype._applyAction):
1658         (WebInspector.RecordingContentView.prototype._updateImageGrid):
1659         (WebInspector.RecordingContentView.prototype._showGridButtonClicked):
1660         * UserInterface/Views/RecordingContentView.css: Copied from Source/WebInspectorUI/UserInterface/Views/CanvasContentView.css.
1661         (.content-view:not(.tab).recording):
1662         (.content-view:not(.tab).recording > .preview-container):
1663         (.content-view:not(.tab).recording canvas):
1664
1665         * UserInterface/Views/RecordingNavigationSidebarPanel.js: Added.
1666         (WebInspector.RecordingNavigationSidebarPanel):
1667         (WebInspector.RecordingNavigationSidebarPanel.disallowInstanceForClass):
1668         (WebInspector.RecordingNavigationSidebarPanel.prototype.set recording):
1669         (WebInspector.RecordingNavigationSidebarPanel.prototype.updateActionIndex):
1670         (WebInspector.RecordingNavigationSidebarPanel.prototype.initialLayout):
1671         (WebInspector.RecordingNavigationSidebarPanel.prototype._importNavigationItemClicked):
1672         (WebInspector.RecordingNavigationSidebarPanel.prototype._exportNavigationItemClicked):
1673         * UserInterface/Views/RecordingNavigationSidebarPanel.css: Added.
1674         (.sidebar > .panel.navigation.recording > :matches(.content, .empty-content-placeholder)):
1675         (.sidebar > .panel.navigation.recording > .content > .tree-outline):
1676         (.sidebar > .panel.navigation.recording > .content > .tree-outline > .item.parent:not(.action, .selected).expanded):
1677         (.sidebar > .panel.navigation.recording > .content > .tree-outline .item.action:not(.initial-state)::before):
1678         (body[dir=ltr] .sidebar > .panel.navigation.recording > .content > .tree-outline .item.action:not(.initial-state)::before):
1679         (body[dir=rtl] .sidebar > .panel.navigation.recording > .content > .tree-outline .item.action:not(.initial-state)::before):
1680         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="2"] .item.action:not(.initial-state)::before):
1681         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="3"] .item.action:not(.initial-state)::before):
1682         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="4"] .item.action:not(.initial-state)::before):
1683         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="5"] .item.action:not(.initial-state)::before):
1684         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="6"] .item.action:not(.initial-state)::before):
1685         (.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="7"] .item.action:not(.initial-state)::before):
1686         (.sidebar > .panel.navigation.recording > .content .action > .icon):
1687         (.sidebar > .panel.navigation.recording > .content .action.function > .icon):
1688         (.sidebar > .panel.navigation.recording > .content .action.attribute.getter > .icon):
1689         (.sidebar > .panel.navigation.recording > .content .tree-outline:matches(:focus, .force-focus) .action.attribute.getter.selected > .icon):
1690         (.sidebar > .panel.navigation.recording > .content .action.attribute.boolean > .icon):
1691         (.sidebar > .panel.navigation.recording > .content .action.attribute.number > .icon):
1692         (.sidebar > .panel.navigation.recording > .content .action.attribute.object > .icon):
1693         (.sidebar > .panel.navigation.recording > .content .action.attribute.string > .icon):
1694         (.sidebar > .panel.navigation.recording > .content > .tree-outline > .item.parent:not(.action) > .icon):
1695         (.sidebar > .panel.navigation.recording > .content .action:matches(.invalid, .missing) > .icon):
1696         (body[dir=ltr] .sidebar > .panel.navigation.recording > .content .action:not(.initial-state) > .icon):
1697         (body[dir=rtl] .sidebar > .panel.navigation.recording > .content .action:not(.initial-state) > .icon):
1698         (.sidebar > .panel.navigation.recording > .content .action.visual:not(.selected, .invalid)):
1699         (.sidebar > .panel.navigation.recording > .content .action:not(.selected, .initial-state) > .titles .parameter.swizzled):
1700         (.sidebar > .panel.navigation.recording > .content .action.invalid:not(.selected, .initial-state) > .titles .name,):
1701
1702         * UserInterface/Views/RecordingStateDetailsSidebarPanel.js: Added.
1703         (WebInspector.RecordingStateDetailsSidebarPanel):
1704         (WebInspector.RecordingStateDetailsSidebarPanel.disallowInstanceForClass):
1705         (WebInspector.RecordingStateDetailsSidebarPanel.prototype.inspect):
1706         (WebInspector.RecordingStateDetailsSidebarPanel.prototype.set recording):
1707         (WebInspector.RecordingStateDetailsSidebarPanel.prototype.updateActionIndex):
1708         (WebInspector.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
1709         * UserInterface/Views/RecordingStateDetailsSidebarPanel.css: Added.
1710         (.sidebar > .panel.details.recording-state > .content > .data-grid):
1711         (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):
1712         (.sidebar > .panel.details.recording-state > .content > .data-grid tr:not(.selected).non-standard):
1713         (.sidebar > .panel.details.recording-state > .content > .data-grid tr:not(.selected) .unavailable):
1714
1715         * UserInterface/Views/RecordingActionTreeElement.js: Added.
1716         (WebInspector.RecordingActionTreeElement):
1717         (WebInspector.RecordingActionTreeElement._generateDOM):
1718         (WebInspector.RecordingActionTreeElement.prototype.get index):
1719         (WebInspector.RecordingActionTreeElement.get filterableData):
1720         (WebInspector.RecordingActionTreeElement.prototype.get filterableData):
1721         (WebInspector.RecordingActionTreeElement.prototype.onattach):
1722         (WebInspector.RecordingActionTreeElement.prototype.populateContextMenu):
1723
1724         * UserInterface/Base/Main.js:
1725         (WebInspector.contentLoaded):
1726         (WebInspector.instanceForClass):
1727
1728         * UserInterface/Base/FileUtilites.js: Added.
1729         (WebInspector.saveDataToFile): Moved from UserInterface/Base/Main.js
1730         (WebInspector.loadDataFromFile):
1731
1732         * UserInterface/Views/ButtonNavigationItem.js:
1733         (WebInspector.ButtonNavigationItem.prototype._mouseClicked):
1734         Send the native event as part of the data.
1735
1736         * UserInterface/Views/CanvasContentView.js:
1737         (WebInspector.CanvasContentView):
1738         (WebInspector.CanvasContentView.prototype.get navigationItems):
1739         (WebInspector.CanvasContentView.prototype.initialLayout):
1740         (WebInspector.CanvasContentView.prototype.closed):
1741         (WebInspector.CanvasContentView.prototype._toggleRecording):
1742         (WebInspector.CanvasContentView.prototype._recordingFinished):
1743         * UserInterface/Views/CanvasContentView.css:
1744         (.content-view.canvas):
1745
1746         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
1747         (WebInspector.CanvasDetailsSidebarPanel.prototype.inspect):
1748
1749         * UserInterface/Views/ContentBrowser.js:
1750         (WebInspector.ContentBrowser):
1751         (WebInspector.ContentBrowser.prototype._updateContentViewNavigationItems):
1752         * UserInterface/Views/ContentBrowserTabContentView.js:
1753         (WebInspector.ContentBrowserTabContentView):
1754         * UserInterface/Views/ContentView.js:
1755         (WebInspector.ContentView.createFromRepresentedObject):
1756         (WebInspector.ContentView.isViewable):
1757         * UserInterface/Views/ScrubberNavigationItem.js: Added.
1758         (WebInspector.ScrubberNavigationItem):
1759         (WebInspector.ScrubberNavigationItem.prototype.get value):
1760         (WebInspector.ScrubberNavigationItem.prototype.set value):
1761         (WebInspector.ScrubberNavigationItem.prototype.get min):
1762         (WebInspector.ScrubberNavigationItem.prototype.set min):
1763         (WebInspector.ScrubberNavigationItem.prototype.get max):
1764         (WebInspector.ScrubberNavigationItem.prototype.set max):
1765         (WebInspector.ScrubberNavigationItem.prototype.set disabled):
1766         (WebInspector.ScrubberNavigationItem.prototype.get additionalClassNames):
1767         (WebInspector.ScrubberNavigationItem.prototype._sliderChanged):
1768         * UserInterface/Views/ScrubberNavigationItem.css: Added.
1769         (.navigation-bar .item.scrubber):
1770         (.navigation-bar .item.scrubber > input):
1771         (.navigation-bar .item.scrubber > input[disabled]):
1772         Allow the flexible space to be replaced with a navigation item at construction.
1773
1774         * UserInterface/Views/DataGridNode.js:
1775         (WebInspector.DataGridNode):
1776         (WebInspector.DataGridNode.prototype.get element):
1777         Allow a list of CSS classes to be added to the node's element.
1778
1779         * UserInterface/Views/SettingsTabContentView.js:
1780         (WebInspector.SettingsTabContentView.prototype.initialLayout):
1781         (WebInspector.SettingsTabContentView.prototype._createExperimentalSettingsView.listenForChange):
1782         (WebInspector.SettingsTabContentView.prototype._createExperimentalSettingsView):
1783         (WebInspector.SettingsTabContentView.prototype._createDebugSettingsView):
1784         Move experimental settings to their own panel.
1785
1786         * UserInterface/Views/TabContentView.js:
1787         (WebInspector.TabContentView.prototype.get navigationSidebarPanel):
1788         Save the NavigationSidebarPanel after it's constructed.
1789
1790         * UserInterface/Base/Utilities.js:
1791         (Number.countDigits):
1792
1793         * UserInterface/Images/Recording.svg: Added.
1794         * UserInterface/Images/RenderingFrame.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/TimelineRecordRenderingFrame.svg.
1795         * UserInterface/Images/gtk/RenderingFrame.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/gtk/TimelineRecordRenderingFrame.svg.
1796         * UserInterface/Views/TimelineIcons.css:
1797         (.rendering-frame-record .icon):
1798
1799         * UserInterface/Views/DOMTreeOutline.css:
1800         (@keyframes node-state-changed):
1801         * UserInterface/Views/Main.css:
1802         (:matches(img, canvas).show-grid):
1803         (img.show-grid): Deleted.
1804         * UserInterface/Views/NavigationBar.css:
1805         (.navigation-bar):
1806         * UserInterface/Views/NetworkSidebarPanel.css:
1807         (.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .tree-outline):
1808         * UserInterface/Views/TimelineTabContentView.css:
1809         (.timeline.tab.content-view .navigation-bar > .item.radio):
1810         * UserInterface/Views/TimelineView.css:
1811         (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .tree-outline):
1812         * UserInterface/Views/Variables.css:
1813         (:root):
1814         Create CSS variables for the DOM modification flash color and the color striping.
1815
1816 2017-07-28  Devin Rousso  <drousso@apple.com>
1817
1818         Web Inspector: Cleanup unused/invalid parameters for TreeElements
1819         https://bugs.webkit.org/show_bug.cgi?id=173987
1820
1821         Reviewed by Brian Burg.
1822
1823         * UserInterface/Views/TreeElement.js:
1824         * UserInterface/Views/GeneralTreeElement.js:
1825
1826         * UserInterface/Views/ApplicationCacheFrameTreeElement.js:
1827         * UserInterface/Views/BreakpointTreeElement.js:
1828         * UserInterface/Views/CSSStyleSheetTreeElement.js:
1829         * UserInterface/Views/CallFrameTreeElement.js:
1830         * UserInterface/Views/ContentFlowTreeElement.js:
1831         * UserInterface/Views/DOMNodeTreeElement.js:
1832         * UserInterface/Views/DatabaseTableTreeElement.js:
1833         * UserInterface/Views/DatabaseTreeElement.js:
1834         * UserInterface/Views/FolderTreeElement.js:
1835         * UserInterface/Views/FolderizedTreeElement.js:
1836         * UserInterface/Views/FrameTreeElement.js:
1837         * UserInterface/Views/IndexedDatabaseObjectStoreIndexTreeElement.js:
1838         * UserInterface/Views/IndexedDatabaseObjectStoreTreeElement.js:
1839         * UserInterface/Views/IndexedDatabaseTreeElement.js:
1840         * UserInterface/Views/IssueTreeElement.js:
1841         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
1842         * UserInterface/Views/ProfileNodeTreeElement.js:
1843         * UserInterface/Views/ResourceTreeElement.js:
1844         * UserInterface/Views/ScriptTreeElement.js:
1845         * UserInterface/Views/SearchResultTreeElement.js:
1846         * UserInterface/Views/SourceCodeTreeElement.js:
1847         * UserInterface/Views/SourceMapResourceTreeElement.js:
1848         * UserInterface/Views/StorageTreeElement.js:
1849         * UserInterface/Views/TimelineRecordTreeElement.js:
1850         * UserInterface/Views/TypeTreeElement.js:
1851
1852 2017-07-26  Devin Rousso  <drousso@apple.com>
1853
1854         Uncaught Exception: undefined is not an object (evaluating 'this._memoryRow.value = Number.bytesToString(this._canvas.memoryCost)')
1855         https://bugs.webkit.org/show_bug.cgi?id=174823
1856
1857         Reviewed by Joseph Pecoraro.
1858
1859         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
1860         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshIdentitySection):
1861         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshSourceSection):
1862         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshAttributesSection):
1863         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection):
1864         (WebInspector.CanvasDetailsSidebarPanel.prototype._formatMemoryRow):
1865         Early return if the view has not called initialLayout, as the rows might not have been
1866         constructed yet.
1867
1868         * UserInterface/Views/View.js:
1869         (WebInspector.View.prototype.get didInitialLayout): Added.
1870
1871 2017-07-26  Devin Rousso  <drousso@apple.com>
1872
1873         Web Inspector: create protocol for recording Canvas contexts
1874         https://bugs.webkit.org/show_bug.cgi?id=174481
1875
1876         Reviewed by Joseph Pecoraro.
1877
1878         Create model objects that effectively mirror the protocol objects sent for Canvas recordings.
1879
1880         * .eslintrc:
1881         * UserInterface/Main.html:
1882         * UserInterface/Test.html:
1883
1884         * UserInterface/Controllers/CanvasManager.js:
1885         (WebInspector.CanvasManager.prototype.recordingFinished):
1886         * UserInterface/Protocol/CanvasObserver.js:
1887         (WebInspector.CanvasObserver.prototype.recordingFinished):
1888
1889         * UserInterface/Models/Recording.js: Added.
1890         (WebInspector.Recording):
1891         (WebInspector.Recording.fromPayload):
1892         (WebInspector.Recording.prototype.get type):
1893         (WebInspector.Recording.prototype.get initialState):
1894         (WebInspector.Recording.prototype.get frames):
1895         (WebInspector.Recording.prototype.get data):
1896         (WebInspector.Recording.prototype.toJSON):
1897
1898         * UserInterface/Models/RecordingAction.js: Added.
1899         (WebInspector.RecordingAction):
1900         (WebInspector.RecordingAction.fromPayload):
1901         (WebInspector.RecordingAction.prototype.get name):
1902         (WebInspector.RecordingAction.prototype.get parameters):
1903         (WebInspector.RecordingAction.prototype.toJSON):
1904
1905         * UserInterface/Models/RecordingFrame.js: Added.
1906         (WebInspector.RecordingFrame):
1907         (WebInspector.RecordingFrame.fromPayload):
1908         (WebInspector.RecordingFrame.prototype.get actions):
1909         (WebInspector.RecordingFrame.prototype.get incomplete):
1910         (WebInspector.RecordingFrame.prototype.toJSON):
1911
1912 2017-07-26  Brian Burg  <bburg@apple.com>
1913
1914         Remove WEB_TIMING feature flag
1915         https://bugs.webkit.org/show_bug.cgi?id=174795
1916
1917         Reviewed by Alex Christensen.
1918
1919         Remove fallback for ports that lack WEB_TIMING.
1920
1921         * UserInterface/Base/Utilities.js:
1922         (timestamp): Deleted.
1923         * UserInterface/Protocol/Connection.js:
1924         (InspectorBackend.Connection.prototype._dispatchResponse):
1925         (InspectorBackend.Connection.prototype._dispatchEvent):
1926         (InspectorBackend.Connection.prototype._sendCommandToBackendWithCallback):
1927         (InspectorBackend.Connection.prototype._sendCommandToBackendExpectingPromise):
1928         * UserInterface/Protocol/MessageDispatcher.js:
1929         (WebInspector.dispatchNextQueuedMessageFromBackend):
1930
1931 2017-07-25  Joseph Pecoraro  <pecoraro@apple.com>
1932
1933         Web Inspector: Don't output "No message" for multi-value logs like console.log(x, y)
1934         https://bugs.webkit.org/show_bug.cgi?id=174842
1935
1936         Reviewed by Matt Baker.
1937
1938         * Localizations/en.lproj/localizedStrings.js:
1939         Removed "No message".
1940
1941         * UserInterface/Views/ConsoleMessageView.js:
1942         (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
1943         Track whether or not outputting the next parameter will need a divider
1944         in front of it or not.
1945
1946 2017-07-25  Joseph Pecoraro  <pecoraro@apple.com>
1947
1948         Web Inspector: Fix warnings about console.assert lines without semicolons
1949         https://bugs.webkit.org/show_bug.cgi?id=174840
1950
1951         Reviewed by Brian Burg.
1952
1953         * UserInterface/Views/SettingsTabContentView.js:
1954         (WebInspector.SettingsTabContentView.prototype.set selectedSettingsView):
1955         (WebInspector.SettingsTabContentView.prototype.setSettingsViewVisible):
1956         Add semicolon to assert lines so they can be stripped in optimized builds.
1957
1958 2017-07-25  Joseph Pecoraro  <pecoraro@apple.com>
1959
1960         Web Inspector: Inline multiple console log values if they are simple
1961         https://bugs.webkit.org/show_bug.cgi?id=174746
1962         <rdar://problem/33469376>
1963
1964         Reviewed by Matt Baker.
1965
1966         * UserInterface/Models/IssueMessage.js:
1967         * UserInterface/Protocol/RemoteObject.js:
1968         (WebInspector.RemoteObject.type): Deleted.
1969         Remove this as it isn't as useful as directly checking the type.
1970
1971         * UserInterface/Views/ConsoleMessageView.js:
1972         (WebInspector.ConsoleMessageView.prototype._appendExtraParameters):
1973         (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
1974         (WebInspector.ConsoleMessageView.prototype._hasSimpleDisplay):
1975         (WebInspector.ConsoleMessageView.prototype._isStackTrace):
1976         For leading primitive/simple values, display them inline on the console message.
1977
1978         * UserInterface/Views/FormattedValue.js:
1979         (WebInspector.FormattedValue.hasSimpleDisplay):
1980         Provide a helper to determine if a formatted value will be simple.
1981
1982 2017-07-25  Nikita Vasilyev  <nvasilyev@apple.com>
1983
1984         Web Inspector: Styles: Add a switch for Spreadsheet model style editor to experimental settings
1985         https://bugs.webkit.org/show_bug.cgi?id=174741
1986         <rdar://problem/33467954>
1987
1988         Reviewed by Brian Burg.
1989
1990         Show a blank panel when Spreadsheet Style Editor is enabled.
1991
1992         * UserInterface/Base/Setting.js:
1993         * UserInterface/Main.html:
1994         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
1995         (WebInspector.CSSStyleDetailsSidebarPanel):
1996         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
1997         * UserInterface/Views/RulesStyleSpreadsheetDetailsPanel.js: Added.
1998         (WebInspector.RulesStyleSpreadsheetDetailsPanel):
1999         (WebInspector.RulesStyleSpreadsheetDetailsPanel.prototype.filterDidChange):
2000         (WebInspector.RulesStyleSpreadsheetDetailsPanel.prototype.scrollToSectionAndHighlightProperty):
2001
2002         * UserInterface/Views/SettingsTabContentView.css:
2003         (.content-view.settings > .settings-view > .container.hidden):
2004         (.content-view.settings > .settings-view > .container-centered):
2005         (.content-view.settings > .settings-view > .container button):
2006         * UserInterface/Views/SettingsTabContentView.js:
2007         (WebInspector.SettingsTabContentView.prototype._createDebugSettingsView):
2008         * UserInterface/Views/SettingsView.js:
2009         (WebInspector.SettingsView.prototype.addCenteredContainer):
2010         (WebInspector.SettingsView):
2011         Show "Reload Web Inspector" button when Spreadsheet Style Editor setting is modified.
2012
2013 2017-07-25  Devin Rousso  <drousso@apple.com>
2014
2015         Web Inspector: add context menu item for taking a screenshot of a node
2016         https://bugs.webkit.org/show_bug.cgi?id=174754
2017
2018         Reviewed by Brian Burg.
2019
2020         * Localizations/en.lproj/localizedStrings.js:
2021         * UserInterface/Views/ContextMenuUtilities.js:
2022         (WebInspector.appendContextMenuItemsForDOMNode):
2023         Add "Capture Element Screenshot " context menu item that opens a save dialog with a picture of the node.
2024
2025         * UserInterface/Base/Main.js:
2026         (WebInspector.saveDataToFile):
2027         Allow the saveData to specify whether the contained content is base64Encoded, instead of
2028         having to go through a Blob to save base64 data.
2029
2030         * UserInterface/Base/Utilities.js:
2031         Add Number.pad to add leading zeros up to a certain width.
2032
2033         Drive-by: fix failing test for Number.constrain.
2034
2035         * UserInterface/Models/DOMNode.js:
2036         (WebInspector.DOMNode.prototype.scrollIntoView.resolvedNode.scrollIntoView): Added.
2037         (WebInspector.DOMNode.prototype.scrollIntoView.resolvedNode): Added.
2038         (WebInspector.DOMNode.prototype.scrollIntoView): Added.
2039         * UserInterface/Views/DOMTreeElement.js:
2040         (WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
2041         (WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode.scrollIntoView): Deleted.
2042         (WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode): Deleted.
2043         (WebInspector.DOMTreeElement.prototype._scrollIntoView): Deleted.
2044         * UserInterface/Views/DOMTreeOutline.js:
2045         (WebInspector.DOMTreeOutline.prototype.populateContextMenu):
2046         Drive-by: move "Scroll Into View" context menu command to WebInspector.appendContextMenuItemsForDOMNode
2047         so that it can be triggered from more places than just the DOM tree.
2048
2049 2017-07-24  Nikita Vasilyev  <me@elv1s.ru>
2050
2051         Web Inspector: Settings: Some controls overlay settings header
2052         https://bugs.webkit.org/show_bug.cgi?id=174804
2053
2054         Reviewed by Matt Baker.
2055
2056         * UserInterface/Views/SettingsTabContentView.css:
2057         (.content-view.settings .navigation-bar):
2058
2059 2017-07-24  Matt Baker  <mattbaker@apple.com>
2060
2061         Web Inspector: should only show Canvases in resource type filter if debug setting enabled
2062         https://bugs.webkit.org/show_bug.cgi?id=174765
2063         <rdar://problem/33479009>
2064
2065         Reviewed by Devin Rousso.
2066
2067         * UserInterface/Views/ResourceSidebarPanel.js:
2068         (WebInspector.ResourceSidebarPanel):
2069
2070 2017-07-21  Joseph Pecoraro  <pecoraro@apple.com>
2071
2072         Web Inspector: inspect(aFunction) should jump to function definition
2073         https://bugs.webkit.org/show_bug.cgi?id=149344
2074         <rdar://problem/11563607>
2075
2076         Reviewed by Matt Baker.
2077
2078         * UserInterface/Protocol/InspectorObserver.js:
2079         (WebInspector.InspectorObserver.prototype.inspect):
2080         If we receive a function remote object jump to its location if available.
2081
2082 2017-07-21  Joseph Pecoraro  <pecoraro@apple.com>
2083
2084         Web Inspector: Avoid subclassing WebInspector.Object if we do not need to
2085         https://bugs.webkit.org/show_bug.cgi?id=174703
2086
2087         Reviewed by Brian Burg.
2088
2089         * UserInterface/Models/LogObject.js:
2090         (WebInspector.LogObject):
2091         (WebInspector.LogObject.prototype.get startDate): Deleted.
2092         Remove unused startDate property as well.
2093
2094         * UserInterface/Base/YieldableTask.js:
2095         * UserInterface/Debug/ProtocolTrace.js:
2096         * UserInterface/Models/AnalyzerMessage.js:
2097         * UserInterface/Models/ApplicationCacheFrame.js:
2098         * UserInterface/Models/ApplicationCacheManifest.js:
2099         * UserInterface/Models/BackForwardEntry.js:
2100         * UserInterface/Models/Branch.js:
2101         * UserInterface/Models/BreakpointAction.js:
2102         * UserInterface/Models/CSSMedia.js:
2103         * UserInterface/Models/CSSSelector.js:
2104         * UserInterface/Models/CallFrame.js:
2105         * UserInterface/Models/CallingContextTree.js:
2106         * UserInterface/Models/CallingContextTreeNode.js:
2107         * UserInterface/Models/CollectionEntry.js:
2108         * UserInterface/Models/CollectionEntryPreview.js:
2109         * UserInterface/Models/ConsoleMessage.js:
2110         * UserInterface/Models/DOMSearchMatchObject.js:
2111         * UserInterface/Models/DatabaseObject.js:
2112         * UserInterface/Models/DatabaseTableObject.js:
2113         * UserInterface/Models/DebuggerDashboard.js:
2114         * UserInterface/Models/DebuggerData.js:
2115         * UserInterface/Models/ExecutionContext.js:
2116         * UserInterface/Models/ExecutionContextList.js:
2117         * UserInterface/Models/GarbageCollection.js:
2118         * UserInterface/Models/HeapSnapshotRootPath.js:
2119         * UserInterface/Models/IndexedDatabase.js:
2120         * UserInterface/Models/IndexedDatabaseObjectStore.js:
2121         * UserInterface/Models/IndexedDatabaseObjectStoreIndex.js:
2122         * UserInterface/Models/Instrument.js:
2123         * UserInterface/Models/KeyboardShortcut.js:
2124         * UserInterface/Models/LineWidget.js:
2125         * UserInterface/Models/MemoryCategory.js:
2126         * UserInterface/Models/MemoryPressureEvent.js:
2127         * UserInterface/Models/ObjectPreview.js:
2128         * UserInterface/Models/Probe.js:
2129         * UserInterface/Models/ProbeSetDataFrame.js:
2130         * UserInterface/Models/Profile.js:
2131         * UserInterface/Models/ProfileNode.js:
2132         * UserInterface/Models/ProfileNodeCall.js:
2133         * UserInterface/Models/PropertyDescriptor.js:
2134         * UserInterface/Models/PropertyPath.js:
2135         * UserInterface/Models/PropertyPreview.js:
2136         * UserInterface/Models/ResourceQueryMatch.js:
2137         * UserInterface/Models/ResourceQueryResult.js:
2138         * UserInterface/Models/ResourceTimingData.js:
2139         * UserInterface/Models/Revision.js:
2140         * UserInterface/Models/ScopeChainNode.js:
2141         * UserInterface/Models/ScriptSyntaxTree.js:
2142         * UserInterface/Models/SourceCodePosition.js:
2143         * UserInterface/Models/SourceCodeSearchMatchObject.js:
2144         * UserInterface/Models/SourceMap.js:
2145         * UserInterface/Models/StackTrace.js:
2146         * UserInterface/Models/StructureDescription.js:
2147         * UserInterface/Models/TextMarker.js:
2148         * UserInterface/Models/TextRange.js:
2149         * UserInterface/Models/TimelineRange.js:
2150         * UserInterface/Models/TypeDescription.js:
2151         * UserInterface/Models/TypeSet.js:
2152         * UserInterface/Protocol/ProtocolTracer.js:
2153         * UserInterface/Proxies/FormatterWorkerProxy.js:
2154         * UserInterface/Proxies/HeapSnapshotDiffProxy.js:
2155         * UserInterface/Proxies/HeapSnapshotWorkerProxy.js:
2156         * UserInterface/Test/TestSuite.js:
2157
2158 2017-07-19  Chris Dumez  <cdumez@apple.com>
2159
2160         Drop SQLException type
2161         https://bugs.webkit.org/show_bug.cgi?id=174665
2162
2163         Reviewed by Sam Weinig.
2164
2165         Use SQLError instead of SQLException, this is what the script should really
2166         use here since it is checking the code of an SQLError.
2167
2168         * .eslintrc:
2169         * UserInterface/Models/DatabaseObject.js:
2170         (WebInspector.DatabaseObject.prototype.executeSQL.queryCallback):
2171         (WebInspector.DatabaseObject.prototype.executeSQL):
2172         (WebInspector.DatabaseObject):
2173
2174 2017-07-18  Andy Estes  <aestes@apple.com>
2175
2176         [Xcode] Enable CLANG_WARN_RANGE_LOOP_ANALYSIS
2177         https://bugs.webkit.org/show_bug.cgi?id=174631
2178
2179         Reviewed by Tim Horton.
2180
2181         * Configurations/Base.xcconfig:
2182
2183 2017-07-18  Andy Estes  <aestes@apple.com>
2184
2185         [Xcode] Enable CLANG_WARN_OBJC_LITERAL_CONVERSION
2186         https://bugs.webkit.org/show_bug.cgi?id=174631
2187
2188         Reviewed by Sam Weinig.
2189
2190         * Configurations/Base.xcconfig:
2191
2192 2017-07-18  Brian Burg  <bburg@apple.com>
2193
2194         Web Inspector: adjust wording of "clear when page {navigates -> loads}"
2195         https://bugs.webkit.org/show_bug.cgi?id=174589
2196         <rdar://problem/32797981>
2197
2198         Reviewed by Joseph Pecoraro.
2199
2200         * Localizations/en.lproj/localizedStrings.js:
2201         * UserInterface/Views/SettingsTabContentView.js:
2202         (WebInspector.SettingsTabContentView.prototype._createGeneralSettingsView):
2203
2204 2017-07-18  Andy Estes  <aestes@apple.com>
2205
2206         [Xcode] Enable CLANG_WARN_NON_LITERAL_NULL_CONVERSION
2207         https://bugs.webkit.org/show_bug.cgi?id=174631
2208
2209         Reviewed by Dan Bernstein.
2210
2211         * Configurations/Base.xcconfig:
2212
2213 2017-07-18  Andy Estes  <aestes@apple.com>
2214
2215         [Xcode] Enable CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING
2216         https://bugs.webkit.org/show_bug.cgi?id=174631
2217
2218         Reviewed by Darin Adler.
2219
2220         * Configurations/Base.xcconfig:
2221
2222 2017-07-13  Joseph Pecoraro  <pecoraro@apple.com>
2223
2224         Web Inspector: Remove unused and untested Page domain commands
2225         https://bugs.webkit.org/show_bug.cgi?id=174429
2226
2227         Reviewed by Timothy Hatcher.
2228
2229         * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
2230         * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
2231         * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
2232         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
2233         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
2234         * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
2235         * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
2236         * Versions/Inspector-iOS-10.0.json:
2237         * Versions/Inspector-iOS-10.3.json:
2238         * Versions/Inspector-iOS-11.0.json:
2239         * Versions/Inspector-iOS-7.0.json:
2240         * Versions/Inspector-iOS-8.0.json:
2241         * Versions/Inspector-iOS-9.0.json:
2242         * Versions/Inspector-iOS-9.3.json:
2243
2244 2017-07-11  Joseph Pecoraro  <pecoraro@apple.com>
2245
2246         Web Inspector: Correct a typo in the .eslintrc
2247         https://bugs.webkit.org/show_bug.cgi?id=174389
2248
2249         Reviewed by Matt Baker.
2250
2251         * .eslintrc:
2252
2253 2017-07-11  Joseph Pecoraro  <pecoraro@apple.com>
2254
2255         Web Inspector: Node Sidebar - Improve wording for Potential Custom Element lacking a Custom definition
2256         https://bugs.webkit.org/show_bug.cgi?id=174346
2257
2258         Reviewed by Matt Baker.
2259
2260         * Localizations/en.lproj/localizedStrings.js:
2261         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2262         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._customElementState):
2263         The text "Waiting to be upgraded" is poor. Any non-standard element with dashes
2264         in the name is considered custom, but does not need to be upgraded. Lets use
2265         different wording to indicate that it is detected as custom, and lacks a
2266         specific Custom Element definition.
2267
2268 2017-07-10  Devin Rousso  <drousso@apple.com>
2269
2270         Web Inspector: Highlight matching CSS canvas clients when hovering contexts in the Resources tab
2271         https://bugs.webkit.org/show_bug.cgi?id=174279
2272
2273         Reviewed by Matt Baker.
2274
2275         * UserInterface/Controllers/DOMTreeManager.js:
2276         (WebInspector.DOMTreeManager.prototype.highlightDOMNodeList):
2277         (WebInspector.DOMTreeManager.prototype.highlightSelector):
2278         * UserInterface/Views/CanvasTreeElement.js:
2279         (WebInspector.CanvasTreeElement.prototype._handleMouseOver):
2280
2281 2017-07-03  Brian Burg  <bburg@apple.com>
2282
2283         Web Replay: remove some unused code
2284         https://bugs.webkit.org/show_bug.cgi?id=173903
2285
2286         Rubber-stamped by Joseph Pecoraro.
2287
2288         * .eslintrc:
2289         * UserInterface/Base/Main.js:
2290         (WebInspector.loaded):
2291         * UserInterface/Controllers/DashboardManager.js:
2292         (WebInspector.DashboardManager):
2293         * UserInterface/Controllers/ReplayManager.js: Removed.
2294         * UserInterface/Images/ReplayPauseButton.svg: Removed.
2295         * UserInterface/Images/ReplayPlayButton.svg: Removed.
2296         * UserInterface/Images/ReplayRecordingButton.svg: Removed.
2297         * UserInterface/Images/gtk/ReplayPauseButton.svg: Removed.
2298         * UserInterface/Images/gtk/ReplayPlayButton.svg: Removed.
2299         * UserInterface/Images/gtk/ReplayRecordingButton.svg: Removed.
2300         * UserInterface/Main.html:
2301         * UserInterface/Models/ReplayDashboard.js: Removed.
2302         * UserInterface/Models/ReplaySession.js: Removed.
2303         * UserInterface/Models/ReplaySessionSegment.js: Removed.
2304         * UserInterface/Protocol/ReplayObserver.js: Removed.
2305         * UserInterface/Test.html:
2306         * UserInterface/Test/Test.js:
2307         (WebInspector.loaded):
2308         * UserInterface/Views/DashboardView.js:
2309         (WebInspector.DashboardView.create):
2310         * UserInterface/Views/ReplayDashboardView.css: Removed.
2311         * UserInterface/Views/ReplayDashboardView.js: Removed.
2312         * UserInterface/Views/TimelineRecordingContentView.js:
2313         (WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
2314         (WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
2315
2316 2017-07-07  Devin Rousso  <drousso@apple.com>
2317
2318         Web Inspector: Resources are sometimes missing from the tree outline right before folderizing
2319         https://bugs.webkit.org/show_bug.cgi?id=174277
2320
2321         Reviewed by Joseph Pecoraro.
2322
2323         * UserInterface/Views/TreeElement.js:
2324         (WebInspector.TreeElement.prototype.expand):
2325
2326 2017-07-07  Devin Rousso  <drousso@apple.com>
2327
2328         Web Inspector: REGRESSION(r217258): WebSocket resource tree elements don't show the connection status
2329         https://bugs.webkit.org/show_bug.cgi?id=174274
2330
2331         Reviewed by Brian Burg.
2332
2333         * UserInterface/Views/FrameTreeElement.js:
2334         (WebInspector.FrameTreeElement):
2335         * UserInterface/Views/ResourceTreeElement.js:
2336         (WebInspector.ResourceTreeElement.prototype.populateContextMenu):
2337         * UserInterface/Views/WebSocketResourceTreeElement.js:
2338         (WebInspector.WebSocketResourceTreeElement.prototype.populateContextMenu):
2339         Move "Log WebSocket" context menu item to WebSocketResourceTreeElement.
2340
2341 2017-07-07  Devin Rousso  <drousso@apple.com>
2342
2343         Web Inspector: Show all elements currently using a given CSS Canvas
2344         https://bugs.webkit.org/show_bug.cgi?id=173965
2345
2346         Reviewed by Joseph Pecoraro.
2347
2348         * UserInterface/Controllers/CanvasManager.js:
2349         (WebInspector.CanvasManager.prototype.cssCanvasClientNodesChanged):
2350         * UserInterface/Models/Canvas.js:
2351         (WebInspector.Canvas.prototype.requestCSSCanvasClientNodes):
2352         (WebInspector.Canvas.prototype.cssCanvasClientNodesChanged):
2353         * UserInterface/Protocol/CanvasObserver.js:
2354         (WebInspector.CanvasObserver.prototype.cssCanvasClientNodesChanged):
2355
2356         * Localizations/en.lproj/localizedStrings.js:
2357         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2358         (WebInspector.CanvasDetailsSidebarPanel):
2359         (WebInspector.CanvasDetailsSidebarPanel.prototype.set canvas):
2360         (WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
2361         (WebInspector.CanvasDetailsSidebarPanel.prototype.layout):
2362         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection):
2363         (WebInspector.CanvasDetailsSidebarPanel.prototype._formatMemoryRow):
2364         Add CSS section for CSS canvases. Currently displays a list of node links, each of which is
2365         using the selected canvas via -webkit-canvas.
2366
2367         * UserInterface/Main.html:
2368         * UserInterface/Views/CanvasDetailsSidebarPanel.css: Added.
2369         (.sidebar > .panel.details.canvas .details-section > .content .row.simple > .value > .node-link):
2370
2371         * UserInterface/Controllers/DOMTreeManager.js:
2372         (WebInspector.DOMTreeManager.prototype.ensureDocument):
2373         * UserInterface/Models/Canvas.js:
2374         (WebInspector.Canvas.prototype.requestNode):
2375         * UserInterface/Views/SearchSidebarPanel.js:
2376         (WebInspector.SearchSidebarPanel.prototype.performSearch):
2377         Add convenience function that will call DOMAgent.getDocument with an empty function. Should
2378         be used when it is necessary that the document has been sent to the frontend, but the
2379         document node itself is not needed.
2380
2381 2017-07-07  Joseph Pecoraro  <pecoraro@apple.com>
2382
2383         Web Inspector: Clean up some unnecessary constructors
2384         https://bugs.webkit.org/show_bug.cgi?id=174236
2385
2386         Reviewed by Brian Burg.
2387
2388         * UserInterface/Controllers/CodeMirrorBezierEditingController.js:
2389         * UserInterface/Controllers/CodeMirrorColorEditingController.js:
2390         * UserInterface/Controllers/CodeMirrorGradientEditingController.js:
2391         * UserInterface/Views/DividerNavigationItem.js:
2392         * UserInterface/Views/FlexibleSpaceNavigationItem.js:
2393         * UserInterface/Views/IdleTreeElement.js:
2394
2395 2017-07-06  Devin Rousso  <drousso@apple.com>
2396
2397         Web Inspector: Highlight matching canvas element when hovering contexts in the Resources tab
2398         https://bugs.webkit.org/show_bug.cgi?id=174209
2399
2400         Reviewed by Joseph Pecoraro.
2401
2402         * UserInterface/Views/CanvasTreeElement.js:
2403         (WebInspector.CanvasTreeElement.prototype.onattach):
2404         (WebInspector.CanvasTreeElement.prototype._handleMouseOver):
2405         (WebInspector.CanvasTreeElement.prototype._handleMouseOut):
2406
2407 2017-07-06  Joseph Pecoraro  <pecoraro@apple.com>
2408
2409         Web Inspector: Add another Protocol Version
2410         https://bugs.webkit.org/show_bug.cgi?id=174193
2411         <rdar://problem/33150053>
2412
2413         Reviewed by Brian Burg.
2414
2415         * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js: Added.
2416         * Versions/Inspector-iOS-11.0.json: Added.
2417
2418 2017-07-05  Devin Rousso  <drousso@apple.com>
2419
2420         Web Inspector: Group Inspector Style Sheets as part of the Stylesheets folder
2421         https://bugs.webkit.org/show_bug.cgi?id=173435
2422
2423         Reviewed by Joseph Pecoraro.
2424
2425         * UserInterface/Views/ResourceSidebarPanel.js:
2426         (WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
2427         Add special case for CSSStyleSheetTreeElement.
2428
2429 2017-07-05  Devin Rousso  <drousso@apple.com>
2430
2431         Web Inspector: Split Canvas.svg into icons for 2D and 3D
2432         https://bugs.webkit.org/show_bug.cgi?id=174057
2433
2434         Reviewed by Matt Baker.
2435
2436         * UserInterface/Images/Canvas2D.svg: Added.
2437         * UserInterface/Images/Canvas3D.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/Canvas.svg.
2438         * UserInterface/Views/ResourceIcons.css:
2439         (.canvas.canvas-2d .icon):
2440         (.canvas:matches(.webgl, .webgl2, .webgpu) .icon):
2441         (.canvas .icon): Deleted.
2442
2443 2017-07-05  Devin Rousso  <drousso@apple.com>
2444
2445         Web Inspector: Allow users to log any tracked canvas context
2446         https://bugs.webkit.org/show_bug.cgi?id=173397
2447         <rdar://problem/33111581>
2448
2449         Reviewed by Joseph Pecoraro.
2450
2451         * Localizations/en.lproj/localizedStrings.js:
2452         * UserInterface/Protocol/RemoteObject.js:
2453         (WebInspector.RemoteObject.resolveCanvasContext):
2454         * UserInterface/Views/CanvasTreeElement.js:
2455         (WebInspector.CanvasTreeElement.prototype.populateContextMenu):
2456
2457 2017-07-03  Devin Rousso  <drousso@apple.com>
2458
2459         Web Inspector: Support listing WebGL2 and WebGPU contexts
2460         https://bugs.webkit.org/show_bug.cgi?id=173396
2461
2462         Reviewed by Joseph Pecoraro.
2463
2464         * UserInterface/Models/Canvas.js:
2465         (WebInspector.Canvas.fromPayload):
2466         (WebInspector.Canvas.displayNameForContextType):
2467
2468 2017-07-01  Dan Bernstein  <mitz@apple.com>
2469
2470         [macOS] Remove code only needed when building for OS X Yosemite
2471         https://bugs.webkit.org/show_bug.cgi?id=174067
2472
2473         Reviewed by Tim Horton.
2474
2475         * Configurations/Base.xcconfig:
2476         * Configurations/DebugRelease.xcconfig:
2477         * Configurations/Version.xcconfig:
2478
2479 2017-06-30  Joseph Pecoraro  <pecoraro@apple.com>
2480
2481         Web Inspector: Type token background color in debugger looks poor
2482         https://bugs.webkit.org/show_bug.cgi?id=174063
2483
2484         Reviewed by Devin Rousso.
2485
2486         * UserInterface/Views/TextEditor.css:
2487         CodeMirror widgets do not get range styles like our (.execution-range-highlight).
2488         Make a best effort to carry over the styles to widgets. It isn't perfect, but it
2489         covers all common situations unless a selection ends inside the widget. The
2490         ultimate solution would be to get the expected range styles.
2491
2492 2017-06-30  Joseph Pecoraro  <pecoraro@apple.com>
2493
2494         Web Inspector: Initial search is sometimes performed twice, produces duplicate results
2495         https://bugs.webkit.org/show_bug.cgi?id=174047
2496
2497         Reviewed by Devin Rousso.
2498
2499         * UserInterface/Views/SearchTabContentView.js:
2500         (WebInspector.SearchTabContentView.prototype.performSearch):
2501         The initial layout of the tab content view was setting state to force a search
2502         which may happen after a delay, however the global search field was causing
2503         its own search to happen. We can clear the flag when a search is being performed
2504         to prevent duplicating the search.
2505
2506 2017-06-30  Devin Rousso  <drousso@apple.com>
2507
2508         Web Inspector: Add small delay before showing the progress spinner when loading resources
2509         https://bugs.webkit.org/show_bug.cgi?id=173437
2510
2511         Reviewed by Joseph Pecoraro.
2512
2513         * UserInterface/Views/ResourceContentView.js:
2514         (WebInspector.ResourceContentView):
2515         (WebInspector.ResourceContentView.prototype.removeLoadingIndicator): Added.
2516         (WebInspector.ResourceContentView.prototype._contentError):
2517         (WebInspector.ResourceContentView.prototype._hasContent):
2518         Delay the creation of the spinner for 100ms.  If the content is available before then, just
2519         clear the timeout and the spinner will never be created/shown.
2520
2521         We measured an average of 35ms to load and display images with slow cases being around 55ms.
2522         100ms was chosen for the timeout to give some room to allow for abnormally slow loading
2523         while not being too long as to be outright noticable.
2524
2525         * UserInterface/Views/FontResourceContentView.js:
2526         (WebInspector.FontResourceContentView.prototype.contentAvailable):
2527         * UserInterface/Views/ImageResourceContentView.js:
2528         (WebInspector.ImageResourceContentView.prototype.contentAvailable):
2529         * UserInterface/Views/TextResourceContentView.js:
2530         (WebInspector.TextResourceContentView.prototype._contentWillPopulate):
2531         Calls the new protected function removeLoadingIndicator to ensure that the spinner (and any
2532         other element) is removed.
2533
2534         This is necessary because TextResourceContentView effectively has two phases of loading its
2535         content: getting the content and formatting it for display.  The first follows the same path
2536         as the other ResourceContentView subclasses, the second waits for the ContentWillPopulate
2537         event on SourceCodeTextEditor before it actually adds the content as a subview.  In this
2538         case, the spinner should only be removed right before the content is actually added, not
2539         once it's ready.
2540
2541 2017-06-30  Commit Queue  <commit-queue@webkit.org>
2542
2543         Unreviewed, rolling out r218983.
2544         https://bugs.webkit.org/show_bug.cgi?id=174042
2545
2546         Broke Debugger Call Stack TreeOutline (Requested by drousso on
2547         #webkit).
2548
2549         Reverted changeset:
2550
2551         "Web Inspector: Remove unnecessary hasChildren from
2552         TreeOutline"
2553         https://bugs.webkit.org/show_bug.cgi?id=173986
2554         http://trac.webkit.org/changeset/218983
2555
2556 2017-06-30  Devin Rousso  <drousso@apple.com>
2557
2558         Web Inspector: Default string comparisons to treat numeric characters as numbers
2559         https://bugs.webkit.org/show_bug.cgi?id=173984
2560
2561         Reviewed by Joseph Pecoraro.
2562
2563         * UserInterface/Base/Utilities.js:
2564         (String.prototype.extendedLocaleCompare):
2565         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
2566         (WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames.compare):
2567         * UserInterface/Controllers/ResourceQueryController.js:
2568         (WebInspector.ResourceQueryController.prototype.executeQuery):
2569         * UserInterface/Views/ApplicationCacheFrameContentView.js:
2570         (WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid.localeCompare):
2571         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2572         (WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties):
2573         * UserInterface/Views/CookieStorageContentView.js:
2574         (WebInspector.CookieStorageContentView.prototype._sortDataGrid.localeCompare):
2575         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2576         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAttributes):
2577         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode):
2578         * UserInterface/Views/DOMStorageContentView.js:
2579         (WebInspector.DOMStorageContentView.prototype._sortDataGrid.comparator):
2580         * UserInterface/Views/DebuggerSidebarPanel.js:
2581         (WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
2582         * UserInterface/Views/FolderizedTreeElement.js:
2583         (WebInspector.FolderizedTreeElement.prototype._compareTreeElementsByMainTitle):
2584         * UserInterface/Views/HeapSnapshotDataGridTree.js:
2585         (WebInspector.HeapSnapshotDataGridTree.buildSortComparator):
2586         * UserInterface/Views/NetworkTimelineView.js:
2587         (WebInspector.NetworkTimelineView.prototype.dataGridSortComparator):
2588         * UserInterface/Views/NewTabContentView.js:
2589         (WebInspector.NewTabContentView.prototype._updateShownTabs):
2590         * UserInterface/Views/OverviewTimelineView.js:
2591         (WebInspector.OverviewTimelineView.prototype._compareDataGridNodesByStartTime):
2592         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
2593         (WebInspector.ProbeDetailsSidebarPanel.prototype.inspect):
2594         * UserInterface/Views/QuickConsole.js:
2595         (WebInspector.QuickConsole.prototype._compareExecutionContextPathComponents):
2596         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
2597         (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid.comparator):
2598         * UserInterface/Views/ResourceSidebarPanel.js:
2599         (WebInspector.ResourceSidebarPanel.prototype._compareTreeElements):
2600         * UserInterface/Views/ResourceTreeElement.js:
2601         (WebInspector.ResourceTreeElement.compareResourceTreeElements):
2602         (WebInspector.ResourceTreeElement.compareFolderAndResourceTreeElements):
2603         * UserInterface/Views/ScriptDetailsTimelineView.js:
2604         (WebInspector.ScriptDetailsTimelineView.prototype.dataGridSortComparator):
2605         * UserInterface/Views/StorageSidebarPanel.js:
2606         (WebInspector.StorageSidebarPanel.prototype._compareTreeElements):
2607         * UserInterface/Views/TimelineDataGrid.js:
2608         (WebInspector.TimelineDataGrid.prototype._sortComparator):
2609
2610 2017-06-29  Devin Rousso  <drousso@apple.com>
2611
2612         Web Inspector: Provide a way for creating a new tab but not making it immediately selected
2613         https://bugs.webkit.org/show_bug.cgi?id=173983
2614
2615         Reviewed by Joseph Pecoraro.
2616
2617         * UserInterface/Views/TabBar.js:
2618         (WebInspector.TabBar):
2619         (WebInspector.TabBar.prototype.addTabBarItem):
2620         (WebInspector.TabBar.prototype.insertTabBarItem):
2621         (WebInspector.TabBar.prototype.removeTabBarItem):
2622         (WebInspector.TabBar.prototype._handleClick):
2623         (WebInspector.TabBar.prototype._handleNewTabClick):
2624         * UserInterface/Views/TabBrowser.js:
2625         (WebInspector.TabBrowser.prototype.addTabForContentView):
2626         (WebInspector.TabBrowser.prototype.showTabForContentView):
2627         (WebInspector.TabBrowser.prototype.closeTabForContentView):
2628         * UserInterface/Base/Main.js:
2629         (WebInspector.contentLoaded):
2630         (WebInspector._openDefaultTab):
2631         (WebInspector._tryToRestorePendingTabs):
2632         (WebInspector.showNewTabTab):
2633         (WebInspector.createNewTabWithType):
2634         Add `options` dictionaries instead of optional parameters.
2635
2636         (WebInspector.tabContentViewClassForRepresentedObject):
2637         Drive-by fix: remove incorrect placement of WebInspector.Collection check. This function
2638         determines TabContentView classes, not ContentView.
2639
2640 2017-06-29  Devin Rousso  <drousso@apple.com>
2641
2642         Web Inspector: Remove unnecessary hasChildren from TreeOutline
2643         https://bugs.webkit.org/show_bug.cgi?id=173986
2644
2645         Reviewed by Joseph Pecoraro.
2646
2647         * UserInterface/Views/TreeOutline.js:
2648         (WebInspector.TreeOutline):
2649         (WebInspector.TreeOutline.prototype.appendChild):
2650         (WebInspector.TreeOutline.prototype.insertChild):
2651         (WebInspector.TreeOutline.prototype.removeChildAtIndex):
2652         (WebInspector.TreeOutline.prototype.removeChild):
2653         (WebInspector.TreeOutline.prototype.get selectedTreeElementIndex):
2654
2655         * UserInterface/Views/NavigationSidebarPanel.js:
2656         (WebInspector.NavigationSidebarPanel.prototype._checkOutlinesForPendingViewStateCookie):
2657         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
2658         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.get value):
2659
2660 2017-06-29  Devin Rousso  <drousso@apple.com>
2661
2662         Web Inspector: Cleanup unused/invalid parameters for SidebarPanels
2663         https://bugs.webkit.org/show_bug.cgi?id=173985
2664
2665         Reviewed by Joseph Pecoraro.
2666
2667         * UserInterface/Views/SidebarPanel.js:
2668         * UserInterface/Views/NavigationSidebarPanel.js:
2669         * UserInterface/Views/NavigationSidebarPanel.css:
2670         (.sidebar > .panel.navigation > .overflow-shadow.top): Deleted.
2671         * UserInterface/Views/DetailsSidebarPanel.js:
2672
2673         * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
2674         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2675         * UserInterface/Views/DOMDetailsSidebarPanel.js:
2676         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2677         * UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js:
2678         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
2679         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
2680         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
2681         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
2682         * UserInterface/Views/StorageSidebarPanel.js:
2683
2684 2017-06-29  Devin Rousso  <drousso@apple.com>
2685
2686         Web Inspector: Create a single -webkit-canvas for use inside popovers
2687         https://bugs.webkit.org/show_bug.cgi?id=173820
2688
2689         Reviewed by Matt Baker.
2690
2691         * UserInterface/Views/Popover.css:
2692         (.popover):
2693         * UserInterface/Views/Popover.js:
2694         (WebInspector.Popover):
2695         (WebInspector.Popover.prototype._drawBackground):
2696
2697 2017-06-28  Devin Rousso  <drousso@apple.com>
2698
2699         Web Inspector: Instrument active pixel memory used by canvases
2700         https://bugs.webkit.org/show_bug.cgi?id=173087
2701         <rdar://problem/32719261>
2702
2703         Reviewed by Joseph Pecoraro.
2704
2705         * .eslintrc:
2706         * UserInterface/Controllers/CanvasManager.js:
2707         (WebInspector.CanvasManager.prototype.canvasMemoryChanged):
2708         * UserInterface/Models/Canvas.js:
2709         (WebInspector.Canvas.fromPayload):
2710         (WebInspector.Canvas.prototype.get memoryCost):
2711         (WebInspector.Canvas.prototype.set memoryCost):
2712         * UserInterface/Protocol/CanvasObserver.js:
2713         (WebInspector.CanvasObserver.prototype.canvasMemoryChanged):
2714         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2715         (WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
2716         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshIdentitySection):
2717         (WebInspector.CanvasDetailsSidebarPanel.prototype._formatMemoryRow):
2718         (WebInspector.CanvasDetailsSidebarPanel.prototype._canvasMemoryChanged):
2719
2720         * Localizations/en.lproj/localizedStrings.js:
2721         * UserInterface/Base/Utilities.js:
2722         (Number.bytesToString.value):
2723         Add support for gigabyte numbers.
2724
2725 2017-06-27  Joseph Pecoraro  <pecoraro@apple.com>
2726
2727         Web Inspector: Remove unused Inspector domain events
2728         https://bugs.webkit.org/show_bug.cgi?id=173905
2729
2730         Reviewed by Matt Baker.
2731
2732         * UserInterface/Protocol/InspectorObserver.js:
2733         (WebInspector.InspectorObserver.prototype.detached): Deleted.
2734
2735         * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
2736         * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
2737         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
2738         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
2739         * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
2740         * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
2741         * Versions/Inspector-iOS-10.0.json:
2742         * Versions/Inspector-iOS-10.3.json:
2743         * Versions/Inspector-iOS-7.0.json:
2744         * Versions/Inspector-iOS-8.0.json:
2745         * Versions/Inspector-iOS-9.0.json:
2746         * Versions/Inspector-iOS-9.3.json:
2747         Remove from legacy backends as well since they did not send it.
2748
2749 2017-06-27  Matt Baker  <mattbaker@apple.com>
2750
2751         Web Inspector: no discoverable way to dismiss the split console
2752         https://bugs.webkit.org/show_bug.cgi?id=167034
2753         <rdar://problem/30023436>
2754
2755         Reviewed by Devin Rousso.
2756
2757         This patch adds an Xcode-style toggle button to the left of the
2758         split console navigation bar. Additionally, the split console code
2759         has been broken out into it's own class to reduce the clutter in
2760         Main.js/css, and simplify future console maintenance.
2761
2762         * Localizations/en.lproj/localizedStrings.js:
2763
2764         * UserInterface/Base/Main.js:
2765         (WebInspector.loaded):
2766         Replace the "split" ContentBrowser with a new ConsoleDrawer class,
2767         which encapsulates the drawer height setting and resize behavior.
2768         (WebInspector.contentLoaded):
2769         The console drawer manages its own height.
2770
2771         * UserInterface/Images/HideConsoleDrawer.svg: Added.
2772         * UserInterface/Images/ShowConsoleDrawer.svg: Added.
2773         Console drawer toggle button images. Styled after corresponding Xcode button.
2774
2775         * UserInterface/Main.html:
2776
2777         * UserInterface/Views/ConsoleDrawer.css: Added.
2778         Moved old #split-content-browser styles over from Main.css.
2779         (.console-drawer):
2780         (.console-drawer > .navigation-bar):
2781         (.console-drawer > .navigation-bar > .item.button:not(.clear-log)):
2782         Make button spacing less cramped.
2783         (.console-drawer > .navigation-bar > .item:not(.flexible-space)):
2784         (.console-drawer > .navigation-bar > :matches(.item.button, .log-scope-bar)):
2785         (.console-drawer > .navigation-bar > .item > .glyph,):
2786
2787         * UserInterface/Views/ConsoleDrawer.js: Added.
2788         New class responsible for console drawer expand / collapse and resizer
2789         dragging, which was previously part of Main.js. The console drawer toolbar
2790         now has a toggle button, debugging controls, and a call frames path item.
2791         The "Show Console Tab" button has been removed.
2792
2793         (WebInspector.ConsoleDrawer):
2794         (WebInspector.ConsoleDrawer.prototype.get collapsed):
2795         (WebInspector.ConsoleDrawer.prototype.set collapsed):
2796         (WebInspector.ConsoleDrawer.prototype.get height):
2797         (WebInspector.ConsoleDrawer.prototype.shown):
2798         (WebInspector.ConsoleDrawer.prototype.layout):
2799         (WebInspector.ConsoleDrawer.prototype._consoleResizerMouseDown.dockedResizerDrag):
2800         (WebInspector.ConsoleDrawer.prototype._consoleResizerMouseDown.dockedResizerDragEnd):
2801         (WebInspector.ConsoleDrawer.prototype._consoleResizerMouseDown):
2802         (WebInspector.ConsoleDrawer.prototype._restoreDrawerHeight):
2803         (WebInspector.ConsoleDrawer.prototype._updateDrawerHeight):
2804         (WebInspector.ConsoleDrawer.prototype._selectedTabContentViewDidChange):
2805         When switching to a tab that doesn't support showing the console drawer,
2806         hide it without altering the collapsed state.
2807
2808         * UserInterface/Views/LogContentView.js:
2809         (WebInspector.LogContentView.prototype.get navigationItems):
2810
2811         * UserInterface/Views/Main.css:
2812         Renamed #split-content-browser to #console-drawer, and moved related
2813         styles to ConsoleDrawer.css.
2814
2815         (#split-content-browser): Deleted.
2816         (#split-content-browser > .navigation-bar): Deleted.
2817         (#split-content-browser > .navigation-bar :matches(.find-banner, .find-banner + .divider)): Deleted.
2818         (#split-content-browser > .navigation-bar .item): Deleted.
2819         (#split-content-browser > .navigation-bar .item:not(.flexible-space)): Deleted.
2820         (#split-content-browser .hierarchical-path-component.log-icon .icon): Deleted.
2821         (#split-content-browser .hierarchical-path-component.log-icon .title): Deleted.
2822         (#split-content-browser .hierarchical-path-component.log-icon select): Deleted.
2823         (#split-content-browser > .navigation-bar > :matches(.hierarchical-path, .log-scope-bar)): Deleted.
2824         (#split-content-browser > .navigation-bar > .log-scope-bar > li): Deleted.
2825
2826         * UserInterface/Views/QuickConsole.js:
2827         (WebInspector.QuickConsole):
2828         (WebInspector.QuickConsole.prototype._toggleOrFocus):
2829         (WebInspector.QuickConsole.prototype._updateStyles):
2830         Update top border style in response to change in selected TabBrowser
2831         tab or the console drawer collapsed state.
2832
2833         (WebInspector.QuickConsole.prototype.consoleLogVisibilityChanged): Deleted.
2834         (WebInspector.QuickConsole.prototype.set keyboardShortcutDisabled): Deleted.
2835
2836 2017-06-24  Joseph Pecoraro  <pecoraro@apple.com>
2837
2838         Remove Reflect.enumerate
2839         https://bugs.webkit.org/show_bug.cgi?id=173806
2840
2841         Reviewed by Yusuke Suzuki.
2842
2843         * UserInterface/Models/NativeFunctionParameters.js:
2844
2845 2017-06-23  Joseph Pecoraro  <pecoraro@apple.com>
2846
2847         Web Inspector: Script Timeline bubbles sometimes appear to miss large events
2848         https://bugs.webkit.org/show_bug.cgi?id=173746
2849         <rdar://problem/32950808>
2850
2851         Reviewed by Brian Burg.
2852
2853         * UserInterface/Models/Timeline.js:
2854         (WebInspector.Timeline.prototype.addRecord):
2855         (WebInspector.Timeline.prototype._tryInsertInSortedOrder):
2856         The list of records is assumed to be sorted by the code that draws bubbles
2857         however the order in which we receive them may not be sorted. Make a quick
2858         effort to sort recent records so that as we are drawing the timeline it is
2859         more accurate.
2860
2861 2017-06-23  Brian Burg  <bburg@apple.com>
2862
2863         Web Inspector: RTL: flip all go-to-arrow instances
2864         https://bugs.webkit.org/show_bug.cgi?id=173794
2865         <rdar://problem/32221912>
2866
2867         Reviewed by Joseph Pecoraro.
2868
2869         Move the flipping transform so it applies to all go-to arrows.
2870
2871         * UserInterface/Views/DataGrid.css:
2872         (body[dir=rtl] .data-grid td .go-to-arrow):
2873         * UserInterface/Views/Main.css:
2874         (body[dir=rtl] .go-to-arrow):
2875
2876 2017-06-22  Joseph Pecoraro  <pecoraro@apple.com>
2877
2878         Web Inspector: Pausing with a deep call stack can be very slow, avoid eagerly generating object previews
2879         https://bugs.webkit.org/show_bug.cgi?id=173698
2880
2881         Reviewed by Matt Baker.
2882
2883         Introduce RemoteObject.prototype.updatePreview which can be used to update
2884         the preview of a RemoteObject with a current view for the object. Currently
2885         we only use this to fetch the preview that we did not have for the `thisObject`
2886         in the scope chain sidebar. However this could be used generically to update
2887         a RemoteObject's preview (ObjectPreview) at any time.
2888
2889         * UserInterface/Protocol/RemoteObject.js:
2890         (WebInspector.RemoteObject.prototype.canLoadPreview):
2891         (WebInspector.RemoteObject.prototype.updatePreview):
2892         Allow a RemoteObject to update its preview property. Since this only makes
2893         sense on certain Object values include a helper to know when it is appropriate
2894         to fetch a preview.
2895
2896         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2897         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
2898         (WebInspector.ObjectTreePropertyTreeElement.prototype._loadPreviewLazilyIfNeeded):
2899         If the object being shown in the sidebar does not have a preview but can load a
2900         preview then attempt to load it lazily. This is the case for the `thisObject`
2901         which is injected into an ObjectTree in the scope chain sidebar.
2902
2903 2017-06-22  Fujii Hironori  <Hironori.Fujii@sony.com>
2904
2905         [GTK] Web Inspector: Add icon for Canvas.svg
2906         https://bugs.webkit.org/show_bug.cgi?id=173580
2907
2908         Reviewed by Carlos Garcia Campos.
2909
2910         * UserInterface/Images/gtk/Canvas.svg: Added.
2911
2912 2017-06-21  Fujii Hironori  <Hironori.Fujii@sony.com>
2913
2914         [GTK] Web Inspector: Add NavigationItemCheckers.svg
2915         https://bugs.webkit.org/show_bug.cgi?id=173692
2916
2917         Reviewed by Carlos Garcia Campos.
2918
2919         * UserInterface/Images/gtk/NavigationItemCheckers.svg: Added.
2920
2921 2017-06-20  Devin Rousso  <drousso@apple.com>
2922
2923         Web Inspector: change the selected ScopeBarItem on mousedown instead of click
2924         https://bugs.webkit.org/show_bug.cgi?id=173586
2925
2926         Reviewed by Matt Baker.
2927
2928         Both the Tab bar and Sidebar navigation bar switch the active item on "mousedown" instead of
2929         on "click". ScopeBarItem should follow this pattern, as it is faster and keeps consistency.
2930
2931         * UserInterface/Views/MultipleScopeBarItem.js:
2932         (WebInspector.MultipleScopeBarItem):
2933         (WebInspector.MultipleScopeBarItem.prototype._handleMouseDown):
2934         (WebInspector.MultipleScopeBarItem.prototype._clicked): Deleted.
2935         * UserInterface/Views/ScopeBarItem.js:
2936         (WebInspector.ScopeBarItem):
2937         (WebInspector.ScopeBarItem.prototype._handleMouseDown):
2938         (WebInspector.ScopeBarItem.prototype._clicked): Deleted.
2939
2940 2017-06-20  Devin Rousso  <drousso@apple.com>
2941
2942         Web Inspector: Send context attributes for tracked canvases
2943         https://bugs.webkit.org/show_bug.cgi?id=173327
2944
2945         Reviewed by Joseph Pecoraro.
2946
2947         * UserInterface/Models/Canvas.js:
2948         (WebInspector.Canvas.fromPayload):
2949         (WebInspector.Canvas.prototype.get contextAttributes):
2950         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2951         (WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
2952         (WebInspector.CanvasDetailsSidebarPanel.prototype.layout):
2953         (WebInspector.CanvasDetailsSidebarPanel.prototype.sizeDidChange):
2954         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshAttributesSection):
2955
2956         * UserInterface/Views/DataGridNode.js:
2957         (WebInspector.DataGridNode.prototype.createCellContent):
2958         Instead of checking if the value of the cell is falsy, check that the key exists in the data.
2959         This allows values like `false` to be displayed.
2960
2961 2017-06-19  Devin Rousso  <drousso@apple.com>
2962
2963         Web Inspector: create canvas content view and details sidebar panel
2964         https://bugs.webkit.org/show_bug.cgi?id=138941
2965         <rdar://problem/19051672>
2966
2967         Reviewed by Joseph Pecoraro.
2968
2969         * UserInterface/Models/Canvas.js:
2970         (WebInspector.Canvas):
2971         (WebInspector.Canvas.fromPayload):
2972         (WebInspector.Canvas.prototype.get displayName):
2973         (WebInspector.Canvas.requestNode): Added.
2974         (WebInspector.Canvas.prototype.requestContent): Added.
2975         (WebInspector.Canvas.prototype.saveIdentityToCookie):
2976
2977         * UserInterface/Controllers/CanvasManager.js:
2978         (WebInspector.CanvasManager.prototype.canvasAdded):
2979         (WebInspector.CanvasManager.prototype.canvasRemoved):
2980         * UserInterface/Models/Collection.js:
2981         * UserInterface/Models/Frame.js:
2982         (WebInspector.Frame):
2983         (WebInspector.Frame.prototype.get canvasCollection):
2984         (WebInspector.Frame.prototype.commitProvisionalLoad):
2985         Create a Collection for Canvas in each Frame, and modify it when canvas events are fired.
2986
2987         * UserInterface/Views/CanvasContentView.css: Added.
2988         (.content-view.canvas > .preview):
2989         (.content-view.canvas > .preview > img):
2990         * UserInterface/Views/CanvasContentView.js: Added.
2991         (WebInspector.CanvasContentView):
2992         (WebInspector.CanvasContentView.prototype.get navigationItems):
2993         (WebInspector.CanvasContentView.prototype.shown):
2994         (WebInspector.CanvasContentView.prototype.hidden):
2995         (WebInspector.CanvasContentView.prototype._showPreview):
2996         (WebInspector.CanvasContentView.prototype._updateImageGrid):
2997         (WebInspector.CanvasContentView.prototype._showGridButtonClicked):
2998         * UserInterface/Views/CanvasDetailsSidebarPanel.js: Added.
2999         (WebInspector.CanvasDetailsSidebarPanel):
3000         (WebInspector.CanvasDetailsSidebarPanel.prototype.inspect):
3001         (WebInspector.CanvasDetailsSidebarPanel.prototype.get canvas):
3002         (WebInspector.CanvasDetailsSidebarPanel.prototype.set canvas):
3003         (WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
3004         (WebInspector.CanvasDetailsSidebarPanel.prototype.layout):
3005         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshIdentitySection):
3006         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshSourceSection.this._canvas.requestNode.):
3007         (WebInspector.CanvasDetailsSidebarPanel.prototype._refreshSourceSection):
3008         * UserInterface/Views/CanvasTreeElement.js: Added.
3009         (WebInspector.CanvasTreeElement):
3010
3011         * UserInterface/Views/FrameTreeElement.js:
3012         (WebInspector.FrameTreeElement.prototype.onattach):
3013         (WebInspector.FrameTreeElement.prototype.ondetach):
3014         (WebInspector.FrameTreeElement.prototype.onpopulate):
3015         (WebInspector.FrameTreeElement.prototype._canvasWasAdded):
3016         (WebInspector.FrameTreeElement.prototype._canvasWasRemoved):
3017         (WebInspector.FrameTreeElement):
3018         * UserInterface/Base/Main.js:
3019         * UserInterface/Views/ContentView.js:
3020         (WebInspector.ContentView.createFromRepresentedObject):
3021         (WebInspector.ContentView.isViewable):
3022         * UserInterface/Views/ResourceSidebarPanel.js:
3023         (WebInspector.ResourceSidebarPanel):
3024         (WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
3025         (WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
3026         * UserInterface/Views/ResourcesTabContentView.js:
3027         (WebInspector.ResourcesTabContentView):
3028         (WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):
3029         Show Canvas objects and tie them to the correct ContentView and TreeElement subclasses.
3030
3031         * Localizations/en.lproj/localizedStrings.js:
3032         * UserInterface/Main.html:
3033         * UserInterface/Images/Canvas.svg: Added.
3034         * UserInterface/Views/ResourceIcons.css:
3035         (.canvas .icon):
3036         Added new files/rules/strings related to Canvas UI.
3037
3038         * UserInterface/Views/SettingsTabContentView.css:
3039         (.content-view.settings .navigation-bar):
3040
3041         * UserInterface/Base/Setting.js:
3042         * UserInterface/Views/SettingsTabContentView.js:
3043         (WebInspector.SettingsTabContentView.prototype.initialLayout):
3044         (WebInspector.SettingsTabContentView.prototype._createGeneralSettingsView):
3045         (WebInspector.SettingsTabContentView.prototype._createDebugSettingsView):
3046         Add an experimental settings toggle in the Debug view for showing canvas contexts.
3047
3048         * UserInterface/Views/FolderizedTreeElement.js:
3049         (WebInspector.FolderizedTreeElement.prototype._compareTreeElementsByMainTitle):
3050         Drive-by fix: ensure that sorting also includes numbers, so that 1 < 2 < 10.
3051
3052         * UserInterface/Views/ImageResourceContentView.js:
3053         (WebInspector.ImageResourceContentView.prototype.shown):
3054         (WebInspector.ImageResourceContentView.prototype.hidden):
3055         (WebInspector.ImageResourceContentView.prototype._updateImageGrid):
3056         (WebInspector.ImageResourceContentView.prototype._showGridButtonClicked):
3057         (WebInspector.ImageResourceContentView):
3058         Drive-by fix: change the activated state of the Show Grid navigation item if it changes
3059         in another view.
3060
3061 2017-06-19  Devin Rousso  <drousso@apple.com>
3062
3063         Web Inspector: Unify contextmenu items for all node links/previews
3064         https://bugs.webkit.org/show_bug.cgi?id=173187
3065
3066         Reviewed by Joseph Pecoraro.
3067
3068         * Localizations/en.lproj/localizedStrings.js:
3069         * UserInterface/Views/ContextMenuUtilities.js:
3070         (WebInspector.appendContextMenuItemsForDOMNode.didGetFunctionDetails): Added.
3071         (WebInspector.appendContextMenuItemsForDOMNode.didGetProperty): Added.
3072         (WebInspector.appendContextMenuItemsForDOMNode.didResolveNode): Added.
3073         (WebInspector.appendContextMenuItemsForDOMNode): Added.
3074         * UserInterface/Views/DOMTreeElement.js:
3075         (WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
3076         (WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
3077         (WebInspector.DOMTreeElement.prototype._showCustomElementDefinition): Deleted.
3078         * UserInterface/Views/DOMTreeOutline.js:
3079         (WebInspector.DOMTreeOutline.prototype.populateContextMenu):
3080         (WebInspector.DOMTreeOutline.prototype._populateContextMenu.revealElement): Deleted.
3081         (WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement): Deleted.
3082         (WebInspector.DOMTreeOutline.prototype._populateContextMenu): Deleted.
3083         * UserInterface/Views/RulesStyleDetailsPanel.js:
3084         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
3085         Unify common DOM node context menu actions into a single helper function.
3086
3087         * UserInterface/Base/DOMUtilities.js:
3088         (WebInspector.linkifyNodeReference):
3089         (WebInspector.linkifyNodeReferenceElement):
3090         Rework parameters to use options dictionary.
3091
3092 2017-06-16  Matt Baker  <mattbaker@apple.com>
3093
3094         Web Inspector: Instrument 2D/WebGL canvas contexts in the backend
3095         https://bugs.webkit.org/show_bug.cgi?id=172623
3096         <rdar://problem/32415986>
3097
3098         Reviewed by Devin Rousso and Joseph Pecoraro.
3099
3100         * UserInterface/Base/Main.js:
3101         (WebInspector.loaded):
3102
3103         * UserInterface/Controllers/CanvasManager.js: Added.
3104         New frontend manager for the Canvas domain.
3105         (WebInspector.CanvasManager):
3106         (WebInspector.CanvasManager.prototype.get canvases):
3107         (WebInspector.CanvasManager.prototype.canvasAdded):
3108         (WebInspector.CanvasManager.prototype.canvasRemoved):
3109         (WebInspector.CanvasManager.prototype._mainResourceDidChange):
3110
3111         * UserInterface/Main.html:
3112         New files.
3113
3114         * UserInterface/Models/Canvas.js: Added.
3115         (WebInspector.Canvas):
3116         (WebInspector.Canvas.fromPayload):
3117         (WebInspector.Canvas.displayNameForContextType):
3118         Get displayable text "2D" or "WebGL" based on context type.
3119         (WebInspector.Canvas.resetUniqueDisplayNameNumbers):
3120         Called by CanvasManager when canvases are cleared.
3121         (WebInspector.Canvas.prototype.get identifier):
3122         (WebInspector.Canvas.prototype.get contextType):
3123         (WebInspector.Canvas.prototype.get frame):
3124         (WebInspector.Canvas.prototype.get cssCanvasName):
3125         For CSS canvases, the identifier passed to getCSSCanvasContext.
3126         (WebInspector.Canvas.prototype.get displayName):
3127         Get displayable canvas name. The name depends on how the canvas was
3128         created, and the information available:
3129           - getCSSCanvasContext: "CSS Canvas <identifier>"
3130           - getContext: "Canvas #<DOM id attribute value>"
3131           - Otherwise: "Canvas 1", "Canvas 2", ...
3132
3133         (WebInspector.Canvas.saveIdentityToCookie):
3134
3135         * UserInterface/Protocol/CanvasObserver.js: Added.
3136         (WebInspector.CanvasObserver.prototype.canvasAdded):
3137         (WebInspector.CanvasObserver.prototype.canvasRemoved):
3138         (WebInspector.CanvasObserver):
3139
3140         * UserInterface/Test.html:
3141         * UserInterface/Test/Test.js:
3142         (WebInspector.loaded):
3143
3144 2017-06-16  Matt Lewis  <jlewis3@apple.com>
3145
3146         Unreviewed, rolling out r218376.
3147
3148         The patch cause multiple Layout Test Crashes.
3149
3150         Reverted changeset:
3151
3152         "Web Inspector: Instrument 2D/WebGL canvas contexts in the
3153         backend"
3154         https://bugs.webkit.org/show_bug.cgi?id=172623
3155         http://trac.webkit.org/changeset/218376
3156
3157 2017-06-15  Matt Baker  <mattbaker@apple.com>
3158
3159         Web Inspector: Instrument 2D/WebGL canvas contexts in the backend
3160         https://bugs.webkit.org/show_bug.cgi?id=172623
3161         <rdar://problem/32415986>
3162
3163         Reviewed by Devin Rousso.
3164
3165         * UserInterface/Base/Main.js:
3166         (WebInspector.loaded):
3167
3168         * UserInterface/Controllers/CanvasManager.js: Added.
3169         New frontend manager for the Canvas domain.
3170         (WebInspector.CanvasManager):
3171         (WebInspector.CanvasManager.prototype.get canvases):
3172         (WebInspector.CanvasManager.prototype.canvasAdded):
3173         (WebInspector.CanvasManager.prototype.canvasRemoved):
3174         (WebInspector.CanvasManager.prototype._mainResourceDidChange):
3175
3176         * UserInterface/Main.html:
3177         New files.
3178
3179         * UserInterface/Models/Canvas.js: Added.
3180         (WebInspector.Canvas):
3181         (WebInspector.Canvas.fromPayload):
3182         (WebInspector.Canvas.displayNameForContextType):
3183         Get displayable text "2D" or "WebGL" based on context type.
3184         (WebInspector.Canvas.resetUniqueDisplayNameNumbers):
3185         Called by CanvasManager when canvases are cleared.
3186         (WebInspector.Canvas.prototype.get identifier):
3187         (WebInspector.Canvas.prototype.get contextType):
3188         (WebInspector.Canvas.prototype.get frame):
3189         (WebInspector.Canvas.prototype.get cssCanvasName):
3190         For CSS canvases, the identifier passed to getCSSCanvasContext.
3191         (WebInspector.Canvas.prototype.get displayName):
3192         Get displayable canvas name. The name depends on how the canvas was
3193         created, and the information available:
3194           - getCSSCanvasContext: "CSS Canvas <identifier>"
3195           - getContext: "Canvas #<DOM id attribute value>"
3196           - Otherwise: "Canvas 1", "Canvas 2", ...
3197
3198         (WebInspector.Canvas.saveIdentityToCookie):
3199
3200         * UserInterface/Protocol/CanvasObserver.js: Added.
3201         (WebInspector.CanvasObserver.prototype.canvasAdded):
3202         (WebInspector.CanvasObserver.prototype.canvasRemoved):
3203         (WebInspector.CanvasObserver):
3204
3205         * UserInterface/Test.html:
3206         * UserInterface/Test/Test.js:
3207         (WebInspector.loaded):
3208
3209 2017-06-15  Joseph Pecoraro  <pecoraro@apple.com>
3210
3211         Web Inspector: Search highlight doesn't show up in resources when paused
3212         https://bugs.webkit.org/show_bug.cgi?id=173438
3213         <rdar://problem/32800114>
3214
3215         Reviewed by Matt Baker.
3216
3217         * UserInterface/Views/TextEditor.js:
3218         (WebInspector.TextEditor.prototype.revealPosition.revealAndHighlightLine):
3219         Previously we were bailing if executionLineNumber was NaN, which means that when
3220         we were paused we were incorrectly disabling highlights in any resource that does
3221         not have the active callframe. Relax this and make it match the intended behavior
3222         of only disabling highlights if the highlight line matches the execution line.
3223
3224 2017-06-15  Joseph Pecoraro  <pecoraro@apple.com>
3225
3226         Uncaught Exception: TypeError: null is not an object (evaluating 'this.contentBrowser.contentViewForRepresentedObject')
3227         https://bugs.webkit.org/show_bug.cgi?id=173425
3228         <rdar://problem/32744172>
3229
3230         Reviewed by Devin Rousso.
3231
3232         * UserInterface/Views/ContentBrowserTabContentView.js:
3233         (WebInspector.ContentBrowserTabContentView.prototype.shown):
3234         Reorder slightly so the NavigationSidebar has its ContentBrowser set
3235         before anyone tries to restore views in the sidebar.
3236
3237         * UserInterface/Views/DebuggerSidebarPanel.js:
3238         (WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
3239         Try to select a script/resource content view instead of nothing.
3240
3241         (WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie):
3242         When a resource is selected, save it using the normal path.
3243
3244         * UserInterface/Views/NetworkSidebarPanel.js:
3245         (WebInspector.NetworkSidebarPanel.prototype.canShowDifferentContentView):
3246         Remove a reference to an unused / stale member variable.
3247
3248 2017-06-14  Nikita Vasilyev  <nvasilyev@apple.com>
3249
3250         Web Inspector: Pretty print / type info / code coverage buttons disappear after switching tabs
3251         https://bugs.webkit.org/show_bug.cgi?id=162515
3252         <rdar://problem/28455322>
3253
3254         Reviewed by Joseph Pecoraro.
3255
3256         Each ContentView owns a list of NavigationItems. When the ContentView moves across
3257         Tabs (ContentBrowsers) it removes its NavigationItems from the old Tab's NavigationBar
3258         and adds them to the new Tab's NavigationBar. When switching back to the original tab
3259         the ContentView is restored, but its NavigationItems are not carried back.
3260
3261         * UserInterface/Views/ContentBrowser.js:
3262         (WebInspector.ContentBrowser.prototype._updateContentViewNavigationItems):
3263         Add a forceUpdate parameter that is needed when navigationItems are unchanged but navigationBar is
3264         different.
3265
3266         (WebInspector.ContentBrowser.prototype._removeAllNavigationItems):
3267         Remove navigation items even when their navigationBar is no longer a current navigationBar,
3268         e.g. a navigationBar of the previous tab.
3269
3270         (WebInspector.ContentBrowser.prototype._contentViewNavigationItemsDidChange):
3271         * UserInterface/Views/ContentViewContainer.js:
3272         (WebInspector.ContentViewContainer.prototype._takeOwnershipOfContentView):
3273
3274 2017-06-14  Devin Rousso  <drousso@apple.com>
3275
3276         Web Inspector: REGRESSION: SVG files and favicon don't display properly
3277         https://bugs.webkit.org/show_bug.cgi?id=173389
3278         <rdar://problem/32774281>
3279
3280         Reviewed by Joseph Pecoraro.
3281
3282         * UserInterface/Views/ImageResourceContentView.css:
3283         (.content-view.resource.image img):
3284         Don't set a `min-width` as it has odd interactions with flexbox.
3285
3286 2017-06-13  Nikita Vasilyev  <nvasilyev@apple.com>
3287
3288         Web Inspector: Console: Message icons overlay source location
3289         https://bugs.webkit.org/show_bug.cgi?id=173291
3290
3291         Reviewed by Matt Baker.
3292
3293         * UserInterface/Views/ConsoleMessageView.css:
3294         (.console-message-location.call-frame):
3295         This should be a safe change since a method name and a source link already have
3296         max-width set to 20vw and 30vw respectively.
3297
3298 2017-06-13  Nikita Vasilyev  <nvasilyev@apple.com>
3299
3300         Web Inspector: Don't use -webkit-user-modify CSS property
3301         https://bugs.webkit.org/show_bug.cgi?id=173232
3302
3303         Reviewed by Devin Rousso.
3304
3305         Replace -webkit-user-modify CSS property with contentEditable HTML attribute.
3306
3307         * UserInterface/Views/Editing.css:
3308         (.editing):
3309         * UserInterface/Views/EditingSupport.js:
3310         (cleanUpAfterEditing):
3311         * UserInterface/Views/VisualStyleSelectorTreeItem.css:
3312         (.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title):
3313         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
3314         (WebInspector.VisualStyleSelectorTreeItem.prototype.ondeselect):
3315         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
3316         (WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
3317
3318 2017-06-13  Sam Weinig  <sam@webkit.org>
3319
3320         Rename JSDOMWindowShell to JSDOMWindowProxy to match the HTML5 spec.
3321         https://bugs.webkit.org/show_bug.cgi?id=80733
3322
3323         Reviewed by Chris Dumez.
3324
3325         * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
3326         (HeapSnapshot.prototype._isNodeGlobalObject):
3327
3328 2017-06-12  Devin Rousso  <drousso@apple.com>
3329
3330         Web Inspector: Add grid to images to clarify transparency and image size
3331         https://bugs.webkit.org/show_bug.cgi?id=173184
3332
3333         Reviewed by Matt Baker.
3334
3335         * Localizations/en.lproj/localizedStrings.js:
3336
3337         * UserInterface/Base/Setting.js:
3338         Add setting for controlling the image grid.
3339
3340         * UserInterface/Images/NavigationItemCheckers.svg: Added.
3341
3342         * UserInterface/Views/ImageResourceContentView.css:
3343         (.content-view.resource.image):
3344         (.content-view.resource.image img):
3345         Replace the border spacing around the image with padding on the container.  This is required
3346         because a border will extend the area that is effected by `background-image`, meaning that
3347         the checkerboard would appear in that area as well, giving misleading information as to the
3348         size of the image.
3349
3350         * UserInterface/Views/ImageResourceContentView.js:
3351         (WebInspector.ImageResourceContentView):
3352         (WebInspector.ImageResourceContentView.prototype.get navigationItems): Added.
3353         (WebInspector.ImageResourceContentView.prototype.contentAvailable):
3354         (WebInspector.ImageResourceContentView.prototype.shown): Added.
3355         (WebInspector.ImageResourceContentView.prototype._toggl