Web Inspector: Styles: fix race conditions when editing
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2019-02-04  Nikita Vasilyev  <nvasilyev@apple.com>
2
3         Web Inspector: Styles: fix race conditions when editing
4         https://bugs.webkit.org/show_bug.cgi?id=192739
5         <rdar://problem/46752925>
6
7         Reviewed by Devin Rousso.
8
9         Editing CSS property in the style editor syncronously updates CSSStyleDeclaration on the front-end
10         and asyncronously updates the backend by calling CSSAgent.setStyleText. After the new style text is applied
11         on the backend, CSSStyleDeclaration (on the front-end) gets updated.
12
13         Unsure there's no race conditions by introducing `_updatesInProgressCount`:
14
15           - Increment it before calling CSSAgent.setStyleText.
16           - Decrement it after CSSAgent.setStyleText is finished.
17
18         Prevent updates of CSSStyleDeclaration when _updatesInProgressCount isn't 0.
19
20         * UserInterface/Models/CSSProperty.js:
21         (WI.CSSProperty.prototype._updateOwnerStyleText):
22         * UserInterface/Models/CSSStyleDeclaration.js:
23         (WI.CSSStyleDeclaration):
24         (WI.CSSStyleDeclaration.prototype.set text): Removed.
25         (WI.CSSStyleDeclaration.prototype.setText): Added.
26         Change the setter to a method since it has side effects including an asynchronous backend call.
27
28         * UserInterface/Models/DOMNodeStyles.js:
29         (WI.DOMNodeStyles.prototype.changeStyleText):
30
31         * UserInterface/Views/SpreadsheetStyleProperty.js:
32         (WI.SpreadsheetStyleProperty.prototype.get nameTextField): Removed.
33         (WI.SpreadsheetStyleProperty.prototype.get valueTextField): Removed.
34         Drive-by: remove unused code.
35
36 2019-02-01  Devin Rousso  <drousso@apple.com>
37
38         Web Inspector: create icons for media event types instead of using a blue circle
39         https://bugs.webkit.org/show_bug.cgi?id=190381
40         <rdar://problem/45507995>
41
42         Reviewed by Brian Burg.
43
44         * UserInterface/Models/DOMNode.js:
45         (WI.DOMNode.isPlayEvent): Added.
46         (WI.DOMNode.isPauseEvent): Added.
47         (WI.DOMNode.isStopEvent): Added.
48
49         * UserInterface/Views/DOMEventsBreakdownView.js:
50         (WI.DOMEventsBreakdownView.prototype.layout):
51         * UserInterface/Views/DOMEventsBreakdownView.css:
52         (.dom-events-breakdown tr > :matches(th, td)):
53         (.dom-events-breakdown .graph):
54         (.dom-events-breakdown .graph > :matches(img, .area)): Added.
55         (.dom-events-breakdown .graph > img): Added.
56         (.dom-events-breakdown .inherited > .name, .dom-events-breakdown .inherited > .graph > img): Added.
57         (.dom-events-breakdown .graph > :matches(.point, .area)): Deleted.
58         (.dom-events-breakdown .graph > .point): Deleted.
59         (.dom-events-breakdown .inherited > .name, .dom-events-breakdown .inherited > .graph > .point): Deleted.
60
61         * UserInterface/Views/NetworkTableContentView.js:
62         (WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine):
63
64         * UserInterface/Images/EventPause.svg: Added.
65         * UserInterface/Images/EventPlay.svg: Added.
66         * UserInterface/Images/EventProcessing.svg: Added.
67         * UserInterface/Images/EventStop.svg: Added.
68
69 2019-02-01  Joseph Pecoraro  <pecoraro@apple.com>
70
71         Web Inspector: Make WI.ColumnChart a WI.View subclass
72         https://bugs.webkit.org/show_bug.cgi?id=194171
73
74         Rubber-stamped by Devin Rousso.
75
76         * UserInterface/Views/CPUTimelineOverviewGraph.js:
77         (WI.CPUTimelineOverviewGraph):
78         * UserInterface/Views/ColumnChart.js:
79         (WI.ColumnChart):
80         (WI.ColumnChart.prototype.set size):
81         (WI.ColumnChart.prototype.layout):
82         (WI.ColumnChart.prototype.get element): Deleted.
83         (WI.ColumnChart.prototype.needsLayout): Deleted.
84         (WI.ColumnChart.prototype.updateLayout): Deleted.
85
86 2019-02-01  Joseph Pecoraro  <pecoraro@apple.com>
87
88         Web Inspector: Make WI.StackedLineChart a WI.View subclass
89         https://bugs.webkit.org/show_bug.cgi?id=194119
90
91         Rubber-stamped by Devin Rousso.
92
93         * UserInterface/Views/LineChart.js:
94         (WI.LineChart.prototype.layout):
95         (WI.LineChart):
96         * UserInterface/Views/MemoryTimelineOverviewGraph.js:
97         (WI.MemoryTimelineOverviewGraph):
98         * UserInterface/Views/StackedLineChart.js:
99         (WI.StackedLineChart):
100         (WI.StackedLineChart.prototype.set size):
101         (WI.StackedLineChart.prototype.layout):
102         (WI.StackedLineChart.prototype.get element): Deleted.
103         (WI.StackedLineChart.prototype.get points): Deleted.
104         (WI.StackedLineChart.prototype.needsLayout): Deleted.
105         (WI.StackedLineChart.prototype.updateLayout): Deleted.
106
107 2019-02-01  Joseph Pecoraro  <pecoraro@apple.com>
108
109         Web Inspector: Make WI.CircleChart a WI.View subclass
110         https://bugs.webkit.org/show_bug.cgi?id=194118
111
112         Reviewed by Matt Baker.
113
114         * UserInterface/Views/CircleChart.js:
115         (WI.CircleChart.prototype.get centerElement):
116         (WI.CircleChart.prototype.layout):
117         (WI.CircleChart.prototype.get element): Deleted.
118         (WI.CircleChart.prototype.needsLayout): Deleted.
119         (WI.CircleChart.prototype.updateLayout): Deleted.
120         * UserInterface/Views/MemoryTimelineView.js:
121         (WI.MemoryTimelineView):
122
123 2019-02-01  Joseph Pecoraro  <pecoraro@apple.com>
124
125         Web Inspector: Timeline Detail Views do not reset properly when new time range selection contains nothing
126         https://bugs.webkit.org/show_bug.cgi?id=194115
127         <rdar://problem/47716693>
128
129         Rubber-stamped by Devin Rousso.
130
131         * UserInterface/Views/CPUTimelineView.js:
132         (WI.CPUTimelineView.prototype.reset):
133         (WI.CPUTimelineView.prototype.clear):
134         (WI.CPUTimelineView.prototype.layout):
135         * UserInterface/Views/MemoryTimelineView.js:
136         (WI.MemoryTimelineView.prototype.reset):
137         (WI.MemoryTimelineView.prototype.clear):
138         (WI.MemoryTimelineView.prototype.layout):
139         When there are no visible records in the selected range clear our UI.
140         Introduce a `clear` method that clears the UI but keeps
141         non-range-specific values (e.g. maximums).
142
143 2019-02-01  Joseph Pecoraro  <pecoraro@apple.com>
144
145         Web Inspector: Timeline graphs have drawing issues with multiple discontinuities
146         https://bugs.webkit.org/show_bug.cgi?id=194110
147         <rdar://problem/47714356>
148
149         Reviewed by Devin Rousso.
150
151         * UserInterface/Views/CPUTimelineView.js:
152         (WI.CPUTimelineView):
153         (WI.CPUTimelineView.prototype.layout.xScale): Deleted.
154         * UserInterface/Views/MemoryTimelineOverviewGraph.js:
155         (WI.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity):
156         (WI.MemoryTimelineOverviewGraph.prototype.layout):
157         * UserInterface/Views/MemoryTimelineView.js:
158         (WI.MemoryTimelineView.prototype.layout.xScale):
159         (WI.MemoryTimelineView.prototype.layout.yScale):
160         (WI.MemoryTimelineView.prototype.layout):
161         Handle if multiple discontinuities exist between records.
162
163 2019-02-01  Joseph Pecoraro  <pecoraro@apple.com>
164
165         Web Inspector: Timeline time range selection should show duration alongside start and end
166         https://bugs.webkit.org/show_bug.cgi?id=194109
167         <rdar://problem/47714279>
168
169         Reviewed by Devin Rousso.
170
171         * Localizations/en.lproj/localizedStrings.js:
172         * UserInterface/Views/TimelineRecordingContentView.js:
173         (WI.TimelineRecordingContentView.prototype._updateTimeRangePathComponents):
174         Include the duration when not obvious.
175
176 2019-02-01  Joseph Pecoraro  <pecoraro@apple.com>
177
178         Web Inspector: Improve API and documentation of ColumnChart
179         https://bugs.webkit.org/show_bug.cgi?id=193982
180
181         Reviewed by Devin Rousso.
182
183         This used to be named "BarChart". Convert remaining instances
184         of "bar" to "column" and clean up related things.
185
186         * UserInterface/Views/CPUTimelineOverviewGraph.css:
187         (body[dir=rtl] .timeline-overview-graph.cpu > .column-chart):
188         (.timeline-overview-graph.cpu > .column-chart > svg > rect):
189         (body[dir=rtl] .timeline-overview-graph.cpu > .bar-chart): Deleted.
190         (.timeline-overview-graph.cpu > .bar-chart > svg > rect): Deleted.
191         * UserInterface/Views/CPUTimelineOverviewGraph.js:
192         (WI.CPUTimelineOverviewGraph.prototype.layout):
193         * UserInterface/Views/ColumnChart.js:
194         (WI.ColumnChart):
195         (WI.ColumnChart.prototype.get columns):
196         (WI.ColumnChart.prototype.addColumn):
197         (WI.ColumnChart.prototype.clear):
198         (WI.ColumnChart.prototype.updateLayout):
199         (WI.ColumnChart.prototype.get bars): Deleted.
200         (WI.ColumnChart.prototype.addBar): Deleted.
201         * UserInterface/Views/StackedLineChart.js:
202         (WI.StackedLineChart.prototype.get element):
203         (WI.StackedLineChart.prototype.get points):
204
205 2019-01-31  Joseph Pecoraro  <pecoraro@apple.com>
206
207         Web Inspector: Timeline time range selection sometimes shows 0.000, should be just 0
208         https://bugs.webkit.org/show_bug.cgi?id=194108
209         <rdar://problem/47714273>
210
211         Reviewed by Devin Rousso.
212
213         * UserInterface/Base/Utilities.js:
214         Check under epsilon for the zero case.
215
216 2019-01-31  Matt Baker  <mattbaker@apple.com>
217
218         REGRESSION(r?): Web Inspector: Clicking on text doesn't move text caret when editing innerHTML/tagName/attribute
219         https://bugs.webkit.org/show_bug.cgi?id=192652
220         <rdar://problem/46684612>
221
222         Reviewed by Devin Rousso.
223
224         * UserInterface/Views/DOMTreeElement.js:
225         (WI.DOMTreeElement.prototype.canSelectOnMouseDown):
226         Call to Event.preventDefault() should be made here instead of at the
227         TreeOutline level.
228
229         * UserInterface/Views/TreeElement.js:
230         (WI.TreeElement.prototype.selectOnMouseDown): Deleted.
231         Remove dead code.
232
233         * UserInterface/Views/TreeOutline.js:
234         (WI.TreeOutline._handleMouseDown):
235         Do not prevent default event handling when the item cannot be selected.
236         This matches TreeOutline behavior prior to introducing SelectionController.
237
238 2019-01-30  Devin Rousso  <drousso@apple.com>
239
240         Web Inspector: Memory Timeline View should be responsive / resizable
241         https://bugs.webkit.org/show_bug.cgi?id=153758
242         <rdar://problem/24444320>
243
244         Reviewed by Joseph Pecoraro.
245
246         Leverage the SVG `viewBox` (which was misspelled) to scale the graphs when the width of the
247         container changes. The `viewBox` used is equal to the total amount of time that is visible.
248
249         Make `WI.LineChart` (and its container classes) into subclasses of `WI.View` to leverage the
250         existing layout system.
251
252         Prevent any work from being done when resizing, as this is now handled by CSS/SVG.
253
254         * UserInterface/Views/LineChart.js:
255         (WI.LineChart):
256         (WI.LineChart.prototype.set size):
257         (WI.LineChart.prototype.addPoint):
258         (WI.LineChart.prototype.clear):
259         (WI.LineChart.prototype.layout):
260         (WI.LineChart.prototype.get element): Deleted.
261         (WI.LineChart.prototype.get points): Deleted.
262         (WI.LineChart.prototype.needsLayout): Deleted.
263         (WI.LineChart.prototype.updateLayout): Deleted.
264
265         * UserInterface/Views/CPUUsageView.js:
266         (WI.CPUUsageView):
267         (WI.CPUUsageView.prototype.clear):
268         (WI.CPUUsageView.prototype.updateChart): Added.
269         (WI.CPUUsageView.prototype.get element): Deleted.
270         (WI.CPUUsageView.prototype.layoutWithDataPoints): Deleted.
271         * UserInterface/Views/CPUUsageView.css:
272         (.cpu-usage-view):
273         (.cpu-usage-view > .details):
274         (.cpu-usage-view > .graph, .cpu-usage-view > .graph > .line-chart, .cpu-usage-view > .graph > .line-chart > svg): Added.
275         (.cpu-usage-view > .graph): Deleted.
276
277         * UserInterface/Views/CPUTimelineView.js:
278         (WI.CPUTimelineView):
279         (WI.CPUTimelineView.prototype.layout):
280         (WI.CPUTimelineView.prototype.layout.layoutView):
281         (WI.CPUTimelineView.prototype.layout.layoutView.xScale):
282         (WI.CPUTimelineView.prototype.layout.layoutView.yScale):
283         * UserInterface/Views/CPUTimelineView.css:
284         (body .timeline-view.cpu): Added.
285         (.timeline-view.cpu > .content):
286         (.timeline-view.cpu): Deleted.
287
288         * UserInterface/Views/MemoryCategoryView.js:
289         (WI.MemoryCategoryView):
290         (WI.MemoryCategoryView.prototype.clear):
291         (WI.MemoryCategoryView.prototype.updateChart): Added.
292         (WI.MemoryCategoryView.prototype.get element): Deleted.
293         (WI.MemoryCategoryView.prototype.layoutWithDataPoints): Deleted.
294         * UserInterface/Views/MemoryCategoryView.css:
295         (.memory-category-view):
296         (.memory-category-view > .details):
297         (.memory-category-view > .graph, .memory-category-view > .graph > .line-chart, .memory-category-view > .graph > .line-chart > svg): Added.
298         (.memory-category-view > .graph): Deleted.
299
300         * UserInterface/Views/MemoryTimelineView.js:
301         (WI.MemoryTimelineView.prototype.layout):
302         (WI.MemoryTimelineView.prototype.layout.layoutCategoryView):
303         (WI.MemoryTimelineView.prototype.layout.layoutCategoryView.xScale):
304         (WI.MemoryTimelineView.prototype.layout.layoutCategoryView.yScale):
305         (WI.MemoryTimelineView.prototype._initializeCategoryViews):
306         (WI.MemoryTimelineView.prototype._initializeCategoryViews.appendLegendRow):
307         * UserInterface/Views/MemoryTimelineView.css:
308         (.timeline-view.memory > .content > .overview):
309         (.timeline-view.memory > .content > .overview > .divider):
310         (.timeline-view.memory > .content > .overview .total-usage, .timeline-view.memory > .content > .overview .max-percentage, .timeline-view.memory > .content > .overview .legend .size): Added.
311         (.timeline-view.memory .legend):
312         (.timeline-view.memory .legend .row): Added.
313         (.timeline-view.memory .legend .row + .row): Added.
314         (.timeline-view.memory .legend .swatch): Addd.
315         (.timeline-view.memory .legend .swatch.javascript): Addd.
316         (.timeline-view.memory .legend .swatch.images): Addd.
317         (.timeline-view.memory .legend .swatch.layers): Addd.
318         (.timeline-view.memory .legend .swatch.page): Addd.
319         (.timeline-view.memory .legend .swatch.current): Addd.
320         (.timeline-view.memory > .content): Deleted.
321         (.timeline-view.memory > .content > .overview .total-usage, .timeline-view.memory > .content > .overview .max-percentage):
322         (body[dir=ltr] .timeline-view.memory .legend): Deleted.
323         (body[dir=rtl] .timeline-view.memory .legend): Deleted.
324         (.timeline-view.memory .legend > .row): Deleted.
325         (.timeline-view.memory .legend > .row > .swatch): Deleted.
326         (body[dir=ltr] .timeline-view.memory .legend > .row > .swatch): Deleted.
327         (body[dir=rtl] .timeline-view.memory .legend > .row > .swatch): Deleted.
328         (.timeline-view.memory .legend > .row > p): Deleted.
329         (body[dir=ltr] .timeline-view.memory .legend > .row > :matches(.label, .size)): Deleted.
330         (body[dir=rtl] .timeline-view.memory .legend > .row > :matches(.label, .size)): Deleted.
331         (.timeline-view.memory .legend > .row > .label): Deleted.
332         (.timeline-view.memory .legend > .row > .size): Deleted.
333         (.timeline-view.memory .legend > .row > .swatch.javascript): Deleted.
334         (.timeline-view.memory .legend > .row > .swatch.images): Deleted.
335         (.timeline-view.memory .legend > .row > .swatch.layers): Deleted.
336         (.timeline-view.memory .legend > .row > .swatch.page): Deleted.
337         (.timeline-view.memory .legend > .row > .swatch.current): Deleted.
338
339 2019-01-30  Nikita Vasilyev  <nvasilyev@apple.com>
340
341         Web Inspector: Changes: group CSS rules by resource
342         https://bugs.webkit.org/show_bug.cgi?id=193940
343         <rdar://problem/47617785>
344
345         Reviewed by Matt Baker.
346
347         Create resource sections with source links in their headers.
348
349         Also:
350         - Use read-only WI.SpreadsheetStyleProperty to display inline swatches for colors;
351         - Make the red and green background span the entire width of the panel.
352
353         * Localizations/en.lproj/localizedStrings.js:
354         * UserInterface/Views/ChangesDetailsSidebarPanel.css:
355         (.sidebar > .panel.changes-panel):
356         (.sidebar > .panel.changes-panel .css-rule):
357         (.sidebar > .panel.selected.changes-panel.empty):
358         (.changes-panel .resource-section):
359         (.changes-panel .resource-section > .header):
360         (.changes-panel .resource-section > .header > a:hover):
361         (.sidebar > .panel.changes-panel .selector-line,):
362         (.changes-panel .css-property-line > .property):
363         (.changes-panel .css-property-line.unchanged):
364         (.changes-panel .css-property-line.added):
365         (.changes-panel .css-property-line.removed):
366         (.changes-panel .css-property-line.removed::before):
367         (.changes-panel .css-property-line.added::before):
368         (@media (prefers-color-scheme: dark)):
369
370         * UserInterface/Views/ChangesDetailsSidebarPanel.js:
371         (WI.ChangesDetailsSidebarPanel.prototype.layout):
372         (WI.ChangesDetailsSidebarPanel.prototype._createRuleElement):
373         (WI.ChangesDetailsSidebarPanel.prototype._createLocationLink):
374
375         * UserInterface/Views/SpreadsheetStyleProperty.js:
376         (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
377         Allow passing `null` as a delegate.
378
379 2019-01-30  Devin Rousso  <drousso@apple.com>
380
381         Web Inspector: change style of device settings override popover content
382         https://bugs.webkit.org/show_bug.cgi?id=194049
383
384         Reviewed by Joseph Pecoraro.
385
386         * UserInterface/Base/Main.js:
387         (WI._handleDeviceSettingsToolbarButtonClicked):
388         (WI._handleDeviceSettingsToolbarButtonClicked.showUserAgentInput):
389         (WI._handleDeviceSettingsToolbarButtonClicked.createContainer): Deleted.
390         * UserInterface/Views/Main.css:
391         (.device-settings-content):
392         (.device-settings-content > tr > td:first-child): Added.
393         (.device-settings-content .container):
394         (.device-settings-content .container > * + *): Added.
395         (.device-settings-content .column): Added.
396         (.device-settings-content .user-agent select): Added.
397         (.device-settings-content .user-agent input): Added.
398         (.device-settings-content label + label): Added.
399         (.device-settings-content label > input): Added.
400         (.device-settings-content .columns): Deleted.
401         (.device-settings-content .columns > .column): Deleted.
402         (.device-settings-content .columns > .column + .column): Deleted.
403         (.device-settings-content .user-agent-value): Deleted.
404         (.device-settings-content .user-agent-value > select): Deleted.
405         (.device-settings-content .user-agent-value > input): Deleted.
406         (body[dir=ltr] .device-settings-content .user-agent-value > input): Deleted.
407         (body[dir=rtl] .device-settings-content .user-agent-value > input): Deleted.
408
409 2019-01-30  Devin Rousso  <drousso@apple.com>
410
411         Web Inspector: Uncaught Exception: null is not an object (evaluating 'url.startsWith')
412         https://bugs.webkit.org/show_bug.cgi?id=194029
413
414         Reviewed by Matt Baker.
415
416         * UserInterface/Views/ConsoleMessageView.js:
417         (WI.ConsoleMessageView.prototype._appendLocationLink):
418
419 2019-01-29  Nikita Vasilyev  <nvasilyev@apple.com>
420
421         Web Inspector: Enabled Changes panel in Elements tab by default
422         https://bugs.webkit.org/show_bug.cgi?id=193986
423         <rdar://problem/47647683>
424
425         Reviewed by Matt Baker.
426
427         * UserInterface/Base/Setting.js:
428         * UserInterface/Views/ElementsTabContentView.js:
429         (WI.ElementsTabContentView):
430         * UserInterface/Views/SettingsTabContentView.js:
431         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
432
433 2019-01-29  Nikita Vasilyev  <nvasilyev@apple.com>
434
435         Web Inspector: Styles: enable computed style cascades by default
436         https://bugs.webkit.org/show_bug.cgi?id=193983
437         <rdar://problem/47645821>
438
439         Reviewed by Matt Baker.
440
441         * Localizations/en.lproj/localizedStrings.js:
442         * UserInterface/Base/Setting.js:
443         * UserInterface/Views/ComputedStyleDetailsPanel.css:
444         (.computed-style-properties):
445         (.computed-style-properties .property .go-to-arrow):
446         (.details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)):
447         (.details-section.computed-style-properties > .content):
448         (@media (prefers-color-scheme: dark)):
449         (.computed-with-traces .computed-style-properties): Deleted.
450         (.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)): Deleted.
451         (.computed-with-traces .details-section.computed-style-properties > .content): Deleted.
452         (.computed-with-traces .computed-style-properties .property .go-to-arrow): Deleted.
453         * UserInterface/Views/ComputedStyleDetailsPanel.js:
454         (WI.ComputedStyleDetailsPanel.prototype.refresh):
455         (WI.ComputedStyleDetailsPanel.prototype.initialLayout):
456         * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js:
457         (WI.ComputedStyleDetailsSidebarPanel):
458         * UserInterface/Views/SettingsTabContentView.js:
459         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
460
461 2019-01-28  Joseph Pecoraro  <pecoraro@apple.com>
462
463         Web Inspector: Remove unnecessary promise rejection handlers now that we use the global onunhandledrejection handler
464         https://bugs.webkit.org/show_bug.cgi?id=193921
465
466         Reviewed by Devin Rousso.
467
468         * UserInterface/Base/Utilities.js:
469         * UserInterface/Debug/UncaughtExceptionReporter.js:
470         * UserInterface/Views/NetworkTableContentView.js:
471         (WI.NetworkTableContentView.prototype._exportHAR):
472         * UserInterface/Views/TextEditor.js:
473         (WI.TextEditor.prototype.updateFormattedState):
474
475 2019-01-28  Devin Rousso  <drousso@apple.com>
476
477         Web Inspector: provide a way to edit page WebRTC settings on a remote target
478         https://bugs.webkit.org/show_bug.cgi?id=193863
479         <rdar://problem/47572764>
480
481         Reviewed by Joseph Pecoraro.
482
483         * UserInterface/Base/Main.js:
484         (WI.loaded):
485         (WI.initializeTarget):
486         (WI._handleDeviceSettingsToolbarButtonClicked):
487         (WI._handleDeviceSettingsToolbarButtonClicked.createCheckbox):
488         (WI._handleDeviceSettingsToolbarButtonClicked.createColumns): Deleted.
489         * UserInterface/Views/Main.css:
490         (.device-settings-content .container): Added.
491
492         * Localizations/en.lproj/localizedStrings.js:
493
494 2019-01-28  Matt Baker  <mattbaker@apple.com>
495
496         Web Inspector: Elements tab should toggle visibility for all selected nodes
497         https://bugs.webkit.org/show_bug.cgi?id=193089
498         <rdar://problem/47009256>
499
500         Reviewed by Devin Rousso.
501
502         Update "Toggle Visibility" command in DOM tree for multiple selection.
503         When both visible and hidden elements are selected in the DOM tree,
504         the toggle command behaves contextually. If one or more elements are
505         visible, they are hidden, otherwise they are shown. The context menu
506         shows "Hide Elements" or "Show Elements", respectively.
507
508         When only one element is selected, or the context menu target element
509         is not selected, the command continues to be "Toggle Visibility".
510
511         * Localizations/en.lproj/localizedStrings.js:
512
513         * UserInterface/Views/DOMTreeElement.js:
514         (WI.DOMTreeElement.prototype.get isNodeHidden): Added.
515         (WI.DOMTreeElement.prototype.toggleElementVisibility.inspectedPage_node_injectStyleAndToggleClass):
516         (WI.DOMTreeElement.prototype.toggleElementVisibility):
517         (WI.DOMTreeElement.prototype._populateTagContextMenu):
518
519         * UserInterface/Views/DOMTreeOutline.js:
520         (WI.DOMTreeOutline):
521         (WI.DOMTreeOutline.prototype.toggleSelectedElementsVisibility):  Added.
522         Provide a public method for toggling the visibility of selected DOM nodes.
523         Used by the "H" keyboard shortcut and DOMTreeElement context menu.
524
525         (WI.DOMTreeOutline.prototype._hideElements):
526         (WI.DOMTreeOutline.prototype._hideElement): Deleted.
527         Rename for multiple selection.
528
529 2019-01-28  Commit Queue  <commit-queue@webkit.org>
530
531         Unreviewed, rolling out r240351.
532         https://bugs.webkit.org/show_bug.cgi?id=193918
533
534         Causes overlapping Timeline records, as some record types
535         don't have an endTime (Requested by drousso on #webkit).
536
537         Reverted changeset:
538
539         "WebInspector: Confusingly nested events in the timeline for
540         Mutation Observers"
541         https://bugs.webkit.org/show_bug.cgi?id=192884
542         https://trac.webkit.org/changeset/240351
543
544 2019-01-28  Matt Baker  <mattbaker@apple.com>
545
546         REGRESSION(?): Web Inspector: Can have multiple Timelines selected after edit mode
547         https://bugs.webkit.org/show_bug.cgi?id=193808
548         <rdar://problem/47537734>
549
550         Reviewed by Devin Rousso.
551
552         * UserInterface/Controllers/SelectionController.js:
553         (WI.SelectionController.prototype.didRemoveItems):
554
555         * UserInterface/Views/TreeOutline.js:
556         (WI.TreeOutline.prototype._indexesForSubtree):
557         Fix a bug where no IndexSet was returned when passed a TreeElement with
558         no children. This caused the Timelines tree selection to be corrupted when
559         entering and exiting edit mode, as TreeElements are inserted and removed.
560
561 2019-01-28  Nikita Vasilyev  <nvasilyev@apple.com>
562
563         Web Inspector: Add Changes panel to Elements tab
564         https://bugs.webkit.org/show_bug.cgi?id=193803
565
566         Reviewed by Devin Rousso.
567
568         Introduce the new experimental Changes Panel. It shows a list of CSS changes
569         made via Web Inspector, so the changes could be copied to the source files.
570
571         * Localizations/en.lproj/localizedStrings.js:
572         * UserInterface/Base/Setting.js:
573         * UserInterface/Base/Utilities.js:
574         (Array.diffArrays): Added.
575
576         * UserInterface/Controllers/CSSManager.js:
577         (WI.CSSManager):
578         (WI.CSSManager.prototype.get modifiedCSSRules):
579         (WI.CSSManager.prototype.addModifiedCSSRule):
580         (WI.CSSManager.prototype.removeModifiedCSSRule):
581         (WI.CSSManager.prototype._mainResourceDidChange):
582
583         * UserInterface/Main.html:
584         * UserInterface/Models/CSSProperty.js:
585         (WI.CSSProperty):
586         (WI.CSSProperty.prototype.remove):
587         (WI.CSSProperty.prototype.replaceWithText):
588         (WI.CSSProperty.prototype.commentOut):
589         (WI.CSSProperty.prototype.set text):
590         (WI.CSSProperty.prototype.get modified):
591         (WI.CSSProperty.prototype.set name):
592         (WI.CSSProperty.prototype.set rawValue):
593         (WI.CSSProperty.prototype.get initialState):
594         (WI.CSSProperty.prototype._updateOwnerStyleText):
595         (WI.CSSProperty.prototype._markModified):
596         Mark CSSProperty modified *before* making any changes to copy its initial state.
597
598         * UserInterface/Models/CSSRule.js:
599         (WI.CSSRule):
600         (WI.CSSRule.prototype.get id):
601         (WI.CSSRule.prototype.get initialState):
602         (WI.CSSRule.prototype.get stringId):
603         (WI.CSSRule.prototype.markModified):
604
605         * UserInterface/Models/CSSStyleDeclaration.js:
606         (WI.CSSStyleDeclaration):
607         (WI.CSSStyleDeclaration.prototype.get initialState):
608         (WI.CSSStyleDeclaration.prototype.get enabledProperties):
609         (WI.CSSStyleDeclaration.prototype.get properties):
610         (WI.CSSStyleDeclaration.prototype.set properties):
611         (WI.CSSStyleDeclaration.prototype.propertyForName):
612         (WI.CSSStyleDeclaration.prototype.newBlankProperty):
613         (WI.CSSStyleDeclaration.prototype.markModified):
614
615         * UserInterface/Views/ChangesDetailsSidebarPanel.css: Added.
616         (.sidebar > .panel.changes-panel):
617         (.sidebar > .panel.changes-panel:not(.empty)):
618         (.sidebar > .panel.changes-panel.empty):
619         (.changes-panel ins):
620         (.changes-panel del):
621         (.changes-panel del.css-property::before):
622         (.changes-panel ins.css-property::before):
623         (@media (prefers-color-scheme: dark)):
624
625         * UserInterface/Views/ChangesDetailsSidebarPanel.js: Added.
626         (WI.ChangesDetailsSidebarPanel):
627         (WI.ChangesDetailsSidebarPanel.prototype.inspect):
628         (WI.ChangesDetailsSidebarPanel.prototype.supportsDOMNode):
629         (WI.ChangesDetailsSidebarPanel.prototype.shown):
630         (WI.ChangesDetailsSidebarPanel.prototype.detached):
631         (WI.ChangesDetailsSidebarPanel.prototype.layout):
632         (WI.ChangesDetailsSidebarPanel.prototype._mainResourceDidChange):
633
634         * UserInterface/Views/ElementsTabContentView.js:
635         (WI.ElementsTabContentView):
636
637         * UserInterface/Views/SettingsTabContentView.js:
638         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
639
640         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
641         (.spreadsheet-style-declaration-editor .property):
642         (.spreadsheet-style-declaration-editor .property.modified):
643         (.spreadsheet-style-declaration-editor .property.modified:not(.selected)):
644         (@media (prefers-color-scheme: dark)):
645
646         * UserInterface/Views/SpreadsheetStyleProperty.js:
647         (WI.SpreadsheetStyleProperty.prototype.updateStatus):
648
649 2019-01-26  Devin Rousso  <drousso@apple.com>
650
651         Web Inspector: handle CSS Color 4 color syntaxes
652         https://bugs.webkit.org/show_bug.cgi?id=193166
653         <rdar://problem/47062403>
654
655         Reviewed by Simon Fraser.
656
657         * UserInterface/Models/Color.js:
658         (WI.Color.fromString):
659         (WI.Color.fromString.splitFunctionString): Added.
660         (WI.Color.fromString.parseFunctionAlpha): Added.
661         (WI.Color.fromString.parseFunctionComponent): Added.
662         (WI.Color.fromString.parseHueComponent): Added.
663         (WI.Color.fromString.parsePercentageComponent): Added.
664
665 2019-01-26  Devin Rousso  <drousso@apple.com>
666
667         Web Inspector: provide a way to edit the user agent of a remote target
668         https://bugs.webkit.org/show_bug.cgi?id=193862
669         <rdar://problem/47359292>
670
671         Reviewed by Joseph Pecoraro.
672
673         * UserInterface/Base/Main.js:
674         (WI.loaded):
675         (WI.contentLoaded):
676         (WI.initializeTarget):
677         (WI._handleDeviceSettingsToolbarButtonClicked):
678         (WI._handleDeviceSettingsToolbarButtonClicked.updateActivatedState):
679         (WI._handleDeviceSettingsToolbarButtonClicked.applyOverriddenUserAgent):
680         (WI._handleDeviceSettingsToolbarButtonClicked.applyOverriddenSetting):
681         (WI._handleDeviceSettingsToolbarButtonClicked.createContainer):
682         (WI._handleDeviceSettingsToolbarButtonClicked.createColumns):
683         (WI._handleDeviceSettingsToolbarButtonClicked.calculateTargetFrame):
684         (WI._handleDeviceSettingsToolbarButtonClicked.showUserAgentInput):
685
686         * UserInterface/Views/Main.css:
687         (.device-settings-content):
688         (.device-settings-content .user-agent-value): Added.
689         (.device-settings-content .user-agent-value > select): Added.
690         (.device-settings-content .user-agent-value > input): Added.
691         (body[dir=ltr] .device-settings-content .user-agent-value > input): Added.
692         (body[dir=rtl] .device-settings-content .user-agent-value > input): Added.
693         (.device-settings-content label > input): Added.
694         (body[dir=ltr] .device-settings-content label > input): Deleted.
695         (body[dir=rtl] .device-settings-content label > input): Deleted.
696
697         * Localizations/en.lproj/localizedStrings.js:
698
699 2019-01-25  Devin Rousso  <drousso@apple.com>
700
701         Web Inspector: provide a way to edit page settings on a remote target
702         https://bugs.webkit.org/show_bug.cgi?id=193813
703         <rdar://problem/47359510>
704
705         Reviewed by Joseph Pecoraro.
706
707         Add toolbar button that shows a popover with the target's (page's) settings when clicked.
708
709         * UserInterface/Base/Main.js:
710         (WI.loaded):
711         (WI.contentLoaded):
712         (WI.initializeTarget): Added.
713         (WI._handleDeviceSettingsToolbarButtonClicked): Added.
714         (WI.didDismissPopover): Added.
715         * UserInterface/Views/Main.css:
716         (.device-settings-content): Added.
717         (.device-settings-content .columns): Added.
718         (.device-settings-content .columns > .column): Added.
719         (.device-settings-content .columns > .column + .column): Added.
720         (body[dir=ltr] .device-settings-content label > input): Added.
721         (body[dir=rtl] .device-settings-content label > input): Added.
722
723         * UserInterface/Views/Popover.js:
724         (WI.Popover.prototype._update.area):
725         (WI.Popover.prototype._update):
726         (WI.Popover.prototype._drawBackground):
727         (WI.Popover.prototype._bestMetricsForEdge):
728         (WI.Popover.prototype._drawFrame):
729         If the best area is negative, treat it as the worst area.
730         Allow areas to be clamped so long as the clamped edge is not the preferred edge.
731
732         * UserInterface/Base/Test.js:
733         (WI.initializeTarget): Added.
734
735         * UserInterface/Images/Device.svg: Added.
736         * Localizations/en.lproj/localizedStrings.js:
737
738 2019-01-25  Devin Rousso  <drousso@apple.com>
739
740         Web Inspector: Audit: unable to import audits
741         https://bugs.webkit.org/show_bug.cgi?id=193861
742
743         Reviewed by Joseph Pecoraro.
744
745         * UserInterface/Controllers/AuditManager.js:
746         (WI.AuditManager.prototype.async processJSON):
747
748 2019-01-25  Devin Rousso  <drousso@apple.com>
749
750         Web Inspector: Uncaught Exception: No node with given id found
751         https://bugs.webkit.org/show_bug.cgi?id=193833
752
753         Reviewed by Joseph Pecoraro.
754
755         * UserInterface/Views/CanvasContentView.js:
756         (WI.CanvasContentView):
757         (WI.CanvasContentView.prototype.initialLayout):
758         (WI.CanvasContentView.prototype.layout):
759         (WI.CanvasContentView.prototype._refreshPixelSize):
760         Drive-by: show the refresh button when viewing a specific canvas.
761
762         * UserInterface/Views/CanvasTabContentView.js:
763         (WI.CanvasTabContentView.prototype._removeCanvas):
764         Reset to the overview if the canvas is removed.
765
766 2019-01-25  Joseph Pecoraro  <pecoraro@apple.com>
767
768         Web Inspector: Improve Dark Mode appearance within Memory timeline
769         https://bugs.webkit.org/show_bug.cgi?id=193804
770
771         Reviewed by Matt Baker.
772
773         * UserInterface/Views/TimelineOverview.css:
774         (.timeline-overview.edit-instruments > .tree-outline.timelines .item.selected):
775         (.timeline-overview > .tree-outline.timelines .item.selected + .item,):
776         (@media (prefers-color-scheme: dark)):
777         (.timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted.
778         (body.window-inactive .timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted.
779         Fix some colors for Timelines edit mode.
780
781         * UserInterface/Views/CPUTimelineOverviewGraph.css:
782         (.timeline-overview-graph.cpu:nth-child(even) > .legend):
783         (@media (prefers-color-scheme: dark)):
784         (.timeline-overview-graph.cpu > .legend):
785         (.timeline-overview-graph:nth-child(even) > .legend): Deleted.
786         * UserInterface/Views/MemoryTimelineOverviewGraph.css:
787         (.timeline-overview-graph.memory:nth-child(even) > .legend):
788         (@media (prefers-color-scheme: dark)):
789         (.timeline-overview-graph.memory > .legend):
790         (.timeline-overview-graph:nth-child(even) > .legend): Deleted.
791         Improved colors in CPU / Memory overview graph legends.
792
793         * UserInterface/Views/CPUUsageView.css:
794         (.cpu-usage-view > .details):
795         * UserInterface/Views/CircleChart.css:
796         (.circle-chart > svg > path.background):
797         * UserInterface/Views/MemoryCategoryView.css:
798         (.memory-category-view > .details):
799         (.memory-category-view > .details > .name):
800         * UserInterface/Views/MemoryTimelineView.css:
801         (.timeline-view.memory > .content > .overview .total-usage,):
802         (.timeline-view.memory .legend > .row > .size):
803         Improved colors in CPU / Memory detail views.
804
805         * UserInterface/Views/Variables.css:
806         (:root):
807         Add a default --text-secondary-color which will end up slightly
808         lighter in dark mode where it was already implemented.
809
810         (@media (prefers-color-scheme: dark)):
811         Improved max-comparison colors.
812
813 2019-01-25  Devin Rousso  <drousso@apple.com>
814
815         Web Inspector: Timelines: DOMContentLoaded and load event lines need to be more obvious
816         https://bugs.webkit.org/show_bug.cgi?id=193186
817         <rdar://problem/45100694>
818
819         Reviewed by Joseph Pecoraro.
820
821         Shift around z-index values to make Timelines markers appear behind record bars. Widen the
822         marker hit region to make it easier to see the tooltip.
823
824         * UserInterface/Views/Variables.css:
825         (:root):
826
827         * UserInterface/Views/TimelineRuler.css:
828         (.timeline-ruler):
829         (.timeline-ruler > .markers):
830         (.timeline-ruler > .markers > .marker):
831         (body[dir=ltr] .timeline-ruler > .markers > .marker):
832         (body[dir=rtl] .timeline-ruler > .markers > .marker):
833         (.timeline-ruler > .markers > .marker::before):
834         (body[dir=ltr] .timeline-ruler > .markers > .marker::before):
835         (body[dir=rtl] .timeline-ruler > .markers > .marker::before):
836         (.timeline-ruler > .markers > .marker::after): Added.
837         (body[dir=ltr] .timeline-ruler > .markers > .marker::after): Added.
838         (body[dir=rtl] .timeline-ruler > .markers > .marker::after): Added.
839         (.timeline-ruler > .markers > .marker.current-time):
840         (.timeline-ruler > .markers > .marker.current-time::after): Added.
841         (.timeline-ruler > .markers > .marker.load-event):
842         (.timeline-ruler > .markers > .marker.dom-content-event):
843         (.timeline-ruler > .markers > .marker.timestamp):
844         (.timeline-ruler > .selection-handle):
845         (.timeline-ruler.both-handles-clamped > .selection-handle):
846         (.timeline-ruler > .shaded-area):
847         (.timeline-ruler > .markers > .marker.current-time::before): Deleted.
848
849         * UserInterface/Views/TimelineRecordBar.css:
850         (.timeline-record-bar):
851         (.timeline-record-bar > .segment):
852
853         * UserInterface/Views/CPUTimelineOverviewGraph.css:
854         (.timeline-overview-graph.cpu > .legend):
855         * UserInterface/Views/MemoryTimelineOverviewGraph.css:
856         (.timeline-overview-graph.memory > .legend):
857
858 2019-01-25  Devin Rousso  <drousso@apple.com>
859
860         Web Inspector: Audit: remove experimental setting
861         https://bugs.webkit.org/show_bug.cgi?id=193743
862         <rdar://problem/28234022>
863
864         Reviewed by Joseph Pecoraro.
865
866         * UserInterface/Base/Setting.js:
867         (WI.Setting):
868         (WI.Setting.localStorageKey): Added.
869         (WI.Setting.migrateValue):
870         Drive-by: add the localStorage key prefix to the key passed into `WI.Setting.migrateValue`.
871
872         * UserInterface/Base/Main.js:
873         (WI.loaded):
874
875         * UserInterface/Views/AuditTabContentView.js:
876         (WI.AuditTabContentView.isTabAllowed):
877
878         * UserInterface/Views/SettingsTabContentView.js:
879         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
880
881         * Localizations/en.lproj/localizedStrings.js:
882
883 2019-01-25  Devin Rousso  <drousso@apple.com>
884
885         Web Inspector: show uncaught exception view for unhandled promise rejections
886         https://bugs.webkit.org/show_bug.cgi?id=193832
887
888         Reviewed by Matt Baker.
889
890         * UserInterface/Debug/UncaughtExceptionReporter.js:
891         (handleUnhandledPromiseRejection): Added.
892
893 2019-01-25  Devin Rousso  <drousso@apple.com>
894
895         Web Inspector: REGRESSION (r237808): offscreen path warning doesn't work
896         https://bugs.webkit.org/show_bug.cgi?id=193830
897
898         Reviewed by Matt Baker.
899
900         * UserInterface/Models/RecordingAction.js:
901         (WI.RecordingAction.prototype.process):
902
903 2019-01-25  Joseph Pecoraro  <pecoraro@apple.com>
904
905         Web Inspector: Add another Protocol Version (iOS 12.2)
906         https://bugs.webkit.org/show_bug.cgi?id=193810
907         <rdar://problem/42981838>
908
909         Reviewed by Matt Baker.
910
911         * UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js: Added.
912         * Versions/Inspector-iOS-12.2.json: Added.
913
914 2019-01-25  Devin Rousso  <drousso@apple.com>
915
916         Web Inspector: `WI.Setting.migrateValue` doesn't take into account the key prefix
917         https://bugs.webkit.org/show_bug.cgi?id=193814
918
919         Reviewed by Matt Baker.
920
921         * UserInterface/Base/Setting.js:
922         (WI.Setting):
923         (WI.Setting.migrateValue):
924         (WI.Setting._localStorageKey): Added.
925
926 2019-01-25  Devin Rousso  <drousso@apple.com>
927
928         Web Inspector: improve invalid Audit/Recording JSON error messages
929         https://bugs.webkit.org/show_bug.cgi?id=193476
930         <rdar://problem/47303659>
931
932         Reviewed by Joseph Pecoraro.
933
934         * UserInterface/Models/AuditTestBase.js:
935         (WI.AuditTestBase):
936         * UserInterface/Models/AuditTestCase.js:
937         (WI.AuditTestCase.async fromPayload):
938         * UserInterface/Models/AuditTestGroup.js:
939         (WI.AuditTestGroup.async fromPayload):
940         * UserInterface/Models/AuditTestCaseResult.js:
941         (WI.AuditTestCaseResult.async fromPayload.checkArray):
942         (WI.AuditTestCaseResult.async fromPayload):
943         * UserInterface/Models/AuditTestGroupResult.js:
944         (WI.AuditTestGroupResult.async fromPayload):
945         * UserInterface/Controllers/AuditManager.js:
946         (WI.AuditManager.synthesizeWarning): Added.
947         (WI.AuditManager.synthesizeError):
948         (WI.AuditManager.prototype.async processJSON):
949
950         * UserInterface/Models/Recording.js:
951         (WI.Recording.fromPayload):
952         (WI.Recording.synthesizeWarning): Added.
953         (WI.Recording.synthesizeError):
954         * UserInterface/Models/RecordingFrame.js:
955         (WI.RecordingFrame.fromPayload):
956         * UserInterface/Models/RecordingAction.js:
957         (WI.RecordingAction.fromPayload):
958         (WI.RecordingAction.prototype.async swizzle):
959         (WI.RecordingAction.prototype.apply):
960         * UserInterface/Controllers/CanvasManager.js:
961         (WI.CanvasManager.prototype.processJSON):
962
963         * Localizations/en.lproj/localizedStrings.js:
964
965 2019-01-24  Devin Rousso  <drousso@apple.com>
966
967         Web Inspector: Audit: add supports key to test/group for compatibility
968         https://bugs.webkit.org/show_bug.cgi?id=193686
969         <rdar://problem/47460872>
970
971         Reviewed by Joseph Pecoraro.
972
973         * UserInterface/Models/AuditTestBase.js:
974         (WI.AuditTestBase):
975         (WI.AuditTestBase.prototype.get supported): Added.
976         (WI.AuditTestBase.prototype.set supported): Added.
977         (WI.AuditTestBase.prototype.set disabled):
978         (WI.AuditTestBase.prototype.async start):
979         (WI.AuditTestBase.prototype.stop):
980         (WI.AuditTestBase.toJSON):
981         * UserInterface/Models/AuditTestCase.js:
982         (WI.AuditTestCase.async fromPayload):
983         * UserInterface/Models/AuditTestGroup.js:
984         (WI.AuditTestGroup):
985         (WI.AuditTestGroup.async fromPayload):
986         (WI.AuditTestGroup.prototype.get supported): Added.
987         (WI.AuditTestGroup.prototype.set supported): Added.
988         Add support for a "supports" key in the test JSON that prevents the test from being run if
989         it's value is lower than the frontend/backend version.
990
991         * UserInterface/Views/AuditTreeElement.js:
992         (WI.AuditTreeElement.prototype.onattach):
993         (WI.AuditTreeElement.prototype.ondelete):
994         (WI.AuditTreeElement.prototype.populateContextMenu):
995         (WI.AuditTreeElement.prototype._updateStatus): Added.
996         (WI.AuditTreeElement.prototype._showRunningSpinner):
997         (WI.AuditTreeElement.prototype._showRunningProgress):
998         (WI.AuditTreeElement.prototype._updateTestGroupDisabled):
999         (WI.AuditTreeElement.prototype._handleTestCaseCompleted):
1000         (WI.AuditTreeElement.prototype._handleTestResultCleared):
1001         (WI.AuditTreeElement.prototype._handleTestGroupCompleted):
1002         (WI.AuditTreeElement.prototype._handleManagerEditingChanged):
1003         (WI.AuditTreeElement.prototype.canSelectOnMouseDown): Deleted.
1004         (WI.AuditTreeElement.prototype._updateLevel): Deleted.
1005         * UserInterface/Views/AuditTreeElement.css:
1006         (.tree-outline .item.audit:matches(.test-case, .test-group):not(.unsupported, .manager-active) > .status:hover > img): Added.
1007         (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.unsupported, .editing-audits) > .status:not(:hover)): Added.
1008         (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status, .tree-outline .item.audit.unsupported + .children .item.audit.unsupported  > .status > img): Added.
1009         (.tree-outline .item.audit.unsupported:not(.selected) > :matches(.icon, .titles)): Added.
1010         (.tree-outline .item.audit.unsupported > .status > img): Added.
1011         (.tree-outline .item.audit:matches(.test-case, .test-group):not(.manager-active) > .status:hover > img): Deleted.
1012         (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:not(:hover)): Deleted.
1013         (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Deleted.
1014         Hide unsupported tests unless in edit mode, where they are greyed out and cannot be enabled.
1015         Drive-by: only allow tests to be deleted when in edit mode.
1016
1017         * UserInterface/Views/AuditNavigationSidebarPanel.js:
1018         (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange):
1019
1020         * Localizations/en.lproj/localizedStrings.js:
1021
1022 2019-01-24  Joseph Pecoraro  <pecoraro@apple.com>
1023
1024         Web Inspector: CPU Usage Timeline
1025         https://bugs.webkit.org/show_bug.cgi?id=193730
1026         <rdar://problem/46797201>
1027
1028         Reviewed by Devin Rousso.
1029
1030         CPU Usage is gathered in the backend twice a second, the frequency of the
1031         ResourceUsageThread in WebCore. The frontend displays cpu usage in a few
1032         ways in the Timeline.
1033
1034         We use a column chart in the timeline overview to display the frequency and
1035         relative distance of samples. This helps show if the samples were close
1036         together or far apart, which indicates how meaningful they will be at a
1037         particular scale.
1038
1039         We use a line chart in the timeline detail view which will be easier to see
1040         the changes over a particular time range selection.
1041
1042         * Localizations/en.lproj/localizedStrings.js:
1043         New strings.
1044
1045         * UserInterface/Main.html:
1046         * UserInterface/Base/Main.js:
1047         (WI.loaded):
1048         * UserInterface/Test.html:
1049         * UserInterface/Test/Test.js:
1050         (WI.loaded):
1051         * UserInterface/Protocol/CPUProfilerObserver.js:
1052         (WI.CPUProfilerObserver.prototype.trackingStart):
1053         (WI.CPUProfilerObserver.prototype.trackingUpdate):
1054         (WI.CPUProfilerObserver.prototype.trackingComplete):
1055         (WI.CPUProfilerObserver):
1056         New files and default registration.
1057
1058         * UserInterface/Protocol/Target.js:
1059         (WI.Target.prototype.get CPUProfilerAgent):
1060         New Agent.
1061
1062         * UserInterface/Controllers/TimelineManager.js:
1063         (WI.TimelineManager.availableTimelineTypes):
1064         (WI.TimelineManager.prototype.cpuProfilerTrackingStarted):
1065         (WI.TimelineManager.prototype.cpuProfilerTrackingUpdated):
1066         (WI.TimelineManager.prototype.cpuProfilerTrackingCompleted):
1067         (WI.TimelineManager.prototype._updateAutoCaptureInstruments):
1068         (WI.TimelineManager.prototype.memoryTrackingStart): Renamed.
1069         (WI.TimelineManager.prototype.memoryTrackingUpdate): Renamed.
1070         (WI.TimelineManager.prototype.memoryTrackingComplete): Renamed.
1071         * UserInterface/Models/CPUInstrument.js:
1072         (WI.CPUInstrument):
1073         (WI.CPUInstrument.supported):
1074         (WI.CPUInstrument.prototype.get timelineRecordType):
1075         (WI.CPUInstrument.prototype.startInstrumentation):
1076         (WI.CPUInstrument.prototype.stopInstrumentation):
1077         * UserInterface/Models/CPUTimelineRecord.js:
1078         (WI.CPUTimelineRecord):
1079         (WI.CPUTimelineRecord.prototype.get timestamp):
1080         (WI.CPUTimelineRecord.prototype.get usage):
1081         * UserInterface/Models/Instrument.js:
1082         (WI.Instrument.createForTimelineType):
1083         * UserInterface/Models/TimelineRecord.js:
1084         * UserInterface/Models/TimelineRecording.js:
1085         (WI.TimelineRecording.prototype.addRecord):
1086         Expose a new CPU instrument and timeline.
1087
1088         * UserInterface/Views/ColumnChart.js: Added.
1089         (WI.ColumnChart):
1090         (WI.ColumnChart.prototype.get element):
1091         (WI.ColumnChart.prototype.get bars):
1092         (WI.ColumnChart.prototype.get size):
1093         (WI.ColumnChart.prototype.set size):
1094         (WI.ColumnChart.prototype.addBar):
1095         (WI.ColumnChart.prototype.clear):
1096         (WI.ColumnChart.prototype.needsLayout):
1097         (WI.ColumnChart.prototype.updateLayout):
1098         View that will draw vertical bars with independent widths.
1099         This is meant to be used similiar to WI.LineChart.
1100
1101         * UserInterface/Images/CPUInstrument.svg: Added.
1102         * UserInterface/Views/Variables.css:
1103         (:root):
1104         CPU timeline colors and icon.
1105
1106         * UserInterface/Views/CPUTimelineOverviewGraph.css:
1107         (body .sidebar > .panel.navigation.timeline > .timelines-content li.item.cpu,):
1108         (.timeline-overview-graph.cpu):
1109         (.timeline-overview-graph.cpu > .legend):
1110         (body[dir=ltr] .timeline-overview-graph.cpu > .legend):
1111         (body[dir=rtl] .timeline-overview-graph.cpu > .legend):
1112         (.timeline-overview-graph:nth-child(even) > .legend):
1113         (body[dir=rtl] .timeline-overview-graph.cpu > .bar-chart):
1114         (.timeline-overview-graph.cpu > .bar-chart > svg > g > rect):
1115         * UserInterface/Views/CPUTimelineOverviewGraph.js: Added.
1116         (WI.CPUTimelineOverviewGraph):
1117         (WI.CPUTimelineOverviewGraph.prototype.get height):
1118         (WI.CPUTimelineOverviewGraph.prototype.reset):
1119         (WI.CPUTimelineOverviewGraph.prototype.layout.xScale):
1120         (WI.CPUTimelineOverviewGraph.prototype.layout.yScale):
1121         (WI.CPUTimelineOverviewGraph.prototype.layout.yScaleForRecord):
1122         (WI.CPUTimelineOverviewGraph.prototype.layout):
1123         (WI.CPUTimelineOverviewGraph.prototype._updateLegend):
1124         (WI.CPUTimelineOverviewGraph.prototype._cpuTimelineRecordAdded):
1125         * UserInterface/Views/CPUTimelineView.css:
1126         (.timeline-view.cpu):
1127         (.timeline-view.cpu > .content):
1128         (.timeline-view.cpu > .content .subtitle):
1129         (.timeline-view.cpu > .content > .details):
1130         (.timeline-view.cpu > .content > .details > .timeline-ruler):
1131         (body[dir=ltr] .timeline-view.cpu > .content > .details > .timeline-ruler):
1132         (body[dir=rtl] .timeline-view.cpu > .content > .details > .timeline-ruler):
1133         (.timeline-view.cpu > .content > .details > .subtitle):
1134         (.cpu-usage-view .line-chart > svg > path):
1135         (.timeline-view.cpu .legend > .row > .swatch.current):
1136         * UserInterface/Views/CPUTimelineView.js: Added.
1137         (WI.CPUTimelineView):
1138         (WI.CPUTimelineView.prototype.shown):
1139         (WI.CPUTimelineView.prototype.hidden):
1140         (WI.CPUTimelineView.prototype.closed):
1141         (WI.CPUTimelineView.prototype.reset):
1142         (WI.CPUTimelineView.prototype.get scrollableElements):
1143         (WI.CPUTimelineView.prototype.get showsFilterBar):
1144         (WI.CPUTimelineView.prototype.layout.layoutView):
1145         (WI.CPUTimelineView.prototype.layout.xScale):
1146         (WI.CPUTimelineView.prototype.layout.yScale):
1147         (WI.CPUTimelineView.prototype.layout):
1148         (WI.CPUTimelineView.prototype._cpuTimelineRecordAdded):
1149         * UserInterface/Views/CPUUsageView.css:
1150         (.cpu-usage-view):
1151         (.cpu-usage-view > .details):
1152         (body[dir=ltr] .cpu-usage-view > .details):
1153         (body[dir=rtl] .cpu-usage-view > .details):
1154         (.cpu-usage-view > .graph):
1155         (body[dir=rtl] .cpu-usage-view > .graph):
1156         * UserInterface/Views/CPUUsageView.js:
1157         (WI.CPUUsageView):
1158         (WI.CPUUsageView.prototype.get element):
1159         (WI.CPUUsageView.prototype.clear):
1160         (WI.CPUUsageView.prototype.layoutWithDataPoints):
1161         (WI.CPUUsageView.prototype._updateDetails):
1162         * UserInterface/Views/ContentView.js:
1163         (WI.ContentView.createFromRepresentedObject):
1164         * UserInterface/Views/TimelineIcons.css:
1165         (.cpu-icon .icon):
1166         * UserInterface/Views/TimelineOverviewGraph.js:
1167         (WI.TimelineOverviewGraph.createForTimeline):
1168         * UserInterface/Views/TimelineTabContentView.js:
1169         (WI.TimelineTabContentView.displayNameForTimelineType):
1170         (WI.TimelineTabContentView.iconClassNameForTimelineType):
1171         (WI.TimelineTabContentView.genericClassNameForTimelineType):
1172         (WI.TimelineTabContentView.iconClassNameForRecord):
1173         (WI.TimelineTabContentView.displayNameForRecord):
1174         Timeline views for CPU usage.
1175
1176         * UserInterface/Views/MemoryCategoryView.js:
1177         (WI.MemoryCategoryView):
1178         * UserInterface/Views/MemoryTimelineView.js:
1179         (WI.MemoryTimelineView.createChartContainer):
1180         (WI.MemoryTimelineView):
1181         (WI.MemoryTimelineView.prototype._clearMaxComparisonLegend):
1182         Minor updates to style and comments.
1183
1184 2019-01-23  Nikita Vasilyev  <nvasilyev@apple.com>
1185
1186         Web Inspector: Refactor WI.CSSStyleDeclaration.prototype.update
1187         https://bugs.webkit.org/show_bug.cgi?id=193737
1188
1189         Reviewed by Matt Baker.
1190
1191         Remove unused event data from the WI.CSSStyleDeclaration.Event.PropertiesChanged event.
1192
1193         * UserInterface/Models/CSSStyleDeclaration.js:
1194         (WI.CSSStyleDeclaration.prototype.update):
1195
1196 2019-01-23  Devin Rousso  <drousso@apple.com>
1197
1198         WebInspector: Confusingly nested events in the timeline for Mutation Observers
1199         https://bugs.webkit.org/show_bug.cgi?id=192884
1200         <rdar://problem/46854178>
1201
1202         Reviewed by Joseph Pecoraro.
1203
1204         If a microtask event (e.g. `ObserverCallback`) is contained within a `EvaluatedScript`
1205         event, move that microtask event to be a sibling of the `EvaluateScript`, subtracting the
1206         microtask's time taken from the `EvaluateScript`'s time. If there are no other children
1207         after this move, then remove the `EvaluateScript` altogether.
1208
1209         * UserInterface/Controllers/TimelineManager.js:
1210         (WI.TimelineManager.prototype.eventRecorded.fixMicrotaskPlacement): Added.
1211         (WI.TimelineManager.prototype.eventRecorded):
1212         (WI.TimelineManager.prototype._mergeScriptProfileRecords):
1213
1214 2019-01-23  Joseph Pecoraro  <pecoraro@apple.com>
1215
1216         Web Inspector: Network Waterfall column should redraw when adding/removing new columns
1217         https://bugs.webkit.org/show_bug.cgi?id=193696
1218         <rdar://problem/47464149>
1219
1220         Reviewed by Devin Rousso.
1221
1222         * UserInterface/Views/TableColumn.js:
1223         (WI.TableColumn.prototype.get needsReloadOnResize):
1224         * UserInterface/Views/NetworkTableContentView.js:
1225         (WI.NetworkTableContentView.prototype.initialLayout):
1226         Mark the waterfall column as sensitive to any resizes.
1227
1228         * UserInterface/Views/Table.js:
1229         (WI.Table.prototype.showColumn):
1230         (WI.Table.prototype.hideColumn):
1231         Update column widths and reload any columns that may be sensitive to resizes.
1232
1233 2019-01-22  Devin Rousso  <drousso@apple.com>
1234
1235         Web Inspector: InspectorInstrumentation::willEvaluateScript should include column number
1236         https://bugs.webkit.org/show_bug.cgi?id=116191
1237         <rdar://problem/13905910>
1238
1239         Reviewed by Joseph Pecoraro.
1240
1241         * UserInterface/Controllers/TimelineManager.js:
1242         (WI.TimelineManager.prototype._processRecord):
1243
1244 2019-01-22  Devin Rousso  <drousso@apple.com>
1245
1246         Web Inspector: expose Audit and Recording versions to the frontend
1247         https://bugs.webkit.org/show_bug.cgi?id=193262
1248         <rdar://problem/47130684>
1249
1250         Reviewed by Joseph Pecoraro.
1251
1252         * UserInterface/Protocol/InspectorBackend.js:
1253         (InspectorBackendClass.prototype.registerVersion): Added.
1254
1255         * UserInterface/Models/AuditTestCase.js:
1256         * UserInterface/Models/Recording.js:
1257         (WI.Recording.fromPayload):
1258         Add Interface version values.
1259
1260 2019-01-22  Nikita Vasilyev  <nvasilyev@apple.com>
1261
1262         Web Inspector: Styles: refactor properties/allProperties/visibleProperties/allVisibleProperties
1263         https://bugs.webkit.org/show_bug.cgi?id=193615
1264
1265         Reviewed by Devin Rousso.
1266
1267         Remove unused visibleProperties.
1268
1269         Rename:
1270         - properties to enabledProperties;
1271         - allProperties to properties;
1272         - allVisibleProperties to visibleProperties.
1273
1274         * UserInterface/Models/CSSProperty.js:
1275         (WI.CSSProperty.prototype._prependSemicolonIfNeeded):
1276         (WI.CSSProperty):
1277         * UserInterface/Models/CSSStyleDeclaration.js:
1278         (WI.CSSStyleDeclaration):
1279         (WI.CSSStyleDeclaration.prototype.get enabledProperties):
1280         (WI.CSSStyleDeclaration.prototype.get properties):
1281         (WI.CSSStyleDeclaration.prototype.propertyForName):
1282         (WI.CSSStyleDeclaration.prototype.newBlankProperty):
1283         (WI.CSSStyleDeclaration.prototype.shiftPropertiesAfter):
1284         (WI.CSSStyleDeclaration.prototype._rangeAfterPropertyAtIndex):
1285         * UserInterface/Models/DOMNodeStyles.js:
1286         (WI.DOMNodeStyles.prototype._parseStylePropertyPayload):
1287         (WI.DOMNodeStyles.prototype._markOverriddenProperties):
1288         (WI.DOMNodeStyles.prototype._associateRelatedProperties):
1289         (WI.DOMNodeStyles.prototype._isPropertyFoundInMatchingRules):
1290         (WI.DOMNodeStyles):
1291         * UserInterface/Views/BoxModelDetailsSectionRow.js:
1292         (WI.BoxModelDetailsSectionRow.prototype._updateMetrics):
1293         * UserInterface/Views/ComputedStyleDetailsPanel.js:
1294         (WI.ComputedStyleDetailsPanel.prototype._computePropertyTraces):
1295         * UserInterface/Views/ComputedStyleSection.js:
1296         (WI.ComputedStyleSection.prototype.get propertiesToRender):
1297         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1298         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender):
1299         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
1300         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
1301         * UserInterface/Views/SpreadsheetStyleProperty.js:
1302         (WI.SpreadsheetStyleProperty.prototype.updateStatus):
1303
1304 2019-01-22  Joseph Pecoraro  <pecoraro@apple.com>
1305
1306         Web Inspector: Network Table appears broken after filter - rows look collapsed
1307         https://bugs.webkit.org/show_bug.cgi?id=192730
1308         <rdar://problem/46853158>
1309
1310         Reviewed by Devin Rousso.
1311
1312         * UserInterface/Views/Table.js:
1313         (WI.Table.prototype._applyColumnWidthsToColumnsIfNeeded):
1314         Affect the filler row like the other applyColumnWidths calls since this
1315         now may be the initial call to size visible columns.
1316
1317 2019-01-22  Devin Rousso  <drousso@apple.com>
1318
1319         Web Inspector: Audit: use plural strings for Passed, Failed, and Unsupported
1320         https://bugs.webkit.org/show_bug.cgi?id=193675
1321         <rdar://problem/46628680>
1322
1323         Reviewed by Joseph Pecoraro.
1324
1325         * UserInterface/Views/AuditTestGroupContentView.js:
1326         (WI.AuditTestGroupContentView.prototype.layout):
1327
1328         * Localizations/en.lproj/localizedStrings.js:
1329
1330 2019-01-18  Jer Noble  <jer.noble@apple.com>
1331
1332         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1333         https://bugs.webkit.org/show_bug.cgi?id=189553
1334
1335         Reviewed by Tim Horton.
1336
1337         * Configurations/Base.xcconfig:
1338         * Configurations/SDKVariant.xcconfig: Added.
1339
1340 2019-01-18  Devin Rousso  <drousso@apple.com>
1341
1342         Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'resource.finished')
1343         https://bugs.webkit.org/show_bug.cgi?id=193589
1344
1345         Reviewed by Joseph Pecoraro.
1346
1347         * UserInterface/Views/NetworkTableContentView.js:
1348         (WI.NetworkTableContentView.prototype.get supportsSave):
1349         (WI.NetworkTableContentView.prototype._HARResources):
1350
1351 2019-01-17  Truitt Savell  <tsavell@apple.com>
1352
1353         Unreviewed, rolling out r240124.
1354
1355         This commit broke an internal build.
1356
1357         Reverted changeset:
1358
1359         "SDK_VARIANT build destinations should be separate from non-
1360         SDK_VARIANT builds"
1361         https://bugs.webkit.org/show_bug.cgi?id=189553
1362         https://trac.webkit.org/changeset/240124
1363
1364 2019-01-17  Jer Noble  <jer.noble@apple.com>
1365
1366         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1367         https://bugs.webkit.org/show_bug.cgi?id=189553
1368
1369         Reviewed by Tim Horton.
1370
1371         * Configurations/Base.xcconfig:
1372         * Configurations/SDKVariant.xcconfig: Added.
1373
1374 2019-01-16  Matt Baker  <mattbaker@apple.com>
1375
1376         Web Inspector: Fix TreeOutline TypeError:​ this._indexesForSubtree is not a function
1377         https://bugs.webkit.org/show_bug.cgi?id=193501
1378         <rdar://problem/47323967>
1379
1380         Reviewed by Joseph Pecoraro.
1381
1382         * UserInterface/Views/TreeOutline.js:
1383         (WI.TreeOutline.prototype.removeChildAtIndex):
1384
1385 2019-01-15  Devin Rousso  <drousso@apple.com>
1386
1387         Web Inspector: Audit: create new IDL type for exposing special functionality in test context
1388         https://bugs.webkit.org/show_bug.cgi?id=193149
1389         <rdar://problem/46801218>
1390
1391         Reviewed by Joseph Pecoraro.
1392
1393         Add `AuditAgent` getters and plumbing.
1394
1395         * UserInterface/Protocol/Target.js:
1396         (WI.Target.prototype.get AuditAgent): Added.
1397
1398         * UserInterface/Models/AuditTestCase.js:
1399         (WI.AuditTestCase.prototype.async run):
1400
1401         * UserInterface/Controllers/AuditManager.js:
1402         (WI.AuditManager.prototype.async start):
1403
1404         * .eslintrc:
1405
1406 2019-01-14  Devin Rousso  <drousso@apple.com>
1407
1408         Web Inspector: Event breakpoints: typing uppercase "DOM" doesn't show completions for events that start with "DOM"
1409         https://bugs.webkit.org/show_bug.cgi?id=193384
1410
1411         Reviewed by Joseph Pecoraro.
1412
1413         * UserInterface/Views/EventBreakpointPopover.js:
1414         (WI.EventBreakpointPopover.prototype.show):
1415
1416 2019-01-14  Devin Rousso  <drousso@apple.com>
1417
1418         Web Inspector: Event breakpoints: text field and completion popover fonts should match
1419         https://bugs.webkit.org/show_bug.cgi?id=193249
1420
1421         Reviewed by Matt Baker.
1422
1423         * UserInterface/Views/EventBreakpointPopover.css:
1424         (.popover .event-breakpoint-content > .event-type > input): Added.
1425         (.popover .event-breakpoint-content > .event-type > input::placeholder): Added.
1426         * UserInterface/Views/EventBreakpointPopover.js:
1427         (WI.EventBreakpointPopover.prototype.show):
1428         (WI.EventBreakpointPopover.prototype._showSuggestionsView):
1429         Subtract the <input> border and padding from the bounds position so the <input> text lines
1430         up with the `WI.CompletionSuggestionsView` text.
1431
1432         * UserInterface/Views/CompletionSuggestionsView.js:
1433         (WI.CompletionSuggestionsView):
1434         Drive-by: force `dir=ltr` to match the `text-align: left;` CSS styling.
1435
1436 2019-01-14  Nikita Vasilyev  <nvasilyev@apple.com>
1437
1438         Web Inspector: Styles: pressing Down key on empty value field shouldn't discard completion popover
1439         https://bugs.webkit.org/show_bug.cgi?id=193098
1440         <rdar://problem/47016036>
1441
1442         Reviewed by Devin Rousso.
1443
1444         Hide CompletionSuggestionsView when SpreadsheetTextField moves, e.g. by scrolling or resizing the sidebar.
1445         Update CompletionSuggestionsView position after pressing Up or Down key, because SpreadsheetTextField may
1446         move from wrapping text.
1447
1448         * UserInterface/Views/CompletionSuggestionsView.js:
1449         (WI.CompletionSuggestionsView.prototype.hide):
1450         (WI.CompletionSuggestionsView.prototype.show):
1451         (WI.CompletionSuggestionsView.prototype.showUntilAnchorMoves): Removed.
1452         (WI.CompletionSuggestionsView.prototype.hideWhenElementMoves): Added.
1453         (WI.CompletionSuggestionsView.prototype._stopMoveTimer): Added.
1454         (WI.CompletionSuggestionsView):
1455
1456         * UserInterface/Views/SpreadsheetTextField.js:
1457         (WI.SpreadsheetTextField.prototype.set suggestionHint):
1458         (WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion):
1459         (WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
1460         (WI.SpreadsheetTextField.prototype._updateCompletions):
1461         (WI.SpreadsheetTextField.prototype._showSuggestionsView): Added.
1462
1463         (WI.SpreadsheetTextField.prototype._reAttachSuggestionHint):
1464         Drive-by: abstract out repeating code into a private method.
1465
1466 2019-01-14  Devin Rousso  <drousso@apple.com>
1467
1468         Web Inspector: Settings: group titles should vertically align with the first editor
1469         https://bugs.webkit.org/show_bug.cgi?id=193391
1470
1471         Reviewed by Dean Jackson.
1472
1473         * UserInterface/Views/SettingsTabContentView.css:
1474         (.content-view.settings > .settings-view > .container):
1475         (.content-view.settings > .settings-view > .container > .editor-group > .editor): Added.
1476         (.content-view.settings > .settings-view > .container > .editor-group > .editor:first-child > *): Added.
1477         (.content-view.settings > .settings-view > .container > .editor-group > .editor select):
1478         (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
1479
1480 2019-01-11  Matt Baker  <mattbaker@apple.com>
1481
1482         Web Inspector: REGRESSION: deleting an audit puts selection in a selected but invisible state
1483         https://bugs.webkit.org/show_bug.cgi?id=192917
1484         <rdar://problem/46875285>
1485
1486         Reviewed by Devin Rousso.
1487
1488         SelectionController should not be notified of removed children until the
1489         child items have been removed from the TreeOutline. Doing so at this stage
1490         is unsafe, since this method checks `this.selectedTreeElement`, which could
1491         return the adjusted index from the SelectionController before anything has
1492         actually been removed from the TreeOutline.
1493
1494         The number of calls to SelectionController.prototype.didRemoveItems is also
1495         reduced somewhat, since we're no longer calling it for every TreeElement.
1496
1497         * UserInterface/Views/TreeOutline.js:
1498         (WI.TreeOutline.prototype.removeChildAtIndex):
1499         (WI.TreeOutline.prototype.removeChildren):
1500         (WI.TreeOutline.prototype._forgetTreeElement):
1501         (WI.TreeOutline.prototype._indexesForSubtree): Added.        
1502
1503 2019-01-10  Devin Rousso  <drousso@apple.com>
1504
1505         Web Inspector: Audit: allow audits to be enabled/disabled
1506         https://bugs.webkit.org/show_bug.cgi?id=192210
1507         <rdar://problem/46423583>
1508
1509         Reviewed by Joseph Pecoraro.
1510
1511         * UserInterface/Controllers/AuditManager.js:
1512         (WI.AuditManager.prototype.get editing): Added.
1513         (WI.AuditManager.prototype.set editing): Added.
1514         (WI.AuditManager.prototype.stop):
1515         (WI.AuditManager.prototype.addDefaultTestsIfNeeded):
1516         Since default audits aren't stored, keep a list of disabled default tests in a `WI.Setting`.
1517
1518         * UserInterface/Models/AuditTestBase.js:
1519         (WI.AuditTestBase):
1520         (WI.AuditTestBase.prototype.get disabled): Added.
1521         (WI.AuditTestBase.prototype.set disabled): Added.
1522         (WI.AuditTestBase.prototype.async start):
1523         (WI.AuditTestBase.prototype.stop):
1524         (WI.AuditTestBase.toJSON):
1525
1526         * UserInterface/Models/AuditTestCase.js:
1527         (WI.AuditTestCase):
1528         (WI.AuditTestCase.async fromPayload):
1529         (WI.AuditTestCase.prototype.toJSON):
1530
1531         * UserInterface/Models/AuditTestGroup.js:
1532         (WI.AuditTestGroup):
1533         (WI.AuditTestGroup.async fromPayload):
1534         (WI.AuditTestGroup.prototype.get disabled): Added.
1535         (WI.AuditTestGroup.prototype.set disabled): Added.
1536         (WI.AuditTestGroup.prototype.toJSON):
1537         (WI.AuditTestGroup.prototype.async run):
1538         (WI.AuditTestGroup.prototype._handleTestDisabledChanged): Added.
1539         (WI.AuditTestGroup.prototype._handleTestProgress):
1540         Propagate `disabled` changes to all sub-tests, unless the change was caused by one of the
1541         sub-tests, in which case we are now in an intermediate state.
1542
1543         * UserInterface/Views/AuditNavigationSidebarPanel.js:
1544         (WI.AuditNavigationSidebarPanel):
1545         (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView):
1546         (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
1547         (WI.AuditNavigationSidebarPanel.prototype.hasCustomFilters): Added.
1548         (WI.AuditNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): Added.
1549         (WI.AuditNavigationSidebarPanel.prototype._addTest):
1550         (WI.AuditNavigationSidebarPanel.prototype._addResult):
1551         (WI.AuditNavigationSidebarPanel.prototype._updateStartStopButtonNavigationItemState):
1552         (WI.AuditNavigationSidebarPanel.prototype._updateEditButtonNavigationItemState): Added.
1553         (WI.AuditNavigationSidebarPanel.prototype._handleAuditManagerEditingChanged): Added.
1554         (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
1555         (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestScheduled):
1556         (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange):
1557         (WI.AuditNavigationSidebarPanel.prototype._handleEditButtonNavigationItemClicked): Added.
1558         * UserInterface/Views/AuditNavigationSidebarPanel.css:
1559         (.sidebar > .panel.navigation.audit > .content):
1560         (.sidebar > .panel.navigation.audit > .content > .tree-outline): Added.
1561         (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled):active): Added.
1562         (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled).activated): Added.
1563         (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled).activated:active): Added.
1564         (.sidebar > .panel.navigation.audit > .content .edit-audits.disabled): Added.
1565         (.finish-editing-audits-placeholder.message-text-view .navigation-item-help .navigation-bar): Added.
1566         Leverage custom filters to ensure that disabled audits arent shown when not editing and that
1567         result tree elements aren't shown while editing.
1568
1569         * UserInterface/Views/AuditTestGroupContentView.js:
1570         (WI.AuditTestGroupContentView.prototype.shown):
1571
1572         * UserInterface/Views/AuditTreeElement.js:
1573         (WI.AuditTreeElement.prototype.onattach):
1574         (WI.AuditTreeElement.prototype.canSelectOnMouseDown): Added.
1575         (WI.AuditTreeElement.prototype._updateTestGroupDisabled): Added.
1576         (WI.AuditTreeElement.prototype._handleTestDisabledChanged): Added.
1577         (WI.AuditTreeElement.prototype._handleManagerEditingChanged): Added.
1578         * UserInterface/Views/AuditTreeElement.css:
1579         (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:not(:hover)): Added.
1580         (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Added.
1581         (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:not(:hover)): Deleted.
1582         (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Deleted.
1583         Prevent selection and running when editing.
1584
1585         * UserInterface/Views/TreeOutline.css:
1586         (.tree-outline .children.expanded:not([hidden])): Added.
1587         (.tree-outline .children.expanded): Deleted.
1588
1589         * UserInterface/Base/ObjectStore.js:
1590         (WI.ObjectStore._open):
1591         Batch operations together to help avoid multiple simultaneous `indexedDB.open` calls. This
1592         should also help preserve the order of operations, as once the database is open, operations
1593         are executed in the order they were enqueued.
1594
1595         (WI.ObjectStore.prototype.async.addObject):
1596         Pass a unique `Symbol` to the `toJSON` call on the given object so that the object can save
1597         additional values that wouldn't normally be saved. This doesn't conflict with normal usage
1598         of `toJSON` (e.g. `JSON.stringify`) because that case also passes in a value:
1599          - `undefined`, if it was called directly on the object
1600          - the key for this object in the containing object
1601          - the index of this object in the containing array
1602         In any case, the value can never equal the unique `Symbol`, so it's guaranteed that the code
1603         will only run for `WI.ObjectStore` operations.
1604
1605         (WI.ObjectStore.prototype.async.clear): Added.
1606
1607         * Localizations/en.lproj/localizedStrings.js:
1608
1609 2019-01-09  Devin Rousso  <drousso@apple.com>
1610
1611         Web Inspector: Protocol Logging: log messages as objects if inspector^2 is open
1612         https://bugs.webkit.org/show_bug.cgi?id=193284
1613
1614         Reviewed by Joseph Pecoraro.
1615
1616         If inspector^2 is closed, stringify all messages.
1617         If inspector^2 is open, log each message JSON object without modifying it.
1618
1619         * UserInterface/Protocol/LoggingProtocolTracer.js:
1620         (WI.LoggingProtocolTracer.prototype._processEntry):
1621
1622 2019-01-09  Nikita Vasilyev  <nvasilyev@apple.com>
1623
1624         Web Inspector: Styles: clicking on property that soon to be discarded shouldn't start selection
1625         https://bugs.webkit.org/show_bug.cgi?id=193218
1626         <rdar://problem/47098303>
1627
1628         Reviewed by Devin Rousso.
1629
1630         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
1631         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
1632         A style property may get removed on blur event, so propertyElement may get removed from the DOM right when mousedown event happens.
1633
1634         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowClick):
1635         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
1636         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._stopSelection):
1637
1638 2019-01-08  Nikita Vasilyev  <nvasilyev@apple.com>
1639
1640         Web Inspector: Styles: Undo reverts all changes at once
1641         https://bugs.webkit.org/show_bug.cgi?id=177676
1642         <rdar://problem/34745031>
1643
1644         Reviewed by Devin Rousso.
1645
1646         Command-Z used to revert all changes at once because Web Inspector never
1647         set any history checkpoints in the style editor.
1648
1649         * UserInterface/Views/SpreadsheetStyleProperty.js:
1650         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
1651         * UserInterface/Views/SpreadsheetTextField.js:
1652         (WI.SpreadsheetTextField.prototype._handleBlur):
1653
1654 2019-01-08  Nikita Vasilyev  <nvasilyev@apple.com>
1655
1656         Web Inspector: Use prefers-color-scheme instead of prefers-dark-interface
1657         https://bugs.webkit.org/show_bug.cgi?id=193265
1658
1659         Reviewed by Timothy Hatcher.
1660
1661         * UserInterface/Views/AuditTestContentView.css:
1662         (@media (prefers-color-scheme: dark)):
1663         * UserInterface/Views/AuditTestGroupContentView.css:
1664         (@media (prefers-color-scheme: dark)):
1665         * UserInterface/Views/BezierEditor.css:
1666         (@media (prefers-color-scheme: dark)):
1667         * UserInterface/Views/BoxModelDetailsSectionRow.css:
1668         (@media (prefers-color-scheme: dark)):
1669         * UserInterface/Views/BreakpointActionView.css:
1670         (@media (prefers-color-scheme: dark)):
1671         * UserInterface/Views/BreakpointPopoverController.css:
1672         (@media (prefers-color-scheme: dark)):
1673         * UserInterface/Views/ButtonNavigationItem.css:
1674         (@media (prefers-color-scheme: dark)):
1675         * UserInterface/Views/ButtonToolbarItem.css:
1676         (@media (prefers-color-scheme: dark)):
1677         * UserInterface/Views/CallFrameView.css:
1678         (@media (prefers-color-scheme: dark)):
1679         * UserInterface/Views/CanvasContentView.css:
1680         (@media (prefers-color-scheme: dark)):
1681         * UserInterface/Views/CanvasOverviewContentView.css:
1682         (@media (prefers-color-scheme: dark)):
1683         * UserInterface/Views/CanvasSidebarPanel.css:
1684         (@media (prefers-color-scheme: dark)):
1685         * UserInterface/Views/CanvasTabContentView.css:
1686         (@media (prefers-color-scheme: dark)):
1687         * UserInterface/Views/CodeMirrorOverrides.css:
1688         (@media (prefers-color-scheme: dark)):
1689         * UserInterface/Views/CompletionSuggestionsView.css:
1690         (@media (prefers-color-scheme: dark)):
1691         * UserInterface/Views/ComputedStyleDetailsPanel.css:
1692         (@media (prefers-color-scheme: dark)):
1693         * UserInterface/Views/ComputedStyleSection.css:
1694         (@media (prefers-color-scheme: dark)):
1695         * UserInterface/Views/ConsoleMessageView.css:
1696         (@media (prefers-color-scheme: dark)):
1697         * UserInterface/Views/ConsolePrompt.css:
1698         (@media (prefers-color-scheme: dark)):
1699         * UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
1700         (@media (prefers-color-scheme: dark)):
1701         * UserInterface/Views/DOMTreeOutline.css:
1702         (@media (prefers-color-scheme: dark)):
1703         * UserInterface/Views/DataGrid.css:
1704         (@media (prefers-color-scheme: dark)):
1705         * UserInterface/Views/DebuggerDashboardView.css:
1706         (@media (prefers-color-scheme: dark)):
1707         * UserInterface/Views/DebuggerSidebarPanel.css:
1708         (@media (prefers-color-scheme: dark)):
1709         * UserInterface/Views/DefaultDashboardView.css:
1710         (@media (prefers-color-scheme: dark)):
1711         * UserInterface/Views/DetailsSection.css:
1712         (@media (prefers-color-scheme: dark)):
1713         * UserInterface/Views/DividerNavigationItem.css:
1714         (@media (prefers-color-scheme: dark)):
1715         * UserInterface/Views/Editing.css:
1716         (@media (prefers-color-scheme: dark)):
1717         * UserInterface/Views/FindBanner.css:
1718         (@media (prefers-color-scheme: dark)):
1719         * UserInterface/Views/FontResourceContentView.css:
1720         (@media (prefers-color-scheme: dark)):
1721         * UserInterface/Views/FormattedValue.css:
1722         (@media (prefers-color-scheme: dark)):
1723         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
1724         (@media (prefers-color-scheme: dark)):
1725         * UserInterface/Views/HoverMenu.css:
1726         (@media (prefers-color-scheme: dark)):
1727         * UserInterface/Views/ImageResourceContentView.css:
1728         (@media (prefers-color-scheme: dark)):
1729         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
1730         (@media (prefers-color-scheme: dark)):
1731         * UserInterface/Views/LogContentView.css:
1732         (@media (prefers-color-scheme: dark)):
1733
1734         * UserInterface/Views/Main.css:
1735         (:root):
1736
1737         (@media (prefers-color-scheme: dark)):
1738         * UserInterface/Views/NetworkDetailView.css:
1739         (@media (prefers-color-scheme: dark)):
1740         * UserInterface/Views/NetworkTableContentView.css:
1741         (@media (prefers-color-scheme: dark)):
1742         * UserInterface/Views/NewTabContentView.css:
1743         (@media (prefers-color-scheme: dark)):
1744         * UserInterface/Views/ObjectPreviewView.css:
1745         (@media (prefers-color-scheme: dark)):
1746         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
1747         (@media (prefers-color-scheme: dark)):
1748         * UserInterface/Views/OpenResourceDialog.css:
1749         (@media (prefers-color-scheme: dark)):
1750         * UserInterface/Views/ProgressView.css:
1751         (@media (prefers-color-scheme: dark)):
1752         * UserInterface/Views/QuickConsole.css:
1753         (@media (prefers-color-scheme: dark)):
1754         * UserInterface/Views/RecordingActionTreeElement.css:
1755         (@media (prefers-color-scheme: dark)):
1756         * UserInterface/Views/RecordingContentView.css:
1757         (@media (prefers-color-scheme: dark)):
1758         * UserInterface/Views/RecordingStateDetailsSidebarPanel.css:
1759         (@media (prefers-color-scheme: dark)):
1760         * UserInterface/Views/ResourceSecurityContentView.css:
1761         (@media (prefers-color-scheme: dark)):
1762         * UserInterface/Views/ResourceSizesContentView.css:
1763         (@media (prefers-color-scheme: dark)):
1764         * UserInterface/Views/ResourceTimingBreakdownView.css:
1765         (@media (prefers-color-scheme: dark)):
1766         * UserInterface/Views/ScopeBar.css:
1767         (@media (prefers-color-scheme: dark)):
1768         * UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
1769         (@media (prefers-color-scheme: dark)):
1770         * UserInterface/Views/SearchBar.css:
1771         (@media (prefers-color-scheme: dark)):
1772         * UserInterface/Views/SearchSidebarPanel.css:
1773         (@media (prefers-color-scheme: dark)):
1774         * UserInterface/Views/SettingsTabContentView.css:
1775         (@media (prefers-color-scheme: dark)):
1776         * UserInterface/Views/ShaderProgramContentView.css:
1777         (@media (prefers-color-scheme: dark)):
1778         * UserInterface/Views/ShaderProgramTreeElement.css:
1779         (@media (prefers-color-scheme: dark)):
1780         * UserInterface/Views/SourceCodeTextEditor.css:
1781         (@media (prefers-color-scheme: dark)):
1782         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
1783         (@media (prefers-color-scheme: dark)):
1784         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
1785         (@media (prefers-color-scheme: dark)):
1786         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
1787         (@media (prefers-color-scheme: dark)):
1788         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
1789         (@media (prefers-color-scheme: dark)):
1790         * UserInterface/Views/TabBar.css:
1791         (@media (prefers-color-scheme: dark)):
1792         * UserInterface/Views/Table.css:
1793         (@media (prefers-color-scheme: dark)):
1794         * UserInterface/Views/TextEditor.css:
1795         (@media (prefers-color-scheme: dark)):
1796         * UserInterface/Views/TimelineDataGrid.css:
1797         (@media (prefers-color-scheme: dark)):
1798         * UserInterface/Views/TimelineIcons.css:
1799         (@media (prefers-color-scheme: dark)):
1800         * UserInterface/Views/TimelineOverview.css:
1801         (@media (prefers-color-scheme: dark)):
1802         * UserInterface/Views/Toolbar.css:
1803         (@media (prefers-color-scheme: dark)):
1804         * UserInterface/Views/TreeOutline.css:
1805         (@media (prefers-color-scheme: dark)):
1806         * UserInterface/Views/URLBreakpointPopover.css:
1807         (@media (prefers-color-scheme: dark)):
1808         * UserInterface/Views/Variables.css:
1809         (@media (prefers-color-scheme: dark)):
1810         * UserInterface/Views/WebSocketContentView.css:
1811         (@media (prefers-color-scheme: dark)):
1812
1813 2019-01-07  Devin Rousso  <drousso@apple.com>
1814
1815         Web Inspector: Audit: run arrow shouldn't be visible when running tests
1816         https://bugs.webkit.org/show_bug.cgi?id=192209
1817         <rdar://problem/46423615>
1818
1819         Reviewed by Brian Burg.
1820
1821         * UserInterface/Views/AuditTreeElement.js:
1822         (WI.AuditTreeElement.prototype.onattach):
1823         (WI.AuditTreeElement.prototype.ondetach):
1824         (WI.AuditTreeElement.prototype._updateLevel):
1825         (WI.AuditTreeElement.prototype._handleAuditManagerTestScheduled): Added.
1826         (WI.AuditTreeElement.prototype._handleAuditManagerTestCompleted): Added.
1827         * UserInterface/Views/AuditTreeElement.css: Added.
1828         (.tree-outline .item.audit:matches(.test-case, .test-group):not(.manager-active) > .status:hover > img): Added.
1829         (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Added.
1830         (.tree-outline .item.audit:matches(.test-case, .test-group) > .status:hover > img): Deleted.
1831         (.tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Deleted.
1832
1833 2019-01-07  Devin Rousso  <drousso@apple.com>
1834
1835         Web Inspector: extend XHR breakpoints to work with fetch
1836         https://bugs.webkit.org/show_bug.cgi?id=185843
1837         <rdar://problem/40431027>
1838
1839         Reviewed by Matt Baker.
1840
1841         * UserInterface/Controllers/DOMDebuggerManager.js:
1842         (WI.DOMDebuggerManager):
1843         (WI.DOMDebuggerManager.supportsURLBreakpoints): Added.
1844         (WI.DOMDebuggerManager.prototype.get urlBreakpoints): Added.
1845         (WI.DOMDebuggerManager.prototype.urlBreakpointForURL): Added.
1846         (WI.DOMDebuggerManager.prototype.addURLBreakpoint): Added.
1847         (WI.DOMDebuggerManager.prototype.removeURLBreakpoint): Added.
1848         (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
1849         (WI.DOMDebuggerManager.prototype._updateURLBreakpoint): Added.
1850         (WI.DOMDebuggerManager.prototype._resolveURLBreakpoint): Added.
1851         (WI.DOMDebuggerManager.prototype._saveURLBreakpoints): Added.
1852         (WI.DOMDebuggerManager.prototype._urlBreakpointDisabledStateDidChange): Added.
1853         (WI.DOMDebuggerManager.prototype.get xhrBreakpoints): Deleted.
1854         (WI.DOMDebuggerManager.prototype.xhrBreakpointForURL): Deleted.
1855         (WI.DOMDebuggerManager.prototype.addXHRBreakpoint): Deleted.
1856         (WI.DOMDebuggerManager.prototype.removeXHRBreakpoint): Deleted.
1857         (WI.DOMDebuggerManager.prototype._updateXHRBreakpoint.breakpointUpdated): Deleted.
1858         (WI.DOMDebuggerManager.prototype._updateXHRBreakpoint): Deleted.
1859         (WI.DOMDebuggerManager.prototype._resolveXHRBreakpoint): Deleted.
1860         (WI.DOMDebuggerManager.prototype._saveXHRBreakpoints): Deleted.
1861         (WI.DOMDebuggerManager.prototype._xhrBreakpointDisabledStateDidChange): Deleted.
1862
1863         * UserInterface/Controllers/DebuggerManager.js:
1864         (WI.DebuggerManager.prototype._pauseReasonFromPayload):
1865
1866         * UserInterface/Views/DebuggerSidebarPanel.js:
1867         (WI.DebuggerSidebarPanel):
1868         (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
1869         (WI.DebuggerSidebarPanel.prototype._addBreakpoint):
1870         (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
1871         (WI.DebuggerSidebarPanel.prototype._addTreeElement):
1872         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
1873         (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked):
1874
1875         * UserInterface/Views/NavigationSidebarPanel.js:
1876         (WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
1877
1878         * UserInterface/Models/URLBreakpoint.js: Renamed from Source/WebInspectorUI/UserInterface/Models/XHRBreakpoint.js.
1879         * UserInterface/Views/URLBreakpointPopover.css: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointPopover.css.
1880         * UserInterface/Views/URLBreakpointPopover.js: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointPopover.js.
1881         * UserInterface/Views/URLBreakpointTreeElement.css: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.css.
1882         * UserInterface/Views/URLBreakpointTreeElement.js: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.js.
1883
1884         * UserInterface/Base/Setting.js:
1885         (WI.Setting.migrateValue): Added.
1886
1887         * UserInterface/Main.html:
1888         * UserInterface/Test.html:
1889
1890         * Localizations/en.lproj/localizedStrings.js:
1891
1892 2019-01-07  Devin Rousso  <drousso@apple.com>
1893
1894         Web Inspector: Network: show secure connection details per-request
1895         https://bugs.webkit.org/show_bug.cgi?id=191539
1896         <rdar://problem/45979891>
1897
1898         Reviewed by Joseph Pecoraro.
1899
1900         * UserInterface/Models/Resource.js:
1901         (WI.Resource):
1902         (WI.Resource.prototype.get security): Added.
1903         (WI.Resource.prototype.updateForResponse):
1904         (WI.Resource.prototype.updateWithMetrics):
1905         (WI.Resource.prototype.get responseSecurity): Deleted.
1906
1907         * UserInterface/Views/ResourceSecurityContentView.js:
1908         (WI.ResourceSecurityContentView):
1909         (WI.ResourceSecurityContentView.prototype.initialLayout):
1910         (WI.ResourceSecurityContentView.prototype.layout):
1911         (WI.ResourceSecurityContentView.prototype._refreshConnectionSection): Added.
1912         (WI.ResourceSecurityContentView.prototype._refreshCetificateSection):
1913         (WI.ResourceSecurityContentView.prototype._handleResourceMetricsDidChange): Added.
1914         * UserInterface/Views/ResourceSecurityContentView.css:
1915         (body[dir] .resource-security > section:matches(.connection, .certificate) > .details): Added.
1916         (@media (prefers-dark-interface) body[dir] .resource-security > section:matches(.connection, .certificate) > .details): Added.
1917         (body[dir] .resource-security > section.certificate > .details): Deleted.
1918         (@media (prefers-dark-interface) body[dir] .resource-security > section.certificate > .details): Deleted.
1919
1920         * Localizations/en.lproj/localizedStrings.js:
1921
1922 2019-01-07  Nikita Vasilyev  <nvasilyev@apple.com>
1923
1924         Web Inspector: "white" isn't recognized as a color keyword
1925         https://bugs.webkit.org/show_bug.cgi?id=193173
1926         <rdar://problem/47068595>
1927
1928         Reviewed by Joseph Pecoraro.
1929
1930         Attempt to parse "atom" token types as colors.
1931
1932         Display color picker only for color-aware properties. For instance,
1933         display it for "color: white" but not for "-apple-pay-button-style: white".
1934
1935         * UserInterface/Models/CSSKeywordCompletions.js:
1936         (addKeywordsForName):
1937         (WI.CSSKeywordCompletions.forProperty):
1938         (WI.CSSKeywordCompletions.isColorAwareProperty):
1939         * UserInterface/Views/SpreadsheetStyleProperty.js:
1940         (WI.SpreadsheetStyleProperty.prototype._renderValue):
1941         (WI.SpreadsheetStyleProperty.prototype._addColorTokens):
1942
1943 2019-01-04  Joseph Pecoraro  <pecoraro@apple.com>
1944
1945         Web Inspector: subclasses of WI.ClusterContentView don't save/restore content views after the initial view
1946         https://bugs.webkit.org/show_bug.cgi?id=192451
1947         <rdar://problem/46800958>
1948
1949         Reviewed by Devin Rousso.
1950
1951         * UserInterface/Models/BackForwardEntry.js:
1952         (WI.BackForwardEntry.prototype.prepareToHide):
1953         * UserInterface/Views/ClusterContentView.js:
1954         (WI.ClusterContentView.prototype.get shouldSaveStateOnHide):
1955         * UserInterface/Views/ContentView.js:
1956         (WI.ContentView.prototype.get shouldSaveStateOnHide):
1957         Allow ClusterContentViews to save its state whenever its hidden,
1958         this means it can be properly restored to the last state it had
1959         instead of the initial state it was shown with.
1960
1961 2019-01-04  Devin Rousso  <drousso@apple.com>
1962
1963         Web Inspector: Audit: disable breakpoints when running Audit
1964         https://bugs.webkit.org/show_bug.cgi?id=193158
1965         <rdar://problem/47057083>
1966
1967         Reviewed by Joseph Pecoraro.
1968
1969         * UserInterface/Controllers/DebuggerManager.js:
1970         (WI.DebuggerManager):
1971         (WI.DebuggerManager.prototype._startDisablingBreakpointsTemporarily):
1972         (WI.DebuggerManager.prototype._stopDisablingBreakpointsTemporarily):
1973         (WI.DebuggerManager.prototype._handleAuditManagerTestScheduled): Added.
1974         (WI.DebuggerManager.prototype._handleAuditManagerTestCompleted): Added.
1975
1976         * UserInterface/Views/DebuggerSidebarPanel.js:
1977         (WI.DebuggerSidebarPanel.prototype._timelineCapturingWillStart):
1978         (WI.DebuggerSidebarPanel.prototype._timelineCapturingStopped):
1979         (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestScheduled): Added.
1980         (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestCompleted): Added.
1981         (WI.DebuggerSidebarPanel.prototype._updateBreakpointsDisabledBanner):
1982         * UserInterface/Views/DebuggerSidebarPanel.css:
1983         (.sidebar > .panel.navigation.debugger .warning-banner + .warning-banner): Added.
1984
1985         * UserInterface/Base/Main.js:
1986         (WI.loaded):
1987         * UserInterface/Test/Test.js:
1988         (WI.loaded):
1989         Move `WI.auditManager` higher in the managers list so that it can be used in
1990         `WI.DebuggerManager`'s constructor.
1991
1992         * Localizations/en.lproj/localizedStrings.js:
1993
1994 2019-01-04  Joseph Pecoraro  <pecoraro@apple.com>
1995
1996         Web Inspector: Add a Setting Toggle for Source Maps
1997         https://bugs.webkit.org/show_bug.cgi?id=193148
1998
1999         Reviewed by Devin Rousso.
2000
2001         * UserInterface/Controllers/NetworkManager.js:
2002         (WI.NetworkManager.prototype.downloadSourceMap):
2003         Don't download source maps if the setting is disabled.
2004
2005         * UserInterface/Base/Setting.js:
2006         * UserInterface/Views/SettingsTabContentView.js:
2007         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
2008         Settings toggle for source maps. Enabled by default.
2009
2010         * Localizations/en.lproj/localizedStrings.js:
2011
2012 2019-01-04  Joseph Pecoraro  <pecoraro@apple.com>
2013
2014         Web Inspector: Include `globalThis` in default JavaScript completions
2015         https://bugs.webkit.org/show_bug.cgi?id=193147
2016
2017         Reviewed by Devin Rousso.
2018
2019         * UserInterface/Controllers/CodeMirrorCompletionController.js:
2020         Add `globalThis` which is a new global value.
2021
2022 2019-01-03  Devin Rousso  <drousso@apple.com>
2023
2024         Web Inspector: conic-gradient color picker doesn't accurately show color when saturation value is not 100%
2025         https://bugs.webkit.org/show_bug.cgi?id=192729
2026         <rdar://problem/46746815>
2027
2028         Reviewed by Joseph Pecoraro.
2029
2030         Rework `WI.ColorWheel` to use similar canvas drawing logic as `WI.LegacyColorWheel` so that
2031         it's able to adjust the saturation value as the pixels gets closer to the center.
2032
2033         * UserInterface/Models/Color.js:
2034         (WI.Color.rgb2hsl): Added.
2035         (WI.Color.hsl2rgb): Added.
2036         (WI.Color.cmyk2rgb):
2037         (WI.Color.prototype.isKeyword):
2038         (WI.Color.prototype._toRGBString):
2039         (WI.Color.prototype._toRGBAString):
2040         (WI.Color.prototype._toHSLString):
2041         (WI.Color.prototype._toHSLAString):
2042         (WI.Color.prototype._rgbaToHSLA):
2043         (WI.Color.prototype._hslaToRGBA):
2044         (WI.Color.rgb2hsv): Deleted.
2045         (WI.Color.hsv2rgb): Deleted.
2046         (WI.Color.prototype._rgbToHSL): Deleted.
2047         (WI.Color.prototype._hslToRGB): Deleted.
2048         Adjust the conversion functions of `WI.Color` to be more accurate.
2049
2050         * UserInterface/Views/ColorWheel.js:
2051         (WI.ColorWheel):
2052         (WI.ColorWheel.prototype.set dimension):
2053         (WI.ColorWheel.prototype.set brightness):
2054         (WI.ColorWheel.prototype.get tintedColor):
2055         (WI.ColorWheel.prototype.set tintedColor):
2056         (WI.ColorWheel.prototype._updateColorForMouseEvent):
2057         (WI.ColorWheel.prototype._updateCanvas): Added.
2058         (WI.ColorWheel.prototype._updateGradient): Deleted.
2059         * UserInterface/Views/ColorWheel.css:
2060         (.color-wheel > canvas): Added.
2061         (.color-wheel > .gradient): Deleted.
2062
2063         * UserInterface/Views/ColorPicker.js:
2064         (WI.ColorPicker):
2065         (WI.ColorPicker.prototype.set color):
2066         (WI.ColorPicker.prototype.sliderValueDidChange):
2067         (WI.ColorPicker.prototype._updateSliders):
2068         (WI.ColorPicker.prototype._showColorComponentInputs):
2069         (WI.ColorPicker.supportsConicGradient): Deleted.
2070
2071         * UserInterface/Main.html:
2072
2073         * UserInterface/Views/LegacyColorWheel.js: Removed.
2074
2075 2019-01-02  Nikita Vasilyev  <nvasilyev@apple.com>
2076
2077         Web Inspector: Styles: selection lost when inspector is blurred
2078         https://bugs.webkit.org/show_bug.cgi?id=192124
2079         <rdar://problem/46800965>
2080
2081         Reviewed by Devin Rousso.
2082
2083         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
2084         (body:matches(.window-docked-inactive, .window-inactive) .spreadsheet-style-declaration-editor .property.selected):
2085         Selection should be gray when Web Inspector window isn't focused.
2086
2087         * UserInterface/Views/SpreadsheetStyleProperty.js:
2088
2089 2019-01-02  Nikita Vasilyev  <nvasilyev@apple.com>
2090
2091         Web Inspector: Styles: it shouldn't be possible to delete read-only properties
2092         https://bugs.webkit.org/show_bug.cgi?id=193099
2093         <rdar://problem/47016335>
2094
2095         Reviewed by Devin Rousso.
2096
2097         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2098         (WI.SpreadsheetCSSStyleDeclarationEditor):
2099         Drive-by: Forward Delete should work the same way as Delete (Backspace).
2100
2101 2019-01-02  Devin Rousso  <webkit@devinrousso.com>
2102
2103         Web Inspector: Implement `queryObjects` Command Line API
2104         https://bugs.webkit.org/show_bug.cgi?id=176766
2105         <rdar://problem/34890689>
2106
2107         Reviewed by Joseph Pecoraro.
2108
2109         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
2110         (WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames):
2111         Add `queryObjects` to the list of command line functions.
2112
2113 2018-12-21  Devin Rousso  <drousso@apple.com>
2114
2115         Web Inspector: Styles Redesign: remove unused CSS style icons
2116         https://bugs.webkit.org/show_bug.cgi?id=192999
2117         <rdar://problem/46912094>
2118
2119         Reviewed by Matt Baker.
2120
2121         * UserInterface/Main.html:
2122         * UserInterface/Views/StyleRuleIcons.css: Removed.
2123         * UserInterface/Images/StyleRule.svg: Removed.
2124         * UserInterface/Images/StyleRuleInheritedElement.svg: Removed.
2125         * UserInterface/Images/StyleRulePseudoElement.svg: Removed.
2126
2127         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
2128         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2129
2130 2018-12-21  Nikita Vasilyev  <nvasilyev@apple.com>
2131
2132         Web Inspector: Styles: editing focus lost when inspector is blurred
2133         https://bugs.webkit.org/show_bug.cgi?id=192123
2134         <rdar://problem/46800966>
2135
2136         Reviewed by Devin Rousso.
2137
2138         * UserInterface/Views/SpreadsheetSelectorField.js:
2139         (WI.SpreadsheetSelectorField.prototype._handleBlur):
2140         * UserInterface/Views/SpreadsheetTextField.js:
2141         (WI.SpreadsheetTextField.prototype._handleBlur):
2142
2143 2018-12-21  Devin Rousso  <drousso@apple.com>
2144
2145         Web Inspector: Settings: experimental setting editors are misaligned in other locales
2146         https://bugs.webkit.org/show_bug.cgi?id=192971
2147         <rdar://problem/46718451>
2148
2149         Reviewed by Joseph Pecoraro.
2150
2151         * UserInterface/Views/SettingsTabContentView.css:
2152         (.content-view.settings > .settings-view > .container):
2153         (.content-view.settings > .settings-view > .container > .title):
2154
2155 2018-12-21  Devin Rousso  <drousso@apple.com>
2156
2157         Web Inspector: update scroll position when revealing a virtualized WI.DataGridNode
2158         https://bugs.webkit.org/show_bug.cgi?id=192992
2159         <rdar://problem/46886427>
2160
2161         Reviewed by Joseph Pecoraro.
2162
2163         When `reveal`ing a `WI.DataGridNode`, if it is not currently in the DOM tree (e.g. it's been
2164         virtualized by it's owner `WI.DataGrid`), we need to scroll to it's position so that it gets
2165         added to the DOM tree before it can be revealed/selected.
2166
2167         * UserInterface/Views/DataGrid.js:
2168         (WI.DataGrid.prototype.layout):
2169         (WI.DataGrid.prototype.updateVisibleRows):
2170         (WI.DataGrid.prototype._updateVisibleRows): Deleted.
2171
2172         * UserInterface/Views/DataGridNode.js:
2173         (WI.DataGridNode.prototype.reveal):
2174
2175 2018-12-20  Nikita Vasilyev  <nvasilyev@apple.com>
2176
2177         Web Inspector: Dark Mode: Type profiler popovers have black text on dark background
2178         https://bugs.webkit.org/show_bug.cgi?id=192916
2179         <rdar://problem/46863518>
2180
2181         Reviewed by Devin Rousso.
2182
2183         * UserInterface/Views/SourceCodeTextEditor.css:
2184         (.popover .debugger-popover-content > .body):
2185         * UserInterface/Views/TypeTreeElement.css:
2186         (.item.type-tree-element.prototype):
2187         (.item.type-tree-element.prototype:hover,):
2188         * UserInterface/Views/TypeTreeView.css:
2189         (.type-tree):
2190         * UserInterface/Views/Variables.css:
2191         (:root):
2192
2193 2018-12-20  Nikita Vasilyev  <nvasilyev@apple.com>
2194
2195         Web Inspector: Styles: Pressing Esc when editing name/value should select entire property
2196         https://bugs.webkit.org/show_bug.cgi?id=192919
2197
2198         Reviewed by Devin Rousso.
2199
2200         - Esc still hides the completion popover.
2201         - Esc still discards changes.
2202         - When there's no completion popover, Esc selects outer scope.
2203           I.e., it goes from editing name/value to selecting the entire property.
2204         - Pressing Esc for newly added properties discards those properties.
2205
2206         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2207         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
2208         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyDidPressEsc):
2209         * UserInterface/Views/SpreadsheetStyleProperty.js:
2210         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidPressEsc):
2211         * UserInterface/Views/SpreadsheetTextField.js:
2212         (WI.SpreadsheetTextField.prototype._discardChange):
2213         (WI.SpreadsheetTextField.prototype._handleKeyDown):
2214
2215 2018-12-20  Joseph Pecoraro  <pecoraro@apple.com>
2216
2217         Web Inspector: Charles Proxy errors opening har files exported from Safari (invalid startedDateTime)
2218         https://bugs.webkit.org/show_bug.cgi?id=192959
2219         <rdar://problem/46863411>
2220
2221         Reviewed by Brian Burg.
2222
2223         * UserInterface/Views/NetworkTableContentView.js:
2224         (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
2225         (WI.NetworkTableContentView.prototype._updateExportButton):
2226         (WI.NetworkTableContentView.prototype._canExportHAR):
2227         Disallow HAR export if we don't have load data, such as the requestSentDate for
2228         the main resource or sub-resources.
2229
2230         (WI.NetworkTableContentView.prototype._HARResources):
2231         Only export resources that have load data.
2232
2233 2018-12-20  Joseph Pecoraro  <pecoraro@apple.com>
2234
2235         Web Inspector: Autoformat doesn't work on icloud.com (javascript-packed.js)
2236         https://bugs.webkit.org/show_bug.cgi?id=192946
2237         <rdar://problem/42546126>
2238
2239         Rubber-stamped by Devin Rousso.
2240
2241         * UserInterface/Base/Utilities.js:
2242         (whitespaceRatio):
2243         (isTextLikelyMinified):
2244         Check the first 2500 and the last 2500 characters whitespace ratio.
2245         If either is below 20% then treat as minified.
2246
2247 2018-12-20  Joseph Pecoraro  <pecoraro@apple.com>
2248
2249         ITMLKit Inspector: Elements tab does not show DOM Tree
2250         https://bugs.webkit.org/show_bug.cgi?id=192910
2251         <rdar://problem/46680585>
2252
2253         Reviewed by Brian Burg.
2254
2255         * UserInterface/Protocol/Connection.js:
2256         (InspectorBackend.Connection.prototype._dispatchEvent):
2257         Better logging for errors.
2258
2259         * UserInterface/Base/Main.js:
2260         * UserInterface/Controllers/AppController.js:
2261         (WI.AppController.prototype.activateExtraDomains):
2262         Let Targets get a chance to activate extra domains.
2263         Perform a little more work in these cases.
2264
2265         * UserInterface/Protocol/Target.js:
2266         (WI.Target):
2267         (WI.Target.prototype.activateExtraDomain):
2268         Expose agents for domains that are active.
2269         Expose agents for extra domains when they are activated.
2270
2271 2018-12-20  Joseph Pecoraro  <pecoraro@apple.com>
2272
2273         ITMLKit Inspector: Computed Style Box Model section throws exceptions
2274         https://bugs.webkit.org/show_bug.cgi?id=192911
2275         <rdar://problem/46861112>
2276
2277         Reviewed by Matt Baker.
2278
2279         * UserInterface/Views/BoxModelDetailsSectionRow.js:
2280         (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createBoxPartElement):
2281         (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createContentAreaElement):
2282         (WI.BoxModelDetailsSectionRow.prototype._updateMetrics):
2283         ITMLKit doesn't always provide a display/position/width/height etc properties.
2284         Protect against this, and just show an empty message in the box model section
2285         if those properties do not exist.
2286
2287 2018-12-20  Devin Rousso  <drousso@apple.com>
2288
2289         Web Inspector: UIString should take an optional key and description to aid localization
2290         https://bugs.webkit.org/show_bug.cgi?id=153962
2291         <rdar://problem/24542505>
2292
2293         Reviewed by Brian Burg.
2294
2295         * UserInterface/Base/LoadLocalizedStrings.js:
2296         (WI.UIString):
2297
2298         * UserInterface/Test/Test.js:
2299         (WI.UIString):
2300
2301         * UserInterface/Views/AuditTestGroupContentView.js:
2302         (WI.AuditTestGroupContentView.prototype.initialLayout):
2303
2304 2018-12-20  Devin Rousso  <drousso@apple.com>
2305
2306         Web Inspector: Audits: don't cache default audits
2307         https://bugs.webkit.org/show_bug.cgi?id=192918
2308         <rdar://problem/46626543>
2309
2310         Reviewed by Brian Burg.
2311
2312         Instead of adding the default audits to the "audits" `WI.ObjectStore`, which preserves them
2313         across WebInspector sessions, load them every time WebInspector is opened (unless there are
2314         existing audits) so that the localized strings are able to respond to locale changes.
2315
2316         * UserInterface/Controllers/AuditManager.js:
2317         (WI.AuditManager.prototype.removeTest):
2318         (WI.AuditManager.prototype.addDefaultTestsIfNeeded):
2319
2320 2018-12-20  Devin Rousso  <drousso@apple.com>
2321
2322         Web Inspector: Dark Mode: unreadable background color for tables containing object previews
2323         https://bugs.webkit.org/show_bug.cgi?id=192887
2324         <rdar://problem/46855270>
2325
2326         Reviewed by Brian Burg.
2327
2328         * UserInterface/Views/LogContentView.css:
2329         (.console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added.
2330         (@media (prefers-dark-interface) .console-item .data-grid tr.selected): Added.
2331         (@media (prefers-dark-interface) .console-messages:focus .console-item.selected .data-grid tr.selected): Added.
2332         (@media (prefers-dark-interface) .console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added.
2333
2334         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
2335         (.content-view.indexed-database-object-store > .data-grid tr.selected):
2336         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added.
2337         (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid tr.selected): Added.
2338         (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added.
2339         (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected td:not(:last-child)): Added.
2340
2341 2018-12-19  Devin Rousso  <drousso@apple.com>
2342
2343         Web Inspector: Audit: fix descriptions for default tests
2344         https://bugs.webkit.org/show_bug.cgi?id=192764
2345         <rdar://problem/46729437>
2346
2347         Reviewed by Matt Baker.
2348
2349         * UserInterface/Controllers/AuditManager.js:
2350         (WI.AuditManager.prototype.addDefaultTestsIfNeeded):
2351
2352         * Localizations/en.lproj/localizedStrings.js:
2353
2354 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
2355
2356         Web Inspector: "E" icon on debugger dashboard is too close to current function name
2357         https://bugs.webkit.org/show_bug.cgi?id=192915
2358
2359         Reviewed by Matt Baker.
2360
2361         * UserInterface/Views/DebuggerDashboardView.css:
2362         (.dashboard.debugger > .location):
2363         (body[dir=ltr] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
2364         (body[dir=rtl] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
2365         (.dashboard.debugger > .location .function-icon): Deleted.
2366         (body[dir=ltr] .dashboard.debugger > .location .function-icon): Deleted.
2367         (body[dir=rtl] .dashboard.debugger > .location .function-icon): Deleted.
2368
2369 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
2370
2371         Web Inspector: Dark Mode: ThreadTreeElement status icon is hard to see when hovered
2372         https://bugs.webkit.org/show_bug.cgi?id=192097
2373         <rdar://problem/46318421>
2374
2375         Reviewed by Matt Baker.
2376
2377         * UserInterface/Views/ThreadTreeElement.css:
2378         (.tree-outline > .item.thread .status-button.resume):
2379         (.tree-outline > .item.thread .status-button.resume:active):
2380
2381 2018-12-19  Devin Rousso  <drousso@apple.com>
2382
2383         Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'effectiveDOMNode.enabledPseudoClasses')
2384         https://bugs.webkit.org/show_bug.cgi?id=192783
2385
2386         Reviewed by Joseph Pecoraro.
2387
2388         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
2389         (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
2390         (WI.GeneralStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes):
2391
2392 2018-12-19  Devin Rousso  <drousso@apple.com>
2393
2394         Web Inspector: REGRESSION (r237195): Timelines: selecting a rendering frame row moves the time selection
2395         https://bugs.webkit.org/show_bug.cgi?id=192773
2396         <rdar://problem/46782446>
2397
2398         Reviewed by Joseph Pecoraro.
2399
2400         * UserInterface/Views/TimelineOverview.js:
2401         (WI.TimelineOverview.prototype._recordSelected):
2402         The Frames timeline uses `frameIndex` instead of `startTime`/`endTime`, so when trying to
2403         ensure that the selected record is within the filtered range, use `frameIndex` instead.
2404         The associated `WI.TimelineRuler` will already be using an index-based approach for
2405         selection, so this will match.
2406
2407 2018-12-19  Devin Rousso  <drousso@apple.com>
2408
2409         Web Inspector: Canvas: the recording auto-capture input shouldn't start focused
2410         https://bugs.webkit.org/show_bug.cgi?id=192454
2411
2412         Reviewed by Joseph Pecoraro.
2413
2414         * UserInterface/Views/CanvasOverviewContentView.js:
2415         (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel):
2416         (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):
2417
2418 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
2419
2420         Web Inspector: Styles: shift-clicking a color-swatch to change formats starts editing the color
2421         https://bugs.webkit.org/show_bug.cgi?id=192784
2422         <rdar://problem/46801028>
2423
2424         Reviewed by Devin Rousso.
2425
2426         * UserInterface/Views/SpreadsheetStyleProperty.js:
2427         (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
2428
2429 2018-12-19  Matt Baker  <mattbaker@apple.com>
2430
2431         Web Inspector: Elements tab: arrow key after undoing a DOM node delete selects the wrong element
2432         https://bugs.webkit.org/show_bug.cgi?id=192871
2433         <rdar://problem/46849060>
2434
2435         Reviewed by Devin Rousso.
2436
2437         Undoing a DOM node removal reinserts the node into the DOMTreeOutline.
2438         When the reinserted node precedes the selected node in the tree, the
2439         SelectionController should update `_lastSelectedIndex`.
2440
2441         * UserInterface/Controllers/SelectionController.js:
2442         (WI.SelectionController.prototype.didInsertItem):
2443
2444 2018-12-19  Devin Rousso  <drousso@apple.com>
2445
2446         Web Inspector: Audit: provide localization support for % pass display
2447         https://bugs.webkit.org/show_bug.cgi?id=192870
2448         <rdar://problem/46779245>
2449
2450         Reviewed by Brian Burg.
2451
2452         * UserInterface/Views/AuditTestGroupContentView.js:
2453         (WI.AuditTestGroupContentView.prototype.initialLayout):
2454         (WI.AuditTestGroupContentView.prototype.layout):
2455         * UserInterface/Views/AuditTestGroupContentView.css:
2456         (.content-view.audit-test-group > header > .percentage-pass):
2457         (.content-view.audit-test-group > header > .percentage-pass > span): Added.
2458         (@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass): Added.
2459         (@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass > span): Added.
2460         (.content-view.audit-test-group > header > .percentage-pass:not(:empty)::after): Deleted.
2461
2462         * Localizations/en.lproj/localizedStrings.js:
2463
2464 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
2465
2466         Web Inspector: Computed: make UI more usable when the panel is narrow
2467         https://bugs.webkit.org/show_bug.cgi?id=192578
2468         <rdar://problem/46615753>
2469
2470         Reviewed by Devin Rousso.
2471
2472         * UserInterface/Views/ComputedStyleSection.css:
2473         (.computed-style-section .computed-property-item .property-traces):
2474         (.computed-style-section .computed-property-item.expanded .disclosure-button):
2475         (.computed-style-section .computed-property-item .property-trace-item):
2476         (.computed-style-section .computed-property-item .property-trace-item::before):
2477         (.computed-style-section .computed-property-item .property):
2478         (.computed-style-section .computed-property-item .property-trace-item .selector):
2479         Allow CSS property values and selectors to take more than one line.
2480
2481         (.computed-style-section .property-trace-item .property .name,):
2482         * UserInterface/Views/ComputedStyleSection.js:
2483         (WI.ComputedStyleSection.prototype._createTrace):
2484         * UserInterface/Views/SpreadsheetStyleProperty.js:
2485         (WI.SpreadsheetStyleProperty.prototype.update):
2486
2487 2018-12-18  Simon Fraser  <simon.fraser@apple.com>
2488
2489         Web Inspector: Timelines: correctly label Intersection Observer callbacks
2490         https://bugs.webkit.org/show_bug.cgi?id=192669
2491         <rdar://problem/46702490>
2492
2493         Reviewed by Joseph Pecoraro.
2494
2495         Add InspectorInstrumentation::willFireObserverCallback() and use it to wrap calls
2496         to Intersection Observer, Performance Observer and Mutation Observer callbacks so 
2497         that they get correctly labeled in the Inspector timeline.
2498
2499         * Localizations/en.lproj/localizedStrings.js:
2500         * UserInterface/Controllers/TimelineManager.js:
2501         (WI.TimelineManager.prototype._processRecord):
2502         * UserInterface/Models/ScriptTimelineRecord.js:
2503         (WI.ScriptTimelineRecord.EventType.displayName):
2504         * UserInterface/Views/TimelineTabContentView.js:
2505         (WI.TimelineTabContentView.iconClassNameForRecord):
2506
2507 2018-12-19  Devin Rousso  <drousso@apple.com>
2508
2509         Web Inspector: Audit: "Clear Filters" button gets clipped when window is vertically small
2510         https://bugs.webkit.org/show_bug.cgi?id=192868
2511         <rdar://problem/46780400>
2512
2513         Reviewed by Matt Baker.
2514
2515         * UserInterface/Views/Main.css:
2516         (.message-text-view):
2517
2518 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
2519
2520         Web Inspector: Dark Mode: selected text is too light when Inspector window is inactive
2521         https://bugs.webkit.org/show_bug.cgi?id=190542
2522         <rdar://problem/45238712>
2523
2524         Reviewed by Devin Rousso.
2525
2526         * UserInterface/Views/CodeMirrorOverrides.css:
2527         (.CodeMirror .CodeMirror-selected):
2528
2529 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
2530
2531         Web Inspector: column sort controls in Layers tab sidebar don't render correctly in dark mode
2532         https://bugs.webkit.org/show_bug.cgi?id=192845
2533
2534         Reviewed by Devin Rousso.
2535
2536         * UserInterface/Views/DataGrid.css:
2537         (@media (prefers-dark-interface)):
2538         (.data-grid th.sortable:active):
2539         Drive-by: replace obnoxiously light background of the pressed header with a more subtle gray.
2540
2541         (.data-grid th.sort-ascending > div:first-child::after, .data-grid th.sort-descending > div:first-child::after):
2542         Invert colors of the arrow glyph.
2543
2544 2018-12-18  Devin Rousso  <drousso@apple.com>
2545
2546         Web Inspector: Layers: increase default column width for other localizations
2547         https://bugs.webkit.org/show_bug.cgi?id=192812
2548         <rdar://problem/46628625>
2549
2550         Reviewed by Brian Burg.
2551
2552         * UserInterface/Views/LayerDetailsSidebarPanel.js:
2553         (WI.LayerDetailsSidebarPanel.prototype._buildDataGrid):
2554         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
2555         (WI.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
2556
2557 2018-12-18  Joseph Pecoraro  <pecoraro@apple.com>
2558
2559         Web Inspector: m3u8 content not shown, it should be text
2560         https://bugs.webkit.org/show_bug.cgi?id=192731
2561         <rdar://problem/46747728>
2562
2563         Reviewed by Devin Rousso.
2564
2565         * UserInterface/Base/MIMETypeUtilities.js:
2566         (WI.shouldTreatMIMETypeAsText):
2567         Support m3u8/m3u files as text.
2568
2569 2018-12-17  Devin Rousso  <drousso@apple.com>
2570
2571         Web Inspector: Canvas: path view is misaligned
2572         https://bugs.webkit.org/show_bug.cgi?id=192761
2573
2574         Reviewed by Joseph Pecoraro.
2575
2576         * UserInterface/Views/RecordingContentView.css:
2577         (.content-view:not(.tab).recording :matches(img, canvas)):
2578         (.content-view:not(.tab).recording canvas.path):
2579
2580 2018-12-17  Devin Rousso  <drousso@apple.com>
2581
2582         Web Inspector: Audit: add plural result strings
2583         https://bugs.webkit.org/show_bug.cgi?id=192769
2584         <rdar://problem/46628680>
2585
2586         Reviewed by Brian Burg.
2587
2588         * UserInterface/Views/AuditTestContentView.js:
2589         (WI.AuditTestContentView.prototype.showNoResultDataPlaceholder):
2590
2591         * UserInterface/Views/AuditTestGroupContentView.js:
2592         (WI.AuditTestGroupContentView.prototype.layout):
2593
2594         * Localizations/en.lproj/localizedStrings.js:
2595
2596 2018-12-17  Devin Rousso  <drousso@apple.com>
2597
2598         Web Inspector: Settings: add singular "space" UIString
2599         https://bugs.webkit.org/show_bug.cgi?id=192766
2600         <rdar://problem/46776948>
2601
2602         Reviewed by Brian Burg.
2603
2604         * UserInterface/Views/SettingEditor.js:
2605         (WI.SettingEditor):
2606         (WI.SettingEditor.prototype.get label):
2607         (WI.SettingEditor.prototype.set label): Added.
2608
2609         * UserInterface/Views/SettingsTabContentView.js:
2610         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
2611         (WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting): Added.
2612         (WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting.updateLabel): Added.
2613
2614         * Localizations/en.lproj/localizedStrings.js:
2615
2616 2018-12-15  Nikita Vasilyev  <nvasilyev@apple.com>
2617
2618         Web Inspector: Styles: toggling selected properties may cause data corruption
2619         https://bugs.webkit.org/show_bug.cgi?id=192396
2620         <rdar://problem/46478383>
2621
2622         Reviewed by Devin Rousso.
2623
2624         Uncommenting a property after a commented out property used to insert an unnecessary semicolon,
2625         and not updating ranges of the following properties.
2626
2627         For example:
2628
2629             /* color: red; */
2630             /* font-size: 12px */
2631
2632         Uncommenting `font-size` would result in something like this:
2633
2634             /* color: red; */; font-size: 12px
2635                              ^
2636                              unnecessary semicolon
2637
2638         Now the semicolon doesn't get inserted and the white space is preserved better:
2639
2640             /* color: red; */
2641             font-size: 12px
2642
2643         * UserInterface/Models/CSSProperty.js:
2644         (WI.CSSProperty.prototype._updateOwnerStyleText):
2645         (WI.CSSProperty.prototype._appendSemicolonIfNeeded): Removed.
2646         (WI.CSSProperty.prototype._prependSemicolonIfNeeded): Added.
2647
2648         * UserInterface/Views/SpreadsheetStyleProperty.js:
2649         (WI.SpreadsheetStyleProperty.prototype.remove):
2650         (WI.SpreadsheetStyleProperty.prototype.update):
2651         (WI.SpreadsheetStyleProperty.prototype._handleNameChange):
2652         (WI.SpreadsheetStyleProperty.prototype._handleValueChange):
2653         Style declaration should be locked while editing. Add asserts to ensure this.
2654
2655 2018-12-14  Matt Baker  <mattbaker@apple.com>
2656
2657         Web Inspector: REGRESSION(r238599): Uncaught Exception: TypeError: null is not an object (evaluating 'treeElement.listItemElement.classList')
2658         https://bugs.webkit.org/show_bug.cgi?id=192090
2659         <rdar://problem/46318614>
2660
2661         Reviewed by Devin Rousso.
2662
2663         * UserInterface/Views/TreeOutline.js:
2664         (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
2665         Check that `listItemElement` is valid before accessing it to update class
2666         names. The selection can change before the TreeElement has been attached.
2667
2668 2018-12-14  Matt Baker  <mattbaker@apple.com>
2669
2670         Web Inspector: Cookies view should use model objects instead of raw payload data
2671         https://bugs.webkit.org/show_bug.cgi?id=189533
2672         <rdar://problem/44364183>
2673
2674         Reviewed by Joseph Pecoraro and Devin Rousso.
2675
2676         * UserInterface/Models/Cookie.js:
2677         (WI.Cookie):
2678         (WI.Cookie.fromPayload):
2679         (WI.Cookie.parseSetCookieResponseHeader):
2680         (WI.Cookie.prototype.get type):
2681         (WI.Cookie.prototype.get name):
2682         (WI.Cookie.prototype.get value):
2683         (WI.Cookie.prototype.get header):
2684         (WI.Cookie.prototype.get expires):
2685         (WI.Cookie.prototype.get maxAge):
2686         (WI.Cookie.prototype.get path):
2687         (WI.Cookie.prototype.get domain):
2688         (WI.Cookie.prototype.get secure):
2689         (WI.Cookie.prototype.get httpOnly):
2690         (WI.Cookie.prototype.get sameSite):
2691         (WI.Cookie.prototype.get size):
2692         (WI.Cookie.prototype.get url):
2693         (WI.Cookie.prototype.expirationDate):
2694         Cleanup Cookie object; add pubic getters for data, `url` property,
2695         static `fromPayload` method, and calculate `_size` if missing.
2696
2697         * UserInterface/Views/CookieStorageContentView.js:
2698         (WI.CookieStorageContentView.prototype.tableDidRemoveRows):
2699         (WI.CookieStorageContentView.prototype._reloadCookies):
2700         Create Cookie objects from the payload instead of using raw payload data.
2701
2702 2018-12-13  Devin Rousso  <drousso@apple.com>
2703
2704         Web Inspector: remove DOM.BackendNodeId and associated commands/events
2705         https://bugs.webkit.org/show_bug.cgi?id=192478
2706
2707         Reviewed by Matt Baker.
2708
2709         * Versions/Inspector-iOS-8.0.json:
2710         * Versions/Inspector-iOS-9.0.json:
2711         * Versions/Inspector-iOS-9.3.json:
2712         * Versions/Inspector-iOS-10.0.json:
2713         * Versions/Inspector-iOS-10.3.json:
2714         * Versions/Inspector-iOS-11.0.json:
2715         * Versions/Inspector-iOS-11.3.json:
2716         * Versions/Inspector-iOS-12.0.json:
2717         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
2718         * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
2719         * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
2720         * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
2721         * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
2722         * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
2723         * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js:
2724         * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js:
2725
2726 2018-12-13  Devin Rousso  <drousso@apple.com>
2727
2728         Web Inspector: experimental settings reload button disappears after changing more than one setting
2729         https://bugs.webkit.org/show_bug.cgi?id=192645
2730         <rdar://problem/46626204>
2731
2732         Reviewed by Joseph Pecoraro.
2733
2734         * UserInterface/Views/SettingsTabContentView.js:
2735         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView.listenForChange):
2736         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2737
2738 2018-12-13  Matt Baker  <mattbaker@apple.com>
2739
2740         Web Inspector: REGRESSION(r238602): Elements: deleting multiple DOM nodes doesn't select the nearest node after deletion
2741         https://bugs.webkit.org/show_bug.cgi?id=192116
2742         <rdar://problem/46344339>
2743
2744         Reviewed by Devin Rousso.
2745
2746         * UserInterface/Controllers/SelectionController.js:
2747         (WI.SelectionController.prototype.removeSelectedItems):
2748         Finding a new index to select should go through the delegate instead of
2749         naively advancing the index.
2750
2751         * UserInterface/Views/DOMTreeElement.js:
2752         (WI.DOMTreeElement.prototype._populateNodeContextMenu):
2753         (WI.DOMTreeElement.prototype.ondelete): Deleted.
2754         The menu item for removing the DOM node is now managed by the parent
2755         DOMTreeOutline, since its UI and behavior now depend on whether there
2756         are multiple elements selected.
2757
2758         * UserInterface/Views/DOMTreeOutline.js:
2759         (WI.DOMTreeOutline.prototype.populateContextMenu):
2760         (WI.DOMTreeOutline.prototype.ondelete.level):
2761         (WI.DOMTreeOutline.prototype.ondelete):
2762         Implement `ondelete` to remove selected DOM nodes using the delete and
2763         backspace keys. Also used by the DOMTreeOutline's context menu handler.
2764
2765 2018-12-13  Matt Baker  <mattbaker@apple.com>
2766
2767         Web Inspector: Table selection becomes corrupted when deleting selected cookies
2768         https://bugs.webkit.org/show_bug.cgi?id=192388
2769         <rdar://problem/46472364>
2770
2771         Reviewed by Devin Rousso.
2772
2773         * UserInterface/Controllers/SelectionController.js:
2774         (WI.SelectionController):
2775         (WI.SelectionController.prototype.didRemoveItems):
2776         (WI.SelectionController.prototype._updateSelectedItems):
2777         (WI.SelectionController.prototype.didRemoveItem): Deleted.
2778         Replace `didRemoveItem` with a method taking an IndexSet. Calling the
2779         single-index version while iterating over multiple rows in ascending
2780         order is unsafe, a detail best left to the SelectionController.
2781
2782         * UserInterface/Views/Table.js:
2783         (WI.Table.prototype.removeRow):
2784         (WI.Table.prototype._removeRows):
2785         Notify SelectionController of removed rows.
2786
2787         * UserInterface/Views/TreeOutline.js:
2788         (WI.TreeOutline.prototype.insertChild):
2789         (WI.TreeOutline.prototype.removeChildAtIndex):
2790         Remove the child from the element's `children` after calling `_forgetTreeElement`,
2791         which needs to calculate the child's index to pass to the SelectionController.
2792
2793         (WI.TreeOutline.prototype.removeChildren):
2794         Remove child items during iteration so that `children` doesn't contain
2795         detached TreeElements while calling `_forgetTreeElement`.
2796
2797         (WI.TreeOutline.prototype._rememberTreeElement):
2798         (WI.TreeOutline.prototype._forgetTreeElement):
2799
2800 2018-12-10  Matt Baker  <mattbaker@apple.com>
2801
2802         Web Inspector: REGRESSION (r238599): unable to select specific timeline
2803         https://bugs.webkit.org/show_bug.cgi?id=192443
2804         <rdar://problem/46608087>
2805
2806         Reviewed by Joseph Pecoraro.
2807
2808         When determining the trailing horizontal edge for TreeElement mouse
2809         events, TreeOutline should not assume that its containing DOM element
2810         is only as wide as its <ol> element.
2811
2812         * UserInterface/Views/TreeOutline.js:
2813         (WI.TreeOutline.prototype.treeElementFromEvent):
2814
2815 2018-12-10  Matt Baker  <mattbaker@apple.com>
2816
2817         Web Inspector: Move TreeOutlineGroup coordination out of TreeElement
2818         https://bugs.webkit.org/show_bug.cgi?id=192487
2819         <rdar://problem/46543431>
2820
2821         Reviewed by Devin Rousso.
2822
2823         * UserInterface/Views/TreeElement.js:
2824         (WI.TreeElement.prototype.select):
2825         (WI.TreeElement.prototype.deselect):
2826
2827         * UserInterface/Views/TreeOutlineGroup.js:
2828         (WI.TreeOutlineGroup):
2829         (WI.TreeOutlineGroup.prototype.itemAdded):
2830         (WI.TreeOutlineGroup.prototype.itemRemoved):
2831         (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
2832         (WI.TreeOutlineGroup.prototype._treeOutlineSelectionDidChange):
2833         (WI.TreeOutlineGroup.groupForTreeOutline): Deleted.
2834         (WI.TreeOutlineGroup.prototype.didSelectTreeElement): Deleted.
2835         make the group responsible for listening to selection changes from the
2836         TreeOutlines it manages, and synchronizing the selection between them.
2837
2838 2018-12-10  Dean Jackson  <dino@apple.com>
2839
2840         Use text/javascript as recommended by the HTML specification
2841         https://bugs.webkit.org/show_bug.cgi?id=192525
2842         <rdar://problem/46569636>
2843
2844         Reviewed by Jon Lee.
2845
2846         The HTML specification says we should use text/javascript for
2847         JavaScript files:
2848         https://html.spec.whatwg.org/multipage/scripting.html#scriptingLanguages:javascript-mime-type
2849
2850         * UserInterface/Base/MIMETypeUtilities.js:
2851         (WI.mimeTypeForFileExtension):
2852         * UserInterface/Views/TextEditor.js:
2853         (WI.TextEditor.prototype._attemptToDetermineMIMEType):
2854
2855 2018-12-06  Matt Baker  <mattbaker@apple.com>
2856
2857         Web Inspector: REGRESSION(r238602): Elements: collapsing a DOM node with the left arrow doesn't work
2858         https://bugs.webkit.org/show_bug.cgi?id=192353
2859         <rdar://problem/46455019>
2860
2861         Reviewed by Devin Rousso.
2862
2863         * UserInterface/Views/TreeElement.js:
2864         (WI.TreeElement.prototype.deselect):
2865         Don't early return when the element is not the selected tree element.
2866         This condition no longer holds now that TreeOutline supports multiple selection.
2867
2868 2018-12-05  Matt Baker  <mattbaker@apple.com>
2869
2870         Web Inspector: SelectionController should not extend the selection when allowsMultipleSelection is false
2871         https://bugs.webkit.org/show_bug.cgi?id=192390
2872         <rdar://problem/46473624>
2873
2874         Reviewed by Devin Rousso.
2875
2876         * UserInterface/Controllers/SelectionController.js:
2877         (WI.SelectionController.prototype.selectItem):
2878
2879 2018-12-04  Nikita Vasilyev  <nvasilyev@apple.com>
2880
2881         Web Inspector: Add style editing debug mode
2882         https://bugs.webkit.org/show_bug.cgi?id=192282
2883         <rdar://problem/46399176>
2884
2885         Reviewed by Matt Baker.
2886
2887         Introduce a style editing debug mode to help to troubleshoot complex bugs in the style editor.
2888
2889           - Log CSS changes;
2890           - Display red border for locked style declarations.
2891
2892         * UserInterface/Base/Setting.js:
2893         * UserInterface/Models/CSSProperty.js:
2894         (WI.CSSProperty.prototype._updateOwnerStyleText):
2895         * UserInterface/Views/SettingsTabContentView.js:
2896         (WI.SettingsTabContentView.prototype._createDebugSettingsView):
2897         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
2898         (.spreadsheet-style-declaration-editor.debug-style-locked::after):
2899         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2900         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
2901         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
2902         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateDebugLockStatus):
2903
2904 2018-12-04  Matt Baker  <mattbaker@apple.com>
2905
2906         Web Inspector: REGRESSION(r238602): Elements: changing selection no longer highlights the selected node
2907         https://bugs.webkit.org/show_bug.cgi?id=192354
2908         <rdar://problem/46444438>
2909
2910         Reviewed by Joseph Pecoraro.
2911
2912         * UserInterface/Views/TreeOutline.js:
2913         (WI.TreeOutline.prototype._treeKeyDown):
2914         (WI.TreeOutline.prototype._handleMouseDown):
2915
2916 2018-12-04  Joseph Pecoraro  <pecoraro@apple.com>
2917
2918         Web Inspector: REGRESSION(r238330): Timeline auto-capture does not work after page transition
2919         https://bugs.webkit.org/show_bug.cgi?id=192248
2920         <rdar://problem/46390199>
2921
2922         Reviewed by Devin Rousso.
2923
2924         * UserInterface/Base/Main.js:
2925         (WI.transitionPageTarget):
2926         Let the TimelineManager perform work on page transitions.
2927
2928         * UserInterface/Controllers/TimelineManager.js:
2929         (WI.TimelineManager.prototype.initializeTarget):
2930         Initialize the autocapture state of the target.
2931
2932         (WI.TimelineManager.prototype.transitionPageTarget):
2933         When transitioning pages perform a legacy (frontend based) timeline capture.
2934
2935 2018-12-04  Matt Baker  <mattbaker@apple.com>
2936
2937         Web Inspector: Elements: $0 is shown for all selected elements
2938         https://bugs.webkit.org/show_bug.cgi?id=192119
2939         <rdar://problem/46327554>
2940
2941         Reviewed by Devin Rousso.
2942
2943         * UserInterface/Views/ContentBrowserTabContentView.js:
2944         (WI.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):
2945         * UserInterface/Views/DOMTreeContentView.js:
2946         (WI.DOMTreeContentView):
2947         (WI.DOMTreeContentView.prototype.layout):
2948         (WI.DOMTreeContentView.prototype._domTreeSelectionDidChange):
2949         Update the selected DOM node using the TreeOutline's selection change
2950         event, instead of in `onselect`, which wasn't always called.
2951
2952         * UserInterface/Views/DOMTreeElement.js:
2953         (WI.DOMTreeElement.prototype.onselect): Deleted.
2954         (WI.DOMTreeElement.prototype.ondeselect): Deleted.
2955         Eliminate `onselect` and `ondeselect`. TreeOutline clients should use
2956         the TreeOutline.Event.SelectedDidChange event instead.
2957
2958         * UserInterface/Views/DOMTreeOutline.css:
2959         (.tree-outline.dom li.last-selected > span::after):
2960         (.tree-outline.dom:focus li.last-selected > span::after):
2961         (.tree-outline.dom li.selected > span::after): Deleted.
2962         (.tree-outline.dom:focus li.selected > span::after): Deleted.
2963         * UserInterface/Views/DOMTreeOutline.js:
2964         (WI.DOMTreeOutline.prototype.updateSelection): Deleted.
2965
2966         * UserInterface/Views/DebuggerSidebarPanel.js:
2967         (WI.DebuggerSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange):
2968         * UserInterface/Views/FolderizedTreeElement.js:
2969         (WI.FolderizedTreeElement.prototype._addTreeElement):
2970         * UserInterface/Views/NavigationSidebarPanel.js:
2971         (WI.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
2972         (WI.NavigationSidebarPanel.prototype._treeElementWasFiltered):
2973         (WI.NavigationSidebarPanel):
2974         * UserInterface/Views/OpenResourceDialog.js:
2975         (WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
2976         (WI.OpenResourceDialog.prototype._handleKeydownEvent):
2977         * UserInterface/Views/SourceCodeTreeElement.js:
2978         (WI.SourceCodeTreeElement.prototype.descendantResourceTreeElementTypeDidChange):
2979         * UserInterface/Views/TreeElement.js:
2980         (WI.TreeElement.prototype.select):
2981         (WI.TreeElement.prototype.revealAndSelect):
2982         (WI.TreeElement.prototype.deselect):
2983         Remove `suppressOnDeselect` and rename `suppressOnSelect` to `suppressNotification`.
2984         Now that `ondeselect` has been removed `suppressOnDeselect` is no longer
2985         meaningful, as TreeOutline generates a single `SelectedDidChange` event
2986         when the selected item changes. In the case of `revealAndSelect`, both
2987         arguments had the same value.
2988
2989         * UserInterface/Views/TreeOutline.js:
2990         (WI.TreeOutline):
2991         (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
2992         Add a unique class name to the last selected TreeElement to distinguish
2993         it from other selected elements.
2994
2995 2018-12-04  Matt Baker  <mattbaker@apple.com>
2996
2997         Web Inspector: Elements: ⌘-A should select all visible nodes
2998         https://bugs.webkit.org/show_bug.cgi?id=192120
2999         <rdar://problem/46344435>
3000
3001         Reviewed by Devin Rousso.
3002
3003         * UserInterface/Views/TreeOutline.js:
3004         (WI.TreeOutline.prototype._treeKeyDown):
3005         Remove an early return, allowing `WI.SelectionController` to handle ⌘-A
3006         and select all items.
3007
3008 2018-12-04  Devin Rousso  <drousso@apple.com>
3009
3010         Web Inspector: Audit: tests should support async operations
3011         https://bugs.webkit.org/show_bug.cgi?id=192171
3012         <rdar://problem/46423562>
3013
3014         Reviewed by Joseph Pecoraro.
3015
3016         * UserInterface/Controllers/RuntimeManager.js:
3017         (WI.RuntimeManager.supportsAwaitPromise): Added.
3018
3019         * UserInterface/Models/AuditTestCase.js:
3020         (WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty.addErrorForValueType): Deleted.
3021         (WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty): Deleted.
3022         (WI.AuditTestCase.prototype.async run.async parseResponse.async resultArrayForEach): Deleted.
3023         (WI.AuditTestCase.prototype.async run.async parseResponse): Added.
3024         (WI.AuditTestCase.prototype.async run):
3025         (WI.AuditTestCase.prototype.async run.checkResultProperty.addErrorForValueType): Deleted.
3026         (WI.AuditTestCase.prototype.async run.checkResultProperty): Deleted.
3027         (WI.AuditTestCase.prototype.async run.async resultArrayForEach): Deleted.
3028
3029         * UserInterface/Models/AuditTestCaseResult.js:
3030         (WI.AuditTestCaseResult.async fromPayload):
3031         (WI.AuditTestCaseResult.prototype.toJSON):
3032
3033         * UserInterface/Views/AuditTestCaseContentView.js:
3034         (WI.AuditTestCaseContentView.prototype.layout):
3035
3036 2018-12-03  Devin Rousso  <drousso@apple.com>
3037
3038         Web Inspector: Audit: save the expanded state of test groups
3039         https://bugs.webkit.org/show_bug.cgi?id=192346
3040         <rdar://problem/46440704>
3041
3042         Reviewed by Matt Baker.
3043
3044         * UserInterface/Views/AuditTreeElement.js:
3045         (WI.AuditTreeElement):
3046         (WI.AuditTreeElement.prototype.onattach):
3047         (WI.AuditTreeElement.prototype.onexpand): Added.
3048         (WI.AuditTreeElement.prototype.oncollapse): Added.
3049
3050 2018-12-03  Devin Rousso  <drousso@apple.com>
3051
3052         Web Inspector: Audit: sidebar briefly shows "No Filter Results" before populating default audits
3053         https://bugs.webkit.org/show_bug.cgi?id=192341
3054         <rdar://problem/46436550>
3055
3056         Reviewed by Matt Baker.
3057
3058         * UserInterface/Views/AuditNavigationSidebarPanel.js:
3059         (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
3060         (WI.AuditNavigationSidebarPanel.prototype._addTest):
3061         (WI.AuditNavigationSidebarPanel.prototype._addResult):
3062         (WI.AuditNavigationSidebarPanel.prototype.applyFiltersToTreeElement): Deleted.
3063         Delay the construction of the "Results" folder until it's needed, since adding a hidden
3064         `WI.TreeElement` will cause the placeholder to appear.
3065
3066 2018-12-03  Devin Rousso  <drousso@apple.com>
3067
3068         Web Inspector: Audit: navigating while tests are running should stop and clear all results
3069         https://bugs.webkit.org/show_bug.cgi?id=192317
3070         <rdar://problem/46435222>
3071
3072         Reviewed by Joseph Pecoraro.
3073
3074         * UserInterface/Controllers/AuditManager.js:
3075         (WI.AuditManager.prototype.async start):
3076         (WI.AuditManager.prototype._handleFrameMainResourceDidChange):
3077
3078         * UserInterface/Views/AuditNavigationSidebarPanel.js:
3079         (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
3080         Drive-by: pass the index of the saved result.
3081
3082 2018-12-03  Devin Rousso  <drousso@apple.com>
3083
3084         Web Inspector: Audit: "Add Default Audits" shown when there are no filter results
3085         https://bugs.webkit.org/show_bug.cgi?id=192105
3086
3087         Reviewed by Matt Baker.
3088
3089         * UserInterface/Views/NavigationSidebarPanel.js:
3090         (WI.NavigationSidebarPanel):
3091         (WI.NavigationSidebarPanel.prototype.get hasActiveFilters): Added.
3092         (WI.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements):
3093         (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
3094         (WI.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
3095         (WI.NavigationSidebarPanel.prototype.updateEmptyContentPlaceholder):
3096         (WI.NavigationSidebarPanel.prototype.updateFilter):
3097         (WI.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
3098         (WI.NavigationSidebarPanel.prototype._filterDidChange):
3099         (WI.NavigationSidebarPanel.prototype._updateFilter): Deleted.
3100         (WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded): Deleted.
3101
3102         * UserInterface/Views/AuditNavigationSidebarPanel.js:
3103         (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
3104         Drive-by: change capitalization for consistency with other navigation sidebars.
3105
3106         * Localizations/en.lproj/localizedStrings.js:
3107
3108 2018-12-03  Devin Rousso  <drousso@apple.com>
3109
3110         Web Inspector: Canvas: add singular localized string for "Record first %s frames"
3111         https://bugs.webkit.org/show_bug.cgi?id=192189
3112
3113         Reviewed by Joseph Pecoraro.
3114
3115         * UserInterface/Views/CanvasOverviewContentView.js:
3116         (WI.CanvasOverviewContentView):
3117         (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount):
3118         (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel): Added.
3119         (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput):
3120         (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):
3121         (WI.CanvasOverviewContentView.prototype.initialLayout): Deleted.
3122         Drive-by: update the auto-capture navigation item when the view is first created so there is
3123         no flashing of in the navigation bar (before `initialLayout` is called).
3124
3125         * UserInterface/Views/CheckboxNavigationItem.js:
3126         (WI.CheckboxNavigationItem):
3127         (WI.CheckboxNavigationItem.prototype.set label): Added.
3128
3129         * Localizations/en.lproj/localizedStrings.js:
3130
3131 2018-12-03  Matt Baker  <mattbaker@apple.com>
3132
3133         Web Inspector: REGRESSION(r238599): Multiple Selection: restoring selection when opening WebInspector puts the TreeElement into a permanent selected state
3134         https://bugs.webkit.org/show_bug.cgi?id=192091
3135         <rdar://problem/46321795>
3136
3137         Reviewed by Devin Rousso.
3138
3139         * UserInterface/Controllers/SelectionController.js:
3140         (WI.SelectionController.prototype.didInsertItem):
3141         Fix a bug where selected indexes were overwritten by the inserted index.
3142
3143         * UserInterface/Views/TreeOutline.js:
3144         (WI.TreeOutline):
3145         (WI.TreeOutline.prototype.insertChild):
3146         Update the SelectionController with the newly inserted index before
3147         attaching the TreeElement. Attaching the TreeElement can cause it to
3148         become selected, which would add the index to the SelectionController,
3149         only to have it immediately incremented by the call to `didInsertItem`.
3150         Additionally, change `insertionIndex` to be the index of the inserted
3151         item instead of the inserted item's previous sibling.
3152
3153         (WI.TreeOutline.prototype._rememberTreeElement):
3154         (WI.TreeOutline.prototype._forgetTreeElement):
3155         (WI.TreeOutline.prototype._indexOfTreeElement.previousElement): Deleted.
3156         Eliminate TreeElement index caching, which could become stale and cause
3157         the wrong index to be calculated. Additionally, instead of walking up the
3158         parent chain to determine the index, start at the root and use existing
3159         method `traverseNextTreeElement`.
3160
3161 2018-12-03  Devin Rousso  <drousso@apple.com>
3162
3163         Web Inspector: Audit: test tree elements should start out collapsed
3164         https://bugs.webkit.org/show_bug.cgi?id=192107
3165
3166         Reviewed by Matt Baker.
3167
3168         * UserInterface/Views/AuditTreeElement.js:
3169         (WI.AuditTreeElement.prototype.onattach):
3170
3171 2018-12-03  Nikita Vasilyev  <nvasilyev@apple.com>
3172
3173         Web Inspector: Styles: can't select properties of read-only rules
3174         https://bugs.webkit.org/show_bug.cgi?id=192266
3175
3176         Reviewed by Devin Rousso.
3177
3178         Implement multiple properties selection for read-only rules (such as User Agent Stylesheets)
3179         in the Styles panel.
3180
3181         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3182         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
3183         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
3184         Keep selection on layout.
3185
3186         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
3187         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
3188         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyBlur):
3189         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseEnter):
3190         SpreadsheetCSSStyleDeclarationEditor is used by ComputedStyleDetailsPanel, which doesn't have:
3191           - spreadsheetCSSStyleDeclarationEditorPropertyBlur
3192           - spreadsheetCSSStyleDeclarationEditorPropertyMouseEnter
3193
3194         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
3195         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
3196         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
3197         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
3198         * UserInterface/Views/SpreadsheetStyleProperty.js:
3199         (WI.SpreadsheetStyleProperty.prototype.startEditingName):
3200         (WI.SpreadsheetStyleProperty.prototype.startEditingValue):
3201
3202 2018-11-30  Brian Burg  <bburg@apple.com>
3203
3204         Web Inspector: resource combining should be more robust against missing WebKitAdditions
3205         https://bugs.webkit.org/show_bug.cgi?id=192255
3206         <rdar://problem/46042879>
3207
3208         Reviewed by Joseph Pecoraro.
3209
3210         * Scripts/copy-user-interface-resources.pl:
3211         (combineOrStripResourcesForWebKitAdditions):
3212
3213 2018-11-30  Nikita Vasilyev  <nvasilyev@apple.com>
3214
3215         Web Inspector: Jumping from Computed to Styles should select property
3216         https://bugs.webkit.org/show_bug.cgi?id=192198
3217
3218         Reviewed by Devin Rousso.
3219
3220         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
3221         (.spreadsheet-style-declaration-editor .property.highlighted): Deleted.
3222         (@keyframes style-property-highlight): Deleted.
3223         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3224         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty):
3225         Remove unnecessary `__propertyView` property.
3226
3227         * UserInterface/Views/SpreadsheetStyleProperty.js:
3228         (WI.SpreadsheetStyleProperty.prototype.detached):
3229         (WI.SpreadsheetStyleProperty.prototype.highlight): Deleted.
3230
3231 2018-11-30  Matt Baker  <mattbaker@apple.com>
3232
3233         Web Inspector: REGRESSION(r238599): Multiple Selection: selecting a breakpoint will change the selection to it's parent on the first click
3234         https://bugs.webkit.org/show_bug.cgi?id=192093
3235         <rdar://problem/46318466>
3236
3237         Reviewed by Devin Rousso.
3238
3239         * UserInterface/Views/TreeElement.js:
3240         (WI.TreeElement.prototype.select):
3241         TreeElement shouldn't manage the TreeOutline's selection barrier.
3242
3243         * UserInterface/Views/TreeOutline.js:
3244         (WI.TreeOutline):
3245         (WI.TreeOutline.prototype.get processingSelectionChange):
3246         (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
3247         (WI.TreeOutline.prototype.selectTreeElementInternal):
3248         The selection re-entry barrier `processingSelectionChange` should be
3249         managed internally by TreeOutline, and exposed as a read-only property.
3250         Fix a bug where the barrier was cleared before dispatching the change
3251         notification, which can cause re-entry as a side effect.
3252
3253 2018-11-30  Devin Rousso  <drousso@apple.com>
3254
3255         Web Inspector: Settings: reload button needs horizontal spacing
3256         https://bugs.webkit.org/show_bug.cgi?id=192231
3257         <rdar://problem/46274363>
3258
3259         Reviewed by Matt Baker.
3260
3261         * UserInterface/Views/SettingsTabContentView.css:
3262         (.content-view.settings > .settings-view > .container button):
3263         (.content-view.settings > .settings-view > .container > .title):
3264         (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
3265         (body[dir=ltr] .content-view.settings > .settings-view > .container > .title): Deleted.
3266         (body[dir=rtl] .content-view.settings > .settings-view > .container > .title): Deleted.
3267         (body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]): Deleted.
3268         (body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]): Deleted.
3269         Drive-by: replace `dir=*` attribute rules with `-webkit-margin-*` properties.
3270
3271 2018-11-30  Joseph Pecoraro  <pecoraro@apple.com>
3272
3273         Web Inspector: Uncaught Exception opening Web Inspector to Debugger Tab
3274         https://bugs.webkit.org/show_bug.cgi?id=192174
3275
3276         Reviewed by Devin Rousso.
3277
3278         * UserInterface/Protocol/InspectorBackend.js:
3279         (InspectorBackendClass.prototype.runAfterPendingDispatches):
3280         Dispatch the callback with a timeout if there is no backend target yet
3281         so it doesn't get lost.
3282
3283         * UserInterface/Protocol/Connection.js:
3284         (InspectorBackend.Connection.prototype.runAfterPendingDispatches):
3285         Change the ambiguous name "script" to the more familiar "callback".
3286
3287 2018-11-30  Devin Rousso  <drousso@apple.com>
3288
3289         Web Inspector: replace all unicode characters with the escaped character code
3290         https://bugs.webkit.org/show_bug.cgi?id=192216
3291         <rdar://problem/46275637>
3292
3293         Reviewed by Brian Burg.
3294
3295         * Localizations/en.lproj/localizedStrings.js:
3296         * UserInterface/Controllers/BreakpointPopoverController.js:
3297         * UserInterface/Debug/UncaughtExceptionReporter.js:
3298         * UserInterface/Models/AuditTestCase.js:
3299         * UserInterface/Models/Canvas.js:
3300         * UserInterface/Models/RecordingAction.js:
3301         * UserInterface/Models/ScriptTimelineRecord.js:
3302         * UserInterface/Views/AuditTestCaseContentView.js:
3303         * UserInterface/Views/AuditTestContentView.js:
3304         * UserInterface/Views/AuditTestGroupContentView.js:
3305         * UserInterface/Views/CallFrameView.js:
3306         * UserInterface/Views/CanvasContentView.js:
3307         * UserInterface/Views/CanvasOverviewContentView.css:
3308         * UserInterface/Views/ConsoleMessageView.css:
3309         * UserInterface/Views/ContextMenuUtilities.js:
3310         * UserInterface/Views/DOMEventsBreakdownView.js:
3311         * UserInterface/Views/DataGrid.css:
3312         * UserInterface/Views/DataGrid.js:
3313         * UserInterface/Views/DatabaseTableContentView.js:
3314         * UserInterface/Views/DebuggerDashboardView.css:
3315         * UserInterface/Views/DebuggerSidebarPanel.js:
3316         * UserInterface/Views/ErrorObjectView.js:
3317         * UserInterface/Views/EventBreakpointPopover.js:
3318         * UserInterface/Views/InlineSwatch.js:
3319         * UserInterface/Views/LayerTreeDataGridNode.js:
3320         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
3321         * UserInterface/Views/Layers3DContentView.js:
3322         * UserInterface/Views/LayoutTimelineDataGridNode.js:
3323         * UserInterface/Views/NetworkTableContentView.css:
3324         * UserInterface/Views/NetworkTableContentView.js:
3325         * UserInterface/Views/ObjectPreviewView.js:
3326         * UserInterface/Views/ProfileDataGridNode.js:
3327         * UserInterface/Views/ResourceTimelineDataGridNode.js:
3328         * UserInterface/Views/ScriptDetailsTimelineView.css:
3329         * UserInterface/Views/TextEditor.css:
3330         * UserInterface/Views/TreeOutline.css:
3331
3332 2018-11-29  Matt Baker  <mattbaker@apple.com>
3333
3334         Web Inspector: RTL: disclosure triangles should be flipped and aligned right
3335         https://bugs.webkit.org/show_bug.cgi?id=192089
3336         <rdar://problem/46316753>
3337
3338         Reviewed by Devin Rousso.
3339
3340         * UserInterface/Views/ComputedStyleSection.css:
3341         (.computed-style-section .computed-property-item .disclosure-button):
3342         (body[dir=rtl] .computed-style-section .computed-property-item .disclosure-button):
3343
3344         * UserInterface/Views/ConsoleMessageView.css:
3345         (.console-message.expandable .console-top-level-message::before):
3346         (body[dir=rtl] .console-message.expandable .console-top-level-message::before):
3347
3348         * UserInterface/Views/ErrorObjectView.css:
3349         (.error-object > .formatted-error::before):
3350         (body[dir=rtl] .error-object > .formatted-error::before):
3351         (.error-object .content):
3352
3353         * UserInterface/Views/LogContentView.css:
3354         (.console-group-title::before):
3355         (body[dir=ltr] .console-group-title::before):
3356         (body[dir=rtl] .console-group-title::before):
3357
3358         * UserInterface/Views/ObjectTreeView.css:
3359         (body[dir=rtl] .object-tree > :matches(.title, .object-preview)::before):
3360
3361         * UserInterface/Views/TypeTreeElement.css:
3362         (body[dir=rtl] .item.type-tree-element.parent > .disclosure-button):
3363
3364 2018-11-28  Dean Jackson  <dino@apple.com>
3365
3366         [ES Modules] Allow .mjs content when loaded from file://
3367         https://bugs.webkit.org/show_bug.cgi?id=192100
3368         <rdar://problem/46320065>
3369
3370         Reviewed by Sam Weinig.
3371
3372         Add a mapping from .mjs to application/javascript.
3373
3374         * UserInterface/Base/MIMETypeUtilities.js:
3375         (WI.mimeTypeForFileExtension):
3376
3377 2018-11-29  Matt Baker  <mattbaker@apple.com>
3378
3379         Web Inspector: Elements: selecting more than one DOM node causes the scope highlight to contrast
3380         https://bugs.webkit.org/show_bug.cgi?id=192118
3381         <rdar://problem/46325664>
338