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