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