Web Inspector: SyncTestSuite should complain if passed an async setup/test/teardown...
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2017-12-12  Brian Burg  <bburg@apple.com>
2
3         Web Inspector: SyncTestSuite should complain if passed an async setup/test/teardown function
4         https://bugs.webkit.org/show_bug.cgi?id=180717
5
6         Reviewed by Devin Rousso.
7
8         * UserInterface/Test/TestSuite.js:
9         (SyncTestSuite.prototype.addTestCase):
10         Raise an exception if test/setup/teardown is an async function. It won't work.
11
12 2017-12-12  Brian Burg  <bburg@apple.com>
13
14         Web Inspector: add InspectorTest.expectException() and use it
15         https://bugs.webkit.org/show_bug.cgi?id=180719
16
17         Reviewed by Matt Baker.
18
19         This helps straighten out async test() functions that need
20         to test exceptional cases. Without this, every such method
21         needs try/catch boilerplate to leak the error outside the
22         scope of the catch-block and then assert that it exists.
23
24         * UserInterface/Test/TestHarness.js:
25         (TestHarness.prototype.expectException):
26         Added. This method takes a callback which is expected to raise
27         an exception either by throwing an Error instance or returning
28         a Promise that rejects with an Error instance. The method returns
29         a Promise that is either resolved with the expected exception
30         from one of the above sources, or is rejected with the non-exception
31         result that was returned or resolved by the callback.
32
33 2017-12-12  Michael Catanzaro  <mcatanzaro@igalia.com>
34
35         Don't require perl(File::Copy::Recursive)
36         https://bugs.webkit.org/show_bug.cgi?id=180479
37         <rdar://problem/35944218>
38
39         Reviewed by Daniel Bates.
40
41         Fix the error handling. I added this at the last moment and failed to test. The logic is
42         inverted, causing an error to always be reported on success.
43
44         Add a missing 'mkdir -p' using File::Path::make_path. This has its own built-in error
45         reporting, so no need to add our own.
46
47         * Scripts/copy-user-interface-resources.pl:
48         (ditto):
49
50 2017-12-12  Michael Catanzaro  <mcatanzaro@igalia.com>
51
52         Unreviewed, don't print empty error message when copying resource fails
53
54         Unsurprisingly, when system() fails, there is not any useful error to be printed, so don't.
55
56         * Scripts/copy-user-interface-resources.pl:
57         (ditto):
58
59 2017-12-08  Joseph Pecoraro  <pecoraro@apple.com>
60
61         ServiceWorker Inspector: Various issues inspecting service worker on mobile.twitter.com
62         https://bugs.webkit.org/show_bug.cgi?id=180520
63         <rdar://problem/35900764>
64
65         Reviewed by Brian Burg.
66
67         * UserInterface/Main.html:
68         * UserInterface/Test.html:
69         New files.
70
71         * UserInterface/Controllers/SourceMapManager.js:
72         (WI.SourceMapManager.prototype._loadAndParseSourceMap):
73         * UserInterface/Models/SourceMapResource.js:
74         (WI.SourceMapResource.prototype.requestContentFromBackend):
75         A ServiceWorker inspector doesn't have a main frame, fall back to an
76         empty frameIdentifier, it is ignored by the Service Worker network agent.
77
78         * UserInterface/Base/Main.js:
79         Handle a Service Worker inspector where there is no frame. This can
80         search the main resource's resource collection.
81
82         * UserInterface/Controllers/DebuggerManager.js:
83         (WI.DebuggerManager.prototype.scriptDidParse):
84
85         * UserInterface/Controllers/FrameResourceManager.js:
86         (WI.FrameResourceManager.prototype.resourceRequestDidFailLoading):
87         In Service Workers the resources won't have a parent frame.
88
89         (WI.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
90         (WI.FrameResourceManager.prototype._processServiceWorkerInitializationInfo):
91         In service worker initialization fallback to using the script content
92         as the main resource if we didn't get a Script that actually includes it.
93
94         * UserInterface/Models/LocalScript.js:
95         (WI.LocalScript):
96         (WI.LocalScript.prototype.requestContentFromBackend):
97         A way to create a local Script with content.
98
99         * UserInterface/Views/SourceCodeTextEditor.js:
100         (WI.SourceCodeTextEditor.prototype.get _supportsDebugging):
101         Disallow breakpoints in a LocalScript since we have no way to tell the
102         backend where to set breakpoints.
103
104         * UserInterface/Models/TextRange.js:
105         (WI.TextRange.fromText):
106         Add a way to get a TextRange from static text.
107
108 2017-12-08  Michael Catanzaro  <mcatanzaro@igalia.com>
109
110         Don't require perl(File::Copy::Recursive)
111         https://bugs.webkit.org/show_bug.cgi?id=180479
112
113         Reviewed by Konstantin Tokarev.
114
115         If File::Copy::Recursive is not installed, there is currently a Darwin
116         fallback to the ditto command. That doesn't exist on Linux, but we can
117         emulate it by running 'cp -R' on everything in the source directory.
118         This should probably work everywhere except Windows.
119
120         * Scripts/copy-user-interface-resources.pl:
121         (ditto):
122
123 2017-12-07  Eric Carlson  <eric.carlson@apple.com>
124
125         Simplify log channel configuration UI
126         https://bugs.webkit.org/show_bug.cgi?id=180527
127         <rdar://problem/35908382>
128
129         Reviewed by Joseph Pecoraro.
130
131         * Localizations/en.lproj/localizedStrings.js:
132         * UserInterface/Models/LoggingChannel.js:
133         * UserInterface/Views/SettingsTabContentView.js:
134         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
135
136 2017-12-07  Matt Lewis  <jlewis3@apple.com>
137
138         Unreviewed, rolling out r225634.
139
140         This caused layout tests to time out.
141
142         Reverted changeset:
143
144         "Simplify log channel configuration UI"
145         https://bugs.webkit.org/show_bug.cgi?id=180527
146         https://trac.webkit.org/changeset/225634
147
148 2017-12-07  Eric Carlson  <eric.carlson@apple.com>
149
150         Simplify log channel configuration UI
151         https://bugs.webkit.org/show_bug.cgi?id=180527
152         <rdar://problem/35908382>
153
154         Reviewed by Joseph Pecoraro.
155
156         * Localizations/en.lproj/localizedStrings.js:
157         * UserInterface/Models/LoggingChannel.js:
158         * UserInterface/Views/SettingsTabContentView.js:
159         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
160
161 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
162
163         Web Inspector: Canvas: spurious warnings shown for commands that changed pixel contents
164         https://bugs.webkit.org/show_bug.cgi?id=180505
165         <rdar://problem/35891651>
166
167         Reviewed by Brian Burg.
168
169         * UserInterface/Models/RecordingAction.js:
170         (WI.RecordingAction.prototype.apply.getContent):
171         (WI.RecordingAction.prototype.apply):
172
173 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
174
175         Web Inspector: Style Redesign: filtering removes header if one rule has no match even if others do
176         https://bugs.webkit.org/show_bug.cgi?id=180467
177
178         Reviewed by Timothy Hatcher.
179
180         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
181         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
182         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
183
184 2017-12-06  Matt Baker  <mattbaker@apple.com>
185
186         Web Inspector: Details section headers overlap Classes container in the Computed Styles panel
187         https://bugs.webkit.org/show_bug.cgi?id=180380
188
189         Reviewed by Timothy Hatcher.
190
191         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
192         (.sidebar > .panel.details.css-style > .content ~ :matches(.options-container, .class-list-container)):
193
194 2017-12-06  Matt Baker  <mattbaker@apple.com>
195
196         Web Inspector: Canvas Tab initial user experience is poor when no canvases exist
197         https://bugs.webkit.org/show_bug.cgi?id=179329
198         <rdar://problem/35842036>
199
200         Reviewed by Timothy Hatcher.
201
202         This patch adds a new method, WI.createNavigationItemHelp, for creating command
203         help to display in a message text view. The method accepts a format string and
204         NavigationItem, and returns a DOM element. For example,
205
206             WI.createNavigationItemHelp("Press %s to do X.", navigationItem)
207
208         returns:
209
210             <div class="navigation-item-help">
211                 Press <div class="navigation-bar"><div class="item">...</div></div> to do X.
212             </div>
213
214         * Localizations/en.lproj/localizedStrings.js:
215         * UserInterface/Base/Main.js:
216
217         * UserInterface/Controllers/CanvasManager.js:
218         (WI.CanvasManager.prototype.importRecording):
219         Importing a recording should be a manager command with a corresponding
220         event, so that it's decoupled from any specific location in the UI.
221
222         * UserInterface/Views/CanvasOverviewContentView.js:
223         (WI.CanvasOverviewContentView):
224
225         * UserInterface/Views/CanvasTabContentView.js:
226         (WI.CanvasTabContentView):
227         (WI.CanvasTabContentView.prototype.attached):
228         (WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
229         (WI.CanvasTabContentView.prototype._recordingStopped): Deleted.
230         (WI.CanvasTabContentView.prototype._navigationSidebarImport): Deleted.
231
232         * UserInterface/Views/Main.css:
233         (.message-text-view .navigation-item-help):
234         (.message-text-view .navigation-item-help .navigation-bar):
235         (.message-text-view .navigation-item-help .navigation-bar > .item):
236         New styles for a NavigationItem appearing inline as part of descriptive
237         text. Wrapped in a fake navigation bar so navigation item styles are picked up.
238
239         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
240         (WI.RecordingNavigationSidebarPanel.prototype.initialLayout):
241         (WI.RecordingNavigationSidebarPanel.prototype._importNavigationItemClicked): Deleted.
242         Moved import code to CanvasManager.
243
244 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
245
246         Web Inspector: REGRESSION(r225569): CSSStyleDetailsSidebarPanel no longer exists
247         https://bugs.webkit.org/show_bug.cgi?id=180466
248
249         Reviewed by Joseph Pecoraro.
250
251         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
252         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.applyFilter):
253         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleEditorFilterApplied):
254
255         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
256         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
257         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
258
259         * UserInterface/Views/SpreadsheetStyleProperty.js:
260         (WI.SpreadsheetStyleProperty.prototype.applyFilter):
261
262 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
263
264         Web Inspector: Styles Redesign: display related pseudo-elements
265         https://bugs.webkit.org/show_bug.cgi?id=176187
266         <rdar://problem/34194917>
267
268         Reviewed by Timothy Hatcher.
269
270         * Localizations/en.lproj/localizedStrings.js:
271
272         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
273         (WI.SpreadsheetRulesStyleDetailsPanel):
274         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
275         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
276         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
277         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
278         (.spreadsheet-style-panel .section-header):
279         (.spreadsheet-style-panel .section-header .node-link):
280         (.spreadsheet-style-panel .section-header .node-link:hover):
281         (.spreadsheet-style-panel .section-inherited): Deleted.
282         (.spreadsheet-style-panel .section-inherited .node-link): Deleted.
283         (.spreadsheet-style-panel .section-inherited .node-link:hover): Deleted.
284         After all of the matched and inherited styles are added, loop over each pseudo-element, get
285         the DOMNodeStyles for each, refresh them if needed, and then add the header and sections.
286
287         * UserInterface/Models/DOMNodeStyles.js:
288         (WI.DOMNodeStyles.prototype.refreshIfNeeded):
289         (WI.DOMNodeStyles.prototype.refresh):
290         Return a reference to the DOMNodeStyles object once the refresh promise is resolved.
291
292         * UserInterface/Models/DOMNode.js:
293         (WI.DOMNode.prototype.get displayName):
294         If the node is a pseudo-element, display the pseudo-type instead of the node name.
295
296 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
297
298         Web Inspector: [PARITY] Styles Redesign: Ability to add new style rules
299         https://bugs.webkit.org/show_bug.cgi?id=178329
300         <rdar://problem/35001005>
301
302         Reviewed by Timothy Hatcher.
303
304         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
305         (WI.SpreadsheetRulesStyleDetailsPanel):
306         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
307         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.newRuleButtonClicked):
308         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.newRuleButtonContextMenu):
309         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._addNewRule):
310         Implement the two functions that CSSStyleDetailsSidebarPanel expects to exist in order for
311         the selected panel to support adding a new rule.
312
313         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
314         (WI.SpreadsheetCSSStyleDeclarationSection):
315         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout):
316         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector):
317         If the _selectorElement has not been created yet, set a flag and focus it once layout() has
318         been called (thereby ensuring that initialLayout() has been called).
319
320 2017-12-05  Devin Rousso  <webkit@devinrousso.com>
321
322         Web Inspector: Styles Redesign: for newly added properties, pressing delete in empty value field should focus on name field
323         https://bugs.webkit.org/show_bug.cgi?id=179831
324         <rdar://problem/35626976>
325
326         Reviewed by Timothy Hatcher.
327
328         * UserInterface/Views/SpreadsheetTextField.js:
329         (WI.SpreadsheetTextField.prototype._handleKeyDown):
330
331         * UserInterface/Views/SpreadsheetStyleProperty.js:
332         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBackspace):
333
334 2017-12-05  Devin Rousso  <webkit@devinrousso.com>
335
336         Web Inspector: [PARITY] Styles Redesign: Make filtering work
337         https://bugs.webkit.org/show_bug.cgi?id=178331
338         <rdar://problem/35001015>
339
340         Reviewed by Timothy Hatcher.
341
342         Since both the sections and editors (per-section) use View semantics, we cannot simply
343         search for instances of the filtered text since not all of the subviews may have called
344         layout() yet. Instead, we have to rely on event listeners to relay information as to whether
345         the filtered text was matched up the chain, applying the correct style classes along the way.
346
347         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
348         (WI.SpreadsheetRulesStyleDetailsPanel):
349         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
350         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
351         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.filterDidChange):
352         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
353         Save the "Inherited From" elements so that they can be hidden if no styles inherited from
354         that node match the filter.
355
356         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
357         (WI.SpreadsheetCSSStyleDeclarationSection):
358         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
359         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout):
360         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.applyFilter):
361         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector):
362         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._createMediaHeader):
363         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleEditorFilterApplied):
364         Save the media header elements so that they can also be filtered.
365
366         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
367         (WI.SpreadsheetCSSStyleDeclarationEditor):
368         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
369         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.applyFilter):
370
371         * UserInterface/Views/SpreadsheetStyleProperty.js:
372         (WI.SpreadsheetStyleProperty):
373         (WI.SpreadsheetStyleProperty.prototype.applyFilter):
374         (WI.SpreadsheetStyleProperty.prototype._update):
375         Move the name and value elements to a new container so that filter highlight won't also
376         apply to the checkbox or warning element.
377
378 2017-12-05  Nikita Vasilyev  <nvasilyev@apple.com>
379
380         Web Inspector: Styles Redesign: adding a property before or after the first one appends it to the end
381         https://bugs.webkit.org/show_bug.cgi?id=180321
382         <rdar://problem/35816402>
383
384         Reviewed by Timothy Hatcher.
385
386         * UserInterface/Models/CSSStyleDeclaration.js:
387         (WI.CSSStyleDeclaration.prototype._rangeAfterPropertyAtIndex):
388         * UserInterface/Models/TextRange.js:
389         (WI.TextRange.prototype.collapseToStart):
390
391 2017-12-05  Joseph Pecoraro  <pecoraro@apple.com>
392
393         Web Inspector: Empty Message View in Network Tab has padding at top
394         https://bugs.webkit.org/show_bug.cgi?id=180453
395
396         Reviewed by Matt Baker.
397
398         * UserInterface/Views/NetworkTableContentView.css:
399         (.content-view.network .message-text-view): Deleted.
400
401 2017-12-05  Nikita Vasilyev  <nvasilyev@apple.com>
402
403         Web Inspector: Styles: make Computed a top-level sidebar tab
404         https://bugs.webkit.org/show_bug.cgi?id=174229
405         <rdar://problem/33170193>
406
407         Reviewed by Matt Baker.
408
409         Styles dropdown tab selector was removed. Styles and Computed are now top-level sidebar tabs.
410
411         Visual styles is no longer visible in the Styles sidebar tabs by default but can be enabled in the settings.
412
413         * Localizations/en.lproj/localizedStrings.js:
414         * UserInterface/Base/Setting.js:
415         * UserInterface/Main.html:
416         * UserInterface/Views/CSSStyleDeclarationSection.js:
417         (WI.CSSStyleDeclarationSection.prototype.findMatchingPropertiesAndSelectors):
418         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
419         (WI.CSSStyleDeclarationTextEditor.prototype.findMatchingProperties):
420         (WI.CSSStyleDeclarationTextEditor.prototype.removeNonMatchingProperties):
421         * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js: Added.
422         (WI.ComputedStyleDetailsSidebarPanel):
423         * UserInterface/Views/DOMTreeOutline.js:
424         (WI.DOMTreeOutline.prototype._ondragover):
425         (WI.DOMTreeOutline.prototype._ondrop):
426         * UserInterface/Views/ElementsTabContentView.js:
427         (WI.ElementsTabContentView):
428         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: Renamed from Source/WebInspectorUI/UserInterface/Views/CSSStyleDetailsSidebarPanel.css.
429         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: Renamed from Source/WebInspectorUI/UserInterface/Views/CSSStyleDetailsSidebarPanel.js.
430         (WI.GeneralStyleDetailsSidebarPanel):
431         (WI.GeneralStyleDetailsSidebarPanel.prototype.get panel):
432         (WI.GeneralStyleDetailsSidebarPanel.prototype.visibilityDidChange):
433         (WI.GeneralStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
434         (WI.GeneralStyleDetailsSidebarPanel.prototype.layout):
435         (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
436         (WI.GeneralStyleDetailsSidebarPanel.prototype.sizeDidChange):
437         (WI.GeneralStyleDetailsSidebarPanel.prototype.get _initialScrollOffset):
438         (WI.GeneralStyleDetailsSidebarPanel.prototype._updateNoForcedPseudoClassesScrollOffset):
439         (WI.GeneralStyleDetailsSidebarPanel.prototype._showPanel):
440         (WI.GeneralStyleDetailsSidebarPanel.prototype._newRuleButtonClicked):
441         (WI.GeneralStyleDetailsSidebarPanel.prototype._newRuleButtonContextMenu):
442         (WI.GeneralStyleDetailsSidebarPanel.prototype._populateClassToggles):
443         (WI.GeneralStyleDetailsSidebarPanel.prototype._createToggleForClassName):
444         (WI.GeneralStyleDetailsSidebarPanel.prototype._filterDidChange):
445         Styles and Computed tabs share a few UI components, such as force state (:hover, :focus, etc.),
446         filter field, and CSS class toggle components. To implement this, CSSStyleDetailsSidebarPanel was renamed
447         to GeneralStyleDetailsSidebarPanel.
448
449         CSSStyleDetailsSidebarPanel used to support several panels. This is no longer the case with GeneralStyleDetailsSidebarPanel:
450         - _initiallySelectedPanel was removed.
451         - _selectedPanel was replaced by _panel.
452
453         * UserInterface/Views/GroupNavigationItem.js:
454         (WI.GroupNavigationItem.prototype.get minimumWidth):
455         * UserInterface/Views/NavigationBar.css:
456         (.navigation-bar .item,):
457         (.sidebar-navigation-bar):
458         (.sidebar-navigation-bar .holder):
459         * UserInterface/Views/NavigationBar.js:
460         (WI.NavigationBar.prototype._calculateMinimumWidth):
461         Minor optimization: don't toggle class names when there are no visible navigation items.
462
463         * UserInterface/Views/RulesStyleDetailsPanel.js:
464         (WI.RulesStyleDetailsPanel.prototype.filterDidChange):
465         * UserInterface/Views/RulesStyleDetailsSidebarPanel.js: Copied from Source/WebInspectorUI/UserInterface/Views/NavigationBar.css.
466         (WI.RulesStyleDetailsSidebarPanel):
467         * UserInterface/Views/SearchTabContentView.js:
468         (WI.SearchTabContentView):
469         * UserInterface/Views/SettingsTabContentView.js:
470         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
471         * UserInterface/Views/Sidebar.js:
472         (WI.Sidebar):
473         * UserInterface/Views/SidebarNavigationBar.js: Copied from Source/WebInspectorUI/UserInterface/Views/NavigationBar.css.
474         (WI.SidebarNavigationBar):
475         (WI.SidebarNavigationBar.prototype.insertNavigationItem):
476         (WI.SidebarNavigationBar.prototype._calculateMinimumWidth):
477         SidebarNavigationBar wraps navigation items in an element so it can correctly calculate the width of all items with spacing between them.
478
479         * UserInterface/Views/StyleDetailsPanel.js:
480         (WI.StyleDetailsPanel.prototype.get _initialScrollOffset):
481         * UserInterface/Views/VisualStyleDetailsSidebarPanel.js: Copied from Source/WebInspectorUI/UserInterface/Views/NavigationBar.css.
482         (WI.VisualStyleDetailsSidebarPanel):
483
484 2017-12-05  Joseph Pecoraro  <pecoraro@apple.com>
485
486         Web Inspector: content views for resources loaded through XHR do not reflect declared mime-type
487         https://bugs.webkit.org/show_bug.cgi?id=141389
488         <rdar://problem/19767070>
489
490         Reviewed by Brian Burg.
491
492         * UserInterface/Base/Utilities.js:
493         Blob <-> Text conversion helpers.
494
495         * UserInterface/Models/Resource.js:
496         (WI.Resource.prototype.createObjectURL):
497         Previously all Image resources were assumed to have base64Encoded data
498         which we automatically convert to a Blob. Now that some image data
499         can be transfered as text, convert that to a Blob here since the output
500         is expected to be a Blob.
501
502         * UserInterface/Views/ResourceContentView.js:
503         (WI.ResourceContentView.prototype.showGenericNoContentMessage):
504         * UserInterface/Views/TextResourceContentView.js:
505         (WI.TextResourceContentView.prototype.contentAvailable):
506         (WI.TextResourceContentView.prototype._contentDidPopulate):
507         * UserInterface/Views/ImageResourceContentView.js:
508         (WI.ImageResourceContentView.prototype.contentAvailable):
509         Better handle no content cases.
510
511         * UserInterface/Views/ResourceClusterContentView.js:
512         (WI.ResourceClusterContentView.prototype.get responseContentView):
513         (WI.ResourceClusterContentView.prototype._contentViewForResourceType):
514         Make a best effort to find a good ContentView to show the resource data.
515         This is done by looking at the ResourceType and MIME Type.
516
517         * UserInterface/Views/SVGImageResourceClusterContentView.js:
518         (WI.SVGImageResourceClusterContentView.prototype._showContentViewForIdentifier):
519         Handle if image data is now text (the image/svg+xml case).
520
521 2017-12-05  Simon Fraser  <simon.fraser@apple.com>
522
523         Remove webkitGetImageDataHD and webkitPutImageDataHD from canvas API
524         https://bugs.webkit.org/show_bug.cgi?id=180387
525
526         Reviewed by Dean Jackson.
527
528         CanvasRenderingContext2D.webkitGetImageDataHD and webkitPutImageDataHD were never standardized,
529         and Blink removed support in 2014 (https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/FOPH5dloGG8).
530
531         Since our canvas backing store is always 1x, they have no use anyway, so remove them.
532
533         * UserInterface/Models/NativeFunctionParameters.js:
534         * UserInterface/Models/RecordingAction.js:
535         (WI.RecordingAction.prototype.getImageParameters):
536         (WI.RecordingAction):
537         * UserInterface/Views/RecordingActionTreeElement.js:
538         (WI.RecordingActionTreeElement._classNameForAction.classNameForActionName):
539         (WI.RecordingActionTreeElement._classNameForAction):
540
541 2017-12-04  Devin Rousso  <webkit@devinrousso.com>
542
543         Web Inspector: provide method for recording CanvasRenderingContext2D from JavaScript
544         https://bugs.webkit.org/show_bug.cgi?id=175166
545         <rdar://problem/34040740>
546
547         Reviewed by Joseph Pecoraro.
548
549         * UserInterface/Controllers/CanvasManager.js:
550         (WI.CanvasManager.prototype.recordingFinished):
551         If a `name` is sent with the payload, use it as the suggested name.
552
553         * UserInterface/Models/NativeFunctionParameters.js:
554         Add `console.record` and `console.recordEnd`.
555
556         * UserInterface/Views/CanvasTabContentView.js:
557         (WI.CanvasTabContentView.prototype.showRepresentedObject):
558         Drive-by: remove logic that toggled the collapsed state of the navigation sidebar, as this
559         was not very controllable by the user and often was aggravating.
560
561         (WI.CanvasTabContentView.prototype._recordingStopped):
562         Only show the recording if it was not started from the console. This can determined by
563         CanvasManager when it recieves a recording if the recording's source is not the same as the
564         current canvas being recorded.
565
566 2017-12-04  Matt Baker  <mattbaker@apple.com>
567
568         Web Inspector: Canvas Tab initial user interface needs some polish
569         https://bugs.webkit.org/show_bug.cgi?id=179330
570         <rdar://problem/35367581>
571
572         Reviewed by Joseph Pecoraro.
573
574         Update the Canvas overview placeholder text and prevent appearance of
575         the vertical scrollbar when no canvases exist. This patch also includes
576         a bunch of cleanup of code that creates content placeholder text throughout
577         the UI, and makes sure all text is styled consistently.
578
579         * Localizations/en.lproj/localizedStrings.js:
580         Updated Canvas overview message text.
581
582         * UserInterface/Base/Main.js:
583         Make the "message text view" a container with child message element, instead
584         of a simple element with text content. This makes it simpler to customize
585         the message (by adding buttons, more text, etc).
586
587         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
588         (.sidebar > .panel.details.canvas .details-section.canvas-extensions .content > ul):
589         (.sidebar > .panel.details.canvas > .content > .empty-content-placeholder): Deleted.
590         (.sidebar > .panel.details.canvas > .content > .empty-content-placeholder > .message): Deleted.
591         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
592         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
593
594         * UserInterface/Views/CanvasOverviewContentView.js:
595         (WI.CanvasOverviewContentView):
596         Customize the content placeholder to include a description beneath
597         the "No Canvas Contexts" message.
598
599         * UserInterface/Views/CollectionContentView.css:
600         (.content-view.collection):
601         Change overflow-y to auto, to prevent scrollbar from appearing when
602         "Show scroll bars" system preference is enabled on macOS.
603
604         * UserInterface/Views/CollectionContentView.js:
605         Add support for custom content placeholders.
606         (WI.CollectionContentView):
607         (WI.CollectionContentView.prototype._showContentPlaceholder):
608         (WI.CollectionContentView.prototype._hideContentPlaceholder):
609
610         * UserInterface/Views/ContentView.css:
611         (.content-view > .message-text-view):
612         (.content-view > .message-text-view > .message):
613
614         * UserInterface/Views/DebuggerSidebarPanel.css:
615         (.sidebar > .panel.navigation.debugger > .content):
616         (.sidebar > .panel.navigation.debugger > :matches(.content, .empty-content-placeholder)): Deleted.
617
618         * UserInterface/Views/DetailsSection.css:
619         (.details-section > .content > .group > .row > .message-text-view):
620
621         * UserInterface/Views/Main.css:
622         (.message-text-view):
623         (.message-text-view > .message):
624         (.message-text-view.error):
625
626         * UserInterface/Views/NavigationSidebarPanel.css:
627         (.sidebar > .panel.navigation > .overflow-shadow):
628         (.sidebar > .panel.navigation > .content .empty-content-placeholder): Deleted.
629         (.sidebar > .panel.navigation > .content > .empty-content-placeholder): Deleted.
630         (.sidebar > .panel.navigation > .content .empty-content-placeholder > .message): Deleted.
631
632         * UserInterface/Views/NavigationSidebarPanel.js:
633         (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
634         (WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded):
635
636         * UserInterface/Views/NetworkTableContentView.css:
637         (.content-view.network .message-text-view):
638         (.content-view.network .message-text-view > .message):
639         Workaround to prevent "No Filter Results" message from being styled like
640         "full width" messages displayed in ContentViews (large, bold font).
641         This is needed because the placeholder message element is a immediate child
642         of the network content view, rather than the network table.
643
644         (.content-view.network .empty-content-placeholder): Deleted.
645         (body[dir=ltr] .content-view.network .empty-content-placeholder): Deleted.
646         (body[dir=rtl] .content-view.network .empty-content-placeholder): Deleted.
647         (.content-view.network .empty-content-placeholder > .message): Deleted.
648
649         * UserInterface/Views/NetworkTableContentView.js:
650         (WI.NetworkTableContentView.prototype._showEmptyFilterResultsMessage):
651
652         * UserInterface/Views/RecordingNavigationSidebarPanel.css:
653         (.sidebar > .panel.navigation.recording > .content):
654         (.sidebar > .panel.navigation.recording > :matches(.content, .empty-content-placeholder)): Deleted.
655
656         * UserInterface/Views/ResourceSidebarPanel.css:
657         (.sidebar > .panel.navigation.resource > .content):
658         (.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)): Deleted.
659
660         * UserInterface/Views/RulesStyleDetailsPanel.css:
661         (.sidebar > .panel.details.css-style > .content > .rules > .message-text-view):
662         (.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .message-text-view):
663         (.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .no-filter-results): Deleted.
664         (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results): Deleted.
665         (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results > .no-filter-results-message): Deleted.
666
667         * UserInterface/Views/RulesStyleDetailsPanel.js:
668         (WI.RulesStyleDetailsPanel):
669
670         * UserInterface/Views/SearchSidebarPanel.css:
671         (.sidebar > .panel.navigation.search > :matches(.content, .message-text-view)):
672         (.sidebar > .panel.navigation.search.changed > :matches(.content, .message-text-view)):
673         (.sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)): Deleted.
674         (.sidebar > .panel.navigation.search.changed > :matches(.content, .empty-content-placeholder)): Deleted.
675
676         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
677         (WI.SpreadsheetRulesStyleDetailsPanel):
678
679         * UserInterface/Views/StorageSidebarPanel.css:
680         (.sidebar > .panel.navigation.storage > .content):
681         (.sidebar > .panel.navigation.storage > :matches(.content, .empty-content-placeholder)): Deleted.
682
683         * UserInterface/Views/Variables.css:
684         (:root):
685
686 2017-11-29  Nikita Vasilyev  <nvasilyev@apple.com>
687
688         Web Inspector: Styles Redesign: can't add new property after property without trailing semicolon
689         https://bugs.webkit.org/show_bug.cgi?id=179587
690         <rdar://problem/35490858>
691
692         Reviewed by Timothy Hatcher.
693
694         * UserInterface/Models/CSSProperty.js:
695         (WI.CSSProperty.prototype._updateOwnerStyleText):
696         (WI.CSSProperty.prototype._appendSemicolonIfNeeded):
697         Add a semicolon before the new property if the last property doesn't have it already.
698
699 2017-11-29  Joseph Pecoraro  <pecoraro@apple.com>
700
701         Web Inspector: Console Tab navigation bar sometimes does not include filter bar, clear console sometimes does not work
702         https://bugs.webkit.org/show_bug.cgi?id=180124
703         <rdar://problem/35740353>
704
705         Reviewed by Brian Burg.
706
707         * UserInterface/Views/LogContentView.js:
708         (WI.LogContentView.prototype.closed):
709         Avoid removing event listeners if this LogContentView singleton is ever closed.
710         The singleton will always be alive so we don't want to remove the event listeners
711         without a way to add them back.
712
713         * UserInterface/Base/Main.js:
714         (WI.showSplitConsole):
715         * UserInterface/Views/ConsoleTabContentView.js:
716         (WI.ConsoleTabContentView.prototype.shown):
717         When showing the ConsoleTab immediately collapse the split console so that any
718         following code that checks WI.isShowingSplitConsole will get the expected value.
719         It is also now possible to share a ContentView across ContentBrowsers via
720         tombstones, so remove the old code that would frequently close the LogContentView.
721
722 2017-11-28  Devin Rousso  <webkit@devinrousso.com>
723
724         Web Inspector: remove extra space before call frames in Canvas backtraces
725         https://bugs.webkit.org/show_bug.cgi?id=180129
726
727         Reviewed by Matt Baker.
728
729         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
730         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
731         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
732         (WI.RecordingTraceDetailsSidebarPanel):
733         Hide the disclosure buttons of these TreeOutlines as they don't have children.
734
735 2017-11-28  Matt Baker  <mattbaker@apple.com>
736
737         Web Inspector: Clean up backtrace in Canvas details sidebar
738         https://bugs.webkit.org/show_bug.cgi?id=179807
739         <rdar://problem/35604378>
740
741         Reviewed by Devin Rousso.
742
743         * UserInterface/Controllers/CallFrameTreeController.js: Added.
744         Display a list of call frames in a tree outline. Browse to the represented
745         call frame's source code location when a tree element is clicked or selected.
746
747         (WI.CallFrameTreeController):
748         (WI.CallFrameTreeController.prototype.get treeOutline):
749         (WI.CallFrameTreeController.prototype.get callFrames):
750         (WI.CallFrameTreeController.prototype.set callFrames):
751         (WI.CallFrameTreeController.prototype.disconnect):
752         (WI.CallFrameTreeController.prototype._treeElementClicked):
753         (WI.CallFrameTreeController.prototype._treeSelectionDidChange):
754         (WI.CallFrameTreeController.prototype._showSourceCodeLocation):
755
756         * UserInterface/Main.html:
757
758         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
759         (.sidebar > .panel.details.canvas .details-section.canvas-backtrace .call-frame): Deleted.
760         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
761         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
762         (WI.CanvasDetailsSidebarPanel.prototype._refreshBacktraceSection):
763
764         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.css:
765         (.sidebar > .panel.details.recording-trace > .content > .call-frame): Deleted.
766         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
767         (WI.RecordingTraceDetailsSidebarPanel):
768         (WI.RecordingTraceDetailsSidebarPanel.prototype.updateAction):
769
770         * UserInterface/Views/TreeElement.js:
771         (WI.TreeElement.treeElementToggled):
772         (WI.TreeElement.prototype.selectOnMouseDown):
773         Prevent selection if parent tree outline is not selectable.
774
775         * UserInterface/Views/TreeOutline.css:
776         (.tree-outline.non-selectable .item:hover):
777
778         * UserInterface/Views/TreeOutline.js:
779         Add `selectable` behavior, set at construction time. When false,
780         clicking a tree element dispatches an event instead of selecting
781         the tree element. Default true.
782
783         (WI.TreeOutline):
784         (WI.TreeOutline.prototype.get selectable):
785         Dispatch click event when not selectable, and some drive-by cleanup.
786
787 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
788
789         Web Inspector: Move console Preserve Log setting from Setting tab to Console navigation bar
790         https://bugs.webkit.org/show_bug.cgi?id=180125
791
792         Reviewed by Matt Baker.
793
794         * Localizations/en.lproj/localizedStrings.js:
795         * UserInterface/Views/LogContentView.js:
796         (WI.LogContentView):
797         (WI.LogContentView.prototype.get navigationItems):
798         (WI.LogContentView.prototype._clearLogOnNavigateSettingChanged):
799         * UserInterface/Views/SettingsTabContentView.js:
800         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
801
802 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
803
804         Web Inspector: Remove Network "Clear on load" from Settings tab now that Network tab has a toggle for it
805         https://bugs.webkit.org/show_bug.cgi?id=180123
806
807         Reviewed by Matt Baker.
808
809         * Localizations/en.lproj/localizedStrings.js:
810         * UserInterface/Views/SettingsTabContentView.js:
811         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
812
813 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
814
815         Web Inspector: Network Tab - Add a toggle in the network tab to control automatically clearing or preserving log across loads
816         https://bugs.webkit.org/show_bug.cgi?id=180110
817         <rdar://problem/34071789>
818
819         Reviewed by Timothy Hatcher.
820
821         * Localizations/en.lproj/localizedStrings.js:
822         New strings.
823
824         * UserInterface/Views/CheckboxNavigationItem.css:
825         (.navigation-bar .item.checkbox input[type=checkbox]):
826         Tweak style to more center the checkbox vertically.
827
828         * UserInterface/Views/CheckboxNavigationItem.js:
829         (WI.CheckboxNavigationItem):
830         Fix setting the initial value of a checkbox navigation item.
831
832         * UserInterface/Views/NetworkTableContentView.js:
833         (WI.NetworkTableContentView):
834         (WI.NetworkTableContentView.prototype.get navigationItems):
835         (WI.NetworkTableContentView.prototype.closed):
836         (WI.NetworkTableContentView.prototype._clearNetworkOnNavigateSettingChanged):
837         Add a new checkbox for the clear on navigation setting.
838
839         * UserInterface/Views/SettingEditor.js:
840         (WI.SettingEditor.createForSetting):
841         Update the editor checkbox if the setting changes outside of the setting editor.
842
843         * UserInterface/Views/NavigationItem.js:
844         (WI.NavigationItem.prototype.get tooltip):
845         (WI.NavigationItem.prototype.set tooltip):
846         * UserInterface/Views/ActivateButtonNavigationItem.js:
847         (WI.ActivateButtonNavigationItem.prototype.set activated):
848         * UserInterface/Views/ButtonNavigationItem.js:
849         (WI.ButtonNavigationItem):
850         (WI.ButtonNavigationItem.prototype.get toolTip): Deleted.
851         (WI.ButtonNavigationItem.prototype.set toolTip): Deleted.
852         * UserInterface/Views/ToggleButtonNavigationItem.js:
853         (WI.ToggleButtonNavigationItem.prototype.set alternateToolTip):
854         (WI.ToggleButtonNavigationItem.prototype.set toggled):
855         Move tooltip to the base class and rename it from `toolTip` to `tooltip` to
856         match existing generic places like TreeElement.
857
858 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
859
860         Web Inspector: Include Beacon loads in the Network Table's "Other" filter
861         https://bugs.webkit.org/show_bug.cgi?id=180113
862
863         Reviewed by Matt Baker.
864
865         * UserInterface/Views/NetworkTableContentView.js:
866         (WI.NetworkTableContentView):
867         Ensure the Other filter will handle any type that hasn't already been handled.
868
869 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
870
871         ServiceWorker Inspector: Frontend changes to support Network tab and sub resources
872         https://bugs.webkit.org/show_bug.cgi?id=179642
873         <rdar://problem/35517704>
874
875         Reviewed by Brian Burg.
876
877         This patch makes use of the NetworkAgent and ServiceWorker agents in the frontend
878         for a ServiceWorker inspection target. It also makes changes to ensure that the
879         subresources requested by a ServiceWorker appear as expected in both the Resources
880         and Network Tabs.
881
882         The backends of ServiceWorkers and DedicatedWorkers for network requests are
883         different, but we want the presentation to be very similiar. Ultimately we'd like
884         to move to more similiar backends if possible.
885
886         The first (after Inspector.enable) message a ServiceWorker inspector sends to the
887         backend is ServiceWorker.getInitializationInfo. This parallels a Page inspector
888         sending Page.getResourceTree. From the response we get enough information to
889         setup the MainTarget with enough information (targetId, URL) to know what its main
890         resource URL will be. Like DedicatedWorkers, the target's main resource will be
891         filled in with the first WI.Script matching the URL. With this initialization
892         message alone the ServiceWorker Target behaves almost identically to a Worker
893         target and Network loads associated with the target (by targetId) are added as
894         sub-resources as expected.
895
896         The biggest tension in this patch is within FrameResourceManager. The class, as
897         its name indicates, assumes page resources with Frames, navigation, and loader
898         semantics. It takes a few modifications to make it better handle resources not
899         associated with a Page. A follow-up will rename this to just ResourceManager as
900         the class' main task is now to associate Resources with Targets.
901
902         * UserInterface/Base/Main.js:
903         (WI.loaded):
904         There are assumptions in a few places that the main target is a Page. Those
905         places can now be reached when the main target is a ServiceWorker. Add a
906         convenience WI.pageTarget that can be used in these places.
907
908         * UserInterface/Test/Test.js:
909         (WI.loaded):
910         Add pageTarget.
911
912         * UserInterface/Controllers/DebuggerManager.js:
913         (WI.DebuggerManager.prototype.scriptDidParse):
914         Generalize the condition so the main target can have its main resource populated.
915         This will be the case when a ServiceWorker is the main target and its main resource
916         needs to be populated from a Script.
917
918         * UserInterface/Controllers/FrameResourceManager.js:
919         (WI.FrameResourceManager):
920         (WI.FrameResourceManager.prototype._processServiceWorkerInitializationInfo):
921         Handle ServiceWorker Resource initialization which is different from Page initialization.
922
923         (WI.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
924         (WI.FrameResourceManager.prototype._addResourceToTarget):
925         (WI.FrameResourceManager.prototype._addFrameTreeFromFrameResourceTreePayload):
926         Eliminate PageAgent, which might not be available in some targets.
927         Use pageTarget instead of mainTarget where appropriate.
928
929         * UserInterface/Controllers/TargetManager.js:
930         (WI.TargetManager.prototype.targetForIdentifier):
931         A ServiceWorker is the first time that the main target has an identifier,
932         so let TargetManager find it by target id.
933
934         * UserInterface/Models/Resource.js:
935         (WI.Resource):
936         (WI.Resource.resolvedType):
937         (WI.Resource.prototype.updateForResponse):
938         For Resource.Type.Other resources include a better type inferred from the MIME type.
939         ServiceWorker loads currently don't have type information and this provides a great
940         type for such loads. This should also provide nice types for CacheStorage.add*
941         populated resources which are otherwise type-less fetches.
942
943         * UserInterface/Protocol/Connection.js:
944         Rename the class since this may no longer be a "Page".
945
946         * UserInterface/Protocol/MainTarget.js:
947         (WI.MainTarget):
948         (WI.MainTarget.mainConnectionInfo):
949         (WI.MainTarget.prototype.get mainResource):
950         (WI.MainTarget.prototype.set mainResource):
951         (WI.MainTarget.prototype.get displayName): Deleted.
952         * UserInterface/Protocol/Target.js:
953         (WI.Target.prototype.set identifier):
954         (WI.Target.prototype.set name):
955         (WI.Target.prototype.get mainResource):
956         (WI.Target.prototype.set mainResource):
957         (WI.Target.prototype.get displayName):
958         Give richer types for the main target. And allow a few things to be initialized
959         lazily, which will be necessary from an initialization message.
960
961         * UserInterface/Views/NetworkTabContentView.js:
962         (WI.NetworkTabContentView.isTabAllowed):
963         Remove a PageAgent requirement for the Network tab. A ServiceWorker will not
964         have a PageAgent, but it will have a NetworkAgent, which should be good enough.
965
966         * UserInterface/Views/NetworkTableContentView.js:
967         (WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):
968         Initial populate should populate all subresources of all targets.
969
970         * UserInterface/Views/ResourceContentView.js:
971         (WI.ResourceContentView.prototype.contentAvailable):
972         This was getting used by ResourceType.Other without warning. Make it warn.
973
974         * UserInterface/Views/ResourceSidebarPanel.js:
975         (WI.ResourceSidebarPanel.prototype._addScript):
976         (WI.ResourceSidebarPanel.prototype._addTargetWithMainResource):
977         * UserInterface/Views/ScriptTreeElement.js:
978         (WI.ScriptTreeElement):
979         Allow WorkerTreeElements for ServiceWorker targets which may also be the main target.
980         Also when adding such a tree element, promote the resource sidebar to a full tree
981         outline, and stop hiding disclosure buttons.
982
983 2017-11-27  Nikita Vasilyev  <nvasilyev@apple.com>
984
985         Web Inspector: Styles Redesign: selector's field shadow is clipped at the bottom
986         https://bugs.webkit.org/show_bug.cgi?id=179961
987
988         Reviewed by Matt Baker.
989
990         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
991         (.spreadsheet-css-declaration .selector):
992
993 2017-11-21  Tomas Popela  <tpopela@redhat.com>
994
995         Unreviewed compile warning fix
996
997         WARNING: console.assert inside control flow statement without braces on line: 130487:
998         console.assert(this._loggingChannelSources.includes(channel.source));
999
1000         * UserInterface/Controllers/LogManager.js:
1001         (WI.LogManager):
1002
1003 2017-11-18  Joseph Pecoraro  <pecoraro@apple.com>
1004
1005         Web Inspector: Update the Trash / Clear icon
1006         https://bugs.webkit.org/show_bug.cgi?id=179850
1007
1008         Reviewed by Matt Baker.
1009
1010         * UserInterface/Images/NavigationItemTrash.svg:
1011         Update the icon.
1012
1013         * UserInterface/Views/ProbeDetailsSidebarPanel.css:
1014         (.sidebar > .panel.probes > .navigation-bar .item.clear-samples):
1015         * UserInterface/Views/ProbeSetDetailsSection.js:
1016         (WI.ProbeSetDetailsSection):
1017         * UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
1018         (.scope-chain .navigation-bar .item.clear-watch-expressions):
1019         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
1020         (WI.ScopeChainDetailsSidebarPanel):
1021         Resize to 15x15 and move it down a pixel.
1022
1023 2017-11-17  Joseph Pecoraro  <pecoraro@apple.com>
1024
1025         Web Inspector: Network Tab - Add HAR Export button
1026         https://bugs.webkit.org/show_bug.cgi?id=179570
1027         <rdar://problem/35484918>
1028
1029         Reviewed by Matt Baker.
1030
1031         * Localizations/en.lproj/localizedStrings.js:
1032         New strings.
1033
1034         * UserInterface/Images/Export.svg: Added.
1035         * UserInterface/Images/Import.svg: Added.
1036         Add symmetric import/export buttons.
1037
1038         * UserInterface/Base/Main.js:
1039         (WI.contentLoaded):
1040         Expose the save keyboard shortcut so we can show its display name in a tooltip.
1041
1042         * UserInterface/Views/NetworkTableContentView.js:
1043         (WI.NetworkTableContentView):
1044         (WI.NetworkTableContentView.prototype.get navigationItems):
1045         (WI.NetworkTableContentView.prototype.reset):
1046         (WI.NetworkTableContentView.prototype.layout):
1047         (WI.NetworkTableContentView.prototype._updateExportButton):
1048         Include the export button and enable/disable it when appropriate.
1049
1050         (WI.NetworkTableContentView.prototype.closed):
1051         Add a missing event listener removal.
1052
1053 2017-11-17  Matt Baker  <mattbaker@apple.com>
1054
1055         Web Inspector: Disabled ImageAndText-style buttons should have gray text
1056         https://bugs.webkit.org/show_bug.cgi?id=179843
1057         <rdar://problem/35624337>
1058
1059         Reviewed by Joseph Pecoraro.
1060
1061         * UserInterface/Views/ButtonNavigationItem.css:
1062         (.navigation-bar .item.button.disabled.image-and-text,):
1063         (.navigation-bar .item.button.disabled > .glyph): Deleted.
1064
1065 2017-11-17  Joseph Pecoraro  <pecoraro@apple.com>
1066
1067         Web Inspector: Network Tab - Update Ignore Caches button
1068         https://bugs.webkit.org/show_bug.cgi?id=179841
1069
1070         Reviewed by Matt Baker.
1071
1072         * UserInterface/Images/IgnoreCaches.svg:
1073         This changes from an arrow over a cache to a slash through a cache.
1074
1075 2017-11-17  Matt Baker  <mattbaker@apple.com>
1076
1077         Web Inspector: Remove WI.instanceForClass
1078         https://bugs.webkit.org/show_bug.cgi?id=179746
1079
1080         Reviewed by Timothy Hatcher.
1081
1082         The implementations of DetailsSidebarPanel subclasses assume that panels
1083         are closed and released when no longer needed. Keeping them alive with
1084         instanceForClass isn't the right choice, since sidebar panels remove their
1085         event listeners when closed.
1086
1087         * UserInterface/Base/Main.js:
1088         (WI.instanceForClass): Deleted.
1089         * UserInterface/Views/DebuggerTabContentView.js:
1090         (WI.DebuggerTabContentView.prototype.showDetailsSidebarPanels):
1091         * UserInterface/Views/TabContentView.js:
1092         (WI.TabContentView.prototype.get detailsSidebarPanels):
1093
1094 2017-11-17  Matt Baker  <mattbaker@apple.com>
1095
1096         Web Inspector: ButtonNavigationItem should support image and text button style
1097         https://bugs.webkit.org/show_bug.cgi?id=179625
1098         <rdar://problem/35512238>
1099
1100         Reviewed by Joseph Pecoraro.
1101
1102         * UserInterface/Main.html:
1103
1104         * UserInterface/Views/ButtonNavigationItem.css:
1105         (.navigation-bar .item.button):
1106         (.navigation-bar .item.button.image-only):
1107         (.navigation-bar .item.button.image-and-text):
1108         (.navigation-bar .item.button.image-and-text > span):
1109         (.navigation-bar .item.button.text-only):
1110         (.navigation-bar .item.button.text-only.checkbox): Deleted.
1111         (.navigation-bar .item.button.text-only.checkbox label): Deleted.
1112         Checkbox styles have been moved to a separate CSS file.
1113
1114         * UserInterface/Views/ButtonNavigationItem.js:
1115         Add backing data members for the image and label, allowing the DOM
1116         representation of the button to change as needed.
1117
1118         (WI.ButtonNavigationItem):
1119         Remove duplicate role logic. The base class sets the role.
1120
1121         (WI.ButtonNavigationItem.prototype.set label):
1122         (WI.ButtonNavigationItem.prototype.set image):
1123         (WI.ButtonNavigationItem.prototype.get buttonStyle):
1124         (WI.ButtonNavigationItem.prototype.set buttonStyle):
1125         (WI.ButtonNavigationItem.prototype.get additionalClassNames):
1126         (WI.ButtonNavigationItem.prototype._mouseClicked):
1127         (WI.ButtonNavigationItem.prototype._update):
1128         (WI.ButtonNavigationItem.prototype.updateButtonText): Deleted.
1129
1130         * UserInterface/Views/CheckboxNavigationItem.css: Added.
1131         (.navigation-bar .item.checkbox):
1132         (.navigation-bar .item.checkbox label):
1133
1134         * UserInterface/Views/CheckboxNavigationItem.js:
1135         Change base class to NavigationItem, since this item lacks an image
1136         and makes use of an actual label element instead of a span for its text.
1137
1138         (WI.CheckboxNavigationItem):
1139         (WI.CheckboxNavigationItem.prototype._checkboxChanged):
1140         (WI.CheckboxNavigationItem.prototype.updateButtonText): Deleted.
1141
1142 2017-11-17  Joseph Pecoraro  <pecoraro@apple.com>
1143
1144         Web Inspector: Remove FIXMEs for GTK+ missing icons
1145         https://bugs.webkit.org/show_bug.cgi?id=155282
1146         <rdar://problem/25076615>
1147
1148         Reviewed by Michael Catanzaro.
1149
1150         * UserInterface/Views/PathComponentIcons.css:
1151         (.source-icon .icon):
1152         (body:not(.mac-platform, .windows-platform) .heap-snapshot-record .icon,): Deleted.
1153         * UserInterface/Views/ResourceIcons.css:
1154         (.large .resource-icon.resource-type-websocket .icon):
1155         (body:not(.mac-platform, .windows-platform) .resource-icon.resource-type-ping .icon,): Deleted.
1156         (body:not(.mac-platform, .windows-platform) .large .resource-icon.resource-type-ping .icon,): Deleted.
1157         All ports now share the same images.
1158
1159 2017-11-15  Nikita Vasilyev  <nvasilyev@apple.com>
1160
1161         Web Inspector: Styles Redesign: typing colon in property name should advance to value field
1162         https://bugs.webkit.org/show_bug.cgi?id=178795
1163         <rdar://problem/35174674>
1164
1165         Reviewed by Devin Rousso.
1166
1167         * UserInterface/Views/SpreadsheetStyleProperty.js:
1168         (WI.SpreadsheetStyleProperty.prototype._update):
1169         (WI.SpreadsheetStyleProperty.prototype._handleNameBeforeInput):
1170         Unlike pressing Tab or Enter, typing ":" in the property name should discard suggestion hint.
1171
1172         (WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):
1173         We use 250ms debounce before updating this._property.name.
1174         When typing "font-f:", we want to discard suggestion hint (i.e. "font-family"),
1175         and immediately show autocomplete for "font-f" (in this case, invalid property).
1176
1177         * UserInterface/Views/SpreadsheetTextField.js:
1178         (WI.SpreadsheetTextField):
1179         (WI.SpreadsheetTextField.prototype.stopEditing):
1180         (WI.SpreadsheetTextField.prototype.discardCompletion):
1181         Call spreadsheetTextFieldDidChange when discarding non-empty suggestion hint.
1182
1183         (WI.SpreadsheetTextField.prototype.detached):
1184         (WI.SpreadsheetTextField.prototype.completionSuggestionsClickedCompletion):
1185         (WI.SpreadsheetTextField.prototype._handleBlur):
1186         (WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
1187         (WI.SpreadsheetTextField.prototype._updateCompletions):
1188         (WI.SpreadsheetTextField.prototype._applyCompletionHint):
1189         (WI.SpreadsheetTextField.prototype._hideCompletions): Deleted.
1190
1191 2017-11-15  Matt Baker  <mattbaker@apple.com>
1192
1193         Web Inspector: REGRESSION (r217750): Navigation sidebar broken after closing and re-opening tab
1194         https://bugs.webkit.org/show_bug.cgi?id=179717
1195         <rdar://problem/35551541>
1196
1197         Reviewed by Devin Rousso.
1198
1199         NavigationSidebarPanels should not be created with WI.instanceForClass.
1200
1201         * UserInterface/Views/DebuggerSidebarPanel.js:
1202         * UserInterface/Views/ResourceSidebarPanel.js:
1203         (WI.ResourceSidebarPanel):
1204         * UserInterface/Views/SearchSidebarPanel.js:
1205         (WI.SearchSidebarPanel):
1206         * UserInterface/Views/StorageSidebarPanel.js:
1207         (WI.StorageSidebarPanel):
1208         * UserInterface/Views/TabContentView.js:
1209         (WI.TabContentView.prototype.get navigationSidebarPanel):
1210
1211 2017-11-15  Michael Catanzaro  <mcatanzaro@igalia.com>
1212
1213         Remove GTK web inspector images
1214         https://bugs.webkit.org/show_bug.cgi?id=179716
1215
1216         Reviewed by Carlos Garcia Campos.
1217
1218         * Scripts/copy-user-interface-resources.pl:
1219         * UserInterface/Images/gtk/AUTHORS: Removed.
1220         * UserInterface/Images/gtk/ActiveCallFrame.svg: Removed.
1221         * UserInterface/Images/gtk/AnimationPlayStatePaused.svg: Removed.
1222         * UserInterface/Images/gtk/AnimationPlayStateRunning.svg: Removed.
1223         * UserInterface/Images/gtk/ApplicationCache.png: Removed.
1224         * UserInterface/Images/gtk/ApplicationCache@2x.png: Removed.
1225         * UserInterface/Images/gtk/ApplicationCacheManifest.png: Removed.
1226         * UserInterface/Images/gtk/ApplicationCacheManifest@2x.png: Removed.
1227         * UserInterface/Images/gtk/ArrowUp.svg: Removed.
1228         * UserInterface/Images/gtk/Assertion.svg: Removed.
1229         * UserInterface/Images/gtk/BackForwardArrows.svg: Removed.
1230         * UserInterface/Images/gtk/Breakpoint.png: Removed.
1231         * UserInterface/Images/gtk/Breakpoint@2x.png: Removed.
1232         * UserInterface/Images/gtk/BreakpointButton.svg: Removed.
1233         * UserInterface/Images/gtk/BreakpointInactive.png: Removed.
1234         * UserInterface/Images/gtk/BreakpointInactive@2x.png: Removed.
1235         * UserInterface/Images/gtk/BreakpointInactiveButton.svg: Removed.
1236         * UserInterface/Images/gtk/Breakpoints.svg: Removed.
1237         * UserInterface/Images/gtk/COPYING: Removed.
1238         * UserInterface/Images/gtk/COPYING_CCBYSA3: Removed.
1239         * UserInterface/Images/gtk/COPYING_LGPL2: Removed.
1240         * UserInterface/Images/gtk/CSSVariable.svg: Removed.
1241         * UserInterface/Images/gtk/CallTrees.svg: Removed.
1242         * UserInterface/Images/gtk/Canvas.svg: Removed.
1243         * UserInterface/Images/gtk/Canvas2D.svg: Removed.
1244         * UserInterface/Images/gtk/Canvas3D.svg: Removed.
1245         * UserInterface/Images/gtk/CanvasOverview.svg: Removed.
1246         * UserInterface/Images/gtk/Checkers.svg: Removed.
1247         * UserInterface/Images/gtk/Circle.svg: Removed.
1248         * UserInterface/Images/gtk/ClearBoth.svg: Removed.
1249         * UserInterface/Images/gtk/ClearLeft.svg: Removed.
1250         * UserInterface/Images/gtk/ClearRight.svg: Removed.
1251         * UserInterface/Images/gtk/ClippingCSS.png: Removed.
1252         * UserInterface/Images/gtk/ClippingCSS@2x.png: Removed.
1253         * UserInterface/Images/gtk/ClippingCSSLarge.png: Removed.
1254         * UserInterface/Images/gtk/ClippingCSSLarge@2x.png: Removed.
1255         * UserInterface/Images/gtk/ClippingGeneric.png: Removed.
1256         * UserInterface/Images/gtk/ClippingGeneric@2x.png: Removed.
1257         * UserInterface/Images/gtk/ClippingGenericLarge.png: Removed.
1258         * UserInterface/Images/gtk/ClippingGenericLarge@2x.png: Removed.
1259         * UserInterface/Images/gtk/ClippingJS.png: Removed.
1260         * UserInterface/Images/gtk/ClippingJS@2x.png: Removed.
1261         * UserInterface/Images/gtk/ClippingJSLarge.png: Removed.
1262         * UserInterface/Images/gtk/ClippingJSLarge@2x.png: Removed.
1263         * UserInterface/Images/gtk/Close.svg: Removed.
1264         * UserInterface/Images/gtk/CloseLarge.svg: Removed.
1265         * UserInterface/Images/gtk/CloseWhite.svg: Removed.
1266         * UserInterface/Images/gtk/ColorIcon.png: Removed.
1267         * UserInterface/Images/gtk/ColorIcon@2x.png: Removed.
1268         * UserInterface/Images/gtk/Console.svg: Removed.
1269         * UserInterface/Images/gtk/Cookie.png: Removed.
1270         * UserInterface/Images/gtk/Cookie@2x.png: Removed.
1271         * UserInterface/Images/gtk/Crosshair.svg: Removed.
1272         * UserInterface/Images/gtk/CubicBezier.svg: Removed.
1273         * UserInterface/Images/gtk/DOMBreakpoint.svg: Removed.
1274         * UserInterface/Images/gtk/DOMCharacterData.svg: Removed.
1275         * UserInterface/Images/gtk/DOMComment.svg: Removed.
1276         * UserInterface/Images/gtk/DOMDocument.svg: Removed.
1277         * UserInterface/Images/gtk/DOMDocumentType.svg: Removed.
1278         * UserInterface/Images/gtk/DOMElement.svg: Removed.
1279         * UserInterface/Images/gtk/DOMNode.svg: Removed.
1280         * UserInterface/Images/gtk/DOMTextNode.svg: Removed.
1281         * UserInterface/Images/gtk/Database.png: Removed.
1282         * UserInterface/Images/gtk/Database@2x.png: Removed.
1283         * UserInterface/Images/gtk/DatabaseTable.png: Removed.
1284         * UserInterface/Images/gtk/DatabaseTable@2x.png: Removed.
1285         * UserInterface/Images/gtk/Debug.svg: Removed.
1286         * UserInterface/Images/gtk/Debugger.svg: Removed.
1287         * UserInterface/Images/gtk/DisclosureTriangles.svg: Removed.
1288         * UserInterface/Images/gtk/DockBottom.svg: Removed.
1289         * UserInterface/Images/gtk/DockLeft.svg: Removed.
1290         * UserInterface/Images/gtk/DockRight.svg: Removed.
1291         * UserInterface/Images/gtk/DocumentCSS.png: Removed.
1292         * UserInterface/Images/gtk/DocumentCSS@2x.png: Removed.
1293         * UserInterface/Images/gtk/DocumentCSSLarge.png: Removed.
1294         * UserInterface/Images/gtk/DocumentCSSLarge@2x.png: Removed.
1295         * UserInterface/Images/gtk/DocumentFont.png: Removed.
1296         * UserInterface/Images/gtk/DocumentFont@2x.png: Removed.
1297         * UserInterface/Images/gtk/DocumentFontLarge.png: Removed.
1298         * UserInterface/Images/gtk/DocumentFontLarge@2x.png: Removed.
1299         * UserInterface/Images/gtk/DocumentGeneric.png: Removed.
1300         * UserInterface/Images/gtk/DocumentGeneric@2x.png: Removed.
1301         * UserInterface/Images/gtk/DocumentGenericLarge.png: Removed.
1302         * UserInterface/Images/gtk/DocumentGenericLarge@2x.png: Removed.
1303         * UserInterface/Images/gtk/DocumentImage.png: Removed.
1304         * UserInterface/Images/gtk/DocumentImage@2x.png: Removed.
1305         * UserInterface/Images/gtk/DocumentImageLarge.png: Removed.
1306         * UserInterface/Images/gtk/DocumentImageLarge@2x.png: Removed.
1307         * UserInterface/Images/gtk/DocumentJS.png: Removed.
1308         * UserInterface/Images/gtk/DocumentJS@2x.png: Removed.
1309         * UserInterface/Images/gtk/DocumentJSLarge.png: Removed.
1310         * UserInterface/Images/gtk/DocumentJSLarge@2x.png: Removed.
1311         * UserInterface/Images/gtk/DocumentMarkup.png: Removed.
1312         * UserInterface/Images/gtk/DocumentMarkup@2x.png: Removed.
1313         * UserInterface/Images/gtk/DocumentMarkupLarge.png: Removed.
1314         * UserInterface/Images/gtk/DocumentMarkupLarge@2x.png: Removed.
1315         * UserInterface/Images/gtk/DownloadArrow.svg: Removed.
1316         * UserInterface/Images/gtk/Elements.svg: Removed.
1317         * UserInterface/Images/gtk/Error.svg: Removed.
1318         * UserInterface/Images/gtk/Errors.svg: Removed.
1319         * UserInterface/Images/gtk/ErrorsEnabled.svg: Removed.
1320         * UserInterface/Images/gtk/EventListener.svg: Removed.
1321         * UserInterface/Images/gtk/Events.svg: Removed.
1322         * UserInterface/Images/gtk/Exception.svg: Removed.
1323         * UserInterface/Images/gtk/Eye.svg: Removed.
1324         * UserInterface/Images/gtk/FilterFieldActiveGlyph.svg: Removed.
1325         * UserInterface/Images/gtk/FilterFieldGlyph.svg: Removed.
1326         * UserInterface/Images/gtk/FloatLeft.svg: Removed.
1327         * UserInterface/Images/gtk/FloatRight.svg: Removed.
1328         * UserInterface/Images/gtk/FolderGeneric.png: Removed.
1329         * UserInterface/Images/gtk/FolderGeneric@2x.png: Removed.
1330         * UserInterface/Images/gtk/FontStyleItalic.svg: Removed.
1331         * UserInterface/Images/gtk/FontStyleNormal.svg: Removed.
1332         * UserInterface/Images/gtk/Function.svg: Removed.
1333         * UserInterface/Images/gtk/Gear.svg: Removed.
1334         * UserInterface/Images/gtk/GoToArrow.svg: Removed.
1335         * UserInterface/Images/gtk/GradientStop.png: Removed.
1336         * UserInterface/Images/gtk/GradientStop@2x.png: Removed.
1337         * UserInterface/Images/gtk/GradientStopSelected.png: Removed.
1338         * UserInterface/Images/gtk/GradientStopSelected@2x.png: Removed.
1339         * UserInterface/Images/gtk/HeapAllocationsInstrument.svg: Removed.
1340         * UserInterface/Images/gtk/HeapSnapshotObjectGraph.svg: Removed.
1341         * UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg: Removed.
1342         * UserInterface/Images/gtk/HoverMenuButton.png: Removed.
1343         * UserInterface/Images/gtk/HoverMenuButton@2x.png: Removed.
1344         * UserInterface/Images/gtk/IgnoreCaches.svg: Removed.
1345         * UserInterface/Images/gtk/Image.svg: Removed.
1346         * UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg: Removed.
1347         * UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg: Removed.
1348         * UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg: Removed.
1349         * UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg: Removed.
1350         * UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg: Removed.
1351         * UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg: Removed.
1352         * UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg: Removed.
1353         * UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg: Removed.
1354         * UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg: Removed.
1355         * UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg: Removed.
1356         * UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg: Removed.
1357         * UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg: Removed.
1358         * UserInterface/Images/gtk/Info.svg: Removed.
1359         * UserInterface/Images/gtk/InstructionPointer.png: Removed.
1360         * UserInterface/Images/gtk/InstructionPointer@2x.png: Removed.
1361         * UserInterface/Images/gtk/Issues.svg: Removed.
1362         * UserInterface/Images/gtk/IssuesEnabled.svg: Removed.
1363         * UserInterface/Images/gtk/LayerBorders.svg: Removed.
1364         * UserInterface/Images/gtk/Layers.svg: Removed.
1365         * UserInterface/Images/gtk/LayoutInstrument.svg: Removed.
1366         * UserInterface/Images/gtk/ListStylePositionInside.svg: Removed.
1367         * UserInterface/Images/gtk/ListStylePositionOutside.svg: Removed.
1368         * UserInterface/Images/gtk/LocalStorage.png: Removed.
1369         * UserInterface/Images/gtk/LocalStorage@2x.png: Removed.
1370         * UserInterface/Images/gtk/Locked.svg: Removed.
1371         * UserInterface/Images/gtk/Log.svg: Removed.
1372         * UserInterface/Images/gtk/Logs.svg: Removed.
1373         * UserInterface/Images/gtk/MemoryInstrument.svg: Removed.
1374         * UserInterface/Images/gtk/Minus.svg: Removed.
1375         * UserInterface/Images/gtk/Native.svg: Removed.
1376         * UserInterface/Images/gtk/NavigationItemCheckers.svg: Removed.
1377         * UserInterface/Images/gtk/NavigationItemCodeCoverage.svg: Removed.
1378         * UserInterface/Images/gtk/NavigationItemCurleyBraces.svg: Removed.
1379         * UserInterface/Images/gtk/NavigationItemGarbageCollect.svg: Removed.
1380         * UserInterface/Images/gtk/NavigationItemTrash.svg: Removed.
1381         * UserInterface/Images/gtk/NavigationItemTypes.svg: Removed.
1382         * UserInterface/Images/gtk/Network.svg: Removed.
1383         * UserInterface/Images/gtk/NetworkInstrument.svg: Removed.
1384         * UserInterface/Images/gtk/NewTab.svg: Removed.
1385         * UserInterface/Images/gtk/NewTabPlus.svg: Removed.
1386         * UserInterface/Images/gtk/Paint.svg: Removed.
1387         * UserInterface/Images/gtk/Path.svg: Removed.
1388         * UserInterface/Images/gtk/Pause.svg: Removed.
1389         * UserInterface/Images/gtk/PausedBreakpoint.svg: Removed.
1390         * UserInterface/Images/gtk/Pencil.svg: Removed.
1391         * UserInterface/Images/gtk/Plus13.svg: Removed.
1392         * UserInterface/Images/gtk/Plus15.svg: Removed.
1393         * UserInterface/Images/gtk/Printer.svg: Removed.
1394         * UserInterface/Images/gtk/Program.svg: Removed.
1395         * UserInterface/Images/gtk/PseudoElement.svg: Removed.
1396         * UserInterface/Images/gtk/Receiving.svg: Removed.
1397         * UserInterface/Images/gtk/Record.svg: Removed.
1398         * UserInterface/Images/gtk/Recording.svg: Removed.
1399         * UserInterface/Images/gtk/Reflection.svg: Removed.
1400         * UserInterface/Images/gtk/ReloadFull.svg: Removed.
1401         * UserInterface/Images/gtk/ReloadToolbar.svg: Removed.
1402         * UserInterface/Images/gtk/RenderingFrame.svg: Removed.
1403         * UserInterface/Images/gtk/RenderingFramesInstrument.svg: Removed.
1404         * UserInterface/Images/gtk/Request.svg: Removed.
1405         * UserInterface/Images/gtk/Resources.svg: Removed.
1406         * UserInterface/Images/gtk/Response.svg: Removed.
1407         * UserInterface/Images/gtk/ResultLine.svg: Removed.
1408         * UserInterface/Images/gtk/Resume.svg: Removed.
1409         * UserInterface/Images/gtk/ScriptsInstrument.svg: Removed.
1410         * UserInterface/Images/gtk/Search.svg: Removed.
1411         * UserInterface/Images/gtk/SearchResults.svg: Removed.
1412         * UserInterface/Images/gtk/Sending.svg: Removed.
1413         * UserInterface/Images/gtk/SessionStorage.png: Removed.
1414         * UserInterface/Images/gtk/SessionStorage@2x.png: Removed.
1415         * UserInterface/Images/gtk/ShadowDOM.svg: Removed.
1416         * UserInterface/Images/gtk/SliderThumb.png: Removed.
1417         * UserInterface/Images/gtk/SliderThumb@2x.png: Removed.
1418         * UserInterface/Images/gtk/SliderThumbPressed.png: Removed.
1419         * UserInterface/Images/gtk/SliderThumbPressed@2x.png: Removed.
1420         * UserInterface/Images/gtk/SortIndicatorArrows.svg: Removed.
1421         * UserInterface/Images/gtk/Source.svg: Removed.
1422         * UserInterface/Images/gtk/SplitToggleUp.svg: Removed.
1423         * UserInterface/Images/gtk/StepInto.svg: Removed.
1424         * UserInterface/Images/gtk/StepOut.svg: Removed.
1425         * UserInterface/Images/gtk/StepOver.svg: Removed.
1426         * UserInterface/Images/gtk/Stop.svg: Removed.
1427         * UserInterface/Images/gtk/Stopwatch.svg: Removed.
1428         * UserInterface/Images/gtk/Storage.svg: Removed.
1429         * UserInterface/Images/gtk/StyleRule.svg: Removed.
1430         * UserInterface/Images/gtk/StyleRuleInheritedElement.svg: Removed.
1431         * UserInterface/Images/gtk/StyleRulePseudoElement.svg: Removed.
1432         * UserInterface/Images/gtk/TailDeletedFunction.svg: Removed.
1433         * UserInterface/Images/gtk/TextAlignCenter.svg: Removed.
1434         * UserInterface/Images/gtk/TextAlignJustify.svg: Removed.
1435         * UserInterface/Images/gtk/TextAlignLeft.svg: Removed.
1436         * UserInterface/Images/gtk/TextAlignRight.svg: Removed.
1437         * UserInterface/Images/gtk/TextDecorationLineThrough.svg: Removed.
1438         * UserInterface/Images/gtk/TextDecorationOverline.svg: Removed.
1439         * UserInterface/Images/gtk/TextDecorationUnderline.svg: Removed.
1440         * UserInterface/Images/gtk/TextTransformCapitalize.svg: Removed.
1441         * UserInterface/Images/gtk/TextTransformLowercase.svg: Removed.
1442         * UserInterface/Images/gtk/TextTransformUppercase.svg: Removed.
1443         * UserInterface/Images/gtk/Thread.svg: Removed.
1444         * UserInterface/Images/gtk/Time.svg: Removed.
1445         * UserInterface/Images/gtk/Timeline.svg: Removed.
1446         * UserInterface/Images/gtk/TimelineRecordAPI.svg: Removed.
1447         * UserInterface/Images/gtk/TimelineRecordAnimation.svg: Removed.
1448         * UserInterface/Images/gtk/TimelineRecordComposite.svg: Removed.
1449         * UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg: Removed.
1450         * UserInterface/Images/gtk/TimelineRecordEvent.svg: Removed.
1451         * UserInterface/Images/gtk/TimelineRecordLayout.svg: Removed.
1452         * UserInterface/Images/gtk/TimelineRecordPaint.svg: Removed.
1453         * UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Removed.
1454         * UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg: Removed.
1455         * UserInterface/Images/gtk/TimelineRecordStyle.svg: Removed.
1456         * UserInterface/Images/gtk/TimelineRecordTimer.svg: Removed.
1457         * UserInterface/Images/gtk/ToggleLeftSidebar.svg: Removed.
1458         * UserInterface/Images/gtk/ToggleRightSidebar.svg: Removed.
1459         * UserInterface/Images/gtk/TypeBoolean.svg: Removed.
1460         * UserInterface/Images/gtk/TypeNull.svg: Removed.
1461         * UserInterface/Images/gtk/TypeNumber.svg: Removed.
1462         * UserInterface/Images/gtk/TypeObject.svg: Removed.
1463         * UserInterface/Images/gtk/TypeRegex.svg: Removed.
1464         * UserInterface/Images/gtk/TypeString.svg: Removed.
1465         * UserInterface/Images/gtk/TypeSymbol.svg: Removed.
1466         * UserInterface/Images/gtk/TypeUndefined.svg: Removed.
1467         * UserInterface/Images/gtk/Undock.svg: Removed.
1468         * UserInterface/Images/gtk/UpDownArrows.svg: Removed.
1469         * UserInterface/Images/gtk/UserInputPrompt.svg: Removed.
1470         * UserInterface/Images/gtk/UserInputPromptPrevious.svg: Removed.
1471         * UserInterface/Images/gtk/UserInputResult.svg: Removed.
1472         * UserInterface/Images/gtk/VisualStyleNone.svg: Removed.
1473         * UserInterface/Images/gtk/VisualStylePropertyLinked.svg: Removed.
1474         * UserInterface/Images/gtk/VisualStylePropertyUnlinked.svg: Removed.
1475         * UserInterface/Images/gtk/Warning.svg: Removed.
1476         * UserInterface/Images/gtk/WebSocket.png: Removed.
1477         * UserInterface/Images/gtk/WebSocket@2x.png: Removed.
1478         * UserInterface/Images/gtk/WebSocketLarge.png: Removed.
1479         * UserInterface/Images/gtk/WebSocketLarge@2x.png: Removed.
1480         * UserInterface/Images/gtk/Weight.svg: Removed.
1481         * UserInterface/Images/gtk/WorkerScript.png: Removed.
1482         * UserInterface/Images/gtk/WorkerScript@2x.png: Removed.
1483         * UserInterface/Images/gtk/WorkerScriptLarge.png: Removed.
1484         * UserInterface/Images/gtk/WorkerScriptLarge@2x.png: Removed.
1485
1486 2017-11-14  Joseph Pecoraro  <pecoraro@apple.com>
1487
1488         Relicense non-distributable web inspector images
1489         https://bugs.webkit.org/show_bug.cgi?id=166460
1490         <rdar://problem/29800966>
1491
1492         Reviewed by Brian Burg.
1493
1494         * APPLE_IMAGES_LICENSE.rtf: Removed.
1495         Remove the restrictive Web Inspector images license and default to the
1496         same license as the rest of WebKit.
1497
1498         The Apple Images license was never intended to restrict distribution of
1499         Web Inspector images when used as part of WebKit. Now, all contributions
1500         to Web Inspector, images and source, have the same licensing as all other
1501         WebKit contributions.
1502
1503 2017-11-14  Joseph Pecoraro  <pecoraro@apple.com>
1504
1505         Web Inspector: Network Detail Views - Split Metrics into Sizes and Timing
1506         https://bugs.webkit.org/show_bug.cgi?id=179569
1507         <rdar://problem/35484914>
1508
1509         Reviewed by Brian Burg.
1510
1511         * Localizations/en.lproj/localizedStrings.js:
1512         * UserInterface/Main.html:
1513         New resources and strings.
1514
1515         * UserInterface/Views/NetworkResourceDetailView.js:
1516         (WI.NetworkResourceDetailView):
1517         (WI.NetworkResourceDetailView.prototype.initialLayout):
1518         (WI.NetworkResourceDetailView.prototype._showPreferredContentView):
1519         (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
1520         (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToHeaders): Renamed.
1521         (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToRequestBody): Renamed.
1522         (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToResponseBody): Renamed.
1523         Split into two navigation items and views.
1524
1525         * UserInterface/Views/ResourceMetricsContentView.css: Removed.
1526         * UserInterface/Views/ResourceMetricsContentView.js: Removed.
1527         * UserInterface/Views/ResourceSizesContentView.css: Added.
1528         * UserInterface/Views/ResourceSizesContentView.js: Added.
1529         * UserInterface/Views/ResourceTimingContentView.css: Added.
1530         * UserInterface/Views/ResourceTimingContentView.js: Added.
1531         Split Metrics into two views.
1532
1533 2017-11-14  Matt Baker  <mattbaker@apple.com>
1534
1535         Web Inspector: Cleanup navigation bar dividers and separators
1536         https://bugs.webkit.org/show_bug.cgi?id=179654
1537         <rdar://problem/35523734>
1538
1539         Reviewed by Devin Rousso.
1540
1541         Update path separator icon, and reduce number of dividers used in the
1542         content browser's navigation bar, to more closely match modern Xcode.
1543
1544         * UserInterface/Images/HierarchicalNavigationItemChevron.svg:
1545         Update icon, remove tapered arrow head.
1546
1547         * UserInterface/Views/ContentBrowser.js:
1548         (WI.ContentBrowser):
1549         Remove divider between back/forward buttons and item name.
1550         (WI.ContentBrowser.prototype._updateContentViewNavigationItems):
1551
1552         * UserInterface/Views/HierarchicalPathComponent.css:
1553         (.hierarchical-path-component > .separator):
1554
1555         * UserInterface/Views/LogContentView.js:
1556         (WI.LogContentView.prototype.get navigationItems):
1557         Remove dividers between buttons provided by the current content view.
1558
1559 2017-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1560
1561         Web Inspector: Network Details Views - make section headers more prominent
1562         https://bugs.webkit.org/show_bug.cgi?id=179565
1563         <rdar://problem/35510531>
1564
1565         Reviewed by Devin Rousso.
1566
1567         * UserInterface/Views/ResourceDetailsSection.css:
1568         (.resource-details > section > .title):
1569
1570 2017-11-13  Nikita Vasilyev  <nvasilyev@apple.com>
1571
1572         Web Inspector: Styles Redesign: make selector field inline-block when editing
1573         https://bugs.webkit.org/show_bug.cgi?id=179588
1574         <rdar://problem/35490915>
1575
1576         Reviewed by Brian Burg.
1577
1578         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
1579         (.spreadsheet-css-declaration .header.editing-selector .origin):
1580         When the selector field is multiline, it covers the source link entirely.
1581         When the selector field takes only one line, the source link remains where it was before editing.
1582
1583         (.spreadsheet-css-declaration .selector):
1584         Make it `position: relative` to cover the source link.
1585
1586         (.spreadsheet-css-declaration .selector.spreadsheet-selector-field.editing):
1587         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
1588         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
1589
1590 2017-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1591
1592         REGRESSION(r223856): Web Inspector: Cannot view Request Data
1593         https://bugs.webkit.org/show_bug.cgi?id=179567
1594
1595         Reviewed by Brian Burg.
1596
1597         * UserInterface/Views/ResourceClusterContentView.js:
1598         (WI.ResourceClusterContentView.prototype._canShowRequestContentView):
1599         This condition unintentionally got flipped in r223856.
1600
1601 2017-11-13  Matt Baker  <mattbaker@apple.com>
1602
1603         Web Inspector: Add CheckboxNavigationItem
1604         https://bugs.webkit.org/show_bug.cgi?id=179584
1605         <rdar://problem/35490085>
1606
1607         Reviewed by Brian Burg.
1608
1609         * UserInterface/Main.html:
1610         * UserInterface/Views/ButtonNavigationItem.css:
1611         (.navigation-bar .item.button.text-only.checkbox):
1612         (.navigation-bar .item.button.text-only.checkbox label):
1613
1614         * UserInterface/Views/ButtonNavigationItem.js:
1615         Cleanup and some tweaks to the label to make it work with subclasses
1616         regardless of how label is represented in the DOM.
1617
1618         (WI.ButtonNavigationItem):
1619         (WI.ButtonNavigationItem.prototype.get toolTip):
1620         (WI.ButtonNavigationItem.prototype.set toolTip):
1621         (WI.ButtonNavigationItem.prototype.get label):
1622         (WI.ButtonNavigationItem.prototype.set label):
1623         (WI.ButtonNavigationItem.prototype.set image):
1624         (WI.ButtonNavigationItem.prototype.get enabled):
1625         (WI.ButtonNavigationItem.prototype.set enabled):
1626         (WI.ButtonNavigationItem.prototype.updateButtonText):
1627
1628         * UserInterface/Views/CheckboxNavigationItem.js: Added.
1629         New button item with a checkbox and label. Dispatches a Clicked evennt
1630         whenever the checked state changes.
1631
1632         (WI.CheckboxNavigationItem):
1633         (WI.CheckboxNavigationItem.prototype.get checked):
1634         (WI.CheckboxNavigationItem.prototype.set checked):
1635         (WI.CheckboxNavigationItem.prototype.get additionalClassNames):
1636         (WI.CheckboxNavigationItem.prototype.updateButtonText):
1637         (WI.CheckboxNavigationItem.prototype._checkboxChanged):
1638
1639 2017-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1640
1641         Web Inspector: Give DataGrid/Table Header ContextMenu a section header to better describe its functions
1642         https://bugs.webkit.org/show_bug.cgi?id=179560
1643
1644         Reviewed by Matt Baker.
1645
1646         * Localizations/en.lproj/localizedStrings.js:
1647         New string.
1648
1649         * UserInterface/Views/DataGrid.js:
1650         (WI.DataGrid.prototype._contextMenuInHeader):
1651         * UserInterface/Views/Table.js:
1652         (WI.Table.prototype._handleHeaderContextMenu):
1653         Include a disabled context menu item as a section header.
1654
1655 2017-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
1656
1657         REGRESSION(r224566): [GTK] 26 new timeouts on inspector related tests.
1658         https://bugs.webkit.org/show_bug.cgi?id=179471
1659
1660         Reviewed by Darin Adler.
1661
1662         TestStub.html and TestStub.js was missing in resources bundle.
1663
1664         * Scripts/copy-user-interface-resources.pl: Also combine resources for TestStub.
1665
1666 2017-11-11  Joseph Pecoraro  <pecoraro@apple.com>
1667
1668         Web Inspector: Network detail views - Include a newline between sections when copying
1669         https://bugs.webkit.org/show_bug.cgi?id=179577
1670
1671         Reviewed by Matt Baker.
1672
1673         * UserInterface/Views/NetworkResourceDetailView.css:
1674         (.content-view.resource-details):
1675         * UserInterface/Views/ResourceDetailsSection.css:
1676         (.resource-details > section):
1677         (.resource-details > section > .title):
1678         Adjust styles now that there is a <br> taking up space between sections.
1679         After all the changes, the top section moved up 1px from where it was originally.
1680
1681         * UserInterface/Views/ResourceDetailsSection.js:
1682         (WI.ResourceDetailsSection):
1683         Include a <br> to get newlines when copying.
1684
1685 2017-11-11  Joseph Pecoraro  <pecoraro@apple.com>
1686
1687         Web Inspector: Network waterfall graph - make connection part thinner
1688         https://bugs.webkit.org/show_bug.cgi?id=179561
1689
1690         Reviewed by Devin Rousso.
1691
1692         * UserInterface/Views/NetworkTableContentView.css:
1693         (.waterfall .block):
1694
1695 2017-11-11  Devin Rousso  <webkit@devinrousso.com>
1696
1697         Web Inspector: Canvas tab: show detailed status during canvas recording
1698         https://bugs.webkit.org/show_bug.cgi?id=178185
1699         <rdar://problem/34939862>
1700
1701         Reviewed by Brian Burg.
1702
1703         * Localizations/en.lproj/localizedStrings.js:
1704
1705         * UserInterface/Protocol/CanvasObserver.js:
1706         (WI.CanvasObserver.prototype.recordingProgress):
1707         * UserInterface/Controllers/CanvasManager.js:
1708         (WI.CanvasManager):
1709         (WI.CanvasManager.prototype.recordingProgress):
1710         (WI.CanvasManager.prototype.recordingFinished):
1711         Maintain arrays of recorded frames for each canvas and add new frames each time a progress
1712         event is fired. When the recording is finished, use the array as part of the payload for
1713         creating a WI.Recording object.
1714
1715         * UserInterface/Models/Recording.js:
1716         (WI.Recording.fromPayload):
1717
1718         * UserInterface/Models/RecordingAction.js:
1719         (WI.RecordingAction.prototype.apply.getContent):
1720         (WI.RecordingAction.prototype.apply):
1721         Drive-by fix: toDataURL is very slow, so add alternative ways of getting and comparing the
1722         content of the canvas to determine if the action has a visible effect.
1723
1724         * UserInterface/Views/CanvasContentView.css:
1725         (.content-view.canvas:not(.tab)):
1726         (.content-view.canvas:not(.tab) > .progress):
1727         (.content-view.canvas:not(.tab) > .progress > .frame-count):
1728         * UserInterface/Views/CanvasContentView.js:
1729         (WI.CanvasContentView):
1730         (WI.CanvasContentView.prototype.attached):
1731         (WI.CanvasContentView.prototype._recordingStarted):
1732         (WI.CanvasContentView.prototype._recordingProgress):
1733         (WI.CanvasContentView.prototype._recordingStopped):
1734         Steal some space from the preview area to display a count of the number of recorded frames
1735         and the current buffer usage.
1736
1737         * UserInterface/Views/CanvasOverviewContentView.css:
1738         (.content-view.canvas-overview .content-view.canvas > :matches(header, .progress, .preview, footer)):
1739         (.content-view.canvas-overview .content-view.canvas.selected > :matches(.progress, .preview, footer),):
1740         (.content-view.canvas-overview .content-view.canvas > :matches(.progress, .preview)):
1741         (.content-view.canvas-overview .content-view.canvas > .preview):
1742         (.content-view.canvas-overview .content-view.canvas > .progress ~ .preview):
1743         (.content-view.canvas-overview .content-view.canvas > :matches(header, .preview, footer)): Deleted.
1744         (.content-view.canvas-overview .content-view.canvas.selected > :matches(.preview, footer),): Deleted.
1745
1746 2017-11-09  Nikita Vasilyev  <nvasilyev@apple.com>
1747
1748         Web Inspector: Styles Redesign: clicking on inline swatches and property checkboxes should not add a new property
1749         https://bugs.webkit.org/show_bug.cgi?id=179507
1750         <rdar://problem/35452204>
1751
1752         Reviewed by Brian Burg.
1753
1754         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
1755         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
1756         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
1757         Don't add new properties when clicking on selector fields, source links, and property checkboxes.
1758
1759         * UserInterface/Views/SpreadsheetStyleProperty.js:
1760         (WI.SpreadsheetStyleProperty.prototype._update):
1761         It is safe to replace "change" event with "click" since it fires even when pressing Space key when the checkbox is focused.
1762
1763 2017-11-09  Devin Rousso  <webkit@devinrousso.com>
1764
1765         Web Inspector: support undo/redo of insertAdjacentHTML
1766         https://bugs.webkit.org/show_bug.cgi?id=179283
1767
1768         Reviewed by Joseph Pecoraro.
1769
1770         * UserInterface/Models/DOMNode.js:
1771         (WI.DOMNode.prototype.insertAdjacentHTML):
1772
1773         * UserInterface/Views/DOMTreeElement.js:
1774         (WI.DOMTreeElement.prototype._startEditingAsHTML):
1775         Drive-by: only attempt to update the cursor if an initialValue is supplied.
1776
1777 2017-11-09  Joseph Pecoraro  <pecoraro@apple.com>
1778
1779         Web Inspector: Make domain availability a list of types instead of a single type
1780         https://bugs.webkit.org/show_bug.cgi?id=179457
1781
1782         Reviewed by Brian Burg.
1783
1784         * UserInterface/Protocol/InspectorBackend.js:
1785         (InspectorBackendClass.prototype.activateDomain):
1786         The second value changed to be an optional list. Check if the active
1787         debuggable type is in the list or not.
1788
1789         * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
1790         * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
1791         * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
1792         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
1793         * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
1794         * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
1795         * Versions/Inspector-iOS-10.0.json:
1796         * Versions/Inspector-iOS-10.3.json:
1797         * Versions/Inspector-iOS-11.0.json:
1798         * Versions/Inspector-iOS-8.0.json:
1799         * Versions/Inspector-iOS-9.0.json:
1800         * Versions/Inspector-iOS-9.3.json:
1801         Since this is a change to how we generate the frontend resource,
1802         update the legacy versioned backends and regenerate their resource.
1803
1804 2017-11-09  Carlos Garcia Campos  <cgarcia@igalia.com>
1805
1806         REGRESSION(r224566): [GTK][WPE] Many inspector tests are failing after r224566
1807         https://bugs.webkit.org/show_bug.cgi?id=179419
1808
1809         Reviewed by Carlos Alberto Lopez Perez.
1810
1811         All of them fail with the following error:
1812
1813         Uncaught exception in Inspector page: ReferenceError: Can't find variable: CodeMirror [TestCombined.js:36658:15]
1814
1815         This is because Test.html, even when combined, is trying to load CodeMirror from External/CodeMirror, but
1816         CodeMirror was already combined for Main.html. We need to also combine CodeMirror for Test.html.
1817
1818         * Scripts/copy-user-interface-resources.pl:
1819
1820 2017-11-08  Joseph Pecoraro  <pecoraro@apple.com>
1821
1822         Web Inspector: Show Internal properties of PaymentRequest in Web Inspector Console
1823         https://bugs.webkit.org/show_bug.cgi?id=179276
1824
1825         Reviewed by Andy Estes.
1826
1827         * UserInterface/Test.html:
1828         * UserInterface/Test/FrontendTestHarness.js:
1829         (FrontendTestHarness.prototype.evaluateInPage):
1830         * UserInterface/Test/TestUtilities.js: Added.
1831         (promisify):
1832         Make async tests a little easier to work with by providing promises
1833         in some cases that would normally take a callback.
1834
1835 2017-11-08  Brian Burg  <bburg@apple.com>
1836
1837         Web Inspector: fix incorrect curly quote orientation in a UIString
1838         https://bugs.webkit.org/show_bug.cgi?id=179353
1839         <rdar://problem/35368697>
1840
1841         Reviewed by Joseph Pecoraro.
1842
1843         I didn't see any other instances of this mistake in our localized strings.
1844
1845         * Localizations/en.lproj/localizedStrings.js:
1846         * UserInterface/Views/ResourceTimelineDataGridNode.js:
1847         Fix it.
1848
1849 2017-11-08  Joseph Pecoraro  <pecoraro@apple.com>
1850
1851         Web Inspector: Remove unused Page.ScriptIdentifier protocol type
1852         https://bugs.webkit.org/show_bug.cgi?id=179407
1853
1854         Reviewed by Matt Baker.
1855
1856         * Versions/Inspector-iOS-10.0.json:
1857         * Versions/Inspector-iOS-10.3.json:
1858         * Versions/Inspector-iOS-11.0.json:
1859         * Versions/Inspector-iOS-7.0.json:
1860         * Versions/Inspector-iOS-8.0.json:
1861         * Versions/Inspector-iOS-9.0.json:
1862         * Versions/Inspector-iOS-9.3.json:
1863         Remove unused protocol type.
1864
1865 2017-11-06  Nikita Vasilyev  <nvasilyev@apple.com>
1866
1867         Web Inspector: Styles Redesign: Display warnings
1868         https://bugs.webkit.org/show_bug.cgi?id=179215
1869
1870         Reviewed by Brian Burg.
1871
1872         Display warning icons on the right of the property.
1873
1874         For now, the warning icons have only three title messages:
1875         - Invalid property name;
1876         - Invalid property value;
1877         - Duplicate property.
1878
1879         * Localizations/en.lproj/localizedStrings.js:
1880         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
1881         (.spreadsheet-style-declaration-editor .property):
1882         (.spreadsheet-style-declaration-editor .property-toggle):
1883         (.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .value):
1884         (.spreadsheet-style-declaration-editor .property.has-warning):
1885         (.spreadsheet-style-declaration-editor .property .warning):
1886         Draw the warning arrow and icon using only one HTML element.
1887         Don't set "top" property so the element remains vertically where it would be if it had "position: static".
1888
1889         (.spreadsheet-style-declaration-editor .property.has-warning .warning):
1890         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1891         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
1892         (WI.SpreadsheetCSSStyleDeclarationEditor):
1893         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
1894         (.spreadsheet-css-declaration):
1895         (.spreadsheet-css-declaration :matches(.header, .header-media)):
1896         (.spreadsheet-css-declaration .close-brace):
1897         Make properties span the entire width of the styles sidebar. Unsupported properties have yellow
1898         background. There should be no gaps between the property element and sidebar left and right edges.
1899
1900         * UserInterface/Views/SpreadsheetStyleProperty.js:
1901         (WI.SpreadsheetStyleProperty):
1902         (WI.SpreadsheetStyleProperty.prototype.updateStatus):
1903         (WI.SpreadsheetStyleProperty.prototype._update):
1904         (WI.SpreadsheetStyleProperty.prototype.updateClassNames): Deleted.
1905         Rename updateClassNames to updateStatus since it modifies title attribute of the warning element.
1906
1907 2017-11-06  Ross Kirsling  <ross.kirsling@sony.com>
1908
1909         Web Inspector: Two little Layers tab fixes
1910         https://bugs.webkit.org/show_bug.cgi?id=179273
1911
1912         Reviewed by Devin Rousso.
1913
1914         * UserInterface/Views/LayerDetailsSidebarPanel.js:
1915         (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
1916         Even when we suppress refire of the selected event, we still want a popover.
1917
1918         * UserInterface/Views/Layers3DContentView.js:
1919         (WI.Layers3DContentView):
1920         (WI.Layers3DContentView.prototype.shown):
1921         (WI.Layers3DContentView.prototype.hidden):
1922         (WI.Layers3DContentView.prototype.closed):
1923         (WI.Layers3DContentView.prototype._layerTreeDidChange):
1924         Opening WI directly to the Layers tab wasn't fetching layers right away. Let's fetch on every shown() and
1925         prune the hacky logic we were previously using -- it's overkill anyway, now that we're tracking mutations.
1926
1927 2017-11-06  Joseph Pecoraro  <pecoraro@apple.com>
1928
1929         Web Inspector: no way to navigate from Resource tree element to its entry in Network Tab
1930         https://bugs.webkit.org/show_bug.cgi?id=179328
1931         <rdar://problem/35367294>
1932
1933         Reviewed by Brian Burg.
1934
1935         * Localizations/en.lproj/localizedStrings.js:
1936         New reveal in network tab string.
1937
1938         * UserInterface/Base/Main.js:
1939         (WI.isShowingNetworkTab):
1940         Utility to know if the network tab is showing.
1941
1942         * UserInterface/Views/ContextMenuUtilities.js:
1943         (WI.appendContextMenuItemsForSourceCode):
1944         (showResourceWithOptions):
1945         (WI.appendContextMenuItemsForURL):
1946         Generalize context menus for just a URL.
1947
1948         * UserInterface/Views/TabBrowser.js:
1949         (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
1950         Support more tab ignore options, this is starting to get icky. We may want to
1951         move to just a preferredTab approach, since that is what some of these want.
1952
1953         * UserInterface/Views/DOMTreeElement.js:
1954         (WI.DOMTreeElement.prototype._populateTagContextMenu):
1955         Make use of new ContextMenu utility to add menu items for a URL.
1956
1957         * UserInterface/Views/NetworkTabContentView.js:
1958         (WI.NetworkTabContentView.prototype.showRepresentedObject):
1959         * UserInterface/Views/NetworkTableContentView.js:
1960         (WI.NetworkTableContentView.prototype.showRepresentedObject):
1961         Handle showing a Resource in the NetworkTab. We immediately show
1962         the details view for it, otherwise we fallback to the list view.
1963
1964 2017-11-06  Joseph Pecoraro  <pecoraro@apple.com>
1965
1966         Uncaught Exception: TypeError: null is not an object (evaluating 'mimeType.endsWith')
1967         https://bugs.webkit.org/show_bug.cgi?id=179325
1968         <rdar://problem/35366896>
1969
1970         Reviewed by Brian Burg.
1971
1972         * UserInterface/Base/MIMETypeUtilities.js:
1973         (WI.fileExtensionForMIMEType):
1974         (WI.shouldTreatMIMETypeAsText):
1975         Handle null mime types.
1976
1977 2017-11-06  Joseph Pecoraro  <pecoraro@apple.com>
1978
1979         Web Inspector: Selecting a DOM Search Result in Search Tab unexpectedly changes Tabs
1980         https://bugs.webkit.org/show_bug.cgi?id=179223
1981         <rdar://problem/33949556>
1982
1983         Reviewed by Devin Rousso.
1984
1985         * Localizations/en.lproj/localizedStrings.js:
1986         New string.
1987
1988         * UserInterface/Views/SearchResultTreeElement.js:
1989         (WI.SearchResultTreeElement.prototype.populateContextMenu):
1990         Add a context menu for search results to jump to a different tab.
1991         These behaviors match the double click behavior for search results.
1992
1993         * UserInterface/Views/SearchTabContentView.js:
1994         (WI.SearchTabContentView.prototype.canShowRepresentedObject):
1995         Always support showing a DOM Tree. Clients should be using
1996         ignoreSearchTab if they don't want to jump here.
1997
1998         * UserInterface/Views/DOMTreeDataGridNode.js:
1999         (WI.DOMTreeDataGridNode.prototype._goToArrowWasClicked):
2000         * UserInterface/Views/LayerTreeDataGridNode.js:
2001         (WI.LayerTreeDataGridNode.prototype._goToArrowWasClicked):
2002         Use ignoreSearchTab just in case when showing a DOM Tree.
2003
2004         * UserInterface/Views/ContentBrowser.js:
2005         (WI.ContentBrowser.prototype.shown):
2006         When showing, update our UI to reflect the values of the current content view, which
2007         for a while may have been owned by another ContentBrowser.
2008
2009         (WI.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
2010         (WI.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange):
2011         (WI.ContentBrowser.prototype._contentViewNavigationItemsDidChange):
2012         We can avoid work in a few places where we might not be the owning ContentBrowser
2013         of a ContentView that is changing.
2014
2015 2017-11-05  Nikita Vasilyev  <nvasilyev@apple.com>
2016
2017         REGRESSION (r221338): Web Inspector: NavigationBar incorrectly calculates minimumWidth
2018         https://bugs.webkit.org/show_bug.cgi?id=179292
2019
2020         Reviewed by Devin Rousso.
2021
2022         * UserInterface/Views/NavigationBar.js:
2023         (WI.NavigationBar.prototype._calculateMinimumWidth):
2024         totalItemWidth was the minimumWidth of the last item.
2025
2026 2017-11-05  Devin Rousso  <webkit@devinrousso.com>
2027
2028         Web Inspector: Canvas Tab: selecting Frame tree element should update preview/slider, does nothing
2029         https://bugs.webkit.org/show_bug.cgi?id=179072
2030         <rdar://problem/35278711>
2031
2032         Reviewed by Matt Baker.
2033
2034         * UserInterface/Views/CanvasTabContentView.js:
2035         (WI.CanvasTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged):
2036
2037         * UserInterface/Views/RecordingActionTreeElement.css:
2038         (.item.action > .titles .parameter.swizzled):
2039         (.tree-outline:not(:focus, .force-focus) .item.action:not(.initial-state, .parent, .invalid) > .icon): Deleted.
2040         (body:not(.window-inactive, .window-docked-inactive) .item.action > .titles .parameter.swizzled): Deleted.
2041         Drive-by: remove extra :focus selectors to prevent icon flashing when the window is blurred.
2042
2043 2017-11-04  Devin Rousso  <webkit@devinrousso.com>
2044
2045         Web Inspector: add contextmenu item to arbitrarily add HTML/Child to DOMTree
2046         https://bugs.webkit.org/show_bug.cgi?id=179042
2047
2048         Reviewed by Joseph Pecoraro.
2049
2050         * Localizations/en.lproj/localizedStrings.js:
2051
2052         * UserInterface/Models/DOMNode.js:
2053         (WI.DOMNode.prototype.insertAdjacentHTML.inspectedPage_node_insertAdjacentHTML):
2054         (WI.DOMNode.prototype.insertAdjacentHTML):
2055         Call-through to `insertAdjacentHTML` on the corresponding node in the inspected page.
2056
2057         * UserInterface/Views/DOMTreeElement.js:
2058         (WI.DOMTreeElement):
2059         (WI.DOMTreeElement.prototype._populateNodeContextMenu):
2060         (WI.DOMTreeElement.prototype._startEditingAsHTML.dispose):
2061         (WI.DOMTreeElement.prototype._startEditingAsHTML):
2062         (WI.DOMTreeElement.prototype._insertAdjacentHTML.commitCallback):
2063         (WI.DOMTreeElement.prototype._insertAdjacentHTML):
2064         (WI.DOMTreeElement.prototype.updateTitle):
2065         (WI.DOMTreeElement.prototype._singleTextChild):
2066         (WI.DOMTreeElement.prototype._nodeTitleInfo):
2067         (WI.DOMTreeElement.prototype._addHTML):
2068         (WI.DOMTreeElement.prototype._addPreviousSibling):
2069         (WI.DOMTreeElement.prototype._addNextSibling):
2070         (WI.DOMTreeElement.prototype._editAsHTML):
2071         Adjust where the editing element is placed depending on the options passed to `_editAsHTML`.
2072         If the placement is as a child, put it inside the child list. If the placement is as a
2073         sibling, place it before/after the selected TreeElement. Otherwise, add it as a child.
2074
2075         * UserInterface/Views/DOMTreeOutline.css:
2076         (.tree-outline.dom):
2077         (.tree-outline.dom li):
2078         (.tree-outline.dom li:not(.editing)):
2079         (.tree-outline.dom li.editing):
2080         (body[dir=ltr] .tree-outline.dom li): Deleted.
2081         (body[dir=rtl] .tree-outline.dom li): Deleted.
2082         Don't add padding when the list item is being edited.
2083
2084 2017-11-03  Nikita Vasilyev  <nvasilyev@apple.com>
2085
2086         Web Inspector: Uncaught Exception: null is not an object (evaluating 'selector.specificity.map') (at SpreadsheetCSSStyleDeclarationSection.js:199:51)
2087         https://bugs.webkit.org/show_bug.cgi?id=179225
2088         <rdar://problem/35329019>
2089
2090         Reviewed by Joseph Pecoraro.
2091
2092         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2093         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector):
2094         selector.specificity may not exist when the selector is dynamic and doesn't match the selected element.
2095
2096 2017-11-03  Ross Kirsling  <ross.kirsling@sony.com>
2097
2098         Web Inspector: Move Show Compositing Borders/Paint Flashing buttons from Elements tab to Layers tab
2099         https://bugs.webkit.org/show_bug.cgi?id=179211
2100
2101         Reviewed by Joseph Pecoraro.
2102
2103         * UserInterface/Views/DOMTreeContentView.js:
2104         (WI.DOMTreeContentView.prototype.get navigationItems):
2105         (WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):
2106         Guard old buttons with experimental flag.
2107
2108         * UserInterface/Views/Layers3DContentView.js:
2109         (WI.Layers3DContentView):
2110         (WI.Layers3DContentView.prototype.get navigationItems):
2111         (WI.Layers3DContentView.prototype.shown):
2112         (WI.Layers3DContentView.prototype.closed):
2113         (WI.Layers3DContentView.prototype._showPaintRectsSettingChanged):
2114         (WI.Layers3DContentView.prototype._togglePaintFlashing):
2115         (WI.Layers3DContentView.prototype._updateCompositingBordersButtonState):
2116         (WI.Layers3DContentView.prototype._toggleCompositingBorders):
2117         Add buttons to new home.
2118         No need to guard for get/setCompositingBordersVisible anymore, as these were introduced in iOS 7.
2119
2120 2017-11-03  Devin Rousso  <webkit@devinrousso.com>
2121
2122         Web Inspector: move top-level namespace functions in ImageUtilities to static class
2123         https://bugs.webkit.org/show_bug.cgi?id=179207
2124
2125         Reviewed by Brian Burg.
2126
2127         * .eslintrc:
2128         * UserInterface/Base/ImageUtilities.js:
2129         (WI.ImageUtilities.useSVGSymbol):
2130         (WI.ImageUtilities.scratchCanvasContext2D):
2131         (WI.ImageUtilities.imageFromImageData):
2132         (WI.ImageUtilities.imageFromCanvasGradient):
2133         (WI.ImageUtilities):
2134         (useSVGSymbol): Deleted.
2135         (WI.scratchCanvasContext2D): Deleted.
2136         (WI.imageFromImageData): Deleted.
2137         (WI.imageFromCanvasGradient): Deleted.
2138
2139         * UserInterface/Models/Recording.js:
2140         (WI.Recording.prototype.async swizzle):
2141         * UserInterface/Views/ButtonNavigationItem.js:
2142         (WI.ButtonNavigationItem.prototype.set image):
2143         * UserInterface/Views/CallFrameTreeElement.js:
2144         (WI.CallFrameTreeElement.prototype._updateStatus):
2145         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2146         (WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):
2147         * UserInterface/Views/DOMTreeElement.js:
2148         (WI.DOMTreeElement.prototype._updateBreakpointStatus):
2149         * UserInterface/Views/MultipleScopeBarItem.js:
2150         (WI.MultipleScopeBarItem):
2151         * UserInterface/Views/RecordingActionTreeElement.js:
2152         (WI.RecordingActionTreeElement._generateDOM):
2153         (WI.RecordingActionTreeElement.prototype._handleHasVisibleEffectChanged):
2154         * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
2155         (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
2156         * UserInterface/Views/ResourceMetricsContentView.js:
2157         (WI.ResourceMetricsContentView.prototype._refreshResourceSizeSection):
2158         * UserInterface/Views/ScopeRadioButtonNavigationItem.js:
2159         (WI.ScopeRadioButtonNavigationItem):
2160         * UserInterface/Views/ThreadTreeElement.js:
2161         (WI.ThreadTreeElement.prototype._updateStatus):
2162         * UserInterface/Views/TimelineTreeElement.js:
2163         (WI.TimelineTreeElement.prototype._showCloseButton):
2164         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
2165         (WI.VisualStyleCommaSeparatedKeywordEditor):
2166         * UserInterface/Views/VisualStyleKeywordIconList.js:
2167         (WI.VisualStyleKeywordIconList):
2168         * UserInterface/Views/VisualStylePropertyEditorLink.js:
2169         (WI.VisualStylePropertyEditorLink):
2170         * UserInterface/Views/VisualStyleSelectorSection.js:
2171         (WI.VisualStyleSelectorSection):
2172         * UserInterface/Views/WebSocketDataGridNode.js:
2173         (WI.WebSocketDataGridNode.prototype.createCellContent):
2174
2175 2017-11-03  Ross Kirsling  <ross.kirsling@sony.com>
2176
2177         Web Inspector: Hide legacy Layers sidebar on Search tab
2178         https://bugs.webkit.org/show_bug.cgi?id=179257
2179
2180         Reviewed by Joseph Pecoraro.
2181
2182         * UserInterface/Views/SearchTabContentView.js:
2183         (WI.SearchTabContentView):
2184
2185 2017-11-03  Joseph Pecoraro  <pecoraro@apple.com>
2186
2187         Web Inspector: Network Table - Include a secure lock indicator in the domain column
2188         https://bugs.webkit.org/show_bug.cgi?id=179233
2189         <rdar://problem/34070883>
2190
2191         Reviewed by Devin Rousso.
2192
2193         * UserInterface/Views/NetworkTableContentView.css:
2194         (.network-table .cell.domain > .lock):
2195         * UserInterface/Views/NetworkTableContentView.js:
2196         (WI.NetworkTableContentView.prototype.tablePopulateCell):
2197         (WI.NetworkTableContentView.prototype._populateDomainCell):
2198         Add a small lock icon by the domain if the request was https/wss.
2199
2200 2017-11-03  Devin Rousso  <webkit@devinrousso.com>
2201
2202         Web Inspector: Canvas2D Profiling: highlight expensive context commands in the captured command log
2203         https://bugs.webkit.org/show_bug.cgi?id=178302
2204         <rdar://problem/33158849>
2205
2206         Reviewed by Brian Burg.
2207
2208         * UserInterface/Models/RecordingFrame.js:
2209         (WI.RecordingFrame):
2210         (WI.RecordingFrame.fromPayload):
2211         (WI.RecordingFrame.prototype.get duration):
2212         (WI.RecordingFrame.prototype.toJSON):
2213
2214         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
2215         (WI.RecordingNavigationSidebarPanel.prototype.set recording):
2216         * UserInterface/Views/RecordingNavigationSidebarPanel.css:
2217         (.sidebar > .panel.navigation.recording > .content > .tree-outline .item.folder-icon > .status):
2218
2219 2017-11-02  Devin Rousso  <webkit@devinrousso.com>
2220
2221         Web Inspector: Canvas Tab: show supported GL extensions for selected canvas
2222         https://bugs.webkit.org/show_bug.cgi?id=179070
2223         <rdar://problem/35278276>
2224
2225         Reviewed by Brian Burg.
2226
2227         * Localizations/en.lproj/localizedStrings.js:
2228
2229         * UserInterface/Protocol/CanvasObserver.js:
2230         (WI.CanvasObserver.prototype.extensionEnabled):
2231
2232         * UserInterface/Controllers/CanvasManager.js:
2233         (WI.CanvasManager.prototype.extensionEnabled):
2234
2235         * UserInterface/Models/Canvas.js:
2236         (WI.Canvas.prototype.get extensions):
2237         (WI.Canvas.prototype.enableExtension):
2238         Maintain a Set of enabled extensions, and dispatch an event whenever an extension is enabled.
2239
2240         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
2241         (.sidebar > .panel.details.canvas .details-section.canvas-extensions .content > ul):
2242         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2243         (WI.CanvasDetailsSidebarPanel.prototype.set canvas):
2244         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
2245         (WI.CanvasDetailsSidebarPanel.prototype.layout):
2246         (WI.CanvasDetailsSidebarPanel.prototype._refreshAttributesSection):
2247         (WI.CanvasDetailsSidebarPanel.prototype._refreshExtensionsSection):
2248         Drive-by: hide Attributes section when the canvas has no attributes.
2249
2250 2017-11-02  Joseph Pecoraro  <pecoraro@apple.com>
2251
2252         Make ServiceWorker a Remote Inspector debuggable target
2253         https://bugs.webkit.org/show_bug.cgi?id=179043
2254         <rdar://problem/34126008>
2255
2256         Reviewed by Brian Burg.
2257
2258         Customize the Web Inspector frontend for a ServiceWorker target.
2259         Currently this just behaves like a JavaScript Context target because
2260         we haven't yet added support for Networking capabilities.
2261
2262         * UserInterface/Controllers/DebuggerManager.js:
2263         (WI.DebuggerManager.prototype.get knownNonResourceScripts):
2264         Drive-by fix a bug where lazily initializing the Resources / Debugger tabs
2265         would show Console evaluation scripts. We should ignore them, like we
2266         do in other places.
2267
2268         * Localizations/en.lproj/localizedStrings.js:
2269         * UserInterface/Controllers/AppController.js:
2270         (WI.AppController):
2271         (WI.AppController.debuggableTypeFromHost):
2272         * UserInterface/Controllers/AppControllerBase.js:
2273         * UserInterface/Controllers/TimelineManager.js:
2274         (WI.TimelineManager.defaultTimelineTypes):
2275         (WI.TimelineManager.availableTimelineTypes):
2276         * UserInterface/Models/TimelineRecording.js:
2277         (WI.TimelineRecording.sourceCodeTimelinesSupported):
2278         * UserInterface/Protocol/MainTarget.js:
2279         (WI.MainTarget.prototype.get displayName):
2280         * UserInterface/Test/TestAppController.js:
2281         * UserInterface/Views/DashboardContainerView.css:
2282         (body:not(.web) .toolbar .dashboard-container):
2283         (body.javascript .toolbar .dashboard-container): Deleted.
2284         * UserInterface/Views/DefaultDashboardView.css:
2285         (body:not(.web) .toolbar .dashboard.default > :matches(.resourcesCount, .resourcesSize, .time)):
2286         (body.javascript .toolbar .dashboard.default > :matches(.resourcesCount, .resourcesSize, .time)): Deleted.
2287         * UserInterface/Views/ResourceSidebarPanel.js:
2288         (WI.ResourceSidebarPanel):
2289         (WI.ResourceSidebarPanel.shouldPlaceResourcesAtTopLevel):
2290         (WI.ResourceSidebarPanel.prototype.initialLayout):
2291         (WI.ResourceSidebarPanel.prototype._addScript):
2292         (WI.ResourceSidebarPanel.prototype._extraDomainsActivated):
2293         * UserInterface/Views/Toolbar.js:
2294
2295 2017-11-02  Devin Rousso  <webkit@devinrousso.com>
2296
2297         Web Inspector: Canvas: recording parameters that include an Image should show an InlineSwatch (2D canvas)
2298         https://bugs.webkit.org/show_bug.cgi?id=177032
2299
2300         Reviewed by Brian Burg.
2301
2302         * Localizations/en.lproj/localizedStrings.js:
2303
2304         * UserInterface/Test.html:
2305         * UserInterface/Base/ImageUtilities.js:
2306         (WI.scratchCanvasContext2D):
2307         Creates a static canvas that can be used for scratch purposes, such as converting ImageData
2308         to an Image, or rendering the result of a CanvasGradient. The canvas is reset after each
2309         call of the function so it can be reused by other callers.
2310
2311         (WI.imageFromImageData):
2312         (WI.imageFromCanvasGradient):
2313         Utility functions for getting a dataURL image of ImageData/CanvasGradient after drawing it
2314         onto WI.scratchCanvasContext2D.
2315
2316         * UserInterface/Models/Recording.js:
2317         (WI.Recording.prototype.async.swizzle):
2318         Set the Image used to create a CanvasPattern as an expando property for later use.
2319
2320         * UserInterface/Models/RecordingAction.js:
2321         (WI.RecordingAction.prototype.getImageParameters):
2322
2323         * UserInterface/Views/RecordingActionTreeElement.js:
2324         (WI.RecordingActionTreeElement._generateDOM):
2325         Add Image InlineSwatch elements for parameters that are viewable as an image. For ImageData
2326         and CanvasGradient, WI.scratchCanvasContext2D is used to draw the ImageData/CanvasGradient
2327         and get a dataURL to be used as the image.
2328
2329         (WI.RecordingActionTreeElement._createSwatchForColorParameters):
2330         Drive-by: add checks that the parameter is not a CanvasGradient or CanvasPattern.
2331
2332         * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
2333         (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
2334         Add Image InlineSwatch elements for fillStyle/strokeStyle when the value is a CanvasGradient
2335         or a CanvasPattern.
2336
2337         * UserInterface/Views/InlineSwatch.js:
2338         (WI.InlineSwatch):
2339         (WI.InlineSwatch.prototype._updateSwatch):
2340         (WI.InlineSwatch.prototype._swatchElementClicked):
2341         * UserInterface/Views/InlineSwatch.css:
2342         (.inline-swatch):
2343         (.inline-swatch:matches(.color, .gradient)):
2344         (.inline-swatch:matches(.bezier, .spring, .variable)):
2345         (.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):hover):
2346         (.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):active):
2347         (.inline-swatch:not(.read-only):active > span):
2348         (.inline-swatch:matches(.bezier, .spring, .variable) > span):
2349         (.inline-swatch.image > span):
2350         (.inline-swatch:matches(.bezier, .spring, .variable):hover): Deleted.
2351         (.inline-swatch:matches(.bezier, .spring, .variable):active): Deleted.
2352         (.inline-swatch:active > span): Deleted.
2353         (.inline-swatch:matches(.bezier, .spring) > span): Deleted.
2354         Add Image type for showing previews of images.
2355         Drive-by: simplify some styles.
2356
2357         * UserInterface/Views/RecordingActionTreeElement.css:
2358         (.item.action > .titles .parameters > .inline-swatch):
2359         (.tree-outline:matches(:focus, .force-focus) .item.action > .titles .parameters > .inline-swatch): Deleted.
2360         Drive-by: remove the :focus requirement, as it would cause the InlineSwatch to shift when
2361         the user clicked out of the WebInspector window.
2362
2363 2017-11-02  Joseph Pecoraro  <pecoraro@apple.com>
2364
2365         Inspector should display service worker served responses properly
2366         https://bugs.webkit.org/show_bug.cgi?id=178597
2367         <rdar://problem/35186111>
2368
2369         Reviewed by Brian Burg.
2370
2371         * Localizations/en.lproj/localizedStrings.js:
2372         New Service Worker related strings.
2373
2374         * UserInterface/Controllers/HARBuilder.js:
2375         (WI.HARBuilder.entry):
2376         (WI.HARBuilder.timings):
2377         Only output timing data when we have real resource timing data.
2378
2379         (WI.HARBuilder.fetchType):
2380         Output a new string for a Service Worker load in our custom field.
2381
2382         * UserInterface/Models/ResourceTimingData.js:
2383         (WI.ResourceTimingData.prototype.get responseStart):
2384         Fallback further to the responseEnd. This can happen if the response
2385         itself is an error/failure and there was no response, so treat it as
2386         the same as response end.
2387
2388         * UserInterface/Models/Resource.js:
2389         (WI.Resource.responseSourceFromPayload):
2390         (WI.Resource.prototype.updateForRedirectResponse):
2391         (WI.Resource.prototype.updateForResponse):
2392         A fetch response won't change the URL, so if the URL is empty
2393         don't change it from what the request's URL was.
2394
2395         (WI.Resource.prototype.hasResponse):
2396         Failure is like finished. We should likely transition to an "isComplete" method.
2397
2398         * UserInterface/Views/NetworkTableContentView.js:
2399         (WI.NetworkTableContentView.prototype._populateTransferSizeCell):
2400         (WI.NetworkTableContentView.prototype._generateSortComparator):
2401         Output "(service worker)" in the transfer size field, to indicate this came
2402         from a Service worker. Sort such loads together.
2403
2404         * UserInterface/Views/ResourceHeadersContentView.js:
2405         (WI.ResourceHeadersContentView.prototype._responseSourceDisplayString):
2406         (WI.ResourceHeadersContentView.prototype._refreshSummarySection):
2407         Include the Service Worker response source in this details view. Also include
2408         a FIXME, since we would like to link directly to the service worker in the future.
2409
2410 2017-11-02  Nikita Vasilyev  <nvasilyev@apple.com>
2411
2412         Web Inspector: Styles Redesign: turn on CSS spreadsheet editor by default
2413         https://bugs.webkit.org/show_bug.cgi?id=179100
2414         <rdar://problem/35285990>
2415
2416         Reviewed by Brian Burg.
2417
2418         Add a "Legacy Style Editor" checkbox and remove the experimental "Spreadsheet Style Editor" checkbox.
2419
2420         Remove settings of the legacy styles editor:
2421         - Show inline warnings
2422         - Automatically insert newline
2423         - Select text on first click
2424
2425         These settings are not applicable for the spreadsheet styles editor and
2426         now are always enabled for the legacy styles editor.
2427
2428         * Localizations/en.lproj/localizedStrings.js:
2429         * UserInterface/Base/Setting.js:
2430         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2431         (WI.CSSStyleDeclarationTextEditor):
2432         (WI.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
2433         (WI.CSSStyleDeclarationTextEditor.):
2434         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2435         (WI.CSSStyleDetailsSidebarPanel):
2436         * UserInterface/Views/SettingsTabContentView.js:
2437         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
2438         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2439
2440 2017-11-01  Devin Rousso  <webkit@devinrousso.com>
2441
2442         Web Inspector: consolidate DOMTreeElement contextmenu items into submenus
2443         https://bugs.webkit.org/show_bug.cgi?id=178996
2444
2445         Reviewed by Joseph Pecoraro.
2446
2447         * Localizations/en.lproj/localizedStrings.js:
2448
2449         * UserInterface/Views/ContextMenu.js:
2450         (WI.ContextSubMenuItem.prototype.appendItem):
2451         (WI.ContextSubMenuItem.prototype.appendSubMenuItem):
2452         (WI.ContextSubMenuItem.prototype.appendCheckboxItem):
2453         (WI.ContextSubMenuItem.prototype.pushItem):
2454         (WI.ContextSubMenuItem.prototype._pushItem): Deleted.
2455         Made `pushItem` public so that it is possible to create a ContextMenuItem without
2456         immediately adding it to the ContextMenu.
2457
2458         (WI.ContextSubMenuItem.prototype._buildDescriptor):
2459         (WI.ContextMenu.prototype._buildDescriptor):
2460         Filter out submenus that have no items.
2461
2462         * UserInterface/Views/ContextMenuUtilities.js:
2463         (WI.appendContextMenuItemsForDOMNode):
2464         * UserInterface/Views/DOMTreeElement.js:
2465         (WI.DOMTreeElement.prototype.toggleElementVisibility):
2466         (WI.DOMTreeElement.prototype._populateTagContextMenu):
2467         (WI.DOMTreeElement.prototype._populateTextContextMenu):
2468         (WI.DOMTreeElement.prototype._populateNodeContextMenu):
2469         (WI.DOMTreeElement.prototype._populateForcedPseudoStateItems): Deleted.
2470         Add relevant items to the provided submenus and reorder the entire contextmenu for better
2471         readability and consistency.
2472
2473         * UserInterface/Views/DOMTreeOutline.js:
2474         (WI.DOMTreeOutline.prototype.populateContextMenu):
2475         Create submenus for Add, Edit, Copy, and Delete, and pass them to the DOMTreeElement
2476         "populate*ContextMenu" functions so that they can add items to each submenu.
2477
2478         (WI.DOMTreeOutline.prototype._hideElement):
2479         Move to DOMTreeElement so that it can be used by a contextmenu item.
2480
2481 2017-11-01  Ross Kirsling  <ross.kirsling@sony.com>
2482
2483         Web Inspector: Improve UX of Layers tab visualization
2484         https://bugs.webkit.org/show_bug.cgi?id=178966
2485
2486         Reviewed by Devin Rousso.
2487
2488         * UserInterface/Views/Layers3DContentView.js:
2489         (WI.Layers3DContentView):
2490         (WI.Layers3DContentView.prototype.initialLayout):
2491         (WI.Layers3DContentView.prototype._canvasMouseDown):
2492         (WI.Layers3DContentView.prototype._createLayerGroup): Renamed from _addLayerGroup.
2493         (WI.Layers3DContentView.prototype._updateLayerGroupPosition): Merged into _updateLayers.
2494         Set up zoom and pan.
2495
2496         (WI.Layers3DContentView.prototype._animate):
2497         (WI.Layers3DContentView.prototype._restrictPan):
2498         Restrict pan to bounding box on XY plane.
2499
2500         (WI.Layers3DContentView.prototype.layout):
2501         (WI.Layers3DContentView.prototype._updateDocument):
2502         (WI.Layers3DContentView.prototype._resetCamera):
2503         On new document, throw out all old layers and center the camera on the new document layer.
2504
2505         (WI.Layers3DContentView.prototype.selectLayerById):
2506         (WI.Layers3DContentView.prototype._centerOnSelection):
2507         Recenter the camera when layer group selection is updated programmatically.
2508
2509         (WI.Layers3DContentView.prototype._updateLayers):
2510         (WI.Layers3DContentView.prototype._createLayerMesh):
2511         Fix visual artifact due to "depthWrite" flag.
2512
2513         * UserInterface/Views/LayerDetailsSidebarPanel.js:
2514         (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
2515         Suppress selection update event when the data grid selection is updated programmatically.
2516
2517         * UserInterface/Views/DataGridNode.js:
2518         (WI.DataGridNode.prototype.revealAndSelect):
2519         Allow forwarding of select()'s parameter.
2520
2521 2017-11-01  Joseph Pecoraro  <pecoraro@apple.com>
2522
2523         Web Inspector: Combine all storage icon files into a single file
2524         https://bugs.webkit.org/show_bug.cgi?id=179134
2525
2526         Reviewed by Devin Rousso.
2527
2528         * UserInterface/Main.html:
2529         * UserInterface/Views/CookieIcon.css: Removed.
2530         * UserInterface/Views/DOMStorageIcons.css: Removed.
2531         * UserInterface/Views/DatabaseIcon.css: Removed.
2532         * UserInterface/Views/DatabaseTableIcon.css: Removed.
2533         * UserInterface/Views/StorageIcons.css: Added.
2534         (.application-cache-manifest .icon):
2535         (.application-cache-frame .icon):
2536         (.cookie-icon .icon):
2537         (.local-storage-icon .icon):
2538         (.session-storage-icon .icon):
2539         (.database-icon .icon):
2540         (.database-table-icon .icon):
2541
2542 2017-11-01  Nikita Vasilyev  <nvasilyev@apple.com>
2543
2544         Web Inspector: Styles Redesign: Hovering over a selector should highlight matching elements on the page
2545         https://bugs.webkit.org/show_bug.cgi?id=179040
2546
2547         Reviewed by Devin Rousso.
2548
2549         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2550         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
2551         Use mouseenter/mouseleave events instead of mousein/mouseout (as in the old styles sidebar)
2552         to avoid unnecessary events being fired.
2553
2554         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._highlightNodesWithSelector):
2555         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._hideDOMNodeHighlight):
2556
2557 2017-10-30  Nikita Vasilyev  <nvasilyev@apple.com>
2558
2559         Web Inspector: [PARITY] Styles Redesign: Ability to modify style attributes
2560         https://bugs.webkit.org/show_bug.cgi?id=178328
2561         <rdar://problem/35000990>
2562
2563         Reviewed by Joseph Pecoraro.
2564
2565         Before this patch, modifying a property of a style attribute duplicated the old property
2566         and appended the new one. This happened because WI.TextRange.prototype.resolveOffsets
2567         didn't resolve offsets correctly when text didn't end with a trailing new line.
2568
2569         Since WI.TextRange.prototype.resolveOffsets is used elsewhere and this could be expected
2570         behavior, append a line break before resolving a range.
2571
2572         * UserInterface/Models/CSSProperty.js:
2573         (WI.CSSProperty.prototype._updateOwnerStyleText):
2574
2575 2017-10-30  Ross Kirsling  <ross.kirsling@sony.com>
2576
2577         Web Inspector: Clicking filler in data grid should clear selection
2578         https://bugs.webkit.org/show_bug.cgi?id=179027
2579
2580         Reviewed by Brian Burg.
2581
2582         * UserInterface/Views/DataGrid.js:
2583         (WI.DataGrid.prototype._mouseDownInDataTable):
2584
2585 2017-10-30  Devin Rousso  <webkit@devinrousso.com>
2586
2587         Web Inspector: Canvas Tab: no path components shown in recording content view after selecting a recording via View Recordings... dropdown
2588         https://bugs.webkit.org/show_bug.cgi?id=178807
2589         <rdar://problem/35176463>
2590
2591         Reviewed by Brian Burg.
2592
2593         When the first Recording is taken of a canvas, it is immediately added as a child. When the
2594         CanvasTreeElement is `attached`, however, it will attempt to regenerate its children if
2595         necessary. This is especially true for canvases with ShaderPrograms, as they are added with
2596         `addRepresentedObjectToNewChildQueue`, meaning that the child TreeElements aren't actually
2597         added until the next tick, preventing the ContentBrowser logic from generating path
2598         components correctly.
2599
2600         This patch switches to using `addChildForRepresentedObject` so that there is no delay when
2601         adding children, and also ensures that any existing recordings are also added on regeneration.
2602
2603         * UserInterface/Views/CanvasTabContentView.js:
2604         (WI.CanvasTabContentView.prototype._recordingAdded):
2605         Move logic for adding TreeElements for new Recordings to CanvasTreeElement.
2606
2607         * UserInterface/Views/CanvasTreeElement.js:
2608         (WI.CanvasTreeElement.createRecordingTreeElement):
2609         (WI.CanvasTreeElement):
2610         (WI.CanvasTreeElement.prototype.onattach):
2611         (WI.CanvasTreeElement.prototype.ondetach):
2612         (WI.CanvasTreeElement.prototype.onpopulate):
2613         (WI.CanvasTreeElement.prototype._handleItemAdded):
2614         (WI.CanvasTreeElement.prototype._handleItemRemoved):
2615         (WI.CanvasTreeElement.prototype._shaderProgramAdded): Deleted.
2616         (WI.CanvasTreeElement.prototype._shaderProgramRemoved): Deleted.
2617
2618 2017-10-30  Fujii Hironori  <Hironori.Fujii@sony.com>
2619
2620         [GTK] Web Inspector: Add Path.svg
2621         https://bugs.webkit.org/show_bug.cgi?id=178432
2622
2623         Reviewed by Carlos Garcia Campos.
2624
2625         * UserInterface/Images/gtk/Path.svg: Added.
2626
2627 2017-10-30  Nikita Vasilyev  <nvasilyev@apple.com>
2628
2629         Web Inspector: [PARITY] Styles Redesign: clicking on the white space after the property should create a blank property
2630         https://bugs.webkit.org/show_bug.cgi?id=178022
2631         <rdar://problem/34861687>
2632
2633         Reviewed by Matt Baker.
2634
2635         - Clicking on the whitespace on the right side of a property should insert a blank property after the clicked one.
2636         - Clicking on the whitespace at the end of a CSS rule should append a blank property.
2637         - Clicking on the whitespace before the first property should insert a blank property before the first one.
2638
2639         * UserInterface/Models/CSSProperty.js:
2640         (WI.CSSProperty.prototype.remove):
2641         (WI.CSSProperty.prototype._updateOwnerStyleText):
2642         Remove method previously didn't do anything for a newly added property.
2643
2644         * UserInterface/Models/CSSStyleDeclaration.js:
2645         (WI.CSSStyleDeclaration.prototype.newBlankProperty):
2646         Update indices of all properties after the newly added property.
2647
2648         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2649         (WI.SpreadsheetCSSStyleDeclarationEditor):
2650         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
2651         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
2652         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
2653         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.isFocused):
2654         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.addBlankProperty):
2655         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
2656         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
2657         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._addBlankProperty): Deleted.
2658         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._isFocused): Deleted.
2659         Re-layout SpreadsheetCSSStyleDeclarationEditor after adding a new property. Preserve edited property
2660         so we can restore editing state after the re-layout.
2661
2662         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2663         (WI.SpreadsheetCSSStyleDeclarationSection):
2664         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
2665         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
2666         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
2667         Clicking should add a new property only when we aren't editing an existing property.
2668
2669         * UserInterface/Views/SpreadsheetStyleProperty.js:
2670         (WI.SpreadsheetStyleProperty):
2671         (WI.SpreadsheetStyleProperty.prototype.updateClassNames):
2672         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
2673         Remove newlyAdded property of SpreadsheetStyleProperty. During layout SpreadsheetCSSStyleDeclarationEditor
2674         recreates SpreadsheetStyleProperty views and newlyAdded property gets lost.
2675
2676         * UserInterface/Views/SpreadsheetTextField.js:
2677         (WI.SpreadsheetTextField.prototype.get valueBeforeEditing):
2678         (WI.SpreadsheetTextField.prototype.startEditing):
2679         (WI.SpreadsheetTextField.prototype.stopEditing):
2680         (WI.SpreadsheetTextField.prototype._discardChange):
2681
2682 2017-10-27  Devin Rousso  <webkit@devinrousso.com>
2683
2684         Web Inspector: Canvas Tab: no way to see backtrace of where a canvas context was created
2685         https://bugs.webkit.org/show_bug.cgi?id=178799
2686         <rdar://problem/35175805>
2687
2688         Reviewed by Brian Burg.
2689
2690         * Localizations/en.lproj/localizedStrings.js:
2691
2692         * UserInterface/Models/Canvas.js:
2693         (WI.Canvas.fromPayload):
2694         (WI.Canvas.prototype.get backtrace):
2695
2696         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
2697         (.sidebar > .panel.details.canvas .details-section.canvas-backtrace .call-frame):
2698
2699         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2700         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
2701         (WI.CanvasDetailsSidebarPanel.prototype.layout):
2702         (WI.CanvasDetailsSidebarPanel.prototype._refreshBacktraceSection):
2703
2704         * UserInterface/Views/ResourceIcons.css:
2705         (.canvas > .icon):
2706         (.canvas .icon): Deleted.
2707
2708 2017-10-26  Devin Rousso  <webkit@devinrousso.com>
2709
2710         Web Inspector: Canvas Tab: canvas path components from old page stick around when page is reloaded
2711         https://bugs.webkit.org/show_bug.cgi?id=178806
2712         <rdar://problem/35176360>
2713
2714         Reviewed by Brian Burg.
2715
2716         Before this change, the CanvasCollection was regenerated each time the Canvas tab was
2717         attached. This also caused the invisible TreeOutline, used for the path components and to
2718         manage selection, to be reset as well. Whenever the page refreshed, however, the old
2719         canvases, and associated recordings, were not removed. This patch reworks all of this logic
2720         to create the CanvasCollection on construction of the tab and add/remove canvases as needed.
2721
2722         * UserInterface/Controllers/CanvasManager.js:
2723         (WI.CanvasManager.prototype.canvasAdded):
2724         (WI.CanvasManager.prototype.canvasRemoved):
2725         (WI.CanvasManager.prototype._removeCanvas):
2726         (WI.CanvasManager.prototype._mainResourceDidChange):
2727         Replaced the "Cleared" event by instead firing "CanvasRemoved" for every tracked canvas. This
2728         massively simplifies the logic for when the page navigates, as everything goes through a
2729         single event listener.
2730         Drive-by: changed existing event names to remove unnecessary words.
2731
2732         * UserInterface/Views/CanvasTabContentView.js:
2733         (WI.CanvasTabContentView):
2734         (WI.CanvasTabContentView.prototype.attached):
2735         (WI.CanvasTabContentView.prototype.detached):
2736         (WI.CanvasTabContentView.prototype._addCanvas):
2737         (WI.CanvasTabContentView.prototype._removeCanvas):
2738         (WI.CanvasTabContentView.prototype._handleCanvasAdded):
2739         (WI.CanvasTabContentView.prototype._handleCanvasRemoved):
2740         (WI.CanvasTabContentView.prototype._canvasAdded): Deleted.
2741         (WI.CanvasTabContentView.prototype._canvasRemoved): Deleted.
2742         (WI.CanvasTabContentView.prototype._mainResourceDidChange): Deleted.
2743         Rework logic for the way that the CanvasCollection is maintained. It is no longer
2744         created/destroyed each time the view is attached/detached, and instead a diff is calculated
2745         for the added/existing/removed canvases and the content views are added/removed as such.
2746
2747         * UserInterface/Views/CanvasOverviewContentView.js:
2748         (WI.CanvasOverviewContentView.prototype._selectionPathComponentsChanged):
2749         Drive-by: if an imported recording is selected on the Canvas Overview view, we should show it.
2750
2751 2017-10-26  Devin Rousso  <webkit@devinrousso.com>
2752
2753         Web Inspector: Canvas Tab: canvases overview should support navigation via keyboard
2754         https://bugs.webkit.org/show_bug.cgi?id=178800
2755         <rdar://problem/35175856>
2756
2757         Reviewed by Brian Burg.
2758
2759         Create a KeyboardShorcut for each of the following:
2760          - Up: selects the previous canvas in the selected column
2761          - Down: selects the next canvas in the selected column
2762          - Right: selects the next canvas in the selected row
2763          - Left: selects the previous canvas in the selected row
2764          - Space: toggle recording of the selected canvas
2765          - Shift+Space: toggle single-frame recording of the selected canvas
2766
2767         The calculation for selected row/colum is based on the `offsetWidth` of the parent element
2768         and the selected item's content view element. Since this view uses a flexbox, all of the
2769         items are expected to have the same dimensions, meaning that this value is uniform. The
2770         intended functionality is that of a spreadsheet, where pressing pressing left/right will
2771         never change the selected row and up/down will never change the selected column.
2772
2773         * UserInterface/Views/CanvasOverviewContentView.css:
2774         (.content-view.canvas-overview):
2775         (.content-view.canvas-overview .content-view.canvas):
2776         Move margin value to a CSS variable so that it can be easily retrieved via JavaScript.
2777
2778         * UserInterface/Views/CanvasOverviewContentView.js:
2779         (WI.CanvasOverviewContentView):
2780         (WI.CanvasOverviewContentView.prototype.contentViewAdded):
2781         (WI.CanvasOverviewContentView.prototype.contentViewRemoved):
2782         (WI.CanvasOverviewContentView.prototype.attached):
2783         (WI.CanvasOverviewContentView.prototype.detached):
2784         (WI.CanvasOverviewContentView.prototype.get _itemMargin):
2785         (WI.CanvasOverviewContentView.prototype._changeSelectedItemVertically):
2786         (WI.CanvasOverviewContentView.prototype._changeSelectedItemHorizontally):
2787         (WI.CanvasOverviewContentView.prototype._updateNavigationItems):
2788         (WI.CanvasOverviewContentView.prototype._handleUp):
2789         (WI.CanvasOverviewContentView.prototype._handleRight):
2790         (WI.CanvasOverviewContentView.prototype._handleDown):
2791         (WI.CanvasOverviewContentView.prototype._handleLeft):
2792         (WI.CanvasOverviewContentView.prototype._handleSpace):
2793         (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange):
2794         Drive-by: call `_updateNavigationItems` whenever an item is added/removed so that if there
2795         are no items the navigation items cannot be clicked.
2796
2797 2017-10-26  Nikita Vasilyev  <nvasilyev@apple.com>
2798
2799         Web Inspector: Styles Redesign: Make "Style Attribute" text darker and non-focusable
2800         https://bugs.webkit.org/show_bug.cgi?id=178837
2801
2802         Reviewed by Brian Burg.
2803
2804         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
2805         (.spreadsheet-css-declaration .selector.style-attribute):
2806         Use the same shade of gray as in the "Inherited from" sections.
2807
2808         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2809         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
2810         Only editable selectors should be focusable.
2811
2812 2017-10-26  Fujii Hironori  <Hironori.Fujii@sony.com>
2813
2814         [GTK] Web Inspector: Add CanvasOverview.svg and Canvas.svg
2815         https://bugs.webkit.org/show_bug.cgi?id=178426
2816
2817         Reviewed by Carlos Garcia Campos.
2818
2819         * UserInterface/Images/gtk/Canvas.svg: Added.
2820         * UserInterface/Images/gtk/CanvasOverview.svg: Added.
2821
2822 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
2823
2824         Web Inspector: provide a way to enable/disable event listeners
2825         https://bugs.webkit.org/show_bug.cgi?id=177451
2826         <rdar://problem/34994925>
2827
2828         Reviewed by Joseph Pecoraro.
2829
2830         * Localizations/en.lproj/localizedStrings.js:
2831
2832         * UserInterface/Controllers/DOMTreeManager.js:
2833         (WI.DOMTreeManager.prototype.setEventListenerDisabled):
2834
2835         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2836         (WI.DOMNodeDetailsSidebarPanel.prototype.attached):
2837         (WI.DOMNodeDetailsSidebarPanel.prototype.detached):
2838         (WI.DOMNodeDetailsSidebarPanel.prototype._eventListenersChanged):
2839         (WI.DOMNodeDetailsSidebarPanel.prototype.addEventListeners): Deleted.
2840         (WI.DOMNodeDetailsSidebarPanel.prototype.removeEventListeners): Deleted.
2841         Listen for `WI.DOMNode.Event.EventListenersChanged` on all instances of WI.DOMNode, since we
2842         will still want to refresh the event listeners section in the event that an event listener
2843         is removed from a parent node.
2844
2845         * UserInterface/Views/EventListenerSectionGroup.js:
2846         (WI.EventListenerSectionGroup):
2847         (WI.EventListenerSectionGroup.prototype._eventText):
2848         (WI.EventListenerSectionGroup.prototype._nodeTextOrLink):
2849         (WI.EventListenerSectionGroup.prototype._createDisabledToggleElement):
2850         (WI.EventListenerSectionGroup.prototype._createDisabledToggleElement.updateTitle):
2851         * UserInterface/Views/EventListenerSectionGroup.css:
2852         (.event-listener-section > .content input[type="checkbox"]):
2853
2854         * UserInterface/Views/DetailsSectionSimpleRow.js:
2855         (WI.DetailsSectionSimpleRow.prototype.get label):
2856         (WI.DetailsSectionSimpleRow.prototype.set label):
2857
2858 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
2859
2860         Web Inspector: replace TypeVerifier with subclasses of WI.Collection
2861         https://bugs.webkit.org/show_bug.cgi?id=178045
2862         <rdar://problem/35174307>
2863
2864         Reviewed by Brian Burg.
2865
2866         * UserInterface/Models/Collection.js:
2867         (WI.Collection):
2868         (WI.Collection.prototype.get displayName):
2869         (WI.Collection.prototype.objectIsRequiredType):
2870         (WI.Collection.prototype.add):
2871         (WI.Collection.prototype.get typeVerifier): Deleted.
2872         Instead of exposing the typeVerifier, we create a public predicate that returns whether the
2873         given object matches the expected type of the Collection. Subclasses can override it to
2874         limit the scope of the collection to a particular type.
2875
2876         * UserInterface/Models/CollectionTypes.js:
2877         (WI.FrameCollection.prototype.get displayName):
2878         (WI.FrameCollection.prototype.objectIsRequiredType):
2879         (WI.FrameCollection): Deleted.
2880         (WI.ScriptCollection.prototype.get displayName):
2881         (WI.ScriptCollection.prototype.objectIsRequiredType):
2882         (WI.ScriptCollection): Deleted.
2883         (WI.CSSStyleSheetCollection.prototype.get displayName):
2884         (WI.CSSStyleSheetCollection.prototype.objectIsRequiredType):
2885         (WI.CSSStyleSheetCollection): Deleted.
2886         (WI.CanvasCollection.prototype.get displayName):
2887         (WI.CanvasCollection.prototype.objectIsRequiredType):
2888         (WI.CanvasCollection): Deleted.
2889         (WI.ShaderProgramCollection.prototype.get displayName):
2890         (WI.ShaderProgramCollection.prototype.objectIsRequiredType):
2891         (WI.ShaderProgramCollection): Deleted.
2892         (WI.RecordingCollection.prototype.get displayName):
2893         (WI.RecordingCollection.prototype.objectIsRequiredType):
2894         (WI.RecordingCollection): Deleted.
2895         * UserInterface/Models/ResourceCollection.js:
2896         (WI.ResourceCollection):
2897         (WI.ResourceCollection.prototype.get displayName):
2898         (WI.ResourceCollection.prototype.objectIsRequiredType):
2899         (WI.ResourceCollection.verifierForType): Deleted.
2900         * UserInterface/Views/TreeOutlineGroup.js:
2901         (WI.TreeOutlineGroup.prototype.objectIsRequiredType):
2902         (WI.TreeOutlineGroup): Deleted.
2903         Introduce additional subclasses of Collection for other model types. Modify existing
2904         subclasses to remove `typeVerifier` and instead extend `objectIsRequiredType`.
2905
2906         * UserInterface/Models/Canvas.js:
2907         (WI.Canvas):
2908         * UserInterface/Models/Frame.js:
2909         (WI.Frame):
2910         * UserInterface/Protocol/Target.js:
2911         (WI.Target):
2912         * UserInterface/Views/ResourceSidebarPanel.js:
2913         (WI.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
2914         (WI.ResourceSidebarPanel.prototype._addScript):
2915
2916         * UserInterface/Views/CollectionContentView.js:
2917         (WI.CollectionContentView):
2918         (WI.CollectionContentView.titleForCollection): Delete.
2919         * UserInterface/Views/ResourceCollectionContentView.js:
2920         (WI.ResourceCollectionContentView):
2921         Require that subclasses of Collection override `get displayName` if the CollectionContentView
2922         is not provided with a `contentPlaceholderText`.
2923
2924         (WI.CollectionContentView.prototype.initialLayout):
2925         We don't need to create and add ContentView for each item of the Collection, as this is
2926         already done by attached().
2927
2928         (WI.CollectionContentView.prototype._showContentPlaceholder):
2929         Remove the 250ms delay before showing the placeholder TitleView.
2930
2931         * UserInterface/Views/FolderizedTreeElement.js:
2932         (WI.FolderizedTreeElement.prototype._settingsForRepresentedObject):
2933
2934 2017-10-25  Joseph Pecoraro  <pecoraro@apple.com>
2935
2936         Web Inspector: Display fetch() initiated loads as "fetch" instead of "xhr" in the Network Tab
2937         https://bugs.webkit.org/show_bug.cgi?id=178826
2938
2939         Reviewed by Youenn Fablet.
2940
2941         * UserInterface/Views/NetworkTableContentView.js:
2942         (WI.NetworkTableContentView.shortDisplayNameForResourceType):
2943         Fetch and XHR loads are still grouped under the succinct "XHR" filter, but
2944         at least display the better type name in the "Type" column of the table.
2945
2946 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
2947
2948         Web Inspector: Canvas Tab: selected canvas card loses selection outline style while recording
2949         https://bugs.webkit.org/show_bug.cgi?id=178814
2950         <rdar://problem/35177317>
2951
2952         Reviewed by Brian Burg.
2953
2954         * UserInterface/Views/CanvasOverviewContentView.css:
2955         (.content-view.canvas-overview .content-view.canvas):
2956         (.content-view.canvas-overview .content-view.canvas > :matches(header, .preview, footer)):
2957         (.content-view.canvas-overview .content-view.canvas.selected > :matches(.preview, footer),):
2958         (.content-view.canvas-overview .content-view.canvas > header):
2959         (.content-view.canvas-overview .content-view.canvas.is-recording > header):
2960         (.content-view.canvas-overview .content-view.canvas > .preview):
2961         (.content-view.canvas-overview .content-view.canvas > footer):
2962         (.content-view.canvas-overview .content-view.canvas.selected:not(.is-recording)): Deleted.
2963         Instead of applying the border to the entire element, apply parts of the border to each of
2964         its children so that we can choose what colors to use for each part.
2965
2966 2017-10-25  Nikita Vasilyev  <nvasilyev@apple.com>
2967
2968         Web Inspector: [PARITY] Styles Redesign: Add color gradient, bezier curve, and spring inline widgets
2969         https://bugs.webkit.org/show_bug.cgi?id=178404
2970         <rdar://problem/35035992>
2971
2972         Reviewed by Devin Rousso.
2973
2974         Add inline widgets for the following CSS values:
2975         - Gradients, e.g. `background-image: linear-gradient(yellow, orange)`
2976         - Bezier curves, e.g. `transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55)`
2977         - Spring functions, e.g. `transition-timing-function: spring(1, 2, 2, 4)`
2978
2979         * UserInterface/Models/Color.js:
2980         (WI.Color.prototype.toString):
2981         Don't throw. The are never try/catch blocks on the callsites.
2982
2983         * UserInterface/Views/SpreadsheetStyleProperty.js:
2984         (WI.SpreadsheetStyleProperty.prototype._renderValue):
2985         (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
2986         (WI.SpreadsheetStyleProperty.prototype._addGradientTokens):
2987         (WI.SpreadsheetStyleProperty.prototype._addColorTokens):
2988         (WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens):
2989
2990 2017-10-25  Nikita Vasilyev  <nvasilyev@apple.com>
2991
2992         Web Inspector: Styles Redesign: Newly added invalid property isn't immediately shown as invalid
2993         https://bugs.webkit.org/show_bug.cgi?id=178488
2994
2995         Reviewed by Brian Burg.
2996
2997         * UserInterface/Models/CSSStyleDeclaration.js:
2998         (WI.CSSStyleDeclaration.prototype.newBlankProperty):
2999         Call this.update to update _properties, _allProperties, _visibleProperties, and _allVisibleProperties.
3000
3001         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
3002         (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled)):
3003         (.spreadsheet-style-declaration-editor .property.invalid-name:not(.disabled)):
3004         (.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .value):
3005         When the property name is valid, but the value isn't, display red line-through only for the value.
3006         This is how it works in the old styles sidebar as well.
3007
3008         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3009         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
3010         (WI.SpreadsheetCSSStyleDeclarationEditor):
3011         * UserInterface/Views/SpreadsheetStyleProperty.js:
3012         (WI.SpreadsheetStyleProperty):
3013         (WI.SpreadsheetStyleProperty.prototype.updateClassNames):
3014         (WI.SpreadsheetStyleProperty.prototype._update):
3015         Introduce updateClassNames method. Unlike _update, it doesn't change text selection or focus and
3016         can be safely called on a property while it's being edited.
3017
3018 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
3019
3020         Web Inspector: Canvas Tab: clicking on a canvas card causes details sidebar to show and mess up card arrangement
3021         https://bugs.webkit.org/show_bug.cgi?id=178803
3022         <rdar://problem/35176082>
3023
3024         Reviewed by Brian Burg.
3025
3026         * Localizations/en.lproj/localizedStrings.js:
3027         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
3028         (.sidebar > .panel.details.canvas > .content > .empty-content-placeholder):
3029         (.sidebar > .panel.details.canvas > .content > .empty-content-placeholder > .message):
3030         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
3031         (WI.CanvasDetailsSidebarPanel):
3032         (WI.CanvasDetailsSidebarPanel.prototype.inspect):
3033         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
3034         (WI.CanvasDetailsSidebarPanel.prototype.layout):
3035
3036         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
3037         (WI.RecordingNavigationSidebarPanel.disallowInstanceForClass): Deleted.
3038         * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
3039         (WI.RecordingStateDetailsSidebarPanel.disallowInstanceForClass): Deleted.
3040         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
3041         (WI.RecordingTraceDetailsSidebarPanel.disallowInstanceForClass): Deleted.
3042         Drive-by: these sidebar panels are now only used by the Canvas tab, so we no longer need to
3043         provide support for multiple instances of them.
3044
3045 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
3046
3047         Web Inspector: preserve Recordings for each Canvas after closing the Canvas tab
3048         https://bugs.webkit.org/show_bug.cgi?id=178767
3049         <rdar://problem/35167239>
3050
3051         Reviewed by Brian Burg.
3052
3053         * UserInterface/Test.html:
3054         Include CollectionTypes for tests.
3055
3056         * UserInterface/Controllers/CanvasManager.js:
3057         (WI.CanvasManager.prototype.recordingFinished):
3058
3059         * UserInterface/Models/Canvas.js:
3060         (WI.Canvas):
3061         (WI.Canvas.prototype.get recordingCollection):
3062
3063         * UserInterface/Models/CollectionTypes.js:
3064         (WI.CanvasCollection):
3065         (WI.RecordingCollection):
3066
3067         * UserInterface/Views/CanvasContentView.js:
3068         (WI.CanvasContentView.prototype.initialLayout):
3069         (WI.CanvasContentView.prototype._addRecording):
3070         (WI.CanvasContentView.prototype._recordingStopped):
3071
3072         * UserInterface/Views/CanvasTabContentView.js:
3073         (WI.CanvasTabContentView.prototype.attached):
3074         (WI.CanvasTabContentView.prototype._recordingAdded):
3075
3076 2017-10-24  Joseph Pecoraro  <pecoraro@apple.com>
3077
3078         REGRESSION(r222181): Web Inspector: Augmenting Agents Domains are not getting activated
3079         https://bugs.webkit.org/show_bug.cgi?id=178768
3080         <rdar://problem/35081334>
3081
3082         Reviewed by Brian Burg.
3083
3084         * UserInterface/Base/Main.js:
3085         Simplify event dispatch.
3086
3087         * UserInterface/Controllers/AppController.js:
3088         (WI.AppController.prototype.activateExtraDomains):
3089         Pass the domains on.
3090
3091 2017-10-24  Joseph Pecoraro  <pecoraro@apple.com>
3092
3093         Web Inspector: Console Drawer resizing doesn't match cursor position
3094         https://bugs.webkit.org/show_bug.cgi?id=178753
3095         <rdar://problem/35160484>
3096
3097         Reviewed by Brian Burg.
3098
3099         * UserInterface/Views/ConsoleDrawer.js:
3100         (WI.ConsoleDrawer.prototype._updateDrawerHeight):
3101         Drive-by fix an early return that would never have worked.
3102
3103         * UserInterface/Views/Main.css:
3104         (#content):
3105         Give the #content a flex grow of 1. This causes the space to grow as it
3106         already was but now it does not affect the size of the fixed height sibling.
3107
3108 2017-10-24  Eric Carlson  <eric.carlson@apple.com>
3109
3110         Web Inspector: Enable WebKit logging configuration and display
3111         https://bugs.webkit.org/show_bug.cgi?id=177027
3112         <rdar://problem/33964767>
3113
3114         Reviewed by Joseph Pecoraro.
3115
3116         * Localizations/en.lproj/localizedStrings.js: Add new localized strings.
3117
3118         * UserInterface/Controllers/LogManager.js:
3119         (WI.LogManager): Initialize _loggingChannelSources, fetch _customLoggingChannels.
3120         (WI.LogManager.supportsLogChannels): New.
3121         (WI.LogManager.prototype.get customLoggingChannels): New.
3122         (WI.LogManager.prototype.get logChannelSources): New.
3123
3124         * UserInterface/Main.html:
3125         * UserInterface/Models/ConsoleMessage.js: Add Media and WebRTC.
3126
3127         * UserInterface/Models/IssueMessage.js:
3128         (WI.IssueMessage): Add media and webrtc.
3129
3130         * UserInterface/Models/LoggingChannel.js: Added.
3131         (WI.LoggingChannel):
3132         (WI.LoggingChannel.fromPayload):
3133         (WI.LoggingChannel.prototype.get source):
3134         (WI.LoggingChannel.prototype.get level):
3135
3136         * UserInterface/Views/LogContentView.js:
3137         (WI.LogContentView): Add new scope buttons for "Log", "Info", and "Debug". Create log channel
3138             scope buttons once logging has started.
3139         (WI.LogContentView.prototype.get navigationItems): Add the log message scope bar when necessary.
3140         (WI.LogContentView.prototype._scopeFromMessageSource): New.
3141         (WI.LogContentView.prototype._scopeFromMessageLevel): Don't group Info, Log, and Debug.
3142         (WI.LogContentView.prototype._messageAdded): Force a UI update the first time a WebKit log
3143             message is added.
3144
3145         (WI.LogContentView.prototype._messageShouldBeVisible): New, deal with message source bar buttons.
3146         (WI.LogContentView.prototype._messageSourceBarSelectionDidChange): New.
3147         (WI.LogContentView.prototype._filterMessageElements): Deal with message source bar buttons.
3148
3149         * UserInterface/Views/SettingsTabContentView.js:
3150         (WI.SettingsTabContentView.prototype._createGeneralSettingsView): Create and initialize menus
3151             for each log channel.
3152
3153 2017-10-24  Joseph Pecoraro  <pecoraro@apple.com>
3154
3155         Uncaught Exception: TypeError: null is not an object (evaluating 'this.treeOutline.isXMLMimeType')
3156         https://bugs.webkit.org/show_bug.cgi?id=178745
3157
3158         Reviewed by Brian Burg.
3159
3160         * UserInterface/Views/DOMTreeUpdater.js:
3161         (WI.DOMTreeUpdater.prototype._updateModifiedNodes):
3162         An earlier tree element update might have caused this other tree element's
3163         waiting to be updated to actually be removed. So just skip past them.
3164
3165 2017-10-24  Fujii Hironori  <Hironori.Fujii@sony.com>
3166
3167         [GTK] Web Inspector: Add Recording.svg
3168         https://bugs.webkit.org/show_bug.cgi?id=175045
3169
3170         Reviewed by Brian Burg.
3171
3172         * UserInterface/Images/gtk/Recording.svg: Added.
3173
3174 2017-10-24  Devin Rousso  <webkit@devinrousso.com>
3175
3176         Web Inspector: allow ShaderProgram to be shown in CanvasContentView
3177         https://bugs.webkit.org/show_bug.cgi?id=178714
3178
3179         Reviewed by Brian Burg.
3180
3181         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
3182         (WI.CanvasDetailsSidebarPanel.prototype.inspect):
3183         Allow ShaderProgram to show the related Canvas information.
3184
3185         * UserInterface/Views/CanvasTabContentView.js:
3186         (WI.CanvasTabContentView.prototype.canShowRepresentedObject):
3187         (WI.CanvasTabContentView.prototype.showRepresentedObject):
3188         (WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange):
3189         If a ShaderProgram is selected in the path component, display a ShaderProgramContentView.
3190
3191 2017-10-24  Devin Rousso  <webkit@devinrousso.com>
3192
3193         Web Inspector: remove canvases from Resources and experimental setting/UI
3194         https://bugs.webkit.org/show_bug.cgi?id=178711
3195
3196         Reviewed by Brian Burg.
3197
3198         * UserInterface/Base/Main.js:
3199         (WI.tabContentViewClassForRepresentedObject):
3200         * UserInterface/Base/Setting.js:
3201         * UserInterface/Controllers/CanvasManager.js:
3202         (WI.CanvasManager.prototype.canvasAdded):
3203         (WI.CanvasManager.prototype.canvasRemoved):
3204         * UserInterface/Models/Canvas.js:
3205         * UserInterface/Models/Frame.js:
3206         (WI.Frame):
3207         (WI.Frame.prototype.get extraScriptCollection):
3208         (WI.Frame.prototype.commitProvisionalLoad):
3209         (WI.Frame.prototype.get canvasCollection): Deleted.
3210         * UserInterface/Views/CanvasTabContentView.js:
3211         (WI.CanvasTabContentView.isTabAllowed):
3212         * UserInterface/Views/FrameTreeElement.js:
3213         (WI.FrameTreeElement):
3214         (WI.FrameTreeElement.prototype.onattach):
3215         (WI.FrameTreeElement.prototype.ondetach):
3216         (WI.FrameTreeElement.prototype.onpopulate):
3217         (WI.FrameTreeElement.prototype._styleSheetAdded):
3218         (WI.FrameTreeElement.prototype._canvasWasAdded): Deleted.
3219         (WI.FrameTreeElement.prototype._canvasWasRemoved): Deleted.
3220         * UserInterface/Views/ResourceSidebarPanel.js:
3221         (WI.ResourceSidebarPanel):
3222         (WI.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
3223         (WI.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
3224         (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange):
3225         * UserInterface/Views/ResourcesTabContentView.js:
3226         (WI.ResourcesTabContentView):
3227         (WI.ResourcesTabContentView.prototype.canShowRepresentedObject):
3228         * UserInterface/Views/SettingsTabContentView.js:
3229         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
3230
3231 2017-10-24  Devin Rousso  <webkit@devinrousso.com>
3232
3233         Web Inspector: Show recordings in CanvasTabContentView
3234         https://bugs.webkit.org/show_bug.cgi?id=177606
3235         <rdar://problem/34715819>
3236
3237         Reviewed by Brian Burg.
3238
3239         Original patch by Matt Baker <mattbaker@apple.com>.
3240
3241         This patch folds canvas recordings into the new Canvas tab, which now
3242         supports showing both CanvasCollections and Recordings.
3243
3244         When viewing recordings, a back button is shown at the start of the
3245         navigation bar, allowing the user to return to the overview. It has been
3246         styled with a back arrow, to make its function as clear as possible.
3247         Like other navigation path components, the item for the recording can
3248         clicked to select another recording taken from the same canvas.
3249
3250         The recording action scrubber has been moved from the content browser's
3251         navigation bar to a more prominent location in the recording content view.
3252         Selecting a frame tree element in the navigation sidebar no longer selects
3253         the last action for that frame. This was changed to prevent the scrubber
3254         position from behaving non-monotonically when selecting actions in sequential
3255         order.
3256
3257         While this patch retains support for importing recordings, the feature
3258         is not polished. Currently it is not possible to return to an imported
3259         recording after leaving closing the view. In the future we may want to
3260         consider including a navigation sidebar panel for the overview, which
3261         could list canvas recordings (and eventually shaders).
3262
3263         * .eslintrc:
3264         Drive-by: remove duplicate key.
3265
3266         * Localizations/en.lproj/localizedStrings.js:
3267         * UserInterface/Base/Main.js:
3268         (WI.contentLoaded):
3269         (WI.tabContentViewClassForRepresentedObject):
3270         * UserInterface/Main.html:
3271         * UserInterface/Views/RecordingTabContentView.js: Removed.
3272         Remove RecordingTabContentView.
3273
3274         * UserInterface/Images/Recording.svg:
3275         New recording icon, used for tree elements and canvas preview UI.
3276
3277         * UserInterface/Models/Recording.js:
3278         (WI.Recording):
3279         (WI.Recording.prototype.get visualActionIndexes):
3280         Visual action indexes should be computed by the recording.
3281
3282         * UserInterface/Views/CanvasContentView.js:
3283         (WI.CanvasContentView):
3284         (WI.CanvasContentView.prototype.refresh):
3285         (WI.CanvasContentView.prototype.initialLayout):
3286         (WI.CanvasContentView.prototype.attached):
3287         (WI.CanvasContentView.prototype._recordingStopped):
3288         (WI.CanvasContentView.prototype._handleRecordingSelectElementChange):
3289         New UI for showing CanvasContentView as a CollectionView item. Includes
3290         recordings button and select for choosing a recording to view.
3291
3292         * UserInterface/Views/CanvasOverviewContentView.css:
3293         (.content-view.canvas-overview .content-view.canvas > header):
3294         Switch to 13px, which is more frequently used.
3295
3296         (.content-view.canvas-overview .content-view.canvas > header .subtitle::before):
3297         Switch to literal em dash. Surrounding spaces were ignored when using
3298         the backslash-escaped character.
3299
3300         (.content-view.canvas-overview .content-view.canvas:not(:hover, .is-recording, .selected) > header > .navigation-bar):
3301         (.content-view.canvas-overview .content-view.canvas > footer > .recordings):
3302         (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
3303         (.content-view.canvas-overview .content-view.canvas > footer > .recordings > select):
3304         (.content-view.canvas-overview .content-view.canvas > footer .recordings > select:focus):
3305         (.content-view.canvas-overview .content-view.canvas > footer > .flexible-space):
3306         (.popover-content > .tree-outline .item.recording > .icon):
3307         (.popover-content > .tree-outline .item.recording:hover):
3308         (.popover-content > .tree-outline .item.recording:hover > .icon):
3309         (.content-view.canvas-overview .content-view.canvas:not(:hover, .is-recording) > header > .navigation-bar): Deleted.
3310         (.content-view.canvas-overview .content-view.canvas > footer): Deleted.
3311         New styles for the recording picker.
3312
3313         * UserInterface/Views/CanvasOverviewContentView.js:
3314         (WI.CanvasOverviewContentView):
3315         (WI.CanvasOverviewContentView.prototype.get selectionPathComponents):
3316         (WI.CanvasOverviewContentView.prototype.contentViewAdded):
3317         (WI.CanvasOverviewContentView.prototype.contentViewRemoved):
3318         (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange):
3319         (WI.CanvasOverviewContentView.prototype._selectedPathComponentChanged): Deleted.
3320         (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange.createCanvasPathComponent): Deleted.
3321         Canvas tree elements are now managed by CanvasTabContentView, which is
3322         now responsible for maintaining the tree of canvas objects. For now the
3323         tree holds canvases and recordings, but will eventually include shader programs.