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