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