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