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