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