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