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