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