Web Inspector: Network: detail view reverts to "Response" when new requests are added
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2018-10-11  Devin Rousso  <drousso@apple.com>
2
3         Web Inspector: Network: detail view reverts to "Response" when new requests are added
4         https://bugs.webkit.org/show_bug.cgi?id=190443
5
6         Reviewed by Joseph Pecoraro.
7
8         * UserInterface/Views/NetworkTableContentView.js:
9         (WI.NetworkTableContentView.prototype._showDetailView):
10         Return early if we are already showing a detail view for the selected object.
11
12 2018-10-11  Matt Baker  <mattbaker@apple.com>
13
14         Web Inspector: remove unused  TreeOutline style .force-focus
15         https://bugs.webkit.org/show_bug.cgi?id=190480
16         <rdar://problem/45203484>
17
18         Reviewed by Joseph Pecoraro.
19
20         * UserInterface/Views/CallFrameTreeElement.css:
21         (.tree-outline:focus .item.call-frame.selected .status > .status-image):
22         (.tree-outline:matches(:focus, .force-focus) .item.call-frame.selected .status > .status-image): Deleted.
23
24         * UserInterface/Views/CanvasSidebarPanel.css:
25         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:focus .item.processing.selected .subtitle > progress):
26         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:matches(:focus, .force-focus) .item.processing.selected .subtitle > progress): Deleted.
27
28         * UserInterface/Views/DataGrid.css:
29         (body[dir=ltr] .data-grid:focus tr.selected td:not(:last-child)):
30         (body[dir=rtl] .data-grid:focus tr.selected td:not(:last-child)):
31         (.data-grid:focus tr.parent.selected td.disclosure::before):
32         (.data-grid:focus tr.parent.expanded.selected td.disclosure::before):
33         (.data-grid:focus tr.selected):
34         (.data-grid:focus tr.selected td .subtitle):
35         (body:not(.window-inactive, .window-docked-inactive) .data-grid:focus tr.editable.selected .cell-content > input):
36         (@media (prefers-dark-interface)):
37         (body[dir=ltr] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): Deleted.
38         (body[dir=rtl] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): Deleted.
39         (.data-grid:matches(:focus, .force-focus) tr.parent.selected td.disclosure::before): Deleted.
40         (.data-grid:matches(:focus, .force-focus) tr.parent.expanded.selected td.disclosure::before): Deleted.
41         (.data-grid:matches(:focus, .force-focus) tr.selected): Deleted.
42         (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle): Deleted.
43         (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input): Deleted.
44
45         * UserInterface/Views/Main.css:
46         (:focus .selected .go-to-arrow):
47         (:focus .selected .go-to-arrow:active):
48         (:matches(:focus, .force-focus) .selected .go-to-arrow): Deleted.
49         (:matches(:focus, .force-focus) .selected .go-to-arrow:active): Deleted.
50
51         * UserInterface/Views/ProfileView.css:
52         (.profile > .data-grid:focus tr.selected td .location):
53         (.profile > .data-grid:matches(:focus, .force-focus) tr.selected td .location): Deleted.
54
55         * UserInterface/Views/RecordingActionTreeElement.css:
56         (.tree-outline:focus .item.action.selected:not(.initial-state, .invalid) > .icon):
57         (body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus .item.action.selected > .titles .parameter.swizzled,):
58         (.tree-outline:matches(:focus, .force-focus) .item.action.selected:not(.initial-state, .invalid) > .icon): Deleted.
59         (body:not(.window-inactive, .window-docked-inactive) .tree-outline:matches(:focus, .force-focus) .item.action.selected > .titles .parameter.swizzled,): Deleted.
60
61         * UserInterface/Views/ScriptDetailsTimelineView.css:
62         (.tree-outline:focus .item.selected .alternate-subtitle):
63         (.tree-outline:matches(:focus, .force-focus) .item.selected .alternate-subtitle): Deleted.
64
65         * UserInterface/Views/ShaderProgramTreeElement.css:
66         (.tree-outline:focus .item.shader-program.selected .status > img):
67         (.tree-outline:matches(:focus, .force-focus) .item.shader-program.selected .status > img): Deleted.
68
69         * UserInterface/Views/ThreadTreeElement.css:
70         (.tree-outline:focus > .item.thread.selected .status-button.resume):
71         (.tree-outline:matches(:focus, .force-focus) > .item.thread.selected .status-button.resume): Deleted.
72
73         * UserInterface/Views/TimelineRecordBar.css:
74         (:focus .selected .timeline-record-bar > .segment):
75         (:focus .selected .timeline-record-bar > .segment.inactive):
76         (body[dir=ltr] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
77         (body[dir=rtl] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
78         (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment): Deleted.
79         (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment.inactive): Deleted.
80         (body[dir=ltr] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
81         (body[dir=rtl] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
82
83         * UserInterface/Views/TreeElementStatusButton.css:
84         (:focus .item.selected > .status > .status-button):
85         (:matches(:focus, .force-focus) .item.selected > .status > .status-button): Deleted.
86
87         * UserInterface/Views/TreeOutline.css:
88         (.tree-outline:focus .item.selected .disclosure-button):
89         (.tree-outline:focus .item.selected.expanded .disclosure-button):
90         (.tree-outline:focus .item.selected):
91         (.tree-outline:focus .item.selected .subtitle):
92         (.tree-outline:not(.large):focus .item.selected .status .indeterminate-progress-spinner):
93         (.tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button): Deleted.
94         (.tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button): Deleted.
95         (.tree-outline:matches(:focus, .force-focus) .item.selected): Deleted.
96         (.tree-outline:matches(:focus, .force-focus) .item.selected .subtitle): Deleted.
97         (.tree-outline:not(.large):matches(:focus, .force-focus) .item.selected .status .indeterminate-progress-spinner): Deleted.
98
99 2018-10-11  Devin Rousso  <drousso@apple.com>
100
101         Web Inspector: detail view is not re-shown after sorting the Network table
102         https://bugs.webkit.org/show_bug.cgi?id=190330
103         <rdar://problem/45089607>
104
105         Reviewed by Matt Baker.
106
107         * UserInterface/Views/NetworkTableContentView.js:
108         (WI.NetworkTableContentView.prototype._restoreSelectedRow):
109
110 2018-10-10  Devin Rousso  <drousso@apple.com>
111
112         Web Inspector: create special Network waterfall for media events
113         https://bugs.webkit.org/show_bug.cgi?id=189773
114         <rdar://problem/44626605>
115
116         Reviewed by Joseph Pecoraro.
117
118         * Localizations/en.lproj/localizedStrings.js:
119         * UserInterface/Main.html:
120         * UserInterface/Base/Utilities.js:
121
122         * UserInterface/Protocol/DOMObserver.js:
123         (WI.DOMObserver.prototype.didFireEvent): Added.
124         * UserInterface/Controllers/DOMManager.js:
125         (WI.DOMManager.prototype.didFireEvent): Added.
126         * UserInterface/Models/DOMNode.js:
127         (WI.DOMNode):
128         (WI.DOMNode.prototype.get domEvents): Added.
129         (WI.DOMNode.prototype.didFireEvent): Added.
130         (WI.DOMNode.prototype._addDOMEvent): Added.
131
132         * UserInterface/Views/NetworkTableContentView.js:
133         (WI.NetworkTableContentView):
134         (WI.NetworkTableContentView.prototype.shown):
135         (WI.NetworkTableContentView.prototype.hidden):
136         (WI.NetworkTableContentView.prototype.closed):
137         (WI.NetworkTableContentView.prototype.reset):
138         (WI.NetworkTableContentView.prototype.showRepresentedObject):
139         (WI.NetworkTableContentView.prototype.networkDetailViewClose): Added.
140         (WI.NetworkTableContentView.prototype.tableSortChanged):
141         (WI.NetworkTableContentView.prototype.tableSelectionDidChange):
142         (WI.NetworkTableContentView.prototype._populateNameCell):
143         (WI.NetworkTableContentView.prototype._populateWaterfallGraph.positionByStartOffset): Added.
144         (WI.NetworkTableContentView.prototype._populateWaterfallGraph.setWidthForDuration): Added.
145         (WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine): Added.
146         (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock):
147         (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
148         (WI.NetworkTableContentView.prototype._processPendingEntries):
149         (WI.NetworkTableContentView.prototype._rowIndexForRepresentedObject): Added.
150         (WI.NetworkTableContentView.prototype._updateEntryForResource):
151         (WI.NetworkTableContentView.prototype._hideDetailView): Added.
152         (WI.NetworkTableContentView.prototype._showDetailView): Added.
153         (WI.NetworkTableContentView.prototype._positionDetailView): Added.
154         (WI.NetworkTableContentView.prototype._resourceTransferSizeDidChange):
155         (WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode):
156         (WI.NetworkTableContentView.prototype._handleNodeDidFireEvent): Added.
157         (WI.NetworkTableContentView.prototype._updateFilteredEntries):
158         (WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged):
159         (WI.NetworkTableContentView.prototype._urlFilterDidChange):
160         (WI.NetworkTableContentView.prototype._restoreSelectedRow):
161         (WI.NetworkTableContentView.prototype._waterfallPopoverContent): Added.
162         (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResourceEntry): Added.
163         (WI.NetworkTableContentView.prototype._waterfallPopoverContentForNodeEntry): Added.
164         (WI.NetworkTableContentView.prototype._handleResourceEntryMousedownWaterfall): Added.
165         (WI.NetworkTableContentView.prototype._handleNodeEntryMousedownWaterfall): Added.
166         (WI.NetworkTableContentView.prototype._handleMousedownWaterfall): Added.
167         (WI.NetworkTableContentView.prototype.networkResourceDetailViewClose): Deleted.
168         (WI.NetworkTableContentView.prototype._rowIndexForResource): Deleted.
169         (WI.NetworkTableContentView.prototype._hideResourceDetailView): Deleted.
170         (WI.NetworkTableContentView.prototype._showResourceDetailView): Deleted.
171         (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource): Deleted.
172         * UserInterface/Views/NetworkTableContentView.css:
173         (.content-view.network .network-table): Added.
174         (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-event): Added.
175         (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-activity): Added.
176         (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-activity.playing): Added.
177
178         * UserInterface/Views/NetworkDOMNodeDetailView.js: Added.
179         (WI.NetworkDOMNodeDetailView):
180         (WI.NetworkDOMNodeDetailView.prototype.initialLayout):
181         (WI.NetworkDOMNodeDetailView.prototype.showContentViewForIdentifier):
182
183         * UserInterface/Views/NetworkResourceDetailView.css:
184         (.content-view.resource-details):
185         (.network-resource-detail): Deleted.
186         (.network-resource-detail .navigation-bar): Deleted.
187         (.network-resource-detail .item.close > .glyph): Deleted.
188         (.network-resource-detail .item.close > .glyph:hover): Deleted.
189         (.network-resource-detail .item.close > .glyph:active): Deleted.
190         (.network .network-resource-detail .navigation-bar .item.radio.button.text-only): Deleted.
191         (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected): Deleted.
192         (.network-resource-detail > .content-browser): Deleted.
193         (@media (prefers-dark-interface)): Deleted.
194         * UserInterface/Views/NetworkResourceDetailView.js:
195         (WI.NetworkResourceDetailView):
196         (WI.NetworkResourceDetailView.prototype.shown):
197         (WI.NetworkResourceDetailView.prototype.headersContentViewGoToRequestData):
198         (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToHeaders):
199         (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToRequestBody):
200         (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToResponseBody):
201         (WI.NetworkResourceDetailView.prototype.initialLayout):
202         (WI.NetworkResourceDetailView.prototype.showContentViewForIdentifier):
203         (WI.NetworkResourceDetailView.prototype.get resource): Deleted.
204         (WI.NetworkResourceDetailView.prototype.hidden): Deleted.
205         (WI.NetworkResourceDetailView.prototype.dispose): Deleted.
206         (WI.NetworkResourceDetailView.prototype.willShowWithCookie): Deleted.
207         (WI.NetworkResourceDetailView.prototype.initialLayout): Deleted.
208         (WI.NetworkResourceDetailView.prototype._showPreferredContentView): Deleted.
209         (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem): Deleted.
210         (WI.NetworkResourceDetailView.prototype._navigationItemSelected): Deleted.
211         (WI.NetworkResourceDetailView.prototype._handleCloseButton): Deleted.
212
213         * UserInterface/Views/NetworkDetailView.js: Added.
214         (WI.NetworkDetailView):
215         (WI.NetworkDetailView.prototype.get representedObject):
216         (WI.NetworkDetailView.prototype.shown):
217         (WI.NetworkDetailView.prototype.hidden):
218         (WI.NetworkDetailView.prototype.dispose):
219         (WI.NetworkDetailView.prototype.willShowWithCookie):
220         (WI.NetworkDetailView.prototype.initialLayout):
221         (WI.NetworkDetailView.prototype.createDetailNavigationItem):
222         (WI.NetworkDetailView.prototype.detailNavigationItemForIdentifier):
223         (WI.NetworkDetailView.prototype.showContentViewForIdentifier):
224         (WI.NetworkDetailView.prototype._showPreferredContentView):
225         (WI.NetworkDetailView.prototype._navigationItemSelected):
226         (WI.NetworkDetailView.prototype._handleCloseButton):
227         * UserInterface/Views/NetworkDetailView.css: Added.
228         (.network-detail):
229         (.network-detail .navigation-bar):
230         (.network-detail .item.close > .glyph):
231         (.network-detail .item.close > .glyph:hover):
232         (.network-detail .item.close > .glyph:active):
233         (.network .network-detail .navigation-bar .item.radio.button.text-only):
234         (.network .network-detail .navigation-bar .item.radio.button.text-only.selected):
235         (.network-detail > .content-browser):
236         (@media (prefers-dark-interface)):
237         Create base class for detail views shown in the Network tab.
238
239         * UserInterface/Views/DOMNodeEventsContentView.js: Added.
240         (WI.DOMNodeEventsContentView):
241         (WI.DOMNodeEventsContentView.prototype.initialLayout):
242         (WI.DOMNodeEventsContentView.prototype.closed):
243         (WI.DOMNodeEventsContentView.prototype._handleDOMNodeDidFireEvent):
244         * UserInterface/Views/DOMNodeEventsContentView.css: Added.
245         (.dom-node-details.dom-events):
246
247         * UserInterface/Views/DOMEventsBreakdownView.js: Added.
248         (WI.DOMEventsBreakdownView):
249         (WI.DOMEventsBreakdownView.prototype.addEvent):
250         (WI.DOMEventsBreakdownView.prototype.initialLayout):
251         (WI.DOMEventsBreakdownView.prototype._populateTable.percentOfTotalTime):
252         (WI.DOMEventsBreakdownView.prototype._populateTable):
253         * UserInterface/Views/DOMEventsBreakdownView.css: Added.
254         (.waterfall-popover-content .dom-events-breakdown):
255         (.dom-events-breakdown):
256         (.dom-events-breakdown table):
257         (.dom-events-breakdown tr > :matches(th, td)):
258         (.dom-events-breakdown tbody > tr):
259         (.dom-events-breakdown .graph):
260         (.dom-events-breakdown .graph > :matches(.point, .area)):
261         (.dom-events-breakdown .graph > .point):
262         (.dom-events-breakdown .time):
263
264         * UserInterface/Views/ResourceTimingBreakdownView.css:
265         (.resource-timing-breakdown > table > tr.header:not(.total-row) > td): Added.
266         (.popover.waterfall-popover): Deleted.
267
268 2018-10-10  Devin Rousso  <drousso@apple.com>
269
270         Web Inspector: REGRESSION(r236853): Uncaught Exception: undefined is not an object (evaluating 'entry.resource')
271         https://bugs.webkit.org/show_bug.cgi?id=190442
272
273         Reviewed by Joseph Pecoraro.
274
275         * UserInterface/Views/NetworkTableContentView.js:
276         (WI.NetworkTableContentView.prototype.reset):
277         It's unnecessary to deselect rows in the `WI.Table` when we're about to remove them.
278
279 2018-10-10  Devin Rousso  <drousso@apple.com>
280
281         Web Inspector: REGRESSION: selection in network table is lost when new entries are added
282         https://bugs.webkit.org/show_bug.cgi?id=190362
283
284         Reviewed by Matt Baker.
285
286         The `_selectedRows` list is cleared each time `reloadData` is called, meaning that
287         `WI.Table` expects its "owner" to restore the selection (since it doesn't know how). As a
288         result, `WI.NetworkTableContentView` needs to call `selectRow` _after_ `reloadData` is
289         called, not before.
290
291         * UserInterface/Views/NetworkTableContentView.js:
292         (WI.NetworkTableContentView.prototype.tableSortChanged):
293         (WI.NetworkTableContentView.prototype._populateNameCell):
294         (WI.NetworkTableContentView.prototype._processPendingEntries):
295         (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
296         (WI.NetworkTableContentView.prototype._updateSort): Added.
297         (WI.NetworkTableContentView.prototype._updateFilteredEntries):
298         (WI.NetworkTableContentView.prototype._reloadTable): Added.
299         (WI.NetworkTableContentView.prototype._resetFilters):
300         (WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged):
301         (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):
302         (WI.NetworkTableContentView.prototype._urlFilterDidChange):
303         (WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries): Deleted.
304
305         * UserInterface/Views/Table.js:
306         (WI.Table.prototype.reloadData):
307         Ensure that the `_selectedRowIndex` is also reset.
308
309 2018-10-10  Devin Rousso  <drousso@apple.com>
310
311         Web Inspector: notify the frontend when a canvas has started recording via console.record
312         https://bugs.webkit.org/show_bug.cgi?id=190306
313
314         Reviewed by Brian Burg.
315
316         * UserInterface/Protocol/CanvasObserver.js:
317         (WI.CanvasObserver.prototype.recordingStarted): Added.
318
319         * UserInterface/Protocol/CanvasManager.js:
320         (WI.CanvasManager.prototype.recordingStarted): Added.
321
322         * UserInterface/Models/Canvas.js:
323         (WI.Canvas.prototype.startRecording):
324         (WI.Canvas.prototype.recordingStarted): Added.
325         (WI.Canvas.prototype.recordingFinished):
326
327 2018-10-10  Devin Rousso  <drousso@apple.com>
328
329         Web Inspector: indent all network entries when "Group by Node" is checked
330         https://bugs.webkit.org/show_bug.cgi?id=190388
331
332         Reviewed by Timothy Hatcher.
333
334         * UserInterface/Views/NetworkTableContentView.js:
335         (WI.NetworkTableContentView.prototype._populateNameCell):
336         (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):
337
338         * UserInterface/Views/NetworkTableContentView.css:
339         (.network-table.grouped .data-container .cell.name): Added.
340         (.network-table.grouped .data-container .cell:not(.parent).name): Added.
341         (.network-table.grouped .data-container .cell.child.name): Added.
342         (.network-table .cell.grouped-by-node.name): Deleted.
343         (body[dir=ltr] .network-table .cell.grouped-by-node.name): Deleted.
344         (body[dir=rtl] .network-table .cell.grouped-by-node.name): Deleted.
345         Apply a padding to all nodes when the `WI.Table` is grouped.
346
347 2018-10-09  Devin Rousso  <drousso@apple.com>
348
349         Web Inspector: show redirect requests in Network and Timelines tabs
350         https://bugs.webkit.org/show_bug.cgi?id=150005
351         <rdar://problem/5378164>
352
353         Reviewed by Joseph Pecoraro.
354
355         * Localizations/en.lproj/localizedStrings.js:
356         * UserInterface/Views/Variables.css:
357         * UserInterface/Main.html:
358         * UserInterface/Test.html:
359
360         * UserInterface/Controllers/NetworkManager.js:
361         (WI.NetworkManager.prototype.resourceRequestWillBeSent):
362
363         * UserInterface/Models/Resource.js:
364         (WI.Resource):
365         (WI.Resource.prototype.get redirects): Added.
366         (WI.Resource.prototype.get lastRedirectReceivedTimestamp):
367         (WI.Resource.prototype.updateForRedirectResponse):
368         Save each redirect in an array instead of just remembering the last timestamp.
369
370         * UserInterface/Models/ResourceTimingData.js:
371         (WI.ResourceTimingData):
372         (WI.ResourceTimingData.fromPayload.offsetToTimestamp):
373         (WI.ResourceTimingData.fromPayload):
374         (WI.ResourceTimingData.prototype.get redirectStart): Added.
375         (WI.ResourceTimingData.prototype.get redirectEnd): Added.
376         (WI.ResourceTimingData.prototype.get fetchStart): Added.
377         Add missing fields for `Network.types.ResourceTiming`.
378
379         * UserInterface/Models/Redirect.js: Added.
380         (WI.Redirect):
381         (WI.Redirect.prototype.get url):
382         (WI.Redirect.prototype.get requestMethod):
383         (WI.Redirect.prototype.get requestHeaders):
384         (WI.Redirect.prototype.get responseStatusCode):
385         (WI.Redirect.prototype.get responseStatusText):
386         (WI.Redirect.prototype.get responseHeaders):
387         (WI.Redirect.prototype.get timestamp):
388         (WI.Redirect.prototype.get urlComponents):
389
390         * UserInterface/Views/ResourceHeadersContentView.js:
391         (WI.ResourceHeadersContentView):
392         (WI.ResourceHeadersContentView.prototype.initialLayout):
393         (WI.ResourceHeadersContentView.prototype.layout):
394         (WI.ResourceHeadersContentView.prototype._refreshRedirectHeadersSections): Added.
395         (WI.ResourceHeadersContentView.prototype._resourceRequestHeadersDidChange):
396         * UserInterface/Views/ResourceHeadersContentView.css:
397         (body[dir] .resource-headers > section.summary > .details): Added.
398         (body[dir] .resource-headers > section:matches(.redirect, .headers) > .details): Added.
399         (.resource-headers .details .key):
400         (.resource-headers .summary .key):
401         (body[dir] .resource-headers > section > .details): Deleted.
402         (body[dir] .resource-headers > section.headers > .details): Deleted.
403         (.resource-headers .value): Deleted.
404         Add a request/response header section for each redirect.
405
406         * UserInterface/Views/NetworkTableContentView.js:
407         (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock):
408         (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
409         (WI.NetworkTableContentView.prototype._checkURLFilterAgainstResource):
410         (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
411         * UserInterface/Views/NetworkTableContentView.css:
412         (.waterfall .block.redirect): Added.
413         (.waterfall .block.queue):
414         * UserInterface/Views/ResourceTimelineDataGridNode.js:
415         (WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar):
416         * UserInterface/Views/ResourceTimingBreakdownView.js:
417         (WI.ResourceTimingBreakdownView.prototype.initialLayout):
418         Add timeline/waterfall entries for total redirect time.
419
420 2018-10-09  Devin Rousso  <drousso@apple.com>
421
422         Web Inspector: Canvas Tab: grayed out Record button in navigator is nearly invisible
423         https://bugs.webkit.org/show_bug.cgi?id=190365
424         <rdar://problem/45097739>
425
426         Reviewed by Brian Burg.
427
428         * UserInterface/Views/CanvasSidebarPanel.css:
429         (@media (prefers-dark-interface)): Added.
430         (.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled): Added.
431
432 2018-10-09  Devin Rousso  <drousso@apple.com>
433
434         Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954
435         https://bugs.webkit.org/show_bug.cgi?id=190403
436
437         Reviewed by Joseph Pecoraro.
438
439         * UserInterface/Controllers/CanvasManager.js:
440         (WI.CanvasManager.prototype._removeCanvas):
441         Clear the `shaderProgramCollection` when a `WI.Canvas` is removed so that a remove event is
442         fired for each `WI.ShaderProgram`.
443
444 2018-10-08  Justin Fan  <justin_fan@apple.com>
445
446         WebGPU: Rename old WebGPU prototype to WebMetal
447         https://bugs.webkit.org/show_bug.cgi?id=190325
448         <rdar://problem/44990443>
449
450         Reviewed by Dean Jackson.
451
452         Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.
453         For WebInspector, add WebMetal to valid enums for canvas types.
454
455         * UserInterface/Models/Canvas.js:
456         (WI.Canvas.fromPayload):
457         (WI.Canvas.displayNameForContextType):
458
459 2018-10-08  Devin Rousso  <drousso@apple.com>
460
461         Web Inspector: Dark Mode: canvas recording glyph is black on gray
462         https://bugs.webkit.org/show_bug.cgi?id=190367
463         <rdar://problem/45099304>
464
465         Reviewed by Joseph Pecoraro.
466
467         * UserInterface/Views/CanvasOverviewContentView.css:
468         (.content-view.canvas-overview .content-view.canvas > footer .view-recording): Added.
469         (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): Deleted.
470
471 2018-10-08  Devin Rousso  <drousso@apple.com>
472
473         Web Inspector: allow multiple canvases to be recorded at the same time
474         https://bugs.webkit.org/show_bug.cgi?id=190305
475
476         Reviewed by Brian Burg.
477
478         Moved the logic for maintaining whether a canvas is actively recording from
479         `WI.CanvasManager` to `WI.Canvas`, meaning that each canvas can now record independently of
480         every other canvas in the page. If multiple recordings are all finished simultaneously, only
481         show the first one to be recieved by the frontend.
482
483         * UserInterface/Controllers/CanvasManager.js:
484         (WI.CanvasManager):
485         (WI.CanvasManager.prototype.recordingProgress):
486         (WI.CanvasManager.prototype.recordingFinished):
487         (WI.CanvasManager.prototype.programCreated):
488         (WI.CanvasManager.prototype.programDeleted):
489         (WI.CanvasManager.prototype._removeCanvas):
490         (WI.CanvasManager.prototype._mainResourceDidChange):
491         (WI.CanvasManager.prototype.get recordingCanvas): Deleted.
492         (WI.CanvasManager.prototype.startRecording): Deleted.
493         (WI.CanvasManager.prototype.stopRecording): Deleted.
494         (WI.CanvasManager.prototype._dispatchShaderProgramRemoved): Deleted.
495
496         * UserInterface/Models/Canvas.js:
497         (WI.Canvas.prototype.get recordingFrameCount): Added.
498         (WI.Canvas.prototype.get recordingBufferUsed): Added.
499         (WI.Canvas.prototype.get recordingActive): Added.
500         (WI.Canvas.prototype.get isRecording): Deleted.
501         (WI.Canvas.prototype.startRecording): Added.
502         (WI.Canvas.prototype.stopRecording): Added.
503         (WI.Canvas.prototype.recordingProgress): Added.
504         (WI.Canvas.prototype.recordingFinished): Added.
505
506         * UserInterface/Views/CanvasTabContentView.js:
507         (WI.CanvasTabContentView.prototype.attached):
508         (WI.CanvasTabContentView.prototype.detached):
509         (WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
510         (WI.CanvasTabContentView.prototype._handleSpace):
511         (WI.CanvasTabContentView):
512
513         * UserInterface/Views/CanvasOverviewContentView.css:
514         (.content-view.canvas-overview .content-view.canvas.recording-active): Added.
515         (.content-view.canvas-overview .content-view.canvas.recording-active > header): Added.
516         (.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .title): Added.
517         (.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .subtitle): Added.
518         (.content-view.canvas-overview .content-view.canvas.recording-active > header > .navigation-bar > .item): Added.
519         (.content-view.canvas-overview .content-view.canvas:matches(:hover, .recording-active) > header > .navigation-bar): Added.
520         (.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop.disabled): Added.
521         (.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop:not(.disabled):hover): Added.
522         (.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop:not(.disabled):active): Added.
523         (.content-view.canvas-overview .content-view.canvas.recording-active > .progress-vie): Added.
524         (.content-view.canvas-overview .content-view.canvas.recording-active > .preview): Added.
525         (.content-view.canvas-overview .content-view.canvas.recording-active): Added.
526         (.content-view.canvas-overview .content-view.canvas.recording-active > header): Added.
527         (.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .subtitle): Added.
528         (.content-view.canvas-overview .content-view.canvas.is-recording): Deleted.
529         (.content-view.canvas-overview .content-view.canvas.is-recording > header): Deleted.
530         (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .title): Deleted.
531         (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): Deleted.
532         (.content-view.canvas-overview .content-view.canvas.is-recording > header > .navigation-bar > .item): Deleted.
533         (.content-view.canvas-overview .content-view.canvas:matches(:hover, .is-recording) > header > .navigation-bar): Deleted.
534         (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop.disabled): Deleted.
535         (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop:not(.disabled):hover): Deleted.
536         (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop:not(.disabled):active): Deleted.
537         (.content-view.canvas-overview .content-view.canvas.is-recording > .progress-vie): Deleted.
538         (.content-view.canvas-overview .content-view.canvas.is-recording > .preview): Deleted.
539         (.content-view.canvas-overview .content-view.canvas.is-recording): Deleted.
540         (.content-view.canvas-overview .content-view.canvas.is-recording > header): Deleted.
541         (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): Deleted.
542
543         * UserInterface/Views/CanvasContentView.js:
544         (WI.CanvasContentView.prototype.attached):
545         (WI.CanvasContentView.prototype.detached):
546         (WI.CanvasContentView.prototype._toggleRecording):
547         (WI.CanvasContentView.prototype._recordingProgress):
548         (WI.CanvasContentView.prototype._recordingStopped):
549         (WI.CanvasContentView.prototype._shaderProgramAdded):
550         (WI.CanvasContentView.prototype._shaderProgramRemoved):
551         (WI.CanvasContentView.prototype._updateRecordNavigationItem):
552         (WI.CanvasContentView.prototype._updateProgressView):
553
554         * UserInterface/Views/CanvasSidebarPanel.js:
555         (WI.CanvasSidebarPanel):
556         (WI.CanvasSidebarPanel.prototype.set canvas):
557         (WI.CanvasSidebarPanel.prototype._toggleRecording):
558         (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):
559
560         * UserInterface/Views/CanvasTreeElement.js:
561         (WI.CanvasTreeElement):
562         (WI.CanvasTreeElement.prototype._updateStatus):
563
564 2018-10-08  Devin Rousso  <drousso@apple.com>
565
566         Web Inspector: replace Range.svg icon
567         https://bugs.webkit.org/show_bug.cgi?id=190372
568
569         Reviewed by Joseph Pecoraro.
570
571         * UserInterface/Images/Range.svg:
572         * UserInterface/Images/RangeLarge.svg: Added.
573
574         * UserInterface/Models/Resource.js:
575         (WI.Resource.classNameForResource): Added.
576         Create a static function for specializing the `className` of `WI.Resource` objects.
577
578         * UserInterface/Views/NetworkTableContentView.js:
579         (WI.NetworkTableContentView.prototype._populateNameCell):
580
581         * UserInterface/Views/ResourceTreeElement.js:
582         (WI.ResourceTreeElement):
583
584         * UserInterface/Views/ResourceIcons.css:
585         (.resource-icon.resource-type-ping .icon, .resource-icon.resource-type-beacon .icon, .large .resource-icon.resource-type-ping .icon, .large .resource-icon.resource-type-beacon .icon):
586         (.resource-icon.resource-type-range .icon):
587         (.large .resource-icon.resource-type-range .icon): Added.
588         Drive-by: added `.large` versions of `ping` and `beacon` icons for the
589         `WI.OpenResourceDialog` elements.
590
591 2018-10-08  Devin Rousso  <drousso@apple.com>
592
593         Web Inspector: group media network entries by the node that triggered the request
594         https://bugs.webkit.org/show_bug.cgi?id=189606
595         <rdar://problem/44438527>
596
597         Reviewed by Brian Burg.
598
599         Introduces a `WI.NavigationItem` for changing whether network entries are grouped by the
600         node that initiated the load (if applicable). When grouped by node, a tree-like layout of
601         the table cells (including expand/collapse) is used for resources that share the same
602         initiator node. The values for the node's cell are based on it's initated resources.
603
604         * Localizations/en.lproj/localizedStrings.js:
605         * UserInterface/Base/Setting.js:
606
607         * UserInterface/Controllers/DOMManager.js:
608         (WI.DOMManager):
609         (WI.DOMManager.prototype._mainResourceDidChange): Added.
610         Whenever the frame navigates, re-request the document so that `NetworkAgent` is able to send
611         valid `nodeId` for each request's `initiatorNode`. This means that the document should
612         always be available.
613
614         * UserInterface/Views/NetworkTableContentView.js:
615         (WI.NetworkTableContentView):
616         (WI.NetworkTableContentView.prototype.get filterNavigationItems):
617         (WI.NetworkTableContentView.prototype.closed):
618         (WI.NetworkTableContentView.prototype.reset):
619         (WI.NetworkTableContentView.prototype.tableSortChanged):
620         (WI.NetworkTableContentView.prototype.tableSelectedRowChanged):
621         (WI.NetworkTableContentView.prototype.tablePopulateCell):
622         (WI.NetworkTableContentView.prototype._populateNameCell.createIconElement): Added.
623         (WI.NetworkTableContentView.prototype._populateNameCell):
624         (WI.NetworkTableContentView.prototype._populateDomainCell.createIconAndText): Added.
625         (WI.NetworkTableContentView.prototype._populateDomainCell):
626         (WI.NetworkTableContentView.prototype._populateInitiatorCell):
627         (WI.NetworkTableContentView.prototype._populateTransferSizeCell):
628         (WI.NetworkTableContentView.prototype._generateSortComparator):
629         (WI.NetworkTableContentView.prototype._processPendingEntries):
630         (WI.NetworkTableContentView.prototype._updateEntryForResource.updateExistingEntry): Added.
631         (WI.NetworkTableContentView.prototype._updateEntryForResource):
632         (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
633         (WI.NetworkTableContentView.prototype._entryForDOMNode): Added.
634         (WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode): Added.
635         (WI.NetworkTableContentView.prototype._uniqueValuesForDOMNodeEntry): Added.
636         (WI.NetworkTableContentView.prototype._updateFilteredEntries):
637         (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): Added.
638         * UserInterface/Views/NetworkTableContentView.css:
639         (.network-table .cell.dom-node.name .icon): Added.
640         (.network-table .cell.dom-node.name .disclosure): Added.
641         (body[dir=rtl] .network-table .cell.dom-node.name .disclosure): Added.
642         (.network-table:focus li.selected .cell.dom-node.name .disclosure): Added.
643         (.network-table .cell.dom-node.name .disclosure.expanded): Added.
644         (.network-table:focus li.selected .cell.node.name .disclosure.expanded): Added.
645         (.network-table .cell.grouped-by-node.name): Added.
646         (body[dir=ltr] .network-table .cell.grouped-by-node.name): Added.
647         (body[dir=rtl] .network-table .cell.grouped-by-node.name): Added.
648         (.network-table li:not(.selected) .cell:matches(.cache-type, .multiple)): Added.
649         (.network-table li.selected .cell.domain > .lock): Added.
650         (.network-table .cache-type): Deleted.
651         When two resources are added that share the same `initiatorNode`, insert a node entry into
652         the `WI.Table` before the first resource entry for that node (based on the current sort).
653         This node entry is added after the resource entries are filtered, so they won't appear in
654         the default entries list.
655
656         * UserInterface/Models/Resource.js:
657         (WI.Resource):
658         (WI.Resource.prototype.initiatorNode): Added.
659         (WI.Resource.prototype.requestedByteRange): Added.
660         * UserInterface/Controllers/NetworkManager.js:
661         (WI.NetworkManager.prototype.resourceRequestWillBeSent):
662         (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
663         (WI.NetworkManager.prototype._initiatorNodeFromPayload): Added.
664
665         * UserInterface/Images/Range.svg: Added.
666         * UserInterface/Views/ResourceIcons.css:
667         (.resource-icon.resource-type-range .icon): Added.
668
669 2018-10-08  Devin Rousso  <drousso@apple.com>
670
671         Web Inspector: clicking initiator link in Network Tab table doesn't automatically switch to Preview section
672         https://bugs.webkit.org/show_bug.cgi?id=190286
673
674         Reviewed by Brian Burg.
675
676         * UserInterface/Views/NetworkResourceDetailView.js:
677         (WI.NetworkResourceDetailView.prototype.shown):
678         (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
679
680 2018-10-08  Devin Rousso  <drousso@apple.com>
681
682         Web Inspector: be more specific as to what types of WI.Collection are allowed for the Resources tab
683         https://bugs.webkit.org/show_bug.cgi?id=190304
684
685         Reviewed by Brian Burg.
686
687         * UserInterface/Base/Main.js:
688         (WI.tabContentViewClassForRepresentedObject):
689         * UserInterface/Views/ResourcesTabContentView.js:
690         (WI.ResourcesTabContentView.prototype.canShowRepresentedObject):
691
692 2018-10-08  Devin Rousso  <drousso@apple.com>
693
694         Web Inspector: Open Resource Dialog should show path to resource (to disambiguate resources with same name)
695         https://bugs.webkit.org/show_bug.cgi?id=178153
696         <rdar://problem/34925686>
697
698         Reviewed by Brian Burg.
699
700         * UserInterface/Views/OpenResourceDialog.js:
701         (WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
702         * UserInterface/Views/OpenResourceDialog.css:
703         (.open-resource-dialog .tree-outline.large .item .titles[data-path]): Added.
704         (.open-resource-dialog .tree-outline.large .item .titles[data-path]::after): Added.
705         (.open-resource-dialog .tree-outline.large .item .titles .title): Added.
706         (.open-resource-dialog .tree-outline.large .item .titles .subtitle): Added.
707         (.open-resource-dialog .tree-outline.large .item .titles): Deleted.
708
709 2018-10-05  Devin Rousso  <drousso@apple.com>
710
711         Web Inspector: add WebVTT MIME/file type mappings to the frontend
712         https://bugs.webkit.org/show_bug.cgi?id=190288
713
714         Reviewed by Brian Burg.
715
716         * UserInterface/Base/MIMETypeUtilities.js:
717         (WI.mimeTypeForFileExtension):
718         (WI.fileExtensionForMIMEType):
719
720         * UserInterface/Views/NetworkTableContentView.js:
721         (WI.NetworkTableContentView.displayNameForResource):
722         Also attempt to use the mime-type-to-extension when the `WI.Resource` is of type `Other`.
723
724 2018-10-05  Devin Rousso  <drousso@apple.com>
725
726         Web Inspector: refactor constructor of WI.Resource
727         https://bugs.webkit.org/show_bug.cgi?id=190318
728
729         Reviewed by Joseph Pecoraro.
730
731         Reworked constructor of `WI.Resource` to use an optional object for any non-essential arguments.
732
733         Drive-by: moved some simple getters to the top of the class to save space.
734
735         * UserInterface/Models/Resource.js:
736         (WI.Resource):
737
738         * UserInterface/Models/SourceMapResource.js:
739         (WI.SourceMapResource):
740
741         * UserInterface/Models/WebSocketResource.js:
742         (WI.WebSocketResource):
743
744         * UserInterface/Controllers/NetworkManager.js:
745         (WI.NetworkManager.prototype.frameDidNavigate):
746         (WI.NetworkManager.prototype.resourceRequestWillBeSent):
747         (WI.NetworkManager.prototype.webSocketWillSendHandshakeRequest):
748         (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
749         (WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):
750         (WI.NetworkManager.prototype._addNewResourceToFrameOrTarget):
751         (WI.NetworkManager.prototype._createFrame):
752         (WI.NetworkManager.prototype._createResource):
753
754 2018-10-05  Devin Rousso  <drousso@apple.com>
755
756         Web Inspector: use iframe's name attribute for FrameTreeElement
757         https://bugs.webkit.org/show_bug.cgi?id=190275
758
759         Reviewed by Joseph Pecoraro.
760
761         * UserInterface/Views/FrameTreeElement.js:
762         (WI.FrameTreeElement.prototype.get mainTitleText): Added.
763
764         * UserInterface/Views/ResourceTreeElement.js:
765         (WI.ResourceTreeElement.prototype.get mainTitleText): Added.
766         (WI.ResourceTreeElement.prototype._updateTitles):
767         Provide a way for subclasses to override what is used for the `mainTitle`.
768
769         * UserInterface/Views/QuickConsole.js:
770         (WI.QuickConsole.prototype._createExecutionContextPathComponentFromFrame):
771         Update the execution context picker to match what `WI.FrameTreeElement`s show.
772
773 2018-10-04  Matt Baker  <mattbaker@apple.com>
774
775         Web Inspector: REGRESSION (r236766): Storage tab no longer updates after main frame navigation
776         https://bugs.webkit.org/show_bug.cgi?id=190298
777
778         Reviewed by Joseph Pecoraro.
779
780         Handle Cleared events from storage managers separately, so that successive
781         events during page load does not cause the Storage tab to destroy newly
782         created tree elements.
783
784         * UserInterface/Views/StorageSidebarPanel.js:
785         (WI.StorageSidebarPanel):
786         (WI.StorageSidebarPanel.prototype._closeContentViewForTreeElement):
787         (WI.StorageSidebarPanel.prototype._domStorageCleared):
788         (WI.StorageSidebarPanel.prototype._applicationCacheCleared):
789         (WI.StorageSidebarPanel.prototype._indexedDatabaseCleared):
790         (WI.StorageSidebarPanel.prototype._databaseCleared):
791         (WI.StorageSidebarPanel.prototype._storageCleared): Deleted.
792
793 2018-10-04  Matt Baker  <mattbaker@apple.com>
794
795         Web Inspector: Table should support multiple selection and Cmd-click behavior
796         https://bugs.webkit.org/show_bug.cgi?id=189705
797         <rdar://problem/44571170>
798
799         Reviewed by Devin Rousso.
800
801         Add multiple row selection to Table, with new methods for programmatic
802         selection (deselectRow, deselectAll), and Command-click support for
803         selecting/deselecting Table rows.
804
805         * UserInterface/Base/IndexSet.js: Added.
806         (WI.IndexSet):
807         (WI.IndexSet.prototype.get size):
808         (WI.IndexSet.prototype.get firstIndex):
809         (WI.IndexSet.prototype.get lastIndex):
810         (WI.IndexSet.prototype.add):
811         (WI.IndexSet.prototype.delete):
812         (WI.IndexSet.prototype.has):
813         (WI.IndexSet.prototype.clear):
814         (WI.IndexSet.prototype.indexGreaterThan):
815         (WI.IndexSet.prototype.indexLessThan):
816         (WI.IndexSet.prototype.Symbol.iterator):
817         (WI.IndexSet.prototype._indexClosestTo):
818         (WI.IndexSet.prototype._validateIndex):
819         Helper container for managing an ordered sequence of unique positive
820         integers, with set semantics, backed by a sorted array. Used by Table,
821         and eventually by TreeOutline.
822
823         * UserInterface/Main.html:
824         * UserInterface/Test.html:
825         * UserInterface/Test/Test.js:
826         New files and stubs to make Table layout tests possible.
827
828         * UserInterface/Views/NetworkTableContentView.js:
829         (WI.NetworkTableContentView.prototype.reset):
830         (WI.NetworkTableContentView.prototype.showRepresentedObject):
831         (WI.NetworkTableContentView.prototype.networkResourceDetailViewClose):
832         (WI.NetworkTableContentView.prototype.tableSelectionDidChange):
833         (WI.NetworkTableContentView.prototype._restoreSelectedRow):
834         (WI.NetworkTableContentView.prototype.tableSelectedRowChanged): Deleted.
835         Replace uses of `clearSelectedRow` with `deselectAll`, and updated
836         selection changed delegate.
837
838         * UserInterface/Views/Table.css:
839         (.table > .data-container > .data-list > li):
840         (.table > .data-container > .data-list > li.selected):
841         (@media (prefers-dark-interface)):
842         (.table,): Deleted.
843         Removed styles that are no longer needed after https://webkit.org/b/189766,
844         and provide a visual separation between adjacent selected rows.
845
846         * UserInterface/Views/Table.js:
847         (WI.Table):
848         (WI.Table.prototype.get selectedRows):
849         (WI.Table.prototype.get allowsMultipleSelection):
850         (WI.Table.prototype.set allowsMultipleSelection):
851         (WI.Table.prototype.reloadData):
852         (WI.Table.prototype.selectRow):
853         (WI.Table.prototype.deselectRow):
854         (WI.Table.prototype.deselectAll):
855         (WI.Table.prototype._getOrCreateRow):
856         (WI.Table.prototype._handleMouseDown):
857         (WI.Table.prototype._deselectAllAndSelect):
858         (WI.Table.prototype._isRowSelected):
859         (WI.Table.prototype._notifySelectionDidChange):
860         (WI.Table.prototype.clearSelectedRow): Deleted.
861         Table now tracks selected rows using an IndexSet. selectRow accepts an
862         optional parameter, `extendSelection`, for adding rows to the selection.
863         _selectedRowIndex is now used to track the most recently selected row.
864         This will be the only selected row unless multiple selection is enabled,
865         in which case it is the row that has the "focus", for purposes of selecting
866         a new row using the up or down arrow keys.
867
868 2018-10-04  Devin Rousso  <drousso@apple.com>
869
870         Web Inspector: REGRESSION(r236540): Uncaught Exception: TypeError: pauseReasonBreakpointTreeElement.removeStatusImage is not a function.
871         https://bugs.webkit.org/show_bug.cgi?id=190230
872
873         Reviewed by Matt Baker.
874
875         * UserInterface/Views/DebuggerSidebarPanel.js:
876         (WI.DebuggerSidebarPanel._removeBreakpoint):
877         Leverage existing `status` getter/setter for creating/removing the breakpoint icon element.
878
879         * UserInterface/Views/BreakpointTreeElement.js:
880         (WI.BreakpointTreeElement):
881         (WI.BreakpointTreeElement.prototype.populateContextMenu):
882         (WI.BreakpointTreeElement.prototype._updateStatus):
883         (WI.BreakpointTreeElement.prototype.removeStatusImage): Deleted.
884
885         * UserInterface/Views/DOMBreakpointTreeElement.js:
886         (WI.DOMBreakpointTreeElement):
887         (WI.DOMBreakpointTreeElement.prototype.onattach):
888         (WI.DOMBreakpointTreeElement.prototype.ondetach):
889         (WI.DOMBreakpointTreeElement.prototype._updateStatus):
890
891         * UserInterface/Views/EventBreakpointTreeElement.js:
892         (WI.EventBreakpointTreeElement):
893         (WI.EventBreakpointTreeElement.prototype.onattach):
894         (WI.EventBreakpointTreeElement.prototype.ondetach):
895         (WI.EventBreakpointTreeElement.prototype._updateStatus):
896
897         * UserInterface/Views/XHRBreakpointTreeElement.js:
898         (WI.XHRBreakpointTreeElement):
899         (WI.XHRBreakpointTreeElement.prototype.onattach):
900         (WI.XHRBreakpointTreeElement.prototype.ondetach):
901         (WI.XHRBreakpointTreeElement.prototype._updateStatus):
902
903 2018-10-04  Dan Bernstein  <mitz@apple.com>
904
905         WebInspectorUI part of [Xcode] Update some build settings as recommended by Xcode 10
906         https://bugs.webkit.org/show_bug.cgi?id=190250
907
908         Reviewed by Andy Estes.
909
910         * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_INFINITE_RECURSION,
911           CLANG_WARN_SUSPICIOUS_MOVE, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, and
912           CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
913
914         * WebInspectorUI.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
915
916 2018-10-04  Devin Rousso  <drousso@apple.com>
917
918         Web Inspector: merge ProbeManager into DebuggerManager
919         https://bugs.webkit.org/show_bug.cgi?id=190225
920
921         Reviewed by Joseph Pecoraro.
922
923         * UserInterface/Main.html:
924         * UserInterface/Base/Main.js:
925         (WI.loaded):
926         * UserInterface/Test.html:
927         * UserInterface/Test/Test.js:
928         (WI.loaded):
929
930         * UserInterface/Controllers/DebuggerManager.js:
931         (WI.DebuggerManager.prototype.get probeSets): Added.
932         (WI.DebuggerManager.prototype.probeForIdentifier): Added.
933         (WI.DebuggerManager.prototype.addBreakpoint):
934         (WI.DebuggerManager.prototype.removeBreakpoint):
935         (WI.DebuggerManager.prototype.didSampleProbe): Added.
936         (WI.DebuggerManager.prototype._handleBreakpointActionsDidChange): Added.
937         (WI.DebuggerManager.prototype._addProbesForBreakpoint): Added.
938         (WI.DebuggerManager.prototype._removeProbesForBreakpoint): Added.
939         (WI.DebuggerManager.prototype._updateProbesForBreakpoint): Added.
940         (WI.DebuggerManager.prototype._probeSetForBreakpoint): Added.
941         * UserInterface/Controllers/ProbeManager.js: Removed.
942
943         * UserInterface/Protocol/DebuggerObserver.js:
944         (WI.DebuggerObserver.prototype.didSampleProbe):
945
946         * UserInterface/Controllers/TimelineManager.js:
947         (WI.TimelineManager.prototype._processRecord):
948
949         * UserInterface/Views/BreakpointTreeElement.js:
950         (WI.BreakpointTreeElement.prototype.onattach):
951
952         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
953         (WI.ProbeDetailsSidebarPanel.prototype.closed):
954         (WI.ProbeDetailsSidebarPanel.prototype.initialLayout):
955
956         * UserInterface/Views/TextResourceContentView.js:
957         (WI.TextResourceContentView):
958         (WI.TextResourceContentView.prototype.get supplementalRepresentedObjects):
959         (WI.TextResourceContentView.prototype.closed):
960
961 2018-10-04  Devin Rousso  <drousso@apple.com>
962
963         Web Inspector: some files not listed in OpenResourceDialog
964         https://bugs.webkit.org/show_bug.cgi?id=190272
965
966         Reviewed by Joseph Pecoraro.
967
968         * UserInterface/Controllers/ResourceQueryController.js:
969         (WI.ResourceQueryController.prototype._findQueryMatches):
970         Allow the `searchIndex` to go past the end of the `searchString` to allow for backtracking
971         if the last character of `searchString` is not found in `query`.
972
973 2018-10-04  Devin Rousso  <drousso@apple.com>
974
975         Web Inspector: REGRESSION(r236783): Uncaught Exception: Can't find variable: sourceMapURL
976         https://bugs.webkit.org/show_bug.cgi?id=190276
977
978         Reviewed by Joseph Pecoraro.
979
980         * UserInterface/Controllers/NetworkManager.js:
981         (WI.NetworkManager.prototype._sourceMapLoadAndParseFailed):
982
983 2018-10-02  Devin Rousso  <drousso@apple.com>
984
985         Web Inspector: merge SourceMapManager into NetworkManager
986         https://bugs.webkit.org/show_bug.cgi?id=190224
987
988         Reviewed by Joseph Pecoraro.
989
990         * UserInterface/Main.html:
991         * UserInterface/Base/Main.js:
992         (WI.loaded):
993         * UserInterface/Test.html:
994         * UserInterface/Test/Test.js:
995         (WI.loaded):
996
997         * UserInterface/Controllers/NetworkManager.js:
998         (WI.NetworkManager):
999         (WI.NetworkManager.prototype.downloadSourceMap): Added.
1000         (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
1001         (WI.NetworkManager.prototype.resourceRequestDidFinishLoading):
1002         (WI.NetworkManager.prototype._createResource):
1003         (WI.NetworkManager.prototype._loadAndParseSourceMap): Added.
1004         (WI.NetworkManager.prototype._sourceMapLoadAndParseFailed): Added.
1005         (WI.NetworkManager.prototype._sourceMapLoadAndParseSucceeded): Added.
1006         (WI.NetworkManager.prototype._handleFrameMainResourceDidChange): Added.
1007         * UserInterface/Controllers/SourceMapManager.js: Removed.
1008
1009         * UserInterface/Models/Script.js:
1010         (WI.Script):
1011
1012         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1013         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1014
1015 2018-10-02  Nikita Vasilyev  <nvasilyev@apple.com>
1016
1017         Web Inspector: Styles: start editing property name/value on mouseup instead of mousedown
1018         https://bugs.webkit.org/show_bug.cgi?id=190114
1019         <rdar://problem/44891030>
1020
1021         Reviewed by Matt Baker.
1022
1023         This change only affects the experimental multiple properties selection.
1024
1025         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
1026         (WI.SpreadsheetCSSStyleDeclarationSection):
1027         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
1028         (.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)):
1029         Without this code, the focus outline flickers on click (after mousedown but before mouseup event).
1030
1031         * UserInterface/Views/SpreadsheetTextField.js:
1032         (WI.SpreadsheetTextField):
1033         (WI.SpreadsheetTextField.prototype._handleMouseUp):
1034
1035 2018-10-02  Devin Rousso  <drousso@apple.com>
1036
1037         Web Inspector: prevent layer events from firing until the layer information is re-requested
1038         https://bugs.webkit.org/show_bug.cgi?id=190159
1039
1040         Reviewed by Joseph Pecoraro.
1041
1042         * UserInterface/Controllers/LayerTreeManager.js:
1043         (WI.LayerTreeManager):
1044         (WI.LayerTreeManager.prototype.get supported):
1045         Remove `supported` member variable in favor of re-evaluating its value.
1046
1047         * UserInterface/Protocol/LayerTreeObserver.js:
1048         (WI.LayerTreeObserver.prototype.layerTreeDidChange):
1049
1050 2018-10-02  Devin Rousso  <drousso@apple.com>
1051
1052         Web Inspector: REGRESSION(r236766): WI.IssueManager no longer exists
1053         https://bugs.webkit.org/show_bug.cgi?id=190226
1054
1055         Reviewed by Joseph Pecoraro.
1056
1057         * UserInterface/Controllers/ConsoleManager.js:
1058         (WI.ConsoleManager.prototype.issuesForSourceCode):
1059
1060 2018-10-02  Devin Rousso  <drousso@apple.com>
1061
1062         Web Inspector: rename frontend managers to be more consistent with backend agents
1063         https://bugs.webkit.org/show_bug.cgi?id=190160
1064
1065         Reviewed by Joseph Pecoraro.
1066
1067         * UserInterface/Test.html:
1068         * UserInterface/Test/Test.js:
1069         * UserInterface/Main.html:
1070         * UserInterface/Base/Main.js:
1071         * UserInterface/Base/DOMUtilities.js:
1072         * UserInterface/Controllers/ApplicationCacheManager.js:
1073         * UserInterface/Controllers/CSSManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/CSSStyleManager.js.
1074         * UserInterface/Controllers/ConsoleManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/LogManager.js.
1075         * UserInterface/Controllers/DOMDebuggerManager.js:
1076         * UserInterface/Controllers/DOMManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js.
1077         * UserInterface/Controllers/DOMStorageManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/StorageManager.js.
1078         * UserInterface/Controllers/DashboardManager.js: Removed.
1079         * UserInterface/Controllers/DatabaseManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
1080         * UserInterface/Controllers/HARBuilder.js:
1081         * UserInterface/Controllers/IndexedDBManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
1082         * UserInterface/Controllers/IssueManager.js: Removed.
1083         * UserInterface/Controllers/JavaScriptLogViewController.js:
1084         * UserInterface/Controllers/NetworkManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js.
1085         * UserInterface/Controllers/SourceMapManager.js:
1086         * UserInterface/Controllers/TimelineManager.js:
1087         * UserInterface/Debug/UncaughtExceptionReporter.js:
1088         * UserInterface/Models/CSSProperty.js:
1089         * UserInterface/Models/CSSSelector.js:
1090         * UserInterface/Models/CallFrame.js:
1091         * UserInterface/Models/Canvas.js:
1092         * UserInterface/Models/ConsoleMessage.js:
1093         * UserInterface/Models/DOMBreakpoint.js:
1094         * UserInterface/Models/DOMNode.js:
1095         * UserInterface/Models/DOMNodeStyles.js:
1096         * UserInterface/Models/DOMTree.js:
1097         * UserInterface/Models/DefaultDashboard.js:
1098         * UserInterface/Models/Script.js:
1099         * UserInterface/Models/ScriptTimelineRecord.js:
1100         * UserInterface/Models/SourceMapResource.js:
1101         * UserInterface/Models/TimelineRecording.js:
1102         * UserInterface/Protocol/CSSObserver.js:
1103         * UserInterface/Protocol/ConsoleObserver.js:
1104         * UserInterface/Protocol/DOMObserver.js:
1105         * UserInterface/Protocol/DOMStorageObserver.js:
1106         * UserInterface/Protocol/DatabaseObserver.js:
1107         * UserInterface/Protocol/InspectorFrontendAPI.js:
1108         * UserInterface/Protocol/InspectorObserver.js:
1109         * UserInterface/Protocol/MainTarget.js:
1110         * UserInterface/Protocol/NetworkObserver.js:
1111         * UserInterface/Protocol/PageObserver.js:
1112         * UserInterface/Protocol/RemoteObject.js:
1113         * UserInterface/Protocol/RuntimeObserver.js:
1114         * UserInterface/Protocol/WorkerTarget.js:
1115         * UserInterface/Views/BoxModelDetailsSectionRow.js:
1116         * UserInterface/Views/CanvasOverviewContentView.js:
1117         * UserInterface/Views/CanvasTreeElement.js:
1118         * UserInterface/Views/ContentView.js:
1119         * UserInterface/Views/ContextMenuUtilities.js:
1120         * UserInterface/Views/CookieStorageContentView.js:
1121         * UserInterface/Views/DOMDetailsSidebarPanel.js:
1122         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1123         * UserInterface/Views/DOMNodeTreeElement.js:
1124         * UserInterface/Views/DOMTreeContentView.js:
1125         * UserInterface/Views/DOMTreeDataGrid.js:
1126         * UserInterface/Views/DOMTreeElement.js:
1127         * UserInterface/Views/DOMTreeElementPathComponent.js:
1128         * UserInterface/Views/DOMTreeOutline.js:
1129         * UserInterface/Views/DOMTreeUpdater.js:
1130         * UserInterface/Views/DebuggerSidebarPanel.js:
1131         * UserInterface/Views/ElementsTabContentView.js:
1132         * UserInterface/Views/EventBreakpointPopover.js:
1133         * UserInterface/Views/EventBreakpointTreeElement.js:
1134         * UserInterface/Views/EventListenerSectionGroup.js:
1135         * UserInterface/Views/FormattedValue.js:
1136         * UserInterface/Views/FrameTreeElement.js:
1137         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
1138         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
1139         * UserInterface/Views/LayerDetailsSidebarPanel.js:
1140         * UserInterface/Views/LayerTreeDataGridNode.js:
1141         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
1142         * UserInterface/Views/Layers3DContentView.js:
1143         * UserInterface/Views/LogContentView.js:
1144         * UserInterface/Views/NetworkTableContentView.js:
1145         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
1146         * UserInterface/Views/ObjectTreeView.js:
1147         * UserInterface/Views/OpenResourceDialog.js:
1148         * UserInterface/Views/ResourceSidebarPanel.js:
1149         * UserInterface/Views/SearchSidebarPanel.js:
1150         * UserInterface/Views/SettingsTabContentView.js:
1151         * UserInterface/Views/SourceCodeTextEditor.js:
1152         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
1153         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
1154         * UserInterface/Views/StorageSidebarPanel.js:
1155         * UserInterface/Views/StyleDetailsPanel.js:
1156         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1157         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1158
1159 2018-10-02  Devin Rousso  <drousso@apple.com>
1160
1161         Web Inspector: Canvas: replace constant numbers with their associated name on WebGL contexts
1162         https://bugs.webkit.org/show_bug.cgi?id=190026
1163
1164         Reviewed by Joseph Pecoraro.
1165
1166         * UserInterface/Models/RecordingAction.js:
1167         (WI.RecordingAction.constantNameForParameter): Added.
1168         (WI.RecordingAction.prototype.getColorParameters):
1169         (WI.RecordingAction.prototype.getImageParameters):
1170         Drive-by: add additional swatches to color/image arguments for WebGL actions.
1171
1172         * UserInterface/Views/CanvasSidebarPanel.js:
1173         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
1174         Drive-by: ensure that the `WI.RecordingContentView` is showing before applying the action.
1175
1176         * UserInterface/Views/RecordingActionTreeElement.js:
1177         (WI.RecordingActionTreeElement._generateDOM.createParameterElement):
1178         (WI.RecordingActionTreeElement._generateDOM):
1179         * UserInterface/Views/RecordingActionTreeElement.css:
1180         (.item.action > .titles .parameter.constant): Added.
1181
1182 2018-10-01  Joseph Pecoraro  <pecoraro@apple.com>
1183
1184         Web Inspector: Fix a typo for execution context identifier
1185         https://bugs.webkit.org/show_bug.cgi?id=190185
1186
1187         Reviewed by Matt Baker.
1188
1189         * UserInterface/Protocol/MainTarget.js:
1190         (WI.MainTarget):
1191         * UserInterface/Protocol/WorkerTarget.js:
1192         (WI.WorkerTarget):
1193
1194 2018-10-01  Devin Rousso  <drousso@apple.com>
1195
1196         Web Inspector: remove analyzer manager
1197         https://bugs.webkit.org/show_bug.cgi?id=190162
1198
1199         Reviewed by Joseph Pecoraro.
1200
1201         * UserInterface/Main.html:
1202         * UserInterface/Base/Main.js:
1203         (WI.loaded):
1204
1205         * UserInterface/Controllers/AnalyzerManager.js: Removed.
1206         * UserInterface/Models/AnalyzerMessage.js: Removed.
1207
1208         * Scripts/copy-user-interface-resources.pl:
1209         * UserInterface/External/ESLint/LICENSE: Removed.
1210         * UserInterface/External/ESLint/eslint.js: Removed.
1211
1212 2018-10-01  Nikita Vasilyev  <nvasilyev@apple.com>
1213
1214         Web Inspector: Styles: add an experimental setting for multi-property selection
1215         https://bugs.webkit.org/show_bug.cgi?id=190053
1216         <rdar://problem/44842787>
1217
1218         Reviewed by Matt Baker.
1219
1220         This patch only adds a setting. It doesn't change property selection behavior.
1221
1222         * Localizations/en.lproj/localizedStrings.js:
1223         * UserInterface/Base/Setting.js:
1224         * UserInterface/Views/SettingsTabContentView.js:
1225         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1226
1227 2018-10-01  Nikita Vasilyev  <nvasilyev@apple.com>
1228
1229         Web Inspector: Dark Mode: use the same CSS variables for dark and light modes
1230         https://bugs.webkit.org/show_bug.cgi?id=189766
1231         <rdar://problem/44619650>
1232
1233         Use --text-color and --background-color CSS variables for both dark and light modes.
1234
1235         Reviewed by Matt Baker.
1236
1237         * UserInterface/Views/BreakpointPopoverController.css:
1238         (.popover .edit-breakpoint-popover-content > label.toggle):
1239         Color of the label matches the color of the popover, no need to specify it.
1240
1241         (.edit-breakpoint-popover-condition):
1242         (@media (prefers-dark-interface)):
1243         (.popover .edit-breakpoint-popover-content > table > tr > th):
1244         * UserInterface/Views/CompletionSuggestionsView.css:
1245         (.completion-suggestions-container > .item):
1246         (@media (prefers-dark-interface)):
1247         (.completion-suggestions):
1248         * UserInterface/Views/ComputedStyleDetailsPanel.css:
1249         (.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)):
1250         (.computed-style-properties .property:hover .go-to-arrow):
1251         (@media (prefers-dark-interface)): Deleted.
1252         (.computed-style-properties.details-section): Deleted.
1253         (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): Deleted.
1254         * UserInterface/Views/DOMTreeOutline.css:
1255         (.tree-outline.dom):
1256         (@media (prefers-dark-interface)):
1257         * UserInterface/Views/DataGrid.css:
1258         (.data-grid th):
1259         (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
1260         (@media (prefers-dark-interface)):
1261         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
1262         (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
1263         (@media (prefers-dark-interface)):
1264         (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
1265         * UserInterface/Views/InlineSwatch.css:
1266         (.inline-swatch):
1267         (.inline-swatch-variable-popover .CodeMirror pre):
1268         (@media (prefers-dark-interface)): Deleted.
1269         * UserInterface/Views/NetworkResourceDetailView.css:
1270         (.network-resource-detail):
1271         (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
1272         (@media (prefers-dark-interface)):
1273         (.resource-headers .value): Deleted.
1274         Move this rule to ResourceHeadersContentView.css.
1275
1276         * UserInterface/Views/ObjectPreviewView.css:
1277         (.object-preview):
1278         (@media (prefers-dark-interface)):
1279         (.object-preview .name):
1280         * UserInterface/Views/ObjectTreeView.css:
1281         (.object-tree):
1282         (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
1283         (@media (prefers-dark-interface)): Deleted.
1284         (.object-tree,): Deleted.
1285
1286         (.object-preview .name): Deleted.
1287         (.object-preview > .size): Deleted.
1288         Move these rules to ObjectPreviewView.css.
1289
1290         * UserInterface/Views/QuickConsole.css:
1291         (.quick-console):
1292         (@media (prefers-dark-interface)):
1293         * UserInterface/Views/ResourceHeadersContentView.css:
1294         (.resource-headers .value):
1295         (.resource-headers.showing-find-banner .search-highlight):
1296         (@media (prefers-dark-interface)): Deleted.
1297         * UserInterface/Views/ResourceTimingBreakdownView.css:
1298         (.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
1299         (@media (prefers-dark-interface)):
1300         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
1301         (.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
1302         (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
1303         (@media (prefers-dark-interface)):
1304         (.spreadsheet-style-declaration-editor .property.has-warning .warning):
1305         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
1306         (.spreadsheet-css-declaration .media-label):
1307         (.spreadsheet-css-declaration .selector:focus,):
1308         (@media (prefers-dark-interface)):
1309         (.spreadsheet-css-declaration .origin .go-to-link,):
1310         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
1311         (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover):
1312         (@media (prefers-dark-interface)):
1313         (.sidebar > .panel.details.css-style > .content > .rules .section-header):
1314         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
1315         (.cm-s-default,):
1316         (@media (prefers-dark-interface)):
1317         (.syntax-highlighted,): Deleted.
1318         * UserInterface/Views/Table.css:
1319         (.table):
1320         (.table > .header):
1321         * UserInterface/Views/TimelineOverview.css:
1322         (.timeline-overview > .navigation-bar.timelines):
1323         (@media (prefers-dark-interface)):
1324         * UserInterface/Views/TimelineRecordingContentView.css:
1325         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
1326         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
1327         (.content-view.timeline-recording > .content-browser .recording-progress > .status > .indeterminate-progress-spinner):
1328         (@media (prefers-dark-interface)): Deleted.
1329         * UserInterface/Views/Variables.css:
1330         (:root):
1331         (@media (prefers-dark-interface)):
1332         * UserInterface/Views/XHRBreakpointPopover.css:
1333         (.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
1334         (@media (prefers-dark-interface)):
1335
1336 2018-09-28  Andy Estes  <aestes@apple.com>
1337
1338         REGRESSION (r236091): CSSKeywordCompletions.js has "checkout" instead of "check-out" as a value for -apple-pay-button-type
1339         https://bugs.webkit.org/show_bug.cgi?id=190096
1340
1341         Reviewed by Ryosuke Niwa.
1342
1343         I changed "checkout" to "check-out" in r235754, but it somehow got flipped back to "checkout" in r236091.
1344
1345         * UserInterface/Models/CSSKeywordCompletions.js:
1346
1347 2018-09-28  Andy Estes  <aestes@apple.com>
1348
1349         [Apple Pay] Remove the "in-store" button type
1350         https://bugs.webkit.org/show_bug.cgi?id=190079
1351
1352         Reviewed by Tim Horton.
1353
1354         * UserInterface/Models/CSSKeywordCompletions.js:
1355
1356 2018-09-28  Devin Rousso  <drousso@apple.com>
1357
1358         Web Inspector: image resources without content are still shown when the Images folder is selected
1359         https://bugs.webkit.org/show_bug.cgi?id=190072
1360
1361         Reviewed by Matt Baker.
1362
1363         * UserInterface/Views/ResourceContentView.js:
1364         (WI.ResourceContentView.prototype.showGenericNoContentMessage):
1365         Treat paths that result in a "Resource has no content" message as a "content error".
1366
1367 2018-09-26  Devin Rousso  <drousso@apple.com>
1368
1369         Web Inspector: Hide DOM and XHR breakpoint sections when they are empty
1370         https://bugs.webkit.org/show_bug.cgi?id=182406
1371         <rdar://problem/37131512>
1372
1373         Reviewed by Joseph Pecoraro.
1374
1375         Combine all breakpoint sections (e.g. DOM, XHR, and Event) into the main "Breakpoints"
1376         section, including all the various "+" buttons for creating different types of breakpoints.
1377
1378         Global breakpoints (except "All Exceptions" and "Uncaught Exceptions") are now deletable,
1379         and can be re-added via the "+" button of the "Breakpoints" section. Deletable global
1380         breakpoints (e.g. "Assertion Failures" and "All Requests") are able to remain visible while
1381         disabled, and will only be hidden when the user specifically deletes them.
1382
1383         * Localizations/en.lproj/localizedStrings.js:
1384         * UserInterface/Base/Setting.js:
1385         * UserInterface/Main.html:
1386
1387         * UserInterface/Controllers/DOMBreakpointTreeController.js: Removed.
1388         * UserInterface/Controllers/EventBreakpointTreeController.js: Removed.
1389         * UserInterface/Controllers/XHRBreakpointTreeController.js: Removed.
1390
1391         * UserInterface/Controllers/DebuggerManager.js:
1392         (WI.DebuggerManager.prototype.get uncaughtExceptionsBreakpoint): Added.
1393         (WI.DebuggerManager.prototype.get assertionFailuresBreakpoint): Added.
1394         (WI.DebuggerManager.prototype.isBreakpointRemovable):
1395         (WI.DebuggerManager.prototype.isBreakpointSpecial): Added.
1396         (WI.DebuggerManager.prototype.isBreakpointEditable):
1397         (WI.DebuggerManager.prototype.addBreakpoint):
1398         (WI.DebuggerManager.prototype.removeBreakpoint):
1399         (WI.DebuggerManager.prototype.initializeTarget):
1400         (WI.DebuggerManager.prototype._breakpointDisabledStateDidChange):
1401         (WI.DebuggerManager.prototype._updateBreakOnExceptionsState):
1402         (WI.DebuggerManager.prototype.get allUncaughtExceptionsBreakpoint): Deleted.
1403         (WI.DebuggerManager.prototype.get assertionsBreakpoint): Deleted.
1404         * UserInterface/Controllers/DOMDebuggerManager.js:
1405         (WI.DOMDebuggerManager.prototype.isBreakpointSpecial): Added.
1406         (WI.DOMDebuggerManager.prototype.addDOMBreakpoint):
1407         (WI.DOMDebuggerManager.prototype.removeDOMBreakpoint):
1408         (WI.DOMDebuggerManager.prototype.addEventBreakpoint):
1409         (WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
1410         (WI.DOMDebuggerManager.prototype.addXHRBreakpoint):
1411         (WI.DOMDebuggerManager.prototype.removeXHRBreakpoint):
1412         (WI.DOMDebuggerManager.prototype.isBreakpointRemovable): Deleted.
1413         Always fire add/remove events, including for special breakpoints, so that any listeners will
1414         be able to adjust accordingly. Even though special breakpoints don't get stored in the lists
1415         held by each manager, we are still able to enable/disable them, and that should be reported.
1416
1417         * UserInterface/Views/DebuggerSidebarPanel.js:
1418         (WI.DebuggerSidebarPanel):
1419         (WI.DebuggerSidebarPanel.prototype.closed):
1420         (WI.DebuggerSidebarPanel.prototype.saveStateToCookie):
1421         (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie.revealAndSelect):
1422         (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
1423         (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
1424         (WI.DebuggerSidebarPanel.prototype._addBreakpoint):
1425         (WI.DebuggerSidebarPanel.prototype._removeBreakpoint): Added.
1426         (WI.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToTreeOutline):
1427         (WI.DebuggerSidebarPanel.prototype._mainResourceDidChange):
1428         (WI.DebuggerSidebarPanel.prototype._breakpointRemoved):
1429         (WI.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
1430         (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
1431         (WI.DebuggerSidebarPanel.prototype._addTreeElement.comparator): Added.
1432         (WI.DebuggerSidebarPanel.prototype._addTreeElement): Added.
1433         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
1434         (WI.DebuggerSidebarPanel.prototype._domBreakpointResolvedStateDidChange): Added.
1435         (WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): Added.
1436         (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): Added.
1437         (WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint): Deleted.
1438         (WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements): Deleted.
1439         (WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved): Deleted.
1440         (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Deleted.
1441         (WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Deleted.
1442         (WI.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked): Deleted.
1443         * UserInterface/Views/DebuggerSidebarPanel.css:
1444         (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .titles): Deleted.
1445         (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .icon): Deleted.
1446         (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node:not(:hover, .selected) .status .go-to-arrow): Deleted.
1447         (.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
1448         Unify the logic for adding/removing breakpoints of all types.
1449
1450         * UserInterface/Views/BreakpointTreeElement.js:
1451         (WI.BreakpointTreeElement):
1452         (WI.BreakpointTreeElement.prototype.ondelete):
1453         * UserInterface/Views/DOMBreakpointTreeElement.js:
1454         (WI.DOMBreakpointTreeElement):
1455         (WI.DOMBreakpointTreeElement.prototype.ondelete):
1456         * UserInterface/Views/DOMNodeTreeElement.js:
1457         (WI.DOMNodeTreeElement):
1458         (WI.DOMNodeTreeElement.prototype.ondelete):
1459         (WI.DOMNodeTreeElement.prototype.populateContextMenu):
1460         * UserInterface/Views/EventBreakpointTreeElement.js:
1461         (WI.EventBreakpointTreeElement):
1462         (WI.EventBreakpointTreeElement.prototype.ondelete):
1463         (WI.EventBreakpointTreeElement.prototype.populateContextMenu):
1464         * UserInterface/Views/XHRBreakpointTreeElement.js:
1465         (WI.XHRBreakpointTreeElement):
1466         (WI.XHRBreakpointTreeElement.prototype.ondelete):
1467         (WI.XHRBreakpointTreeElement.prototype.populateContextMenu):
1468         * UserInterface/Views/XHRBreakpointTreeElement.css: Added.
1469         (.breakpoint.xhr .subtitle):
1470         Add/remove checks for whether the associated breakpoint can be deleted.
1471
1472         * UserInterface/Views/DOMNodeTreeElement.css: Added.
1473         (.tree-outline .item.dom-node .titles):
1474         (.tree-outline .item.dom-node .icon):
1475         (.tree-outline .item.dom-node:not(:hover, .selected) .status .go-to-arrow):
1476
1477         * UserInterface/Views/ContextMenuUtilities.js:
1478         (WI.appendContextMenuItemsForDOMNode):
1479         (WI.appendContextMenuItemsForDOMNodeBreakpoints): Added.
1480         * UserInterface/Views/DOMTreeElement.js:
1481         (WI.DOMTreeElement.prototype._statusImageContextmenu):
1482
1483         * UserInterface/Views/XHRBreakpointPopover.js:
1484         (WI.XHRBreakpointPopover):
1485         (WI.XHRBreakpointPopover.prototype.get breakpoint): Added.
1486         (WI.XHRBreakpointPopover.prototype.show):
1487         (WI.XHRBreakpointPopover.prototype.dismiss): Added.
1488         (WI.XHRBreakpointPopover.prototype._createEditor):
1489         (WI.XHRBreakpointPopover.prototype._updateEditor):
1490         (WI.XHRBreakpointPopover.prototype.get result): Deleted.
1491         (WI.XHRBreakpointPopover.prototype.get type): Deleted.
1492         (WI.XHRBreakpointPopover.prototype.get value): Deleted.
1493         Drive-by: remove the erroneous usage of `WI.InputPopover.Result`.
1494
1495 2018-09-26  Devin Rousso  <drousso@apple.com>
1496
1497         Web Inspector: determine hasVisibleEffect for each RecordingAction as it's processed
1498         https://bugs.webkit.org/show_bug.cgi?id=189860
1499
1500         Reviewed by Joseph Pecoraro.
1501
1502         * Localizations/en.lproj/localizedStrings.js:
1503         * UserInterface/Base/Setting.js:
1504         * UserInterface/Base/Utilities.js:
1505
1506         * UserInterface/Models/RecordingAction.js:
1507         (WI.RecordingAction.prototype.process.getContent):
1508         (WI.RecordingAction.prototype.process):
1509
1510         * UserInterface/Views/RecordingActionTreeElement.js:
1511         (WI.RecordingActionTreeElement.prototype.onattach):
1512
1513         * UserInterface/Views/SettingsTabContentView.js:
1514         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1515
1516         * UserInterface/Views/RecordingContentView.js:
1517         (WI.RecordingContentView.prototype._updateImageGrid):
1518         Drive-by: don't attempt to show the image grid if we haven't called initialized yet.
1519
1520         * UserInterface/Views/CanvasSidebarPanel.js:
1521         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
1522         Drive-by: ensure that the `WI.RecordingContentView` is showing before applying the action.
1523
1524 2018-09-26  Nikita Vasilyev  <nvasilyev@apple.com>
1525
1526         Web Inspector: Dark Mode: new watch expression popover has light background
1527         https://bugs.webkit.org/show_bug.cgi?id=190013
1528         <rdar://problem/44810000>
1529
1530         Reviewed by Matt Baker.
1531
1532         Make the background dark to match the CodeMirror editor background.
1533
1534         * UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
1535         (@media (prefers-dark-interface)):
1536         (.watch-expression-editor):
1537
1538 2018-09-21  Nikita Vasilyev  <nvasilyev@apple.com>
1539
1540         REGRESSION(r236237): Web Inspector: DarkMode: white background in Elements and Timelines
1541         https://bugs.webkit.org/show_bug.cgi?id=189852
1542
1543         Reviewed by Joseph Pecoraro.
1544
1545         * UserInterface/Views/Main.css:
1546         (body):
1547         (#main):
1548
1549 2018-09-21  Brian Burg  <bburg@apple.com>
1550
1551         Web Inspector: remove unnecessary WI.Platform.version checks
1552         https://bugs.webkit.org/show_bug.cgi?id=189845
1553
1554         Reviewed by Matt Baker.
1555
1556         * UserInterface/Base/Platform.js:
1557         (osVersionMatch): Add name for macOS Mojave.
1558
1559         * UserInterface/Base/Main.js:
1560         * UserInterface/Views/Popover.js:
1561         Remove old logic that's no longer needed.
1562
1563 2018-09-21  Devin Rousso  <drousso@apple.com>
1564
1565         Web Inspector: remove setting for Sources tab
1566         https://bugs.webkit.org/show_bug.cgi?id=189817
1567
1568         Reviewed by Joseph Pecoraro.
1569
1570         * Localizations/en.lproj/localizedStrings.js:
1571         * UserInterface/Base/Setting.js:
1572         * UserInterface/Main.html:
1573         * UserInterface/Base/Main.js:
1574         (WI.contentLoaded):
1575         (WI._debuggerDidPause):
1576         (WI.isShowingSourcesTab): Removed.
1577         (WI.showSourcesTab): Removed.
1578
1579         * UserInterface/Views/SourcesSidebarPanel.css: Removed.
1580         * UserInterface/Views/SourcesSidebarPanel.js: Removed.
1581         * UserInterface/Views/SourcesTabContentView.js: Removed.
1582
1583         * UserInterface/Views/ContextMenuUtilities.js:
1584         (WI.appendContextMenuItemsForURL):
1585
1586         * UserInterface/Views/SettingsTabContentView.js:
1587         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1588
1589         * UserInterface/Views/SourceCodeTextEditor.js:
1590         (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
1591
1592 2018-09-20  Simon Fraser  <simon.fraser@apple.com>
1593
1594         Make "overflow: overlay" a synonym for "overflow: auto"
1595         https://bugs.webkit.org/show_bug.cgi?id=189811
1596
1597         Reviewed by Zalan Bujtas.
1598         
1599         Remove "overlay" from the overflow values.
1600
1601         * UserInterface/Models/CSSKeywordCompletions.js:
1602         * UserInterface/Views/VisualStyleDetailsPanel.js:
1603         (WI.VisualStyleDetailsPanel.prototype._populateDisplaySection):
1604
1605 2018-09-21  Devin Rousso  <drousso@apple.com>
1606
1607         Web Inspector: hide Accessibility Audit Tab setting
1608         https://bugs.webkit.org/show_bug.cgi?id=189816
1609
1610         Reviewed by Joseph Pecoraro.
1611
1612         Considering that this tab doesn't exist, there's no reason to have a setting/UI for it.
1613
1614         * UserInterface/Base/Setting.js:
1615         * UserInterface/Views/SettingsTabContentView.js:
1616         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1617
1618 2018-09-21  Devin Rousso  <drousso@apple.com>
1619
1620         Web Inspector: remove Legacy Style Editor
1621         https://bugs.webkit.org/show_bug.cgi?id=189808
1622
1623         Reviewed by Joseph Pecoraro.
1624
1625         The Legacy Style Editor has been hidden behind an "experimental" setting for almost a year.
1626         It's time that we remove it, especially since the new Style Editor is at a similar, if not
1627         more advanced, state.
1628
1629         * .eslintrc:
1630         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1631         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1632         * Localizations/en.lproj/localizedStrings.js:
1633         * Tools/PrettyPrinting/index.html:
1634         * UserInterface/Main.html:
1635         * UserInterface/Test.html:
1636         * UserInterface/Base/Setting.js:
1637
1638         * UserInterface/Base/TextUtilities.js: Removed.
1639         * UserInterface/Base/Utilities.js:
1640
1641         * UserInterface/Views/RulesStyleDetailsPanel.css: Removed.
1642         * UserInterface/Views/RulesStyleDetailsPanel.js: Removed.
1643         * UserInterface/Views/CSSStyleDeclarationSection.css: Removed.
1644         * UserInterface/Views/CSSStyleDeclarationSection.js: Removed.
1645         * UserInterface/Views/CSSStyleDeclarationTextEditor.css: Removed.
1646         * UserInterface/Views/CSSStyleDeclarationTextEditor.js: Removed.
1647
1648         * UserInterface/Models/CSSProperty.js:
1649         (WI.CSSProperty.prototype.get text):
1650         (WI.CSSProperty.prototype.get synthesizedText): Deleted.
1651
1652         * UserInterface/Models/CSSStyleDeclaration.js:
1653         (WI.CSSStyleDeclaration):
1654         (WI.CSSStyleDeclaration.prototype.set text):
1655         (WI.CSSStyleDeclaration.prototype.resetText): Deleted.
1656         (WI.CSSStyleDeclaration.prototype.get modified): Deleted.
1657         (WI.CSSStyleDeclaration.prototype.generateCSSRuleString): Deleted.
1658         (WI.CSSStyleDeclaration.prototype.isInspectorRule): Deleted.
1659
1660         * UserInterface/Models/CSSSelector.js:
1661         (WI.CSSSelector.prototype.isGreaterThan): Deleted.
1662
1663         * UserInterface/Models/CSSRule.js:
1664         (WI.CSSRule.prototype.update):
1665         (WI.CSSRule.prototype.get matchedSelectors): Deleted.
1666         (WI.CSSRule.prototype.get matchedSelectorText): Deleted.
1667         (WI.CSSRule.prototype.hasMatchedPseudoElementSelector): Deleted.
1668         (WI.CSSRule.prototype.get mediaText): Deleted.
1669         (WI.CSSRule.prototype.get mostSpecificSelector): Deleted.
1670         (WI.CSSRule.prototype.selectorIsGreater): Deleted.
1671         (WI.CSSRule.prototype._determineMostSpecificSelector): Deleted.
1672
1673         * UserInterface/Models/DOMNodeStyles.js:
1674         (WI.DOMNodeStyles.prototype.changeRule.changeCompleted): Deleted.
1675         (WI.DOMNodeStyles.prototype.changeRule.styleChanged): Deleted.
1676         (WI.DOMNodeStyles.prototype.changeRule.changeText): Deleted.
1677         (WI.DOMNodeStyles.prototype.changeRule.ruleSelectorChanged): Deleted.
1678         (WI.DOMNodeStyles.prototype.changeRule): Deleted.
1679
1680         * UserInterface/Models/CSSCompletions.js:
1681         (WI.CSSCompletions.prototype.isValidPropertyName):
1682         (WI.CSSCompletions):
1683         (WI.CSSCompletions.prototype.keySet): Deleted.
1684         (WI.CSSCompletions.prototype.propertyRequiresWebkitPrefix): Deleted.
1685         (WI.CSSCompletions.prototype.getClosestPropertyName): Deleted.
1686
1687         * UserInterface/Views/ComputedStyleDetailsPanel.js:
1688         (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule): Deleted.
1689
1690         * UserInterface/Views/RulesStyleDetailsSidebarPanel.js:
1691         (WI.RulesStyleDetailsSidebarPanel):
1692
1693         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1694         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
1695
1696         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
1697         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingRuleSelector): Added.
1698         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorStartEditingRuleSelector): Deleted.
1699
1700         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
1701         (WI.SpreadsheetRulesStyleDetailsPanel):
1702         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
1703         (.sidebar > .panel.details.css-style .rules): Added.
1704         (.sidebar > .panel.details.css-style > .content > .rules .section-header): Added.
1705         (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link): Added.
1706         (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added.
1707         (.sidebar > .panel.details.css-style > .content > .rules > .message-text-view): Added.
1708         (.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .message-text-view): Added.
1709         (@media (prefers-dark-interface)):
1710         (.sidebar > .panel.details.css-style > .content > .rules .section-header): Added.
1711         (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added.
1712         (.spreadsheet-style-panel .section-header): Deleted.
1713         (.spreadsheet-style-panel .section-header .node-link): Deleted.
1714         (.spreadsheet-style-panel .section-header .node-link:hover): Deleted.
1715         (.spreadsheet-style-panel .section-header): Deleted.
1716         (.spreadsheet-style-panel .section-header .node-link:hover): Deleted.
1717
1718         * UserInterface/Views/CodeMirrorAdditions.js:
1719         (extendedCSSRuleStartState): Removed.
1720         * UserInterface/Views/CodeMirrorFormatters.js:
1721         Remove "css-rule" CodeMirror mode.
1722
1723         * UserInterface/Views/CodeMirrorTextMarkers.js:
1724         (createCodeMirrorVariableTextMarkers): Deleted.
1725
1726         * UserInterface/Views/SettingsTabContentView.js:
1727         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1728
1729 2018-09-21  Mike Gorse  <mgorse@suse.com>
1730
1731         Build tools should work when the /usr/bin/python is python3
1732         https://bugs.webkit.org/show_bug.cgi?id=156674
1733
1734         Reviewed by Michael Catanzaro.
1735
1736         * Scripts/copy-user-interface-resources.pl: Use $PYTHON if set
1737         in the environment.
1738
1739 2018-09-20  Devin Rousso  <drousso@apple.com>
1740
1741         Web Inspector: remove Visual Style CSS details sidebar panel
1742         https://bugs.webkit.org/show_bug.cgi?id=189807
1743
1744         Reviewed by Joseph Pecoraro.
1745
1746         The Visual Style CSS details sidebar panel has been hidden behind an "experimental" setting
1747         for almost a year.  It's time that we remove it.
1748
1749         * Localizations/en.lproj/localizedStrings.js:
1750         * UserInterface/Base/Setting.js:
1751         * UserInterface/Main.html:
1752
1753         * UserInterface/Views/ElementsTabContentView.js:
1754         (WI.ElementsTabContentView):
1755         * UserInterface/Views/SettingsTabContentView.js:
1756         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1757
1758         * UserInterface/Images/AnimationPlayStatePaused.svg: Removed.
1759         * UserInterface/Images/AnimationPlayStateRunning.svg: Removed.
1760         * UserInterface/Images/ClearBoth.svg: Removed.
1761         * UserInterface/Images/ClearLeft.svg: Removed.
1762         * UserInterface/Images/ClearRight.svg: Removed.
1763         * UserInterface/Images/FloatLeft.svg: Removed.
1764         * UserInterface/Images/FloatRight.svg: Removed.
1765         * UserInterface/Images/FontStyleItalic.svg: Removed.
1766         * UserInterface/Images/FontStyleNormal.svg: Removed.
1767         * UserInterface/Images/ListStylePositionInside.svg: Removed.
1768         * UserInterface/Images/ListStylePositionOutside.svg: Removed.
1769         * UserInterface/Images/TextAlignCenter.svg: Removed.
1770         * UserInterface/Images/TextAlignJustify.svg: Removed.
1771         * UserInterface/Images/TextAlignLeft.svg: Removed.
1772         * UserInterface/Images/TextAlignRight.svg: Removed.
1773         * UserInterface/Images/TextDecorationLineThrough.svg: Removed.
1774         * UserInterface/Images/TextDecorationOverline.svg: Removed.
1775         * UserInterface/Images/TextDecorationUnderline.svg: Removed.
1776         * UserInterface/Images/TextTransformCapitalize.svg: Removed.
1777         * UserInterface/Images/TextTransformLowercase.svg: Removed.
1778         * UserInterface/Images/TextTransformUppercase.svg: Removed.
1779         * UserInterface/Images/VisualStyleNone.svg: Removed.
1780         * UserInterface/Images/VisualStylePropertyLinked.svg: Removed.
1781         * UserInterface/Images/VisualStylePropertyUnlinked.svg: Removed.
1782
1783         * UserInterface/Views/VisualStyleBackgroundPicker.css: Removed.
1784         * UserInterface/Views/VisualStyleBackgroundPicker.js: Removed.
1785         * UserInterface/Views/VisualStyleBasicInput.js: Removed.
1786         * UserInterface/Views/VisualStyleColorPicker.css: Removed.
1787         * UserInterface/Views/VisualStyleColorPicker.js: Removed.
1788         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css: Removed.
1789         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js: Removed.
1790         * UserInterface/Views/VisualStyleDetailsPanel.css: Removed.
1791         * UserInterface/Views/VisualStyleDetailsPanel.js: Removed.
1792         * UserInterface/Views/VisualStyleDetailsSidebarPanel.js: Removed.
1793         * UserInterface/Views/VisualStyleFontFamilyListEditor.js: Removed.
1794         * UserInterface/Views/VisualStyleFontFamilyTreeElement.js: Removed.
1795         * UserInterface/Views/VisualStyleKeywordCheckbox.css: Removed.
1796         * UserInterface/Views/VisualStyleKeywordCheckbox.js: Removed.
1797         * UserInterface/Views/VisualStyleKeywordIconList.css: Removed.
1798         * UserInterface/Views/VisualStyleKeywordIconList.js: Removed.
1799         * UserInterface/Views/VisualStyleKeywordPicker.js: Removed.
1800         * UserInterface/Views/VisualStyleNumberInputBox.css: Removed.
1801         * UserInterface/Views/VisualStyleNumberInputBox.js: Removed.
1802         * UserInterface/Views/VisualStylePropertyCombiner.js: Removed.
1803         * UserInterface/Views/VisualStylePropertyEditor.css: Removed.
1804         * UserInterface/Views/VisualStylePropertyEditor.js: Removed.
1805         * UserInterface/Views/VisualStylePropertyEditorLink.css: Removed.
1806         * UserInterface/Views/VisualStylePropertyEditorLink.js: Removed.
1807         * UserInterface/Views/VisualStylePropertyNameInput.js: Removed.
1808         * UserInterface/Views/VisualStyleRelativeNumberSlider.css: Removed.
1809         * UserInterface/Views/VisualStyleRelativeNumberSlider.js: Removed.
1810         * UserInterface/Views/VisualStyleSelectorSection.css: Removed.
1811         * UserInterface/Views/VisualStyleSelectorSection.js: Removed.
1812         * UserInterface/Views/VisualStyleSelectorTreeItem.css: Removed.
1813         * UserInterface/Views/VisualStyleSelectorTreeItem.js: Removed.
1814         * UserInterface/Views/VisualStyleTabbedPropertiesRow.css: Removed.
1815         * UserInterface/Views/VisualStyleTabbedPropertiesRow.js: Removed.
1816         * UserInterface/Views/VisualStyleTimingEditor.css: Removed.
1817         * UserInterface/Views/VisualStyleTimingEditor.js: Removed.
1818         * UserInterface/Views/VisualStyleURLInput.js: Removed.
1819         * UserInterface/Views/VisualStyleUnitSlider.css: Removed.
1820         * UserInterface/Views/VisualStyleUnitSlider.js: Removed.
1821
1822         * UserInterface/Controllers/VisualStyleCompletionsController.js: Removed.
1823
1824 2018-09-20  Devin Rousso  <drousso@apple.com>
1825
1826         Web Inspector: Styles Redesign: rework Computed panel to use Spreadsheet classes
1827         https://bugs.webkit.org/show_bug.cgi?id=183627
1828
1829         Reviewed by Joseph Pecoraro.
1830
1831         * UserInterface/Views/ComputedStyleDetailsPanel.js:
1832         (WI.ComputedStyleDetailsPanel):
1833         (WI.ComputedStyleDetailsPanel.prototype.refresh):
1834         (WI.ComputedStyleDetailsPanel.prototype.applyFilter):
1835         (WI.ComputedStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationEditorShowProperty):
1836         (WI.ComputedStyleDetailsPanel.prototype.initialLayout):
1837         (WI.ComputedStyleDetailsPanel.prototype.filterDidChange):
1838         (WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
1839         (WI.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged):
1840         (WI.ComputedStyleDetailsPanel.prototype._handleVariablesSectionCollapsedStateChanged):
1841         (WI.ComputedStyleDetailsPanel.prototype._handleEditorFilterApplied):
1842         (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty.delegateShowProperty): Deleted.
1843         (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty): Deleted.
1844         Replace CSSStyleDeclarationTextEditor with SpreadsheetCSSStyleDeclarationEditor.
1845
1846         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1847         (WI.SpreadsheetCSSStyleDeclarationEditor):
1848         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
1849         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
1850         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set showsImplicitProperties):
1851         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set alwaysShowPropertyNames):
1852         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set propertyVisibilityMode):
1853         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set hideFilterNonMatchingProperties):
1854         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set sortPropertiesByName): Added.
1855         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender):
1856         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty):
1857         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.applyFilter):
1858         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyShowProperty):
1859         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
1860         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get _propertiesToRender): Deleted.
1861         Create setters for the "special" functionality required by the Computed panel and tie them
1862         into the logic that determines what properties are rendered.
1863
1864         * UserInterface/Views/SpreadsheetStyleProperty.js:
1865         (WI.SpreadsheetStyleProperty.prototype._update):
1866         Create go-to arrow if the property has a shorthand version or a source code location.
1867
1868         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
1869         (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
1870         Don't reapply the filter after refreshing, as the current panel will handle applying it.
1871
1872         * UserInterface/Views/ComputedStyleDetailsPanel.css:
1873         (.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)):
1874         (.computed-style-properties .property .go-to-arrow):
1875         (.computed-style-properties .property:hover .go-to-arrow):
1876         (.computed-style-properties.details-section): Deleted.
1877         (.details-section > .content > .group > .row .CodeMirror-code pre .go-to-arrow): Deleted.
1878         (.details-section > .content > .group > .row .CodeMirror-code pre:hover .go-to-arrow): Deleted.
1879         (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): Deleted.
1880         * UserInterface/Views/DetailsSection.css:
1881         (.details-section.computed-style-properties:not(.collapsed) > .header): Deleted.
1882         Consolidate Computed panel styles to it's respective CSS file.
1883
1884         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
1885         (.spreadsheet-style-declaration-editor):
1886         (.spreadsheet-style-declaration-editor .property:matches(.implicit, .not-inherited) .content > *):
1887         (.spreadsheet-style-declaration-editor .property.not-inherited .content > *): Deleted.
1888         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
1889         (.spreadsheet-css-declaration):
1890         * UserInterface/Views/Variables.css:
1891         (:root):
1892         Move `css-declaration` padding variables so they can be used by SpreadsheetCSSStyleDeclarationEditor
1893         without a parent SpreadsheetCSSStyleDeclarationSection.
1894
1895         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
1896         (.style-spreadsheet .style-rule): Deleted.
1897         (.style-spreadsheet .selector-line): Deleted.
1898         (.style-spreadsheet .selector): Deleted.
1899         (.style-spreadsheet :matches(.selector .matched, .selector:focus)): Deleted.
1900         (.style-spreadsheet .name): Deleted.
1901         (.style-spreadsheet .value): Deleted.
1902         (.style-spreadsheet :matches(.selector, .name, .value)): Deleted.
1903         (.style-spreadsheet :matches(.selector, .name, .value):focus): Deleted.
1904         (.style-spreadsheet .selector-inline): Deleted.
1905         (.style-spreadsheet .property): Deleted.
1906         (.style-spreadsheet .property-disabled,): Deleted.
1907         (.style-spreadsheet .property-disabled :matches(.name, .value)): Deleted.
1908         (.style-spreadsheet .styles-source): Deleted.
1909         (.style-spreadsheet :matches(a, .node-link)): Deleted.
1910         (.style-spreadsheet :matches(a, .node-link):hover): Deleted.
1911         (.style-spreadsheet .declarations): Deleted.
1912         (.style-spreadsheet input[type="checkbox"]): Deleted.
1913         (.style-spreadsheet input[type="checkbox"]:not(:checked)): Deleted.
1914         (.style-spreadsheet .declarations:hover input[type="checkbox"]): Deleted.
1915         Drive-by fix: remove styles that don't apply to anything.
1916
1917 2018-09-19  Nikita Vasilyev  <nvasilyev@apple.com>
1918
1919         Web Inspector: move DarkMode.css rules into appropriate CSS files
1920         https://bugs.webkit.org/show_bug.cgi?id=189673
1921
1922         Reviewed by Matt Baker.
1923
1924         * UserInterface/Main.html:
1925         * UserInterface/Views/BezierEditor.css:
1926         (@media (prefers-dark-interface)):
1927         (.bezier-editor > .bezier-preview-timing):
1928         (.bezier-editor > .bezier-container .bezier-curve):
1929         (.bezier-editor > .bezier-container .linear-curve):
1930         (.bezier-editor > .bezier-preview):
1931         (.bezier-editor > .bezier-preview > div):
1932         (.bezier-editor > .bezier-container .control-handle):
1933         (.bezier-editor > .bezier-container .control-line):
1934         * UserInterface/Views/BreakpointActionView.css:
1935         (@media (prefers-dark-interface)):
1936         (.breakpoint-action-block-body):
1937         (.breakpoint-action-block-body > .description):
1938         (.breakpoint-action-append-button,):
1939         (.breakpoint-action-eval-editor):
1940         * UserInterface/Views/BreakpointPopoverController.css:
1941         (@media (prefers-dark-interface)):
1942         (.popover .edit-breakpoint-popover-content > label.toggle):
1943         (.popover .edit-breakpoint-popover-content > table > tr > th):
1944         (.edit-breakpoint-popover-condition):
1945         * UserInterface/Views/ButtonNavigationItem.css:
1946         (@media (prefers-dark-interface)):
1947         (.navigation-bar .item.button):
1948         * UserInterface/Views/ButtonToolbarItem.css:
1949         (@media (prefers-dark-interface)):
1950         (.toolbar .item.button):
1951         (.toolbar .item.button:not(.disabled):active):
1952         (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
1953         (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)):
1954         * UserInterface/Views/CallFrameView.css:
1955         (@media (prefers-dark-interface)):
1956         (.call-frame .subtitle,):
1957         (.call-frame:hover .subtitle .source-link,):
1958         (.call-frame .separator):
1959         * UserInterface/Views/CanvasContentView.css:
1960         (@media (prefers-dark-interface)):
1961         (.content-view.canvas:not(.tab)):
1962         * UserInterface/Views/CanvasOverviewContentView.css:
1963         (@media (prefers-dark-interface)):
1964         (.content-view.canvas-overview):
1965         (.content-view.canvas-overview .content-view.canvas):
1966         (.content-view.canvas-overview .content-view.canvas.is-recording):
1967         (.content-view.canvas-overview .content-view.canvas.is-recording > header):
1968         (.content-view.canvas-overview .content-view.canvas > header > .titles > .title):
1969         (.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,):
1970         (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
1971         (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle):
1972         * UserInterface/Views/CanvasTabContentView.css:
1973         (@media (prefers-dark-interface)):
1974         (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
1975         (.content-view.tab.canvas .navigation-bar > .item .canvas.canvas-2d .icon,):
1976         (.content-view.canvas > .preview > img,):
1977         * UserInterface/Views/CodeMirrorOverrides.css:
1978         (@media (prefers-dark-interface)):
1979         (.CodeMirror-cursor):
1980         (.CodeMirror .CodeMirror-gutters):
1981         (.cm-s-default .cm-link):
1982         (.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket):
1983         * UserInterface/Views/CompletionSuggestionsView.css:
1984         (@media (prefers-dark-interface)):
1985         (.completion-suggestions):
1986         (.completion-suggestions-container > .item):
1987         * UserInterface/Views/ComputedStyleDetailsPanel.css:
1988         (@media (prefers-dark-interface)):
1989         (.computed-style-properties.details-section):
1990         (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):
1991         * UserInterface/Views/ConsoleMessageView.css:
1992         (@media (prefers-dark-interface)):
1993         (.console-message .syntax-highlighted):
1994         (.console-warning-level .console-message-text):
1995         (.console-error-level .console-message-text):
1996         (.console-user-command > .console-message-text):
1997         (.console-message .repeat-count):
1998         * UserInterface/Views/ConsolePrompt.css:
1999         (@media (prefers-dark-interface)):
2000         (.console-prompt):
2001         * UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
2002         (@media (prefers-dark-interface)):
2003         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):
2004         * UserInterface/Views/DOMTreeOutline.css:
2005         (@media (prefers-dark-interface)):
2006         (.tree-outline.dom):
2007         (.tree-outline.dom li.elements-drag-over .selection-area):
2008         (.tree-outline.dom li.selected .selection-area):
2009         (.tree-outline.dom:focus li.selected .selection-area):
2010         (.tree-outline.dom li.selected + ol.children.expanded):
2011         (.tree-outline.dom .shadow):
2012         (.tree-outline.dom li.parent.shadow + ol.children.expanded,):
2013         (.showing-find-banner .tree-outline.dom .search-highlight):
2014         * UserInterface/Views/DarkMode.css: Removed.
2015         * UserInterface/Views/DataGrid.css:
2016         (@media (prefers-dark-interface)):
2017         (.data-grid th):
2018         (.data-grid td .subtitle):
2019         (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
2020         (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
2021         (.data-grid tr.editable .cell-content > input):
2022         (.data-grid td.spanning):
2023         * UserInterface/Views/DebuggerDashboardView.css:
2024         (@media (prefers-dark-interface)):
2025         (.toolbar .dashboard.debugger):
2026         (.dashboard.debugger .navigation-bar .item.button > .glyph):
2027         (.dashboard.debugger > .location .function-name):
2028         (.dashboard.debugger > .location .go-to-link):
2029         (.dashboard.debugger > .divider):
2030         * UserInterface/Views/DefaultDashboardView.css:
2031         (@media (prefers-dark-interface)):
2032         (.toolbar .dashboard.default > .item > div):
2033         (.toolbar .dashboard.default > .item.enabled > div):
2034         (.toolbar .dashboard.default > .item.enabled:hover):
2035         (.toolbar .dashboard.default > .item.enabled:hover > div):
2036         (.toolbar .dashboard.default > .resourcesCount > img,):
2037         (body.latest-mac .toolbar .dashboard .item.button):
2038         (.dashboard-container .advance-arrow):
2039         * UserInterface/Views/DetailsSection.css:
2040         (@media (prefers-dark-interface)):
2041         (.details-section > .header):
2042         (.details-section > .header > label):
2043         (.details-section .details-section,):
2044         (.details-section .details-section:not(.collapsed) > .header):
2045         (.details-section > .content > .group > .row.simple > .label):
2046         (.details-section > .content > .group:nth-child(even)):
2047         (.details-section > .content > .group > .row:matches(.empty, .text)):
2048         * UserInterface/Views/DividerNavigationItem.css:
2049         (@media (prefers-dark-interface)):
2050         (.navigation-bar .item.divider):
2051         * UserInterface/Views/Editing.css:
2052         (@media (prefers-dark-interface)):
2053         (.editing):
2054         (.editing, .editing *):
2055         * UserInterface/Views/FindBanner.css:
2056         (@media (prefers-dark-interface)):
2057         (.find-banner > input[type="search"]):
2058         (.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)):
2059         * UserInterface/Views/FontResourceContentView.css:
2060         (@media (prefers-dark-interface)):
2061         (.content-view.resource.font .preview > .line):
2062         (.content-view.resource.font .metric.top):
2063         (.content-view.resource.font .metric.baseline):
2064         (.content-view.resource.font .metric.middle):
2065         (.content-view.resource.font .metric.xheight):
2066         (.content-view.resource.font .metric.bottom):
2067         * UserInterface/Views/FormattedValue.css:
2068         (@media (prefers-dark-interface)):
2069         (.formatted-object,):
2070         (.formatted-null,):
2071         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
2072         (@media (prefers-dark-interface)):
2073         (.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
2074         (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
2075         (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
2076         * UserInterface/Views/HoverMenu.css:
2077         (@media (prefers-dark-interface)):
2078         (.hover-menu > svg > :matches(path, rect)):
2079         * UserInterface/Views/ImageResourceContentView.css:
2080         (@media (prefers-dark-interface)):
2081         (.content-view.resource.image):
2082         * UserInterface/Views/InlineSwatch.css:
2083         (@media (prefers-dark-interface)):
2084         (.inline-swatch):
2085         * UserInterface/Views/LogContentView.css:
2086         (@media (prefers-dark-interface)):
2087         (.console-messages):
2088         (.console-item):
2089         (.console-messages:focus .console-item.selected):
2090         (.console-messages:focus .console-item.selected + .console-item):
2091         (.console-session:first-of-type .console-session-header):
2092         (.console-session:not(:first-of-type) .console-session-header):
2093         (.console-messages a):
2094         (.console-messages a:hover):
2095         (.console-messages:focus .console-item.selected::after):
2096         (.console-error-level):
2097         (.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
2098         (.console-warning-level):
2099         (.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
2100         (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted):
2101         (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):
2102         * UserInterface/Views/Main.css:
2103         (#main):
2104         (@media (prefers-dark-interface)):
2105         (.go-to-arrow):
2106         (.resource-link,):
2107         (.expand-list-button):
2108         (:matches(img, canvas).show-grid):
2109         * UserInterface/Views/NetworkResourceDetailView.css:
2110         (@media (prefers-dark-interface)):
2111         (.network-resource-detail):
2112         (.network-resource-detail .item.close > .glyph):
2113         (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
2114         (.resource-headers .value):
2115         * UserInterface/Views/NetworkTableContentView.css:
2116         (@media (prefers-dark-interface)):
2117         (.network-table .cell.domain > .lock):
2118         * UserInterface/Views/NewTabContentView.css:
2119         (@media (prefers-dark-interface)):
2120         (.new-tab.tab.content-view):
2121         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
2122         (@media (prefers-dark-interface)):
2123         (.object-tree-property .getter,):
2124         (.item.object-tree-property.prototype-property):
2125         (.object-tree-property.prototype-property:hover,):
2126         (.object-tree-property .value.error):
2127         * UserInterface/Views/ObjectTreeView.css:
2128         (@media (prefers-dark-interface)):
2129         (.object-tree,):
2130         (.object-preview .name):
2131         (.object-preview > .size):
2132         * UserInterface/Views/OpenResourceDialog.css:
2133         (@media (prefers-dark-interface)):
2134         (.open-resource-dialog):
2135         (.open-resource-dialog > .field > input):
2136         (.open-resource-dialog > .field > input::placeholder):
2137         (.open-resource-dialog > .tree-outline .item.selected):
2138         (.open-resource-dialog > .field::before):
2139         * UserInterface/Views/ProgressView.css:
2140         (@media (prefers-dark-interface)):
2141         (.progress-view > .titles > .title):
2142         (.progress-view > .titles > .subtitle):
2143         (.indeterminate-progress-spinner):
2144         * UserInterface/Views/QuickConsole.css:
2145         (@media (prefers-dark-interface)):
2146         (.quick-console):
2147         (.CodeMirror .jump-to-symbol-highlight,):
2148         (.quick-console.showing-log):
2149         * UserInterface/Views/RecordingActionTreeElement.css:
2150         (@media (prefers-dark-interface)):
2151         (.item.action:not(.initial-state)::before):
2152         (.tree-outline .item.action.visual:not(.selected, .invalid)):
2153         (.item.action:not(.initial-state) > .icon):
2154         (.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):
2155         * UserInterface/Views/RecordingContentView.css:
2156         (@media (prefers-dark-interface)):
2157         (.content-view:not(.tab).recording):
2158         (.content-view:not(.tab).recording > header > .slider-container):
2159         (.content-view:not(.tab).recording > header > .slider-container > input[type=range]):
2160         * UserInterface/Views/RecordingStateDetailsSidebarPanel.css:
2161         (@media (prefers-dark-interface)):
2162         (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):
2163         * UserInterface/Views/ResourceHeadersContentView.css:
2164         (@media (prefers-dark-interface)):
2165         (.resource-headers .value):
2166         * UserInterface/Views/ResourceSizesContentView.css:
2167         (@media (prefers-dark-interface)):
2168         (.resource-sizes > .content .label):
2169         * UserInterface/Views/ResourceTimingBreakdownView.css:
2170         (@media (prefers-dark-interface)):
2171         (.popover.waterfall-popover):
2172         (.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
2173         (.resource-timing-breakdown > table > tr > td.label,):
2174         (.resource-timing-breakdown > table hr):
2175         * UserInterface/Views/ScopeBar.css:
2176         (@media (prefers-dark-interface)):
2177         (.scope-bar > li):
2178         * UserInterface/Views/SearchBar.css:
2179         (@media (prefers-dark-interface)):
2180         (:matches(.search-bar, .filter-bar) > input[type="search"],):
2181         (:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder):
2182         (:matches(.search-bar, .filter-bar) > input[type="search"]:focus):
2183         * UserInterface/Views/SearchSidebarPanel.css:
2184         (@media all):
2185         * UserInterface/Views/SettingsTabContentView.css:
2186         (@media (prefers-dark-interface)):
2187         (.content-view.settings .navigation-bar):
2188         (.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
2189         * UserInterface/Views/ShaderProgramContentView.css:
2190         (@media (prefers-dark-interface)):
2191         (.content-view.shader-program > .text-editor.shader):
2192         (.content-view.shader-program > .text-editor.shader > .type-title):
2193         * UserInterface/Views/ShaderProgramTreeElement.css:
2194         (@media (prefers-dark-interface)):
2195         (.item.shader-program .status > img):
2196         * UserInterface/Views/SourceCodeTextEditor.css:
2197         (@media (prefers-dark-interface)):
2198         (.source-code.text-editor > .CodeMirror .error):
2199         (.source-code.text-editor > .CodeMirror .warning):
2200         (.source-code.text-editor > .CodeMirror .issue-widget):
2201         (.source-code.text-editor > .CodeMirror .issue-widget.warning,):
2202         (.source-code.text-editor > .CodeMirror .issue-widget.error,):
2203         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
2204         (@media (prefers-dark-interface)):
2205         (.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
2206         (.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
2207         (.spreadsheet-style-declaration-editor .property.has-warning):
2208         (.spreadsheet-style-declaration-editor .property.has-warning .warning):
2209         (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
2210         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
2211         (@media (prefers-dark-interface)):
2212         (.spreadsheet-css-declaration):
2213         (.spreadsheet-css-declaration.locked):
2214         (.spreadsheet-css-declaration .selector.style-attribute):
2215         (.spreadsheet-css-declaration .selector:focus,):
2216         (.spreadsheet-css-declaration.locked .origin::after):
2217         (.spreadsheet-css-declaration .origin .go-to-link,):
2218         (.spreadsheet-css-declaration .media-label):
2219         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
2220         (@media (prefers-dark-interface)):
2221         (.spreadsheet-style-panel .section-header):
2222         (.spreadsheet-style-panel .section-header .node-link:hover):
2223         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
2224         (@media (prefers-dark-interface)):
2225         (.syntax-highlighted,):
2226         (.cm-s-default,):
2227         (.cm-s-default .cm-attribute):
2228         (.cm-s-default .cm-m-xml.cm-attribute,):
2229         (.cm-s-default .cm-meta):
2230         (.cm-s-default .cm-variable-3):
2231         (.cm-s-default .cm-builtin):
2232         * UserInterface/Views/TabBar.css:
2233         (@media (prefers-dark-interface)):
2234         (.tab-bar):
2235         (.tab-bar > .item):
2236         (.tab-bar > .item > .title):
2237         (.tab-bar > .item:not(.disabled).selected):
2238         (.tab-bar:not(.animating) > .item:not(.selected):hover):
2239         (.tab-bar > .item > .close,):
2240         (body.window-inactive .tab-bar):
2241         (body.window-inactive .tab-bar > .item):
2242         (body.window-inactive .tab-bar > .item.selected):
2243         (body.window-inactive .tab-bar > .item > .title):
2244         * UserInterface/Views/Table.css:
2245         (@media (prefers-dark-interface)):
2246         (.table,):
2247         (.table > .header > .sortable:active):
2248         (.table > .header > :matches(.sort-ascending, .sort-descending)):
2249         (.table > .header > :matches(.sort-ascending, .sort-descending)::after):
2250         * UserInterface/Views/TextEditor.css:
2251         (@media (prefers-dark-interface)):
2252         (.text-editor > .CodeMirror .execution-line):
2253         (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
2254         * UserInterface/Views/TimelineDataGrid.css:
2255         (@media (prefers-dark-interface)):
2256         (.data-grid th:matches(.sort-ascending, .sort-descending)):
2257         * UserInterface/Views/TimelineIcons.css:
2258         (@media (prefers-dark-interface)):
2259         (.time-icon .icon):
2260         * UserInterface/Views/TimelineOverview.css:
2261         (@media (prefers-dark-interface)):
2262         (.timeline-overview > .navigation-bar.timelines):
2263         (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
2264         (.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):
2265         * UserInterface/Views/TimelineRecordingContentView.css:
2266         (@media (prefers-dark-interface)):
2267         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
2268         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
2269         * UserInterface/Views/Toolbar.css:
2270         (@media (prefers-dark-interface)):
2271         (body .toolbar):
2272         (body.window-inactive .toolbar):
2273         (body.latest-mac .toolbar .item.button,):
2274         (body.latest-mac .toolbar .search-bar > input[type="search"]):
2275         (body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
2276         (body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder):
2277         (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder):
2278         (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button):
2279         (body.latest-mac .toolbar .dashboard-container):
2280         (body.latest-mac .toolbar .item.button:active):
2281         (body.latest-mac.window-inactive .toolbar .item.button,):
2282         * UserInterface/Views/TreeOutline.css:
2283         (@media (prefers-dark-interface)):
2284         (.tree-outline .item .subtitle):
2285         * UserInterface/Views/Variables.css:
2286         (@media (prefers-dark-interface)):
2287         (:root):
2288         (body.window-inactive):
2289         (body.window-inactive *):
2290         * UserInterface/Views/WebSocketContentView.css:
2291         (@media (prefers-dark-interface)):
2292         (.web-socket.content-view .data-grid table.data tr.revealed):
2293         (.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
2294         (.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):
2295         * UserInterface/Views/XHRBreakpointPopover.css:
2296         (@media (prefers-dark-interface)):
2297         (.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
2298
2299 2018-09-17  Devin Rousso  <drousso@apple.com>
2300
2301         Web Inspector: generate CSSKeywordCompletions from backend values
2302         https://bugs.webkit.org/show_bug.cgi?id=189041
2303
2304         Reviewed by Joseph Pecoraro.
2305
2306         Moves the longhands map to `WI.CSSKeywordCompletions` for more global access. Creates an
2307         aliases map to support completions on aliases with the same values as the non-alias name.
2308         Removes all keyword-only properties from `WI.CSSKeywordCompletions._propertyKeywordMap` as
2309         they are now generated by the backend (kept for compatibility).
2310
2311         * UserInterface/Models/CSSCompletions.js:
2312         (WI.CSSCompletions):
2313         (WI.CSSCompletions.requestCSSCompletions.propertyNamesCallback):
2314         (WI.CSSCompletions.prototype.isShorthandPropertyName):
2315
2316         * UserInterface/Models/CSSKeywordCompletions.js:
2317         (WI.CSSKeywordCompletions.forProperty.addKeywordsForName): Added.
2318         (WI.CSSKeywordCompletions.forProperty):
2319         (WI.CSSKeywordCompletions.addCustomCompletions):
2320
2321         * UserInterface/Models/CSSProperty.js:
2322         (WI.CSSProperty.isInheritedPropertyName):
2323
2324 2018-09-15  Devin Rousso  <drousso@apple.com>
2325
2326         Web Inspector: REGRESSION: breakpoint context menu appears twice in DOM tree
2327         https://bugs.webkit.org/show_bug.cgi?id=189308
2328
2329         Reviewed by Joseph Pecoraro.
2330
2331         * UserInterface/Controllers/DOMBreakpointTreeController.js:
2332         (WI.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
2333         Set a symbol on the `contextMenu` to ensure that the same items are not added twice.
2334
2335 2018-09-14  Joseph Pecoraro  <pecoraro@apple.com>
2336
2337         Web Inspector: Source View doesn't scroll to show line when breakpoint is hit inside of <script> in HTML resource
2338         https://bugs.webkit.org/show_bug.cgi?id=189638
2339         <rdar://problem/43359278>
2340
2341         Reviewed by Matt Baker.
2342
2343         Pausing in Document resources on page load have special considerations where we
2344         may not receive their full content immediately, so we may synthesize inline script
2345         content for the resource until we have full content. Unfortunately, when we get
2346         full content and update the TextEditor we were losing the revealed position and
2347         other editor information. This change specifically targets those cases, by
2348         re-applying editor state when updating such a resource from partial to full content.
2349
2350         * UserInterface/Views/SourceCodeTextEditor.js:
2351         (WI.SourceCodeTextEditor.prototype._contentAvailable):
2352         Signal to the editor that when updating the content it should carry
2353         over editor state. Only do this if we had partial content before.
2354
2355         * UserInterface/Views/TextEditor.js:
2356         (WI.TextEditor):
2357         (WI.TextEditor.prototype.set repeatReveal):
2358         Provide a way to signal we should restore state when update the content.
2359
2360         (WI.TextEditor.set string.update):
2361         (WI.TextEditor.prototype.set string):
2362         When repeatReveal was enabled, restore editor state such as the
2363         revealed location and text selection.
2364
2365 2018-09-14  Devin Rousso  <webkit@devinrousso.com>
2366
2367         Web Inspector: Record actions performed on ImageBitmapRenderingContext
2368         https://bugs.webkit.org/show_bug.cgi?id=181341
2369
2370         Reviewed by Joseph Pecoraro.
2371
2372         * UserInterface/Models/Recording.js:
2373         (WI.Recording.fromPayload):
2374         (WI.Recording.prototype.createContext):
2375
2376         * UserInterface/Models/RecordingAction.js:
2377         (WI.RecordingAction._prototypeForType):
2378         (WI.RecordingAction.prototype.getImageParameters):
2379
2380         * UserInterface/Views/RecordingActionTreeElement.js:
2381         (WI.RecordingActionTreeElement._classNameForAction.classNameForActionName):
2382
2383         * UserInterface/Views/RecordingContentView.js:
2384         (WI.RecordingContentView):
2385         (WI.RecordingContentView.prototype.get navigationItems):
2386         (WI.RecordingContentView.prototype.updateActionIndex):
2387         (WI.RecordingContentView.prototype.shown):
2388         (WI.RecordingContentView.prototype.hidden):
2389         (WI.RecordingContentView.prototype._generateContentFromSnapshot): Renamed.
2390         (WI.RecordingContentView.prototype._updateImageGrid):
2391         (WI.RecordingContentView.prototype._generateContentCanvasWebGL): Deleted.
2392
2393         * UserInterface/Views/CanvasContentView.js:
2394         (WI.CanvasContentView):
2395
2396 2018-09-13  Jamal Nasser  <jamaln@mail.com>
2397
2398         Web Inspector: Dark Mode: bezier curve editor should be updated
2399         https://bugs.webkit.org/show_bug.cgi?id=187657
2400
2401         Reviewed by Matt Baker.
2402
2403         * UserInterface/Views/DarkMode.css:
2404         (@media (prefers-dark-interface)):
2405         (.bezier-editor > .bezier-preview-timing):
2406         (.bezier-editor > .bezier-container .bezier-curve):
2407         (.bezier-editor > .bezier-container .linear-curve):
2408         (.bezier-editor > .bezier-preview):
2409         (.bezier-editor > .bezier-preview > div):
2410         (.bezier-editor > .bezier-container .control-handle):
2411         (.bezier-editor > .bezier-container .control-line):
2412
2413 2018-09-13  Matt Baker  <mattbaker@apple.com>
2414
2415         Web Inspector: Timelines: clicking a row in Script > Events grid triggers Location popover when column is hidden
2416         https://bugs.webkit.org/show_bug.cgi?id=189603
2417         <rdar://problem/44431403>
2418
2419         Reviewed by Joseph Pecoraro.
2420
2421         TimelineDataGrid controls showing/hiding the call frame popover, with subclasses
2422         overriding callFramePopoverAnchorElement to position it. This patch adds
2423         another overridable base class method, shouldShowCallFramePopover, which subclasses
2424         can use to block the popover when the Location column is hidden.
2425
2426         * UserInterface/Views/DataGrid.js:
2427         (WI.DataGrid.prototype.layout):
2428         (WI.DataGrid.prototype._positionResizerElements):
2429         (WI.DataGrid.prototype._isColumnVisible): Deleted.
2430
2431         * UserInterface/Views/LayoutTimelineDataGrid.js:
2432         (WI.LayoutTimelineDataGrid.prototype.shouldShowCallFramePopover):
2433         (WI.LayoutTimelineDataGrid):
2434
2435         * UserInterface/Views/ScriptTimelineDataGrid.js:
2436         (WI.ScriptTimelineDataGrid.prototype.shouldShowCallFramePopover):
2437         (WI.ScriptTimelineDataGrid):
2438
2439         * UserInterface/Views/TimelineDataGrid.js:
2440         (WI.TimelineDataGrid.prototype.shouldShowCallFramePopover):
2441         (WI.TimelineDataGrid.prototype._dataGridSelectedNodeChanged):
2442
2443 2018-09-13  Joseph Pecoraro  <pecoraro@apple.com>
2444
2445         Web Inspector: Opening inspector with a selected element might immediately scroll that element off screen in the DOM Tree outline
2446         https://bugs.webkit.org/show_bug.cgi?id=189569
2447         <rdar://problem/44397098>
2448
2449         Reviewed by Devin Rousso.
2450
2451         * UserInterface/Views/DOMTreeContentView.js:
2452         (WI.DOMTreeContentView.prototype.layout):
2453         Re-select the selected DOM node in the DOM Tree when the view resizes.
2454         Typically this can happen if the sidebar opens/closes/resizes, in which
2455         case we will want the selected DOM node to stay in view even if the DOM
2456         tree starts wrapping earlier content.
2457
2458 2018-09-12  Joseph Pecoraro  <pecoraro@apple.com>
2459
2460         Web Inspector: fix test case failures in js-isLikelyStackTrace.html
2461         https://bugs.webkit.org/show_bug.cgi?id=180664
2462
2463         Reviewed by Devin Rousso.
2464
2465         * UserInterface/Models/StackTrace.js:
2466         (WI.StackTrace.isLikelyStackTrace):
2467         In a quick benchmark 50% of the time was rebuilding the same complex regular
2468         expression over and over again. Instead just build the regex once and reset
2469         it before each use.
2470
2471 2018-09-12  Devin Rousso  <drousso@apple.com>
2472
2473         Web Inspector: imported recordings are unable to be viewed after navigation
2474         https://bugs.webkit.org/show_bug.cgi?id=189208
2475
2476         Reviewed by Joseph Pecoraro.
2477
2478         Move the "Imported Recordings" folder to the top level (instead of under "Overview") so that
2479         it is selectable when there are no canvases but there is an imported recording.
2480
2481         * UserInterface/Controllers/CanvasManager.js:
2482         (WI.CanvasManager.prototype._removeCanvas):
2483         Null out the `source` of each `WI.Recording` for the removed `WI.Canvas`.
2484
2485         * UserInterface/Views/CanvasTabContentView.js:
2486         (WI.CanvasTabContentView):
2487         (WI.CanvasTabContentView.prototype._removeCanvas):
2488         Add each `WI.Recording`for the removed `WI.Canvas` to the "Imported Recordings" folder.
2489
2490         * UserInterface/Views/CanvasContentView.js:
2491         (WI.CanvasContentView.prototype.refresh):
2492         (WI.CanvasContentView.prototype.initialLayout):
2493         (WI.CanvasContentView.prototype._showError):
2494         Drive-by: don't recreate the error preview element if it already exists.
2495
2496         * UserInterface/Views/CanvasSidebarPanel.js:
2497         (WI.CanvasSidebarPanel.prototype.updateRepresentedObjects): Added.
2498         (WI.CanvasSidebarPanel.prototype.shown):
2499         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange): Deleted.
2500
2501 2018-09-11  Joseph Pecoraro  <pecoraro@apple.com>
2502
2503         Web Inspector: Fix typo "vritualized"
2504         https://bugs.webkit.org/show_bug.cgi?id=189511
2505
2506         Reviewed by Devin Rousso.
2507
2508         * UserInterface/Views/TreeOutline.js:
2509         (WI.TreeOutline):
2510         (WI.TreeOutline.prototype.registerScrollVirtualizer):
2511         (WI.TreeOutline.prototype.updateVirtualizedElements):
2512
2513 2018-09-10  Joseph Pecoraro  <pecoraro@apple.com>
2514
2515         Web Inspector: Address some ESLint warnings
2516         https://bugs.webkit.org/show_bug.cgi?id=188824
2517
2518         Reviewed by Matt Baker.
2519
2520         * .eslintrc:
2521         * UserInterface/Base/Platform.js:
2522         * UserInterface/Controllers/AuditManager.js:
2523         * UserInterface/Controllers/BasicBlockAnnotator.js:
2524         * UserInterface/Controllers/CallFrameTreeController.js:
2525         * UserInterface/Controllers/HARBuilder.js:
2526         * UserInterface/Models/AuditReport.js:
2527         * UserInterface/Models/AuditResult.js:
2528         * UserInterface/Models/AuditTestCase.js:
2529         * UserInterface/Models/AuditTestSuite.js:
2530         * UserInterface/Models/Cookie.js:
2531         * UserInterface/Models/SourceCodePosition.js:
2532         * UserInterface/Test/FrontendTestHarness.js:
2533         * UserInterface/Test/TestSuite.js:
2534         * UserInterface/Views/CanvasContentView.js:
2535         * UserInterface/Views/CollectionContentView.js:
2536         * UserInterface/Views/ContentBrowser.js:
2537         * UserInterface/Views/CookieStorageContentView.js:
2538         * UserInterface/Views/DataGrid.js:
2539         * UserInterface/Views/DatabaseTableContentView.js:
2540         * UserInterface/Views/FindBanner.js:
2541         * UserInterface/Views/JSONResourceContentView.js:
2542         * UserInterface/Views/LogContentView.js:
2543         * UserInterface/Views/ResourceSidebarPanel.js:
2544         * UserInterface/Views/SourceCodeTextEditor.js:
2545         * UserInterface/Views/SpreadsheetTextField.js:
2546         * UserInterface/Workers/Formatter/FormatterUtilities.js:
2547
2548 2018-09-06  Andy Estes  <aestes@apple.com>
2549
2550         [Apple Pay] Rename the -apple-pay-button-type value "checkout" to "check-out"
2551         https://bugs.webkit.org/show_bug.cgi?id=189366
2552         <rdar://problem/44193218>
2553
2554         Reviewed by Sam Weinig.
2555
2556         * UserInterface/Models/CSSKeywordCompletions.js:
2557
2558 2018-08-31  Jamal Nasser  <xnasser@outlook.com>
2559
2560         Added a CSS rule to DarkMode.css to fix color on sidebar toggle.
2561         <https://webkit.org/b/189139>
2562
2563         Reviewed by Matt Baker.
2564
2565         * UserInterface/Views/DarkMode.css:
2566         (@media (prefers-dark-interface)):
2567         (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
2568
2569 2018-08-29  David Kilzer  <ddkilzer@apple.com>
2570
2571         Remove empty directories from from svn.webkit.org repository
2572         <https://webkit.org/b/189081>
2573
2574         * WebInspectorUI.esproj: Removed.
2575
2576 2018-08-28  Devin Rousso  <drousso@apple.com>
2577
2578         console.log() shows (anonymous function) instead of the passed string when a certain format is used
2579         https://bugs.webkit.org/show_bug.cgi?id=188946
2580         <rdar://problem/43756428>
2581
2582         Reviewed by Brian Burg.
2583
2584         Stack trace URLs are much more likely to follow the following format:
2585
2586             <protocol>://<path>:<line>:<column>
2587
2588         Modify the test regexp to always require that a protocol exists and to check that there are
2589         no ":" inside the protocol or path. Additionally, stack traces usually have more than one
2590         frame, so return false if there isn't more than one line.
2591
2592         * UserInterface/Models/StackTrace.js:
2593         (WI.StackTrace.isLikelyStackTrace):
2594
2595 2018-08-28  Devin Rousso  <drousso@apple.com>
2596
2597         Web Inspector: REGRESSION: CanvasSidebarPanel is empty for imported recordings
2598         https://bugs.webkit.org/show_bug.cgi?id=189061
2599
2600         Reviewed by Brian Burg.
2601
2602         When recordings are imported, they don't have an associated `WI.Canvas`, meaning that the
2603         `WI.Recording` is never added to the canvas' `WI.RecordingCollection`. Previously, the
2604         canvas sidebar relied upon the `ItemAdded` event to update the recording `WI.ScopeBar`.
2605         Since the imported recording isn't ever added to the collection, this is never fired.
2606
2607         This patch moves the function call that updates the `WI.ScopeBar` to a more universal path,
2608         ensuring that no matter how a `WI.Recording` is set for the sidebar, it will be shown.
2609
2610         * UserInterface/Views/CanvasSidebarPanel.js:
2611         (WI.CanvasSidebarPanel.prototype.set recording):
2612         (WI.CanvasSidebarPanel.prototype._recordingAdded):
2613         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
2614
2615 2018-08-28  Devin Rousso  <drousso@apple.com>
2616
2617         Web Inspector: Search bar is too narrow in some localizations
2618         https://bugs.webkit.org/show_bug.cgi?id=189060
2619         <rdar://problem/43006369>
2620
2621         Reviewed by Brian Burg.
2622
2623         * UserInterface/Views/Toolbar.css:
2624         (.toolbar .search-bar):
2625
2626 2018-08-27  Keith Rollin  <krollin@apple.com>
2627
2628         Unreviewed build fix -- disable LTO for production builds
2629
2630         * Configurations/Base.xcconfig:
2631
2632 2018-08-27  Andy Estes  <aestes@apple.com>
2633
2634         Teach Web Inspector how to complete keywords for -apple-pay-button-style and -apple-pay-button-type
2635         https://bugs.webkit.org/show_bug.cgi?id=189001
2636
2637         Reviewed by Devin Rousso.
2638
2639         * UserInterface/Models/CSSKeywordCompletions.js:
2640
2641 2018-08-27  Devin Rousso  <drousso@apple.com>
2642
2643         Web Inspector: when scrolling a virtualized TreeOutline, only update the DOM periodically
2644         https://bugs.webkit.org/show_bug.cgi?id=188960
2645
2646         Reviewed by Brian Burg.
2647
2648         After each `updateVirtualizedElements` call, remember the `WI.TreeElement` that is located
2649         halfway within the visible list. When handling each "scroll", only regenerate the
2650         `WI.TreeOutline` DOM if the user has scrolled `extraRows` distance.
2651
2652         * UserInterface/Views/TreeOutline.js:
2653         (WI.TreeOutline):
2654         (WI.TreeOutline.prototype.registerScrollVirtualizer):
2655         (WI.TreeOutline.prototype.updateVirtualizedElements):
2656         (WI.TreeOutline.prototype._calculateVirtualizedValues): Added.
2657
2658 2018-08-27  Devin Rousso  <drousso@apple.com>
2659
2660         Web Inspector: provide autocompletion for event breakpoints
2661         https://bugs.webkit.org/show_bug.cgi?id=188717
2662
2663         Reviewed by Brian Burg.
2664
2665         * UserInterface/Controllers/DOMTreeManager.js:
2666         (WI.DOMTreeManager):
2667         (WI.DOMTreeManager.prototype.getSupportedEventNames): Added.
2668
2669         * UserInterface/Views/EventBreakpointPopover.js:
2670         (WI.EventBreakpointPopover):
2671         (WI.EventBreakpointPopover.prototype.show):
2672         (WI.EventBreakpointPopover.prototype.dismiss): Added.
2673         (WI.EventBreakpointPopover.prototype.completionSuggestionsClickedCompletion): Added.
2674         (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
2675         (WI.EventBreakpointPopover.prototype._showSuggestionsView): Added.
2676
2677 2018-08-27  Keith Rollin  <krollin@apple.com>
2678
2679         Build system support for LTO
2680         https://bugs.webkit.org/show_bug.cgi?id=187785
2681         <rdar://problem/42353132>
2682
2683         Reviewed by Dan Bernstein.
2684
2685         Update Base.xcconfig and DebugRelease.xcconfig to optionally enable
2686         LTO.
2687
2688         * Configurations/Base.xcconfig:
2689         * Configurations/DebugRelease.xcconfig:
2690
2691 2018-08-27  Devin Rousso  <drousso@apple.com>
2692
2693         Web Inspector: REGRESSION: virtualized TreeOutline is empty when filtering
2694         https://bugs.webkit.org/show_bug.cgi?id=188959
2695
2696         Reviewed by Brian Burg.
2697
2698         * UserInterface/Views/TreeElement.js:
2699         (WI.TreeElement.prototype.set hidden):
2700         Only set `focusedTreeElement` if the `WI.TreeElement` is selected and not hidden. There is
2701         no reason to focus a hidden or unselected `WI.TreeElement`.
2702
2703 2018-08-23  Devin Rousso  <drousso@apple.com>
2704
2705         Web Inspector: Color picker: can't enter decimal numbers for opacity
2706         https://bugs.webkit.org/show_bug.cgi?id=187026
2707         <rdar://problem/41446500>
2708
2709         Reviewed by Brian Burg.
2710
2711         After every "input" event, we update the `color` value of the `WI.ColorPicker` based on a
2712         generated string using the values of the various <input>. The issue with this approach is
2713         that adding a decimal point (e.g. "0.") would still be construed as 0, meaning that the
2714         color wouldn't change and would instead be reset back to it's old value. This patch adds an
2715         early return if the newly generated color has the same value as the current color, thereby
2716         meaning that the `color` wouldn't change when changing from "0" to "0.".
2717
2718         * UserInterface/Views/ColorPicker.js:
2719         (WI.ColorPicker):
2720         (WI.ColorPicker.createColorInput):
2721         (WI.ColorPicker.prototype._handleColorInputInput):
2722
2723 2018-08-23  Simon Fraser  <simon.fraser@apple.com>
2724
2725         Add support for dumping GC heap snapshots, and a viewer
2726         https://bugs.webkit.org/show_bug.cgi?id=186416
2727
2728         Reviewed by Joseph Pecoraro.
2729
2730         Make a way to dump information about the GC heap that is useful for looking for leaked
2731         or abandoned objects. This dump is obtained (on Apple platforms) via:
2732             notifyutil -p com.apple.WebKit.dumpGCHeap
2733         which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector.
2734
2735         This leverages the heap snapshot used by Web Inspector, adding an alternate format for
2736         the snapshot JSON that adds additional data about objects and why they are GC roots.
2737
2738         The generated bindings code is changed to include the output root reason from isReachableFromOpaqueRoots(),
2739         and to implement heapSnapshot() which provides the address of the wrapped object. A new IDL attribute,
2740         CustomHeapSnapshot, is used to allow custom heapSnapshot() implementations for classes like JSDocument
2741         that need to decorate the heap snapshot cell data with things like the document URL.
2742
2743         GCController registers a notifyutil callback which gathers the debug heap snapshot, and dumps it
2744         to a file in /tmp. The file path is printed out to the system log.
2745
2746         * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
2747         (HeapSnapshot):
2748
2749 2018-08-23  Brian Burg  <bburg@apple.com>
2750
2751         Web Inspector: fix typos in some compositing reasons
2752         https://bugs.webkit.org/show_bug.cgi?id=188905
2753         <rdar://problem/43624825>
2754
2755         Reviewed by Simon Fraser.
2756
2757         * Localizations/en.lproj/localizedStrings.js:
2758         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
2759         (WI.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
2760         (WI.LayerTreeDetailsSidebarPanel):
2761         * UserInterface/Views/Layers3DContentView.js:
2762         (WI.Layers3DContentView.prototype._updateReasonsList):
2763         (WI.Layers3DContentView):
2764
2765 2018-08-23  Devin Rousso  <drousso@apple.com>
2766
2767         Web Inspector: support breakpoints for timers and animation-frame events
2768         https://bugs.webkit.org/show_bug.cgi?id=188778
2769
2770         Reviewed by Brian Burg.
2771
2772         Add a `type` to `WI.EventBreakpoint` that matches `DOMDebugger.EventBreakpointType`:
2773          - `AnimationFrame` for `requestAnimationFrame`
2774          - `Listener` for any named DOM Event
2775          - `Timer` for `setTimeout` and `setInterval`
2776
2777         Modified `WI.EventBreakpointPopover` to provide ways for selecting these other types, which
2778         is then passed to `WI.DOMDebuggerManager`, which now calls through to the newly added
2779         `DOMDebugger.removeEventBreakpoint` and `DOMDebugger.setEventBreakpoint` that sets
2780         breakpoints for all event types.
2781
2782         * Localizations/en.lproj/localizedStrings.js:
2783         * UserInterface/Images/EventBreakpointAnimationFrame.svg: Added.
2784         * UserInterface/Images/EventBreakpointListener.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/EventBreakpoint.svg.
2785         * UserInterface/Images/EventBreakpointTimer.svg: Added.
2786
2787         * UserInterface/Controllers/DOMDebuggerManager.js:
2788         (WI.DOMDebuggerManager.supportsEventBreakpoints): Added.
2789         (WI.DOMDebuggerManager.prototype.eventBreakpointForTypeAndEventName): Added.
2790         (WI.DOMDebuggerManager.prototype.addEventBreakpoint):
2791         (WI.DOMDebuggerManager.prototype.removeEventBreakpoint.breakpointRemoved): Added.
2792         (WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
2793         (WI.DOMDebuggerManager.prototype._updateEventBreakpoint):
2794         (WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Deleted.
2795
2796         * UserInterface/Controllers/DOMTreeManager.js:
2797         (WI.DOMTreeManager.prototype.setBreakpointForEventListener):
2798
2799         * UserInterface/Controllers/DebuggerManager.js:
2800         (WI.DebuggerManager.prototype._pauseReasonFromPayload):
2801
2802         * UserInterface/Models/EventBreakpoint.js:
2803         (WI.EventBreakpoint):
2804         (WI.EventBreakpoint.fromPayload):
2805         (WI.EventBreakpoint.prototype.get type): Added.
2806         (WI.EventBreakpoint.prototype.get serializableInfo):
2807         (WI.EventBreakpoint.prototype.saveIdentityToCookie):
2808
2809         * UserInterface/Views/DebuggerSidebarPanel.js:
2810         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
2811         (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
2812
2813         * UserInterface/Views/EventBreakpointPopover.js:
2814         (WI.EventBreakpointPopover):
2815         (WI.EventBreakpointPopover.prototype.get breakpoint): Added.
2816         (WI.EventBreakpointPopover.prototype.show):
2817         (WI.EventBreakpointPopover.prototype.show.createOption): Added.
2818         (WI.EventBreakpointPopover.prototype.dismiss): Added.
2819         (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
2820         (WI.EventBreakpointPopover.prototype._handleTypeSelectChange): Added.
2821         (WI.EventBreakpointPopover.prototype.get result): Deleted.
2822         (WI.EventBreakpointPopover.prototype.get value): Deleted.
2823         * UserInterface/Views/EventBreakpointPopover.css:
2824         (.popover .event-breakpoint-content > .event-type): Added.
2825         (.popover .event-breakpoint-content > input): Deleted.
2826
2827         * UserInterface/Views/EventBreakpointTreeElement.js:
2828         (WI.EventBreakpointTreeElement):
2829         * UserInterface/Views/EventBreakpointTreeElement.css:
2830         (.breakpoint.event.animation-frame:not(.breakpoint-paused-icon) .icon): Added.
2831         (.breakpoint.event.listener:not(.breakpoint-paused-icon) .icon): Added.
2832         (.breakpoint.event.timer:not(.breakpoint-paused-icon) .icon): Added.
2833         (.breakpoint.event:not(.breakpoint-paused-icon) .icon): Deleted.
2834
2835 2018-08-23  Devin Rousso  <drousso@apple.com>
2836
2837         Web Inspector: `console.inspect(sessionStorage)` first time does not show Session Storage content view if Storage tab was previously unvisited
2838         https://bugs.webkit.org/show_bug.cgi?id=188801
2839
2840         Reviewed by Matt Baker.
2841
2842         * UserInterface/Base/Main.js:
2843         (WI.tabContentViewClassForRepresentedObject):
2844         (WI._storageWasInspected):
2845         Since the `WI.StorageSidebarPanel` is not created until the `WI.StorageTabContentView` is
2846         created, the `WI.StorageManager.Event.DOMStorageObjectWasInspected` and
2847         `WI.StorageManager.Event.DatabaseWasInspected` events do not reach the sidebar. We should
2848         follow what `WI._domNodeWasInspected` does and additionally call `WI.showRepresentedObject`
2849         on the inspected object.
2850
2851 2018-08-23  Devin Rousso  <drousso@apple.com>
2852
2853         Web Inspector: REGRESSION: InspectorStyleSheet not visible in the resources sidebar
2854         https://bugs.webkit.org/show_bug.cgi?id=188819
2855         <rdar://problem/43579039>
2856
2857         Reviewed by Brian Burg.
2858
2859         * UserInterface/Models/ResourceCollection.js:
2860         (WI.ResourceCollection.prototype.objectIsRequiredType):
2861
2862 2018-08-23  Joseph Pecoraro  <pecoraro@apple.com>
2863
2864         JSContext Inspector: Scripts not showing up in Resources tab
2865         https://bugs.webkit.org/show_bug.cgi?id=188814
2866         <rdar://problem/43576117>
2867
2868         Reviewed by Brian Burg.
2869
2870         * UserInterface/Views/ResourceSidebarPanel.js:
2871         (WI.ResourceSidebarPanel.prototype._addScript):
2872         This path shouldn't apply to JSContext inspection which will
2873         never have a pageTarget and but doesn't have a mainResource.
2874
2875 2018-08-22  Devin Rousso  <drousso@apple.com>
2876
2877         Web Inspector: cannot delete multiple event breakpoints by repeatedly hitting delete
2878         https://bugs.webkit.org/show_bug.cgi?id=188803
2879         <rdar://problem/43572838>
2880
2881         Reviewed by Matt Baker.
2882
2883         * UserInterface/Views/DebuggerSidebarPanel.js:
2884         (WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved):
2885         (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved):
2886
2887 2018-08-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2888
2889         Unreviewed. Do not include TreeOutlineDataGridSynchronizer.js in inspector main.
2890
2891         The script was removed in r235151.
2892
2893         * UserInterface/Main.html:
2894
2895 2018-08-21  Matt Baker  <mattbaker@apple.com>
2896
2897         Web Inspector: Remove TreeOutlineDataGridSynchronizer
2898         https://bugs.webkit.org/show_bug.cgi?id=188449
2899         <rdar://problem/43107980>
2900
2901         Reviewed by Devin Rousso.
2902
2903         * UserInterface/Views/HeapAllocationsTimelineView.js:
2904         (WI.HeapAllocationsTimelineView.prototype.layout):
2905         * UserInterface/Views/LayoutTimelineView.js:
2906         (WI.LayoutTimelineView.prototype._processPendingRecords):
2907         * UserInterface/Views/NetworkTimelineView.js:
2908         (WI.NetworkTimelineView.prototype._processPendingRecords):
2909         * UserInterface/Views/RenderingFrameTimelineView.js:
2910         (WI.RenderingFrameTimelineView.prototype._processPendingRecords):
2911         (WI.RenderingFrameTimelineView.prototype.dataGridNodeForTreeElement): Deleted.
2912         * UserInterface/Views/ScriptDetailsTimelineView.js:
2913         (WI.ScriptDetailsTimelineView.prototype._processPendingRecords):
2914         * UserInterface/Views/TimelineDataGrid.js:
2915         (WI.TimelineDataGrid):
2916         (WI.TimelineDataGrid.prototype.reset):
2917         (WI.TimelineDataGrid.prototype.shown):
2918         (WI.TimelineDataGrid.prototype.addRowInSortOrder):
2919         (WI.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
2920         (WI.TimelineDataGrid.prototype._sort):
2921         (WI.TimelineDataGrid.prototype.treeElementForDataGridNode): Deleted.
2922         (WI.TimelineDataGrid.prototype.dataGridNodeForTreeElement): Deleted.
2923         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js: Removed.
2924
2925 2018-08-21  Joseph Pecoraro  <pecoraro@apple.com>
2926
2927         Web Inspector: ⌘G does not while find banner is focused
2928         https://bugs.webkit.org/show_bug.cgi?id=188815
2929         <rdar://problem/43577158>
2930
2931         Reviewed by Matt Baker.
2932
2933         * UserInterface/Base/Main.js:
2934         Allow an <input> element to be the current focus element, which is what will
2935         our global KeyboardShortcut handlers will interact with. Also make sure
2936         that showing the find banner for the first time still focuses it.
2937
2938 2018-08-21  Devin Rousso  <drousso@apple.com>
2939
2940         Web Inspector: REGRESSION(r235095): duplicate actions existing in WI.CanvasSidebarPanel
2941         https://bugs.webkit.org/show_bug.cgi?id=188808
2942
2943         Reviewed by Joseph Pecoraro.
2944
2945         * UserInterface/Views/CanvasSidebarPanel.js:
2946         (WI.CanvasSidebarPanel.prototype._recordingChanged):
2947         Check that the `WI.RecordingAction` is not already represented in the `WI.TreeOutline`
2948         before adding it.
2949
2950         * UserInterface/Views/CanvasSidebarPanel.css:
2951         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle > progress):
2952         Drive-by: vertically center the <progress> shown for `WI.RecordingFrame` during processing.
2953
2954 2018-08-21  Devin Rousso  <drousso@apple.com>
2955
2956         Web Inspector: Canvas: provide default icon for all actions
2957         https://bugs.webkit.org/show_bug.cgi?id=188807
2958
2959         Reviewed by Matt Baker.
2960
2961         * UserInterface/Views/RecordingActionTreeElement.css:
2962         (.item.action > .icon):
2963         (.item.action.initial-state > .icon): Deleted.
2964
2965 2018-08-21  Joseph Pecoraro  <pecoraro@apple.com>
2966
2967         Web Inspector: Rulers.svg is missing
2968         https://bugs.webkit.org/show_bug.cgi?id=188806
2969         <rdar://problem/43574273>
2970
2971         Reviewed by Devin Rousso.
2972
2973         * UserInterface/Images/Rulers.svg: Added.
2974
2975 2018-08-20  Devin Rousso  <drousso@apple.com>
2976
2977         Web Inspector: allow breakpoints to be set for specific event listeners
2978         https://bugs.webkit.org/show_bug.cgi?id=183138
2979
2980         Reviewed by Joseph Pecoraro.
2981
2982         * Localizations/en.lproj/localizedStrings.js:
2983
2984         * UserInterface/Models/EventBreakpoint.js:
2985         (WI.EventBreakpoint):
2986         (WI.EventBreakpoint.fromPayload): Added.
2987         (WI.EventBreakpoint.prototype.get eventListener): Added.
2988
2989         * UserInterface/Controllers/DOMDebuggerManager.js:
2990         (WI.DOMDebuggerManager):
2991
2992         * UserInterface/Controllers/DOMTreeManager.js:
2993         (WI.DOMTreeManager):
2994         (WI.DOMTreeManager.prototype.get eventBreakpoints): Added.
2995         (WI.DOMTreeManager.prototype._setDocument):
2996         (WI.DOMTreeManager.prototype.setEventListenerDisabled):
2997         (WI.DOMTreeManager.prototype.setBreakpointForEventListener): Added.
2998         (WI.DOMTreeManager.prototype.removeBreakpointForEventListener): Added.
2999         (WI.DOMTreeManager.prototype.breakpointForEventListenerId): Added.
3000
3001         * UserInterface/Controllers/EventBreakpointTreeController.js:
3002         (WI.EventBreakpointTreeController):
3003
3004         * UserInterface/Views/DebuggerSidebarPanel.js:
3005         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
3006
3007         * UserInterface/Views/EventListenerSectionGroup.js:
3008         (WI.EventListenerSectionGroup):
3009         (WI.EventListenerSectionGroup.prototype._createDisabledToggleRow):
3010         (WI.EventListenerSectionGroup.prototype._createBreakpointToggleRow): Added.
3011
3012         * UserInterface/Views/EventBreakpointTreeElement.js:
3013         (WI.EventBreakpointTreeElement):
3014         (WI.EventBreakpointTreeElement.prototype.ondelete):
3015         (WI.EventBreakpointTreeElement.prototype.populateContextMenu):
3016         (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
3017
3018 2018-08-20  Devin Rousso  <drousso@apple.com>
3019
3020         Web Inspector: Canvas tab: allow recording processing to be stopped midway
3021         https://bugs.webkit.org/show_bug.cgi?id=185152
3022
3023         Reviewed by Joseph Pecoraro.
3024
3025         Previously, `WI.Recording` used a `WI.YieldableTask` to process every action in such a way
3026         as to not block the UI. The downside to this approach was that it used a message view to
3027         indicate the progress of this process, and prevented the user from viewing the `WI.Recording`
3028         until that process was completed.
3029
3030         This patch changes `WI.Recording` to instead use `async/await` and fire events whenever a
3031         `WI.RecordingAction` (and `WI.RecordingFrame`) finished processing, allowing it to be added
3032         to the recording `WI.TreeOutline` and selected by the user. Additionally, a pause/resume
3033         button is added to the `WI.CanvasSidebarPanel` so the user has greater control over what
3034         how much of the `WI.Recording` they want to process.
3035
3036         * Localizations/en.lproj/localizedStrings.js:
3037
3038         * UserInterface/Base/Utilities.js:
3039         (Promise.delay)
3040         Utility function for promisifying `setTimeout`.
3041
3042         * UserInterface/Models/Recording.js:
3043         (WI.Recording):
3044         (WI.Recording.prototype.get processing): Added.
3045         (WI.Recording.prototype.get ready): Added.
3046         (WI.Recording.prototype.startProcessing): Added.
3047         (WI.Recording.prototype.stopProcessing): Added.
3048         (WI.Recording.prototype.async._process): Added.
3049         (WI.Recording.prototype.process): Deleted.
3050         (WI.Recording.prototype.async.yieldableTaskWillProcessItem): Deleted.
3051         (WI.Recording.prototype.async.yieldableTaskDidFinish): Deleted.
3052
3053         * UserInterface/Models/RecordingAction.js:
3054         (WI.RecordingAction):
3055         (WI.RecordingAction.prototype.get ready): Added.
3056         (WI.RecordingAction.prototype.async.swizzle):
3057         (WI.RecordingAction.prototype.apply):
3058
3059         * UserInterface/Models/RecordingInitialStateAction.js:
3060         (WI.RecordingInitialStateAction):
3061
3062         * UserInterface/Views/CanvasSidebarPanel.js:
3063         (WI.CanvasSidebarPanel):
3064         (WI.CanvasSidebarPanel.prototype.set recording):
3065         (WI.CanvasSidebarPanel.prototype.set action):
3066         (WI.CanvasSidebarPanel.prototype._recordingAdded):
3067         (WI.CanvasSidebarPanel.prototype._recordingRemoved):
3068         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
3069         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
3070         (WI.CanvasSidebarPanel.prototype._recordingChanged):
3071         (WI.CanvasSidebarPanel.prototype._recordingChanged.createPauseButton): Added.
3072         (WI.CanvasSidebarPanel.prototype._recordingChanged.createResumeButton): Added.
3073         (WI.CanvasSidebarPanel.prototype._createRecordingFrameTreeElement): Added.
3074         (WI.CanvasSidebarPanel.prototype._createRecordingActionTreeElement): Added.
3075         (WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction): Added.
3076         (WI.CanvasSidebarPanel.prototype._handleRecordingStartProcessingFrame): Added.
3077         * UserInterface/Views/CanvasSidebarPanel.css:
3078         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle > progress): Added.
3079         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:matches(:focus, .force-focus) .item.processing.selected .subtitle > progress): Added.
3080         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle::before): Added.
3081         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options): Added.
3082         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options > .indeterminate-progress-spinner): Added.
3083         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .indeterminate-progress-spinner): Deleted.
3084
3085         * UserInterface/Views/RecordingContentView.js:
3086         (WI.RecordingContentView):
3087         (WI.RecordingContentView.prototype.updateActionIndex):
3088         (WI.RecordingContentView.prototype.initialLayout):
3089         (WI.RecordingContentView.prototype._updateCanvasPath):
3090         (WI.RecordingContentView.prototype._handleRecordingProcessedAction): Added.
3091         (WI.RecordingContentView.prototype._updateProcessProgress): Deleted.
3092         (WI.RecordingContentView.prototype._handleRecordingProcessedActionSwizzle): Deleted.
3093         (WI.RecordingContentView.prototype._handleRecordingProcessedActionApply): Deleted.
3094         * UserInterface/Views/RecordingContentView.css:
3095         (.content-view:not(.tab).recording > header > .slider-container > .slider-value): Added.
3096
3097         * UserInterface/Views/FolderTreeElement.js:
3098         (WI.FolderTreeElement):
3099
3100         * UserInterface/Views/GeneralTreeElement.js:
3101         (WI.GeneralTreeElement.prototype.get statusElement): Added.
3102         (WI.GeneralTreeElement.prototype._updateTitleElements):
3103
3104         * UserInterface/Views/RecordingContentView.js:
3105         (WI.CanvasContentView.prototype._handleViewShaderButtonClicked):
3106         (WI.CanvasContentView.prototype._handleViewRecordingButtonClicked):
3107         Drive-by: `WI.Collection` doesn't have a `values()` accessor for the underlying `Set`.
3108
3109         * UserInterface/Views/RecordingNavigationSidebarPanel.css: Removed.
3110         * UserInterface/Views/RecordingNavigationSidebarPanel.js: Removed.
3111         These files are no longer used since they were "merged" into `WI.CanvasSidebarPanel`.
3112
3113 2018-08-20  Devin Rousso  <webkit@devinrousso.com>
3114
3115         Web Inspector: Canvas tab: create icons for recordings/shaders in the preview tile
3116         https://bugs.webkit.org/show_bug.cgi?id=183650
3117
3118         Reviewed by Joseph Pecoraro.
3119
3120         * Localizations/en.lproj/localizedStrings.js:
3121
3122         * UserInterface/Views/CanvasContentView.js:
3123         (WI.CanvasContentView):
3124         (WI.CanvasContentView.prototype.initialLayout):
3125         (WI.CanvasContentView.prototype.attached):
3126         (WI.CanvasContentView.prototype._recordingStopped):
3127         (WI.CanvasContentView.prototype._shaderProgramAdded):
3128         (WI.CanvasContentView.prototype._shaderProgramRemoved):
3129         (WI.CanvasContentView.prototype._updateViewRelatedItems):
3130         (WI.CanvasContentView.prototype._handleViewShaderButtonClicked):
3131         (WI.CanvasContentView.prototype._handleViewRecordingButtonClicked):
3132         (WI.CanvasContentView.prototype._addRecording): Deleted.
3133         (WI.CanvasContentView.prototype._handleRecordingSelectElementChange): Deleted.
3134         * UserInterface/Views/CanvasOverviewContentView.css:
3135         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items):
3136         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > :matches(.view-shader, .view-recording)):
3137         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > img + img):
3138         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-shader):
3139         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-recording):
3140         (.content-view.canvas-overview .content-view.canvas > footer > .recordings): Deleted.
3141         (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): Deleted.
3142         (.content-view.canvas-overview .content-view.canvas > footer > .recordings > select): Deleted.
3143         (.content-view.canvas-overview .content-view.canvas > footer .recordings > select:focus): Deleted.
3144         Create two image buttons in the bottom left corner of each canvas tile that appear when the
3145         canvas has associated shaders and/or recordings. Clicking each image button will function
3146         similar to path components, in that if there is only one shader/recording, it is immediately
3147         selected, whereas if there are multiple a dropdown is shown.
3148
3149         * UserInterface/Views/CanvasSidebarPanel.js:
3150         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
3151         (WI.CanvasSidebarPanel.prototype._recordingChanged):
3152         Drive-by: ensure that the selected recording action is properly updated when first loading a
3153         recording and when scrubbing through one.
3154
3155 2018-08-16  Devin Rousso  <drousso@apple.com>
3156
3157         Web Inspector: support breakpoints for arbitrary event names
3158         https://bugs.webkit.org/show_bug.cgi?id=183118
3159
3160         Reviewed by Joseph Pecoraro.
3161
3162         Create UI for setting breakpoints on event names. Ties into renamed DOMDebugger commands,
3163         specifically `setEventBreakpoint` and `removeEventBreakpoint`, that will pause execution if
3164         any DOM event is fired that matches any previously registered breakpoints.
3165
3166         Event breakpoints are distinguished by name, and they currently apply globally, meaning
3167         that only one breakpoint per event name can be registered.
3168
3169         Event breakpoints are created in the Debugger tab in a new "Event Breakpoints" section in
3170         the Navigation sidebar. A new type of popover, EventBreakpointPopover, is used, but right
3171         now all it contains is a basic text input for the event name. Similarly, a new TreeElement
3172         subclass, EventBreakpointTreeElement, is used when showing the list of event listener
3173         breakpoints, but all it shows now is the event name.
3174
3175         The majority of the logic in this patch was derived from XHR breakpoints.
3176
3177         * Localizations/en.lproj/localizedStrings.js:
3178         * UserInterface/Main.html:
3179         * UserInterface/Test.html:
3180         * UserInterface/Images/EventBreakpoint.svg: Added.
3181
3182         * UserInterface/Models/EventBreakpoint.js: Added.
3183         (WI.EventBreakpoint):
3184         (WI.EventBreakpoint.prototype.get eventName):
3185         (WI.EventBreakpoint.prototype.get disabled):
3186         (WI.EventBreakpoint.prototype.set disabled):
3187         (WI.EventBreakpoint.prototype.get serializableInfo):
3188         (WI.EventBreakpoint.prototype.saveIdentityToCookie):
3189
3190         * UserInterface/Controllers/DOMDebuggerManager.js:
3191         (WI.DOMDebuggerManager):
3192         (WI.DOMDebuggerManager.prototype.get eventBreakpoints): Added.
3193         (WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Added.
3194         (WI.DOMDebuggerManager.prototype.addEventBreakpoint): Added.
3195         (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): Added.
3196         (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
3197         (WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Added.
3198         (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Added.
3199         (WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Added.
3200         (WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Added.
3201         (WI.DOMDebuggerManager.prototype._eventBreakpointDisabledStateDidChange): Added.
3202
3203         * UserInterface/Controllers/DebuggerManager.js:
3204         (WI.DebuggerManager.prototype._pauseReasonFromPayload):
3205
3206         * UserInterface/Controllers/EventBreakpointTreeController.js: Added.
3207         (WI.EventBreakpointTreeController):
3208         (WI.EventBreakpointTreeController.prototype.revealAndSelect):
3209         (WI.EventBreakpointTreeController.prototype._eventBreakpointAdded):
3210         (WI.EventBreakpointTreeController.prototype._eventBreakpointRemoved):
3211         (WI.EventBreakpointTreeController.prototype._addTreeElement):
3212
3213         * UserInterface/Views/DebuggerSidebarPanel.js:
3214         (WI.DebuggerSidebarPanel):
3215         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
3216         (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Added.
3217         (WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Added.
3218         (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
3219
3220         * UserInterface/Views/EventBreakpointTreeElement.js: Added.
3221         (WI.EventBreakpointTreeElement):
3222         (WI.EventBreakpointTreeElement.prototype.onattach):
3223         (WI.EventBreakpointTreeElement.prototype.ondetach):
3224         (WI.EventBreakpointTreeElement.prototype.ondelete):
3225         (WI.EventBreakpointTreeElement.prototype.onenter):
3226         (WI.EventBreakpointTreeElement.prototype.onspace):
3227         (WI.EventBreakpointTreeElement.prototype.populateContextMenu):
3228         (WI.EventBreakpointTreeElement.prototype._statusImageElementClicked):
3229         (WI.EventBreakpointTreeElement.prototype._statusImageElementFocused):
3230         (WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown):
3231         (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
3232         (WI.EventBreakpointTreeElement.prototype._updateStatus):
3233         * UserInterface/Views/EventBreakpointTreeElement.css: Added.
3234         (.breakpoint.event-listener:not(.breakpoint-paused-icon) .icon):
3235
3236         * UserInterface/Views/EventBreakpointPopover.js: Added.
3237         (WI.EventBreakpointPopover):
3238         (WI.EventBreakpointPopover.prototype.get result):
3239         (WI.EventBreakpointPopover.prototype.get value):
3240         (WI.EventBreakpointPopover.prototype.show):
3241         (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
3242         * UserInterface/Views/EventBreakpointPopover.css: Added.
3243         (.popover .event-listener-breakpoint-content):
3244         (.popover .event-listener-breakpoint-content > input):
3245
3246         * UserInterface/Views/NavigationSidebarPanel.js:
3247         (WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
3248
3249 2018-08-16  Joseph Pecoraro  <pecoraro@apple.com>
3250
3251         Web Inspector: Show Initiator information in Network Table
3252         https://bugs.webkit.org/show_bug.cgi?id=188590
3253         <rdar://problem/43305488>
3254
3255         Reviewed by Matt Baker.
3256
3257         * UserInterface/Views/NetworkResourceDetailView.js:
3258         (WI.NetworkResourceDetailView):
3259         (WI.NetworkResourceDetailView.prototype.shown):
3260         (WI.NetworkResourceDetailView.prototype.willShowWithCookie):
3261         (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
3262         When a ResourceDetailView gets shown, it may also want to show its initial content view
3263         with a cookie as the cookie may contain position highlight information.
3264
3265         * UserInterface/Views/NetworkTableContentView.js:
3266         (WI.NetworkTableContentView):
3267         (WI.NetworkTableContentView.prototype._showResourceDetailView):
3268         (WI.NetworkTableContentView.prototype.showRepresentedObject):
3269         When showing a represented object, pass the cookie information on to the detail
3270         view's so that it may include the cookie when showing the final content view.
3271
3272         (WI.NetworkTableContentView.prototype.tablePopulateCell):
3273         (WI.NetworkTableContentView.prototype._populateInitiatorCell):
3274         (WI.NetworkTableContentView.prototype.initialLayout):
3275         New initiator column contains a source code link to the call site.
3276
3277         (WI.NetworkTableContentView.prototype._generateSortComparator):
3278         (WI.NetworkTableContentView.prototype._entryForResource):
3279         Entry data for the initiator is a display string that can be sorted easily.
3280
3281 2018-08-16  Joseph Pecoraro  <pecoraro@apple.com>
3282
3283         LayoutTest inspector/worker/debugger-pause.html sometimes times out
3284         https://bugs.webkit.org/show_bug.cgi?id=188580
3285
3286         Reviewed by Matt Baker.
3287
3288         * UserInterface/Protocol/Target.js:
3289         (WI.Target.prototype.get mainResource):
3290         (WI.Target.prototype.set mainResource):
3291         Dispatch an event when the Main Resource is set.
3292
3293 2018-08-15  Aditya Keerthi  <akeerthi@apple.com>
3294
3295         [Datalist] Add button to TextFieldInputs with a datalist
3296         https://bugs.webkit.org/show_bug.cgi?id=187741
3297
3298         Reviewed by Tim Horton.
3299
3300         Add keyword completion for 'list-button'.
3301
3302         * UserInterface/External/CodeMirror/css.js:
3303         * UserInterface/Models/CSSKeywordCompletions.js: