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