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