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