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