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