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