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