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