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