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