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