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