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