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