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