Expose XPCServiceMain in a WebProcess header rather than WKProcessPool
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2018-09-15  Devin Rousso  <drousso@apple.com>
2
3         Web Inspector: REGRESSION: breakpoint context menu appears twice in DOM tree
4         https://bugs.webkit.org/show_bug.cgi?id=189308
5
6         Reviewed by Joseph Pecoraro.
7
8         * UserInterface/Controllers/DOMBreakpointTreeController.js:
9         (WI.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
10         Set a symbol on the `contextMenu` to ensure that the same items are not added twice.
11
12 2018-09-14  Joseph Pecoraro  <pecoraro@apple.com>
13
14         Web Inspector: Source View doesn't scroll to show line when breakpoint is hit inside of <script> in HTML resource
15         https://bugs.webkit.org/show_bug.cgi?id=189638
16         <rdar://problem/43359278>
17
18         Reviewed by Matt Baker.
19
20         Pausing in Document resources on page load have special considerations where we
21         may not receive their full content immediately, so we may synthesize inline script
22         content for the resource until we have full content. Unfortunately, when we get
23         full content and update the TextEditor we were losing the revealed position and
24         other editor information. This change specifically targets those cases, by
25         re-applying editor state when updating such a resource from partial to full content.
26
27         * UserInterface/Views/SourceCodeTextEditor.js:
28         (WI.SourceCodeTextEditor.prototype._contentAvailable):
29         Signal to the editor that when updating the content it should carry
30         over editor state. Only do this if we had partial content before.
31
32         * UserInterface/Views/TextEditor.js:
33         (WI.TextEditor):
34         (WI.TextEditor.prototype.set repeatReveal):
35         Provide a way to signal we should restore state when update the content.
36
37         (WI.TextEditor.set string.update):
38         (WI.TextEditor.prototype.set string):
39         When repeatReveal was enabled, restore editor state such as the
40         revealed location and text selection.
41
42 2018-09-14  Devin Rousso  <webkit@devinrousso.com>
43
44         Web Inspector: Record actions performed on ImageBitmapRenderingContext
45         https://bugs.webkit.org/show_bug.cgi?id=181341
46
47         Reviewed by Joseph Pecoraro.
48
49         * UserInterface/Models/Recording.js:
50         (WI.Recording.fromPayload):
51         (WI.Recording.prototype.createContext):
52
53         * UserInterface/Models/RecordingAction.js:
54         (WI.RecordingAction._prototypeForType):
55         (WI.RecordingAction.prototype.getImageParameters):
56
57         * UserInterface/Views/RecordingActionTreeElement.js:
58         (WI.RecordingActionTreeElement._classNameForAction.classNameForActionName):
59
60         * UserInterface/Views/RecordingContentView.js:
61         (WI.RecordingContentView):
62         (WI.RecordingContentView.prototype.get navigationItems):
63         (WI.RecordingContentView.prototype.updateActionIndex):
64         (WI.RecordingContentView.prototype.shown):
65         (WI.RecordingContentView.prototype.hidden):
66         (WI.RecordingContentView.prototype._generateContentFromSnapshot): Renamed.
67         (WI.RecordingContentView.prototype._updateImageGrid):
68         (WI.RecordingContentView.prototype._generateContentCanvasWebGL): Deleted.
69
70         * UserInterface/Views/CanvasContentView.js:
71         (WI.CanvasContentView):
72
73 2018-09-13  Jamal Nasser  <jamaln@mail.com>
74
75         Web Inspector: Dark Mode: bezier curve editor should be updated
76         https://bugs.webkit.org/show_bug.cgi?id=187657
77
78         Reviewed by Matt Baker.
79
80         * UserInterface/Views/DarkMode.css:
81         (@media (prefers-dark-interface)):
82         (.bezier-editor > .bezier-preview-timing):
83         (.bezier-editor > .bezier-container .bezier-curve):
84         (.bezier-editor > .bezier-container .linear-curve):
85         (.bezier-editor > .bezier-preview):
86         (.bezier-editor > .bezier-preview > div):
87         (.bezier-editor > .bezier-container .control-handle):
88         (.bezier-editor > .bezier-container .control-line):
89
90 2018-09-13  Matt Baker  <mattbaker@apple.com>
91
92         Web Inspector: Timelines: clicking a row in Script > Events grid triggers Location popover when column is hidden
93         https://bugs.webkit.org/show_bug.cgi?id=189603
94         <rdar://problem/44431403>
95
96         Reviewed by Joseph Pecoraro.
97
98         TimelineDataGrid controls showing/hiding the call frame popover, with subclasses
99         overriding callFramePopoverAnchorElement to position it. This patch adds
100         another overridable base class method, shouldShowCallFramePopover, which subclasses
101         can use to block the popover when the Location column is hidden.
102
103         * UserInterface/Views/DataGrid.js:
104         (WI.DataGrid.prototype.layout):
105         (WI.DataGrid.prototype._positionResizerElements):
106         (WI.DataGrid.prototype._isColumnVisible): Deleted.
107
108         * UserInterface/Views/LayoutTimelineDataGrid.js:
109         (WI.LayoutTimelineDataGrid.prototype.shouldShowCallFramePopover):
110         (WI.LayoutTimelineDataGrid):
111
112         * UserInterface/Views/ScriptTimelineDataGrid.js:
113         (WI.ScriptTimelineDataGrid.prototype.shouldShowCallFramePopover):
114         (WI.ScriptTimelineDataGrid):
115
116         * UserInterface/Views/TimelineDataGrid.js:
117         (WI.TimelineDataGrid.prototype.shouldShowCallFramePopover):
118         (WI.TimelineDataGrid.prototype._dataGridSelectedNodeChanged):
119
120 2018-09-13  Joseph Pecoraro  <pecoraro@apple.com>
121
122         Web Inspector: Opening inspector with a selected element might immediately scroll that element off screen in the DOM Tree outline
123         https://bugs.webkit.org/show_bug.cgi?id=189569
124         <rdar://problem/44397098>
125
126         Reviewed by Devin Rousso.
127
128         * UserInterface/Views/DOMTreeContentView.js:
129         (WI.DOMTreeContentView.prototype.layout):
130         Re-select the selected DOM node in the DOM Tree when the view resizes.
131         Typically this can happen if the sidebar opens/closes/resizes, in which
132         case we will want the selected DOM node to stay in view even if the DOM
133         tree starts wrapping earlier content.
134
135 2018-09-12  Joseph Pecoraro  <pecoraro@apple.com>
136
137         Web Inspector: fix test case failures in js-isLikelyStackTrace.html
138         https://bugs.webkit.org/show_bug.cgi?id=180664
139
140         Reviewed by Devin Rousso.
141
142         * UserInterface/Models/StackTrace.js:
143         (WI.StackTrace.isLikelyStackTrace):
144         In a quick benchmark 50% of the time was rebuilding the same complex regular
145         expression over and over again. Instead just build the regex once and reset
146         it before each use.
147
148 2018-09-12  Devin Rousso  <drousso@apple.com>
149
150         Web Inspector: imported recordings are unable to be viewed after navigation
151         https://bugs.webkit.org/show_bug.cgi?id=189208
152
153         Reviewed by Joseph Pecoraro.
154
155         Move the "Imported Recordings" folder to the top level (instead of under "Overview") so that
156         it is selectable when there are no canvases but there is an imported recording.
157
158         * UserInterface/Controllers/CanvasManager.js:
159         (WI.CanvasManager.prototype._removeCanvas):
160         Null out the `source` of each `WI.Recording` for the removed `WI.Canvas`.
161
162         * UserInterface/Views/CanvasTabContentView.js:
163         (WI.CanvasTabContentView):
164         (WI.CanvasTabContentView.prototype._removeCanvas):
165         Add each `WI.Recording`for the removed `WI.Canvas` to the "Imported Recordings" folder.
166
167         * UserInterface/Views/CanvasContentView.js:
168         (WI.CanvasContentView.prototype.refresh):
169         (WI.CanvasContentView.prototype.initialLayout):
170         (WI.CanvasContentView.prototype._showError):
171         Drive-by: don't recreate the error preview element if it already exists.
172
173         * UserInterface/Views/CanvasSidebarPanel.js:
174         (WI.CanvasSidebarPanel.prototype.updateRepresentedObjects): Added.
175         (WI.CanvasSidebarPanel.prototype.shown):
176         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange): Deleted.
177
178 2018-09-11  Joseph Pecoraro  <pecoraro@apple.com>
179
180         Web Inspector: Fix typo "vritualized"
181         https://bugs.webkit.org/show_bug.cgi?id=189511
182
183         Reviewed by Devin Rousso.
184
185         * UserInterface/Views/TreeOutline.js:
186         (WI.TreeOutline):
187         (WI.TreeOutline.prototype.registerScrollVirtualizer):
188         (WI.TreeOutline.prototype.updateVirtualizedElements):
189
190 2018-09-10  Joseph Pecoraro  <pecoraro@apple.com>
191
192         Web Inspector: Address some ESLint warnings
193         https://bugs.webkit.org/show_bug.cgi?id=188824
194
195         Reviewed by Matt Baker.
196
197         * .eslintrc:
198         * UserInterface/Base/Platform.js:
199         * UserInterface/Controllers/AuditManager.js:
200         * UserInterface/Controllers/BasicBlockAnnotator.js:
201         * UserInterface/Controllers/CallFrameTreeController.js:
202         * UserInterface/Controllers/HARBuilder.js:
203         * UserInterface/Models/AuditReport.js:
204         * UserInterface/Models/AuditResult.js:
205         * UserInterface/Models/AuditTestCase.js:
206         * UserInterface/Models/AuditTestSuite.js:
207         * UserInterface/Models/Cookie.js:
208         * UserInterface/Models/SourceCodePosition.js:
209         * UserInterface/Test/FrontendTestHarness.js:
210         * UserInterface/Test/TestSuite.js:
211         * UserInterface/Views/CanvasContentView.js:
212         * UserInterface/Views/CollectionContentView.js:
213         * UserInterface/Views/ContentBrowser.js:
214         * UserInterface/Views/CookieStorageContentView.js:
215         * UserInterface/Views/DataGrid.js:
216         * UserInterface/Views/DatabaseTableContentView.js:
217         * UserInterface/Views/FindBanner.js:
218         * UserInterface/Views/JSONResourceContentView.js:
219         * UserInterface/Views/LogContentView.js:
220         * UserInterface/Views/ResourceSidebarPanel.js:
221         * UserInterface/Views/SourceCodeTextEditor.js:
222         * UserInterface/Views/SpreadsheetTextField.js:
223         * UserInterface/Workers/Formatter/FormatterUtilities.js:
224
225 2018-09-06  Andy Estes  <aestes@apple.com>
226
227         [Apple Pay] Rename the -apple-pay-button-type value "checkout" to "check-out"
228         https://bugs.webkit.org/show_bug.cgi?id=189366
229         <rdar://problem/44193218>
230
231         Reviewed by Sam Weinig.
232
233         * UserInterface/Models/CSSKeywordCompletions.js:
234
235 2018-08-31  Jamal Nasser  <xnasser@outlook.com>
236
237         Added a CSS rule to DarkMode.css to fix color on sidebar toggle.
238         <https://webkit.org/b/189139>
239
240         Reviewed by Matt Baker.
241
242         * UserInterface/Views/DarkMode.css:
243         (@media (prefers-dark-interface)):
244         (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
245
246 2018-08-29  David Kilzer  <ddkilzer@apple.com>
247
248         Remove empty directories from from svn.webkit.org repository
249         <https://webkit.org/b/189081>
250
251         * WebInspectorUI.esproj: Removed.
252
253 2018-08-28  Devin Rousso  <drousso@apple.com>
254
255         console.log() shows (anonymous function) instead of the passed string when a certain format is used
256         https://bugs.webkit.org/show_bug.cgi?id=188946
257         <rdar://problem/43756428>
258
259         Reviewed by Brian Burg.
260
261         Stack trace URLs are much more likely to follow the following format:
262
263             <protocol>://<path>:<line>:<column>
264
265         Modify the test regexp to always require that a protocol exists and to check that there are
266         no ":" inside the protocol or path. Additionally, stack traces usually have more than one
267         frame, so return false if there isn't more than one line.
268
269         * UserInterface/Models/StackTrace.js:
270         (WI.StackTrace.isLikelyStackTrace):
271
272 2018-08-28  Devin Rousso  <drousso@apple.com>
273
274         Web Inspector: REGRESSION: CanvasSidebarPanel is empty for imported recordings
275         https://bugs.webkit.org/show_bug.cgi?id=189061
276
277         Reviewed by Brian Burg.
278
279         When recordings are imported, they don't have an associated `WI.Canvas`, meaning that the
280         `WI.Recording` is never added to the canvas' `WI.RecordingCollection`. Previously, the
281         canvas sidebar relied upon the `ItemAdded` event to update the recording `WI.ScopeBar`.
282         Since the imported recording isn't ever added to the collection, this is never fired.
283
284         This patch moves the function call that updates the `WI.ScopeBar` to a more universal path,
285         ensuring that no matter how a `WI.Recording` is set for the sidebar, it will be shown.
286
287         * UserInterface/Views/CanvasSidebarPanel.js:
288         (WI.CanvasSidebarPanel.prototype.set recording):
289         (WI.CanvasSidebarPanel.prototype._recordingAdded):
290         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
291
292 2018-08-28  Devin Rousso  <drousso@apple.com>
293
294         Web Inspector: Search bar is too narrow in some localizations
295         https://bugs.webkit.org/show_bug.cgi?id=189060
296         <rdar://problem/43006369>
297
298         Reviewed by Brian Burg.
299
300         * UserInterface/Views/Toolbar.css:
301         (.toolbar .search-bar):
302
303 2018-08-27  Keith Rollin  <krollin@apple.com>
304
305         Unreviewed build fix -- disable LTO for production builds
306
307         * Configurations/Base.xcconfig:
308
309 2018-08-27  Andy Estes  <aestes@apple.com>
310
311         Teach Web Inspector how to complete keywords for -apple-pay-button-style and -apple-pay-button-type
312         https://bugs.webkit.org/show_bug.cgi?id=189001
313
314         Reviewed by Devin Rousso.
315
316         * UserInterface/Models/CSSKeywordCompletions.js:
317
318 2018-08-27  Devin Rousso  <drousso@apple.com>
319
320         Web Inspector: when scrolling a virtualized TreeOutline, only update the DOM periodically
321         https://bugs.webkit.org/show_bug.cgi?id=188960
322
323         Reviewed by Brian Burg.
324
325         After each `updateVirtualizedElements` call, remember the `WI.TreeElement` that is located
326         halfway within the visible list. When handling each "scroll", only regenerate the
327         `WI.TreeOutline` DOM if the user has scrolled `extraRows` distance.
328
329         * UserInterface/Views/TreeOutline.js:
330         (WI.TreeOutline):
331         (WI.TreeOutline.prototype.registerScrollVirtualizer):
332         (WI.TreeOutline.prototype.updateVirtualizedElements):
333         (WI.TreeOutline.prototype._calculateVirtualizedValues): Added.
334
335 2018-08-27  Devin Rousso  <drousso@apple.com>
336
337         Web Inspector: provide autocompletion for event breakpoints
338         https://bugs.webkit.org/show_bug.cgi?id=188717
339
340         Reviewed by Brian Burg.
341
342         * UserInterface/Controllers/DOMTreeManager.js:
343         (WI.DOMTreeManager):
344         (WI.DOMTreeManager.prototype.getSupportedEventNames): Added.
345
346         * UserInterface/Views/EventBreakpointPopover.js:
347         (WI.EventBreakpointPopover):
348         (WI.EventBreakpointPopover.prototype.show):
349         (WI.EventBreakpointPopover.prototype.dismiss): Added.
350         (WI.EventBreakpointPopover.prototype.completionSuggestionsClickedCompletion): Added.
351         (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
352         (WI.EventBreakpointPopover.prototype._showSuggestionsView): Added.
353
354 2018-08-27  Keith Rollin  <krollin@apple.com>
355
356         Build system support for LTO
357         https://bugs.webkit.org/show_bug.cgi?id=187785
358         <rdar://problem/42353132>
359
360         Reviewed by Dan Bernstein.
361
362         Update Base.xcconfig and DebugRelease.xcconfig to optionally enable
363         LTO.
364
365         * Configurations/Base.xcconfig:
366         * Configurations/DebugRelease.xcconfig:
367
368 2018-08-27  Devin Rousso  <drousso@apple.com>
369
370         Web Inspector: REGRESSION: virtualized TreeOutline is empty when filtering
371         https://bugs.webkit.org/show_bug.cgi?id=188959
372
373         Reviewed by Brian Burg.
374
375         * UserInterface/Views/TreeElement.js:
376         (WI.TreeElement.prototype.set hidden):
377         Only set `focusedTreeElement` if the `WI.TreeElement` is selected and not hidden. There is
378         no reason to focus a hidden or unselected `WI.TreeElement`.
379
380 2018-08-23  Devin Rousso  <drousso@apple.com>
381
382         Web Inspector: Color picker: can't enter decimal numbers for opacity
383         https://bugs.webkit.org/show_bug.cgi?id=187026
384         <rdar://problem/41446500>
385
386         Reviewed by Brian Burg.
387
388         After every "input" event, we update the `color` value of the `WI.ColorPicker` based on a
389         generated string using the values of the various <input>. The issue with this approach is
390         that adding a decimal point (e.g. "0.") would still be construed as 0, meaning that the
391         color wouldn't change and would instead be reset back to it's old value. This patch adds an
392         early return if the newly generated color has the same value as the current color, thereby
393         meaning that the `color` wouldn't change when changing from "0" to "0.".
394
395         * UserInterface/Views/ColorPicker.js:
396         (WI.ColorPicker):
397         (WI.ColorPicker.createColorInput):
398         (WI.ColorPicker.prototype._handleColorInputInput):
399
400 2018-08-23  Simon Fraser  <simon.fraser@apple.com>
401
402         Add support for dumping GC heap snapshots, and a viewer
403         https://bugs.webkit.org/show_bug.cgi?id=186416
404
405         Reviewed by Joseph Pecoraro.
406
407         Make a way to dump information about the GC heap that is useful for looking for leaked
408         or abandoned objects. This dump is obtained (on Apple platforms) via:
409             notifyutil -p com.apple.WebKit.dumpGCHeap
410         which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector.
411
412         This leverages the heap snapshot used by Web Inspector, adding an alternate format for
413         the snapshot JSON that adds additional data about objects and why they are GC roots.
414
415         The generated bindings code is changed to include the output root reason from isReachableFromOpaqueRoots(),
416         and to implement heapSnapshot() which provides the address of the wrapped object. A new IDL attribute,
417         CustomHeapSnapshot, is used to allow custom heapSnapshot() implementations for classes like JSDocument
418         that need to decorate the heap snapshot cell data with things like the document URL.
419
420         GCController registers a notifyutil callback which gathers the debug heap snapshot, and dumps it
421         to a file in /tmp. The file path is printed out to the system log.
422
423         * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
424         (HeapSnapshot):
425
426 2018-08-23  Brian Burg  <bburg@apple.com>
427
428         Web Inspector: fix typos in some compositing reasons
429         https://bugs.webkit.org/show_bug.cgi?id=188905
430         <rdar://problem/43624825>
431
432         Reviewed by Simon Fraser.
433
434         * Localizations/en.lproj/localizedStrings.js:
435         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
436         (WI.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
437         (WI.LayerTreeDetailsSidebarPanel):
438         * UserInterface/Views/Layers3DContentView.js:
439         (WI.Layers3DContentView.prototype._updateReasonsList):
440         (WI.Layers3DContentView):
441
442 2018-08-23  Devin Rousso  <drousso@apple.com>
443
444         Web Inspector: support breakpoints for timers and animation-frame events
445         https://bugs.webkit.org/show_bug.cgi?id=188778
446
447         Reviewed by Brian Burg.
448
449         Add a `type` to `WI.EventBreakpoint` that matches `DOMDebugger.EventBreakpointType`:
450          - `AnimationFrame` for `requestAnimationFrame`
451          - `Listener` for any named DOM Event
452          - `Timer` for `setTimeout` and `setInterval`
453
454         Modified `WI.EventBreakpointPopover` to provide ways for selecting these other types, which
455         is then passed to `WI.DOMDebuggerManager`, which now calls through to the newly added
456         `DOMDebugger.removeEventBreakpoint` and `DOMDebugger.setEventBreakpoint` that sets
457         breakpoints for all event types.
458
459         * Localizations/en.lproj/localizedStrings.js:
460         * UserInterface/Images/EventBreakpointAnimationFrame.svg: Added.
461         * UserInterface/Images/EventBreakpointListener.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/EventBreakpoint.svg.
462         * UserInterface/Images/EventBreakpointTimer.svg: Added.
463
464         * UserInterface/Controllers/DOMDebuggerManager.js:
465         (WI.DOMDebuggerManager.supportsEventBreakpoints): Added.
466         (WI.DOMDebuggerManager.prototype.eventBreakpointForTypeAndEventName): Added.
467         (WI.DOMDebuggerManager.prototype.addEventBreakpoint):
468         (WI.DOMDebuggerManager.prototype.removeEventBreakpoint.breakpointRemoved): Added.
469         (WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
470         (WI.DOMDebuggerManager.prototype._updateEventBreakpoint):
471         (WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Deleted.
472
473         * UserInterface/Controllers/DOMTreeManager.js:
474         (WI.DOMTreeManager.prototype.setBreakpointForEventListener):
475
476         * UserInterface/Controllers/DebuggerManager.js:
477         (WI.DebuggerManager.prototype._pauseReasonFromPayload):
478
479         * UserInterface/Models/EventBreakpoint.js:
480         (WI.EventBreakpoint):
481         (WI.EventBreakpoint.fromPayload):
482         (WI.EventBreakpoint.prototype.get type): Added.
483         (WI.EventBreakpoint.prototype.get serializableInfo):
484         (WI.EventBreakpoint.prototype.saveIdentityToCookie):
485
486         * UserInterface/Views/DebuggerSidebarPanel.js:
487         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
488         (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
489
490         * UserInterface/Views/EventBreakpointPopover.js:
491         (WI.EventBreakpointPopover):
492         (WI.EventBreakpointPopover.prototype.get breakpoint): Added.
493         (WI.EventBreakpointPopover.prototype.show):
494         (WI.EventBreakpointPopover.prototype.show.createOption): Added.
495         (WI.EventBreakpointPopover.prototype.dismiss): Added.
496         (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
497         (WI.EventBreakpointPopover.prototype._handleTypeSelectChange): Added.
498         (WI.EventBreakpointPopover.prototype.get result): Deleted.
499         (WI.EventBreakpointPopover.prototype.get value): Deleted.
500         * UserInterface/Views/EventBreakpointPopover.css:
501         (.popover .event-breakpoint-content > .event-type): Added.
502         (.popover .event-breakpoint-content > input): Deleted.
503
504         * UserInterface/Views/EventBreakpointTreeElement.js:
505         (WI.EventBreakpointTreeElement):
506         * UserInterface/Views/EventBreakpointTreeElement.css:
507         (.breakpoint.event.animation-frame:not(.breakpoint-paused-icon) .icon): Added.
508         (.breakpoint.event.listener:not(.breakpoint-paused-icon) .icon): Added.
509         (.breakpoint.event.timer:not(.breakpoint-paused-icon) .icon): Added.
510         (.breakpoint.event:not(.breakpoint-paused-icon) .icon): Deleted.
511
512 2018-08-23  Devin Rousso  <drousso@apple.com>
513
514         Web Inspector: `console.inspect(sessionStorage)` first time does not show Session Storage content view if Storage tab was previously unvisited
515         https://bugs.webkit.org/show_bug.cgi?id=188801
516
517         Reviewed by Matt Baker.
518
519         * UserInterface/Base/Main.js:
520         (WI.tabContentViewClassForRepresentedObject):
521         (WI._storageWasInspected):
522         Since the `WI.StorageSidebarPanel` is not created until the `WI.StorageTabContentView` is
523         created, the `WI.StorageManager.Event.DOMStorageObjectWasInspected` and
524         `WI.StorageManager.Event.DatabaseWasInspected` events do not reach the sidebar. We should
525         follow what `WI._domNodeWasInspected` does and additionally call `WI.showRepresentedObject`
526         on the inspected object.
527
528 2018-08-23  Devin Rousso  <drousso@apple.com>
529
530         Web Inspector: REGRESSION: InspectorStyleSheet not visible in the resources sidebar
531         https://bugs.webkit.org/show_bug.cgi?id=188819
532         <rdar://problem/43579039>
533
534         Reviewed by Brian Burg.
535
536         * UserInterface/Models/ResourceCollection.js:
537         (WI.ResourceCollection.prototype.objectIsRequiredType):
538
539 2018-08-23  Joseph Pecoraro  <pecoraro@apple.com>
540
541         JSContext Inspector: Scripts not showing up in Resources tab
542         https://bugs.webkit.org/show_bug.cgi?id=188814
543         <rdar://problem/43576117>
544
545         Reviewed by Brian Burg.
546
547         * UserInterface/Views/ResourceSidebarPanel.js:
548         (WI.ResourceSidebarPanel.prototype._addScript):
549         This path shouldn't apply to JSContext inspection which will
550         never have a pageTarget and but doesn't have a mainResource.
551
552 2018-08-22  Devin Rousso  <drousso@apple.com>
553
554         Web Inspector: cannot delete multiple event breakpoints by repeatedly hitting delete
555         https://bugs.webkit.org/show_bug.cgi?id=188803
556         <rdar://problem/43572838>
557
558         Reviewed by Matt Baker.
559
560         * UserInterface/Views/DebuggerSidebarPanel.js:
561         (WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved):
562         (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved):
563
564 2018-08-22  Carlos Garcia Campos  <cgarcia@igalia.com>
565
566         Unreviewed. Do not include TreeOutlineDataGridSynchronizer.js in inspector main.
567
568         The script was removed in r235151.
569
570         * UserInterface/Main.html:
571
572 2018-08-21  Matt Baker  <mattbaker@apple.com>
573
574         Web Inspector: Remove TreeOutlineDataGridSynchronizer
575         https://bugs.webkit.org/show_bug.cgi?id=188449
576         <rdar://problem/43107980>
577
578         Reviewed by Devin Rousso.
579
580         * UserInterface/Views/HeapAllocationsTimelineView.js:
581         (WI.HeapAllocationsTimelineView.prototype.layout):
582         * UserInterface/Views/LayoutTimelineView.js:
583         (WI.LayoutTimelineView.prototype._processPendingRecords):
584         * UserInterface/Views/NetworkTimelineView.js:
585         (WI.NetworkTimelineView.prototype._processPendingRecords):
586         * UserInterface/Views/RenderingFrameTimelineView.js:
587         (WI.RenderingFrameTimelineView.prototype._processPendingRecords):
588         (WI.RenderingFrameTimelineView.prototype.dataGridNodeForTreeElement): Deleted.
589         * UserInterface/Views/ScriptDetailsTimelineView.js:
590         (WI.ScriptDetailsTimelineView.prototype._processPendingRecords):
591         * UserInterface/Views/TimelineDataGrid.js:
592         (WI.TimelineDataGrid):
593         (WI.TimelineDataGrid.prototype.reset):
594         (WI.TimelineDataGrid.prototype.shown):
595         (WI.TimelineDataGrid.prototype.addRowInSortOrder):
596         (WI.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
597         (WI.TimelineDataGrid.prototype._sort):
598         (WI.TimelineDataGrid.prototype.treeElementForDataGridNode): Deleted.
599         (WI.TimelineDataGrid.prototype.dataGridNodeForTreeElement): Deleted.
600         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js: Removed.
601
602 2018-08-21  Joseph Pecoraro  <pecoraro@apple.com>
603
604         Web Inspector: ⌘G does not while find banner is focused
605         https://bugs.webkit.org/show_bug.cgi?id=188815
606         <rdar://problem/43577158>
607
608         Reviewed by Matt Baker.
609
610         * UserInterface/Base/Main.js:
611         Allow an <input> element to be the current focus element, which is what will
612         our global KeyboardShortcut handlers will interact with. Also make sure
613         that showing the find banner for the first time still focuses it.
614
615 2018-08-21  Devin Rousso  <drousso@apple.com>
616
617         Web Inspector: REGRESSION(r235095): duplicate actions existing in WI.CanvasSidebarPanel
618         https://bugs.webkit.org/show_bug.cgi?id=188808
619
620         Reviewed by Joseph Pecoraro.
621
622         * UserInterface/Views/CanvasSidebarPanel.js:
623         (WI.CanvasSidebarPanel.prototype._recordingChanged):
624         Check that the `WI.RecordingAction` is not already represented in the `WI.TreeOutline`
625         before adding it.
626
627         * UserInterface/Views/CanvasSidebarPanel.css:
628         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle > progress):
629         Drive-by: vertically center the <progress> shown for `WI.RecordingFrame` during processing.
630
631 2018-08-21  Devin Rousso  <drousso@apple.com>
632
633         Web Inspector: Canvas: provide default icon for all actions
634         https://bugs.webkit.org/show_bug.cgi?id=188807
635
636         Reviewed by Matt Baker.
637
638         * UserInterface/Views/RecordingActionTreeElement.css:
639         (.item.action > .icon):
640         (.item.action.initial-state > .icon): Deleted.
641
642 2018-08-21  Joseph Pecoraro  <pecoraro@apple.com>
643
644         Web Inspector: Rulers.svg is missing
645         https://bugs.webkit.org/show_bug.cgi?id=188806
646         <rdar://problem/43574273>
647
648         Reviewed by Devin Rousso.
649
650         * UserInterface/Images/Rulers.svg: Added.
651
652 2018-08-20  Devin Rousso  <drousso@apple.com>
653
654         Web Inspector: allow breakpoints to be set for specific event listeners
655         https://bugs.webkit.org/show_bug.cgi?id=183138
656
657         Reviewed by Joseph Pecoraro.
658
659         * Localizations/en.lproj/localizedStrings.js:
660
661         * UserInterface/Models/EventBreakpoint.js:
662         (WI.EventBreakpoint):
663         (WI.EventBreakpoint.fromPayload): Added.
664         (WI.EventBreakpoint.prototype.get eventListener): Added.
665
666         * UserInterface/Controllers/DOMDebuggerManager.js:
667         (WI.DOMDebuggerManager):
668
669         * UserInterface/Controllers/DOMTreeManager.js:
670         (WI.DOMTreeManager):
671         (WI.DOMTreeManager.prototype.get eventBreakpoints): Added.
672         (WI.DOMTreeManager.prototype._setDocument):
673         (WI.DOMTreeManager.prototype.setEventListenerDisabled):
674         (WI.DOMTreeManager.prototype.setBreakpointForEventListener): Added.
675         (WI.DOMTreeManager.prototype.removeBreakpointForEventListener): Added.
676         (WI.DOMTreeManager.prototype.breakpointForEventListenerId): Added.
677
678         * UserInterface/Controllers/EventBreakpointTreeController.js:
679         (WI.EventBreakpointTreeController):
680
681         * UserInterface/Views/DebuggerSidebarPanel.js:
682         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
683
684         * UserInterface/Views/EventListenerSectionGroup.js:
685         (WI.EventListenerSectionGroup):
686         (WI.EventListenerSectionGroup.prototype._createDisabledToggleRow):
687         (WI.EventListenerSectionGroup.prototype._createBreakpointToggleRow): Added.
688
689         * UserInterface/Views/EventBreakpointTreeElement.js:
690         (WI.EventBreakpointTreeElement):
691         (WI.EventBreakpointTreeElement.prototype.ondelete):
692         (WI.EventBreakpointTreeElement.prototype.populateContextMenu):
693         (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
694
695 2018-08-20  Devin Rousso  <drousso@apple.com>
696
697         Web Inspector: Canvas tab: allow recording processing to be stopped midway
698         https://bugs.webkit.org/show_bug.cgi?id=185152
699
700         Reviewed by Joseph Pecoraro.
701
702         Previously, `WI.Recording` used a `WI.YieldableTask` to process every action in such a way
703         as to not block the UI. The downside to this approach was that it used a message view to
704         indicate the progress of this process, and prevented the user from viewing the `WI.Recording`
705         until that process was completed.
706
707         This patch changes `WI.Recording` to instead use `async/await` and fire events whenever a
708         `WI.RecordingAction` (and `WI.RecordingFrame`) finished processing, allowing it to be added
709         to the recording `WI.TreeOutline` and selected by the user. Additionally, a pause/resume
710         button is added to the `WI.CanvasSidebarPanel` so the user has greater control over what
711         how much of the `WI.Recording` they want to process.
712
713         * Localizations/en.lproj/localizedStrings.js:
714
715         * UserInterface/Base/Utilities.js:
716         (Promise.delay)
717         Utility function for promisifying `setTimeout`.
718
719         * UserInterface/Models/Recording.js:
720         (WI.Recording):
721         (WI.Recording.prototype.get processing): Added.
722         (WI.Recording.prototype.get ready): Added.
723         (WI.Recording.prototype.startProcessing): Added.
724         (WI.Recording.prototype.stopProcessing): Added.
725         (WI.Recording.prototype.async._process): Added.
726         (WI.Recording.prototype.process): Deleted.
727         (WI.Recording.prototype.async.yieldableTaskWillProcessItem): Deleted.
728         (WI.Recording.prototype.async.yieldableTaskDidFinish): Deleted.
729
730         * UserInterface/Models/RecordingAction.js:
731         (WI.RecordingAction):
732         (WI.RecordingAction.prototype.get ready): Added.
733         (WI.RecordingAction.prototype.async.swizzle):
734         (WI.RecordingAction.prototype.apply):
735
736         * UserInterface/Models/RecordingInitialStateAction.js:
737         (WI.RecordingInitialStateAction):
738
739         * UserInterface/Views/CanvasSidebarPanel.js:
740         (WI.CanvasSidebarPanel):
741         (WI.CanvasSidebarPanel.prototype.set recording):
742         (WI.CanvasSidebarPanel.prototype.set action):
743         (WI.CanvasSidebarPanel.prototype._recordingAdded):
744         (WI.CanvasSidebarPanel.prototype._recordingRemoved):
745         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
746         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
747         (WI.CanvasSidebarPanel.prototype._recordingChanged):
748         (WI.CanvasSidebarPanel.prototype._recordingChanged.createPauseButton): Added.
749         (WI.CanvasSidebarPanel.prototype._recordingChanged.createResumeButton): Added.
750         (WI.CanvasSidebarPanel.prototype._createRecordingFrameTreeElement): Added.
751         (WI.CanvasSidebarPanel.prototype._createRecordingActionTreeElement): Added.
752         (WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction): Added.
753         (WI.CanvasSidebarPanel.prototype._handleRecordingStartProcessingFrame): Added.
754         * UserInterface/Views/CanvasSidebarPanel.css:
755         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle > progress): Added.
756         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:matches(:focus, .force-focus) .item.processing.selected .subtitle > progress): Added.
757         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle::before): Added.
758         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options): Added.
759         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options > .indeterminate-progress-spinner): Added.
760         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .indeterminate-progress-spinner): Deleted.
761
762         * UserInterface/Views/RecordingContentView.js:
763         (WI.RecordingContentView):
764         (WI.RecordingContentView.prototype.updateActionIndex):
765         (WI.RecordingContentView.prototype.initialLayout):
766         (WI.RecordingContentView.prototype._updateCanvasPath):
767         (WI.RecordingContentView.prototype._handleRecordingProcessedAction): Added.
768         (WI.RecordingContentView.prototype._updateProcessProgress): Deleted.
769         (WI.RecordingContentView.prototype._handleRecordingProcessedActionSwizzle): Deleted.
770         (WI.RecordingContentView.prototype._handleRecordingProcessedActionApply): Deleted.
771         * UserInterface/Views/RecordingContentView.css:
772         (.content-view:not(.tab).recording > header > .slider-container > .slider-value): Added.
773
774         * UserInterface/Views/FolderTreeElement.js:
775         (WI.FolderTreeElement):
776
777         * UserInterface/Views/GeneralTreeElement.js:
778         (WI.GeneralTreeElement.prototype.get statusElement): Added.
779         (WI.GeneralTreeElement.prototype._updateTitleElements):
780
781         * UserInterface/Views/RecordingContentView.js:
782         (WI.CanvasContentView.prototype._handleViewShaderButtonClicked):
783         (WI.CanvasContentView.prototype._handleViewRecordingButtonClicked):
784         Drive-by: `WI.Collection` doesn't have a `values()` accessor for the underlying `Set`.
785
786         * UserInterface/Views/RecordingNavigationSidebarPanel.css: Removed.
787         * UserInterface/Views/RecordingNavigationSidebarPanel.js: Removed.
788         These files are no longer used since they were "merged" into `WI.CanvasSidebarPanel`.
789
790 2018-08-20  Devin Rousso  <webkit@devinrousso.com>
791
792         Web Inspector: Canvas tab: create icons for recordings/shaders in the preview tile
793         https://bugs.webkit.org/show_bug.cgi?id=183650
794
795         Reviewed by Joseph Pecoraro.
796
797         * Localizations/en.lproj/localizedStrings.js:
798
799         * UserInterface/Views/CanvasContentView.js:
800         (WI.CanvasContentView):
801         (WI.CanvasContentView.prototype.initialLayout):
802         (WI.CanvasContentView.prototype.attached):
803         (WI.CanvasContentView.prototype._recordingStopped):
804         (WI.CanvasContentView.prototype._shaderProgramAdded):
805         (WI.CanvasContentView.prototype._shaderProgramRemoved):
806         (WI.CanvasContentView.prototype._updateViewRelatedItems):
807         (WI.CanvasContentView.prototype._handleViewShaderButtonClicked):
808         (WI.CanvasContentView.prototype._handleViewRecordingButtonClicked):
809         (WI.CanvasContentView.prototype._addRecording): Deleted.
810         (WI.CanvasContentView.prototype._handleRecordingSelectElementChange): Deleted.
811         * UserInterface/Views/CanvasOverviewContentView.css:
812         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items):
813         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > :matches(.view-shader, .view-recording)):
814         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > img + img):
815         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-shader):
816         (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-recording):
817         (.content-view.canvas-overview .content-view.canvas > footer > .recordings): Deleted.
818         (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): Deleted.
819         (.content-view.canvas-overview .content-view.canvas > footer > .recordings > select): Deleted.
820         (.content-view.canvas-overview .content-view.canvas > footer .recordings > select:focus): Deleted.
821         Create two image buttons in the bottom left corner of each canvas tile that appear when the
822         canvas has associated shaders and/or recordings. Clicking each image button will function
823         similar to path components, in that if there is only one shader/recording, it is immediately
824         selected, whereas if there are multiple a dropdown is shown.
825
826         * UserInterface/Views/CanvasSidebarPanel.js:
827         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
828         (WI.CanvasSidebarPanel.prototype._recordingChanged):
829         Drive-by: ensure that the selected recording action is properly updated when first loading a
830         recording and when scrubbing through one.
831
832 2018-08-16  Devin Rousso  <drousso@apple.com>
833
834         Web Inspector: support breakpoints for arbitrary event names
835         https://bugs.webkit.org/show_bug.cgi?id=183118
836
837         Reviewed by Joseph Pecoraro.
838
839         Create UI for setting breakpoints on event names. Ties into renamed DOMDebugger commands,
840         specifically `setEventBreakpoint` and `removeEventBreakpoint`, that will pause execution if
841         any DOM event is fired that matches any previously registered breakpoints.
842
843         Event breakpoints are distinguished by name, and they currently apply globally, meaning
844         that only one breakpoint per event name can be registered.
845
846         Event breakpoints are created in the Debugger tab in a new "Event Breakpoints" section in
847         the Navigation sidebar. A new type of popover, EventBreakpointPopover, is used, but right
848         now all it contains is a basic text input for the event name. Similarly, a new TreeElement
849         subclass, EventBreakpointTreeElement, is used when showing the list of event listener
850         breakpoints, but all it shows now is the event name.
851
852         The majority of the logic in this patch was derived from XHR breakpoints.
853
854         * Localizations/en.lproj/localizedStrings.js:
855         * UserInterface/Main.html:
856         * UserInterface/Test.html:
857         * UserInterface/Images/EventBreakpoint.svg: Added.
858
859         * UserInterface/Models/EventBreakpoint.js: Added.
860         (WI.EventBreakpoint):
861         (WI.EventBreakpoint.prototype.get eventName):
862         (WI.EventBreakpoint.prototype.get disabled):
863         (WI.EventBreakpoint.prototype.set disabled):
864         (WI.EventBreakpoint.prototype.get serializableInfo):
865         (WI.EventBreakpoint.prototype.saveIdentityToCookie):
866
867         * UserInterface/Controllers/DOMDebuggerManager.js:
868         (WI.DOMDebuggerManager):
869         (WI.DOMDebuggerManager.prototype.get eventBreakpoints): Added.
870         (WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Added.
871         (WI.DOMDebuggerManager.prototype.addEventBreakpoint): Added.
872         (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): Added.
873         (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
874         (WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Added.
875         (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Added.
876         (WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Added.
877         (WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Added.
878         (WI.DOMDebuggerManager.prototype._eventBreakpointDisabledStateDidChange): Added.
879
880         * UserInterface/Controllers/DebuggerManager.js:
881         (WI.DebuggerManager.prototype._pauseReasonFromPayload):
882
883         * UserInterface/Controllers/EventBreakpointTreeController.js: Added.
884         (WI.EventBreakpointTreeController):
885         (WI.EventBreakpointTreeController.prototype.revealAndSelect):
886         (WI.EventBreakpointTreeController.prototype._eventBreakpointAdded):
887         (WI.EventBreakpointTreeController.prototype._eventBreakpointRemoved):
888         (WI.EventBreakpointTreeController.prototype._addTreeElement):
889
890         * UserInterface/Views/DebuggerSidebarPanel.js:
891         (WI.DebuggerSidebarPanel):
892         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
893         (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Added.
894         (WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Added.
895         (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
896
897         * UserInterface/Views/EventBreakpointTreeElement.js: Added.
898         (WI.EventBreakpointTreeElement):
899         (WI.EventBreakpointTreeElement.prototype.onattach):
900         (WI.EventBreakpointTreeElement.prototype.ondetach):
901         (WI.EventBreakpointTreeElement.prototype.ondelete):
902         (WI.EventBreakpointTreeElement.prototype.onenter):
903         (WI.EventBreakpointTreeElement.prototype.onspace):
904         (WI.EventBreakpointTreeElement.prototype.populateContextMenu):
905         (WI.EventBreakpointTreeElement.prototype._statusImageElementClicked):
906         (WI.EventBreakpointTreeElement.prototype._statusImageElementFocused):
907         (WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown):
908         (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
909         (WI.EventBreakpointTreeElement.prototype._updateStatus):
910         * UserInterface/Views/EventBreakpointTreeElement.css: Added.
911         (.breakpoint.event-listener:not(.breakpoint-paused-icon) .icon):
912
913         * UserInterface/Views/EventBreakpointPopover.js: Added.
914         (WI.EventBreakpointPopover):
915         (WI.EventBreakpointPopover.prototype.get result):
916         (WI.EventBreakpointPopover.prototype.get value):
917         (WI.EventBreakpointPopover.prototype.show):
918         (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
919         * UserInterface/Views/EventBreakpointPopover.css: Added.
920         (.popover .event-listener-breakpoint-content):
921         (.popover .event-listener-breakpoint-content > input):
922
923         * UserInterface/Views/NavigationSidebarPanel.js:
924         (WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
925
926 2018-08-16  Joseph Pecoraro  <pecoraro@apple.com>
927
928         Web Inspector: Show Initiator information in Network Table
929         https://bugs.webkit.org/show_bug.cgi?id=188590
930         <rdar://problem/43305488>
931
932         Reviewed by Matt Baker.
933
934         * UserInterface/Views/NetworkResourceDetailView.js:
935         (WI.NetworkResourceDetailView):
936         (WI.NetworkResourceDetailView.prototype.shown):
937         (WI.NetworkResourceDetailView.prototype.willShowWithCookie):
938         (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
939         When a ResourceDetailView gets shown, it may also want to show its initial content view
940         with a cookie as the cookie may contain position highlight information.
941
942         * UserInterface/Views/NetworkTableContentView.js:
943         (WI.NetworkTableContentView):
944         (WI.NetworkTableContentView.prototype._showResourceDetailView):
945         (WI.NetworkTableContentView.prototype.showRepresentedObject):
946         When showing a represented object, pass the cookie information on to the detail
947         view's so that it may include the cookie when showing the final content view.
948
949         (WI.NetworkTableContentView.prototype.tablePopulateCell):
950         (WI.NetworkTableContentView.prototype._populateInitiatorCell):
951         (WI.NetworkTableContentView.prototype.initialLayout):
952         New initiator column contains a source code link to the call site.
953
954         (WI.NetworkTableContentView.prototype._generateSortComparator):
955         (WI.NetworkTableContentView.prototype._entryForResource):
956         Entry data for the initiator is a display string that can be sorted easily.
957
958 2018-08-16  Joseph Pecoraro  <pecoraro@apple.com>
959
960         LayoutTest inspector/worker/debugger-pause.html sometimes times out
961         https://bugs.webkit.org/show_bug.cgi?id=188580
962
963         Reviewed by Matt Baker.
964
965         * UserInterface/Protocol/Target.js:
966         (WI.Target.prototype.get mainResource):
967         (WI.Target.prototype.set mainResource):
968         Dispatch an event when the Main Resource is set.
969
970 2018-08-15  Aditya Keerthi  <akeerthi@apple.com>
971
972         [Datalist] Add button to TextFieldInputs with a datalist
973         https://bugs.webkit.org/show_bug.cgi?id=187741
974
975         Reviewed by Tim Horton.
976
977         Add keyword completion for 'list-button'.
978
979         * UserInterface/External/CodeMirror/css.js:
980         * UserInterface/Models/CSSKeywordCompletions.js:
981
982 2018-08-15  Devin Rousso  <drousso@apple.com>
983
984         Web Inspector: REGRESSION(r?): the probe sidebar doesn't show up when adding probes
985         https://bugs.webkit.org/show_bug.cgi?id=188594
986
987         Reviewed by Brian Burg.
988
989         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
990         (WI.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):
991         (WI.ProbeDetailsSidebarPanel.prototype.initialLayout):
992         Add checks to ensure that DOM elements for each probe section exist before trying to
993         add/remove them from the sidebar. This can happen if probes are inspected before the sidebar
994         is shown for the first time.
995
996         * UserInterface/Views/ProbeSetDataGrid.js:
997         (WI.ProbeSetDataGrid):
998         (WI.ProbeSetDataGrid.columnIdentifierForProbe): Added.
999         (WI.ProbeSetDataGrid.prototype._setupProbe):
1000         (WI.ProbeSetDataGrid.prototype._teardownProbe):
1001         (WI.ProbeSetDataGrid.prototype._probeExpressionChanged):
1002         * UserInterface/Views/ProbeSetDataGridNode.js:
1003         (WI.ProbeSetDataGridNode.prototype.set frame):
1004         Provide better column identifiers for each probe's `WI.DataGrid`. It's possible for the
1005         numeric probe ID value to be stringified when passing it into the constructor of
1006         `WI.DataGrid`, which will not match the original numeric value on later retrieval.
1007
1008 2018-08-14  Matt Baker  <mattbaker@apple.com>
1009
1010         Web Inspector: Table should not center rows when scrolling them into view
1011         https://bugs.webkit.org/show_bug.cgi?id=188593
1012         <rdar://problem/43311660>
1013
1014         Reviewed by Devin Rousso.
1015
1016         * UserInterface/Views/Table.js:
1017         (WI.Table.prototype._handleKeyDown):
1018
1019 2018-08-13  Matt Baker  <mattbaker@apple.com>
1020
1021         Web Inspector: Table should handle row selection instead of the table delegate
1022         https://bugs.webkit.org/show_bug.cgi?id=188534
1023         <rdar://problem/43253335>
1024
1025         Reviewed by Joseph Pecoraro.
1026
1027         Row selection should be implemented by Table, rather than its delegate.
1028
1029         * UserInterface/Views/NetworkTableContentView.js:
1030         (WI.NetworkTableContentView.prototype.tableShouldSelectRow):
1031         (WI.NetworkTableContentView.prototype.tableCellMouseDown): Deleted.
1032         Prevent selection unless the clicked cell belongs to the name column.
1033
1034         * UserInterface/Views/ResourceCookiesContentView.js:
1035         (WI.ResourceCookiesContentView.prototype.tableShouldSelectRow):
1036         Always prevent selection.
1037
1038         * UserInterface/Views/Table.js:
1039         (WI.Table):
1040         (WI.Table.prototype._handleMouseDown):
1041
1042 2018-08-12  Aditya Keerthi  <akeerthi@apple.com>
1043
1044         [macOS] Color wells should appear pressed when presenting a color picker
1045         https://bugs.webkit.org/show_bug.cgi?id=188477
1046
1047         Reviewed by Tim Horton.
1048
1049         Add keyword completion for 'color-well'.
1050
1051         * UserInterface/External/CodeMirror/css.js:
1052         * UserInterface/Models/CSSKeywordCompletions.js:
1053
1054 2018-08-09  Nikita Vasilyev  <nvasilyev@apple.com>
1055
1056         Web Inspector: Dark Mode: SourceCodeTextEditor error/warning text widget is too light
1057         https://bugs.webkit.org/show_bug.cgi?id=188126
1058         <rdar://problem/42674963>
1059
1060         Reviewed by Matt Baker.
1061
1062         * UserInterface/Views/DarkMode.css:
1063         (@media (prefers-dark-interface)):
1064         (.source-code.text-editor > .CodeMirror .issue-widget.warning,): Added.
1065         (.source-code.text-editor > .CodeMirror .issue-widget.error,): Added.
1066
1067 2018-08-07  Joseph Pecoraro  <pecoraro@apple.com>
1068
1069         Web Inspector: Add another Protocol Version (iOS 12)
1070         https://bugs.webkit.org/show_bug.cgi?id=188359
1071         <rdar://problem/42981364>
1072
1073         Reviewed by Brian Burg.
1074
1075         * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: Added.
1076         * Versions/Inspector-iOS-12.0.json: Added.
1077
1078 2018-08-06  Joseph Pecoraro  <pecoraro@apple.com>
1079
1080         Web Inspector: Global search sometimes returns duplicate results for a resource
1081         https://bugs.webkit.org/show_bug.cgi?id=188270
1082         <rdar://problem/42867498>
1083
1084         Reviewed by Brian Burg.
1085
1086         * UserInterface/Views/SearchSidebarPanel.js:
1087         (WI.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
1088         Avoid duplicate search results in the frontend. We should also fix the backend
1089         but a frontend fix will also be desired for backends that have the issue.
1090
1091 2018-08-03  Alex Christensen  <achristensen@webkit.org>
1092
1093         Fix spelling of "overridden"
1094         https://bugs.webkit.org/show_bug.cgi?id=188315
1095
1096         Reviewed by Darin Adler.
1097
1098         * UserInterface/Views/ContentBrowserTabContentView.js:
1099         (WI.ContentBrowserTabContentView.prototype.treeElementForRepresentedObject):
1100         * UserInterface/Views/GeneralTreeElement.js:
1101         (WI.GeneralTreeElement.prototype.ondetach):
1102         * UserInterface/Views/NavigationBar.js:
1103         (WI.NavigationBar.prototype.get sizesToFit):
1104         * UserInterface/Views/NavigationSidebarPanel.js:
1105         (WI.NavigationSidebarPanel.prototype.shouldFilterPopulate):
1106         * UserInterface/Views/TextEditor.js:
1107         (WI.TextEditor.prototype.canBeFormatted):
1108         * UserInterface/Views/TreeElement.js:
1109         (WI.TreeElement.prototype.onpopulate):
1110
1111 2018-08-01  Nikita Vasilyev  <nvasilyev@apple.com>
1112
1113         Web Inspector: Dark Mode: SourceCodeTextEditor thread indicator widget is too light
1114         https://bugs.webkit.org/show_bug.cgi?id=188119
1115         <rdar://problem/42670811>
1116
1117         Reviewed by Matt Baker.
1118
1119         Make the background of the thread indicator widget darker.
1120
1121         Reduce the number of HTML elements and simplify CSS by removing the HTML element that drew an arrow and using clip-path on inline widgets instead.
1122
1123         * UserInterface/Views/DarkMode.css:
1124         (@media (prefers-dark-interface)):
1125         (.text-editor > .CodeMirror .execution-line):
1126         (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
1127         * UserInterface/Views/SourceCodeTextEditor.css:
1128         (.source-code.text-editor .CodeMirror-linewidget):
1129         (.source-code.text-editor > .CodeMirror .line-indicator-widget.inline):
1130         (@media (prefers-dark-interface)):
1131         (.source-code.text-editor > .CodeMirror .thread-widget.inline):
1132         * UserInterface/Views/SourceCodeTextEditor.js:
1133         (WI.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget):
1134         (WI.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues):
1135         * UserInterface/Views/TextEditor.css:
1136         (@media (prefers-dark-interface)):
1137         (.text-editor > .CodeMirror .execution-line.primary .CodeMirror-linenumber::after):
1138         * UserInterface/Views/Variables.css:
1139         (:root):
1140
1141 2018-08-01  Nikita Vasilyev  <nvasilyev@apple.com>
1142
1143         Web Inspector: Dark Mode: disabled breakpoints banner is too light
1144         https://bugs.webkit.org/show_bug.cgi?id=188120
1145         <rdar://problem/42671348>
1146
1147         Reviewed by Matt Baker.
1148
1149         * UserInterface/Views/DebuggerSidebarPanel.css:
1150         (@media (prefers-dark-interface)):
1151         (.sidebar > .panel.navigation.debugger .warning-banner):
1152
1153 2018-07-31  Joseph Pecoraro  <pecoraro@apple.com>
1154
1155         Web Inspector: Include a full URL tooltip when hovering the name in the Network Tab
1156         https://bugs.webkit.org/show_bug.cgi?id=188199
1157
1158         Reviewed by Matt Baker.
1159
1160         * UserInterface/Views/NetworkTableContentView.js:
1161         (WI.NetworkTableContentView.prototype._populateNameCell):
1162         Give a tooltip to the entire cell since the entire cell has interactivity.
1163
1164 2018-07-30  Nikita Vasilyev  <nvasilyev@apple.com>
1165
1166         Web Inspector: Dark Mode: Search sidebar panel text field has a white background
1167         https://bugs.webkit.org/show_bug.cgi?id=188128
1168         <rdar://problem/42678270>
1169
1170         Reviewed by Matt Baker.
1171
1172         Make the search bar in Search tab match the style of the filter bar.
1173
1174         * UserInterface/Views/DarkMode.css:
1175         (@media (prefers-dark-interface)):
1176         (:matches(.search-bar, .filter-bar) > input[type="search"],):
1177         (:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder):
1178         (:matches(.search-bar, .filter-bar) > input[type="search"]:focus):
1179         (.filter-bar > input[type="search"]): Deleted.
1180         (.filter-bar > input[type="search"]::placeholder): Deleted.
1181         (.filter-bar > input[type="search"]:focus): Deleted.
1182
1183 2018-07-26  Ryan Haddad  <ryanhaddad@apple.com>
1184
1185         Unreviewed, rolling out r234281.
1186
1187         Broke internal builds.
1188
1189         Reverted changeset:
1190
1191         "[Datalist] Add button to TextFieldInputs with a datalist"
1192         https://bugs.webkit.org/show_bug.cgi?id=187741
1193         https://trac.webkit.org/changeset/234281
1194
1195 2018-07-26  Aditya Keerthi  <akeerthi@apple.com>
1196
1197         [Datalist] Add button to TextFieldInputs with a datalist
1198         https://bugs.webkit.org/show_bug.cgi?id=187741
1199
1200         Reviewed by Tim Horton.
1201
1202         Add keyword completion for 'list-button'.
1203
1204         * UserInterface/External/CodeMirror/css.js:
1205         * UserInterface/Models/CSSKeywordCompletions.js:
1206
1207 2018-07-25  Nikita Vasilyev  <nvasilyev@apple.com>
1208
1209         Web Inspector: Dark Mode: Breakpoint editor in JS debugger has inconsistent background
1210         https://bugs.webkit.org/show_bug.cgi?id=188026
1211
1212         Reviewed by Matt Baker.
1213
1214         * UserInterface/Views/DarkMode.css:
1215         (@media (prefers-dark-interface)):
1216         (.edit-breakpoint-popover-condition):
1217         (.breakpoint-action-eval-editor):
1218
1219 2018-07-22  Nikita Vasilyev  <nvasilyev@apple.com>
1220
1221         Web Inspector: Dark Mode: remove odd-looking top border
1222         https://bugs.webkit.org/show_bug.cgi?id=187885
1223
1224         Reviewed by Matt Baker.
1225
1226         This border doesn't exist in the light mode, and it shouldn't be in the dark mode either.
1227
1228         * UserInterface/Views/DarkMode.css:
1229         (@media (prefers-dark-interface)):
1230         (body .toolbar):
1231
1232 2018-07-20  Nikita Vasilyev  <nvasilyev@apple.com>
1233
1234         Web Inspector: Dark Mode: Layers tab background should be dark
1235         https://bugs.webkit.org/show_bug.cgi?id=187660
1236         <rdar://problem/42179616>
1237
1238         Reviewed by Brian Burg.
1239
1240         * UserInterface/Views/Layers3DContentView.js:
1241         (WI.Layers3DContentView.prototype.initialLayout):
1242         * UserInterface/Views/Variables.css:
1243         (:root):
1244
1245 2018-07-19  Ross Kirsling  <ross.kirsling@sony.com>
1246
1247         Web Inspector: Layers visualization shouldn't select on mousedown
1248         https://bugs.webkit.org/show_bug.cgi?id=187488
1249
1250         Reviewed by Matt Baker.
1251
1252         * UserInterface/Views/Layers3DContentView.js:
1253         (WI.Layers3DContentView):
1254         (WI.Layers3DContentView.prototype.initialLayout):
1255         (WI.Layers3DContentView.prototype._canvasMouseDown):
1256         (WI.Layers3DContentView.prototype._canvasMouseUp):
1257         Don't update selection on mousedown, update on mouseup!
1258         Specifically, only update when mousedown & mouseup targets are the same and mousemove hasn't been triggered.
1259
1260 2018-07-19  Nikita Vasilyev  <nvasilyev@apple.com>
1261
1262         Web Inspector: Dark Mode: poor contrast for Search Tab's "the page's content has changed" message
1263         https://bugs.webkit.org/show_bug.cgi?id=187792
1264
1265         Reviewed by Brian Burg.
1266
1267         * UserInterface/Views/DarkMode.css:
1268         (@media (prefers-dark-interface)):
1269         (:root):
1270         Make the background color slightly more yellow and less red. This slightly dicreases the contrast
1271         but makes the text look less like an error.
1272
1273         * UserInterface/Views/SearchSidebarPanel.css:
1274         (@media (prefers-dark-interface)):
1275         (.sidebar > .panel.navigation.search.changed > .banner):
1276
1277 2018-07-18  Matt Baker  <mattbaker@apple.com>
1278
1279         Web Inspector: REGRESSION(r232591): CodeMirrorEditor should not use a RegExp lineSeparator option
1280         https://bugs.webkit.org/show_bug.cgi?id=187772
1281         <rdar://problem/42331640>
1282
1283         Reviewed by Joseph Pecoraro.
1284
1285         * UserInterface/Views/CodeMirrorEditor.js:
1286         (WI.CodeMirrorEditor.create):
1287         (WI.CodeMirrorEditor):
1288         CodeMirror should be left to auto-detect line separators. By default
1289         it detects \n, \r\n, and \r. By specifying a regular expression we
1290         merely cause problems when CodeMirror uses the supplied lineSeparator
1291         when joining its array of lines together.
1292
1293         * UserInterface/Views/TextEditor.js:
1294         (WI.TextEditor.set string.update):
1295         (WI.TextEditor.prototype.set string):
1296         This assertion was only true when we forced "\n" line endings everywhere.
1297         It no longer holds for source text with "\r\n" (Windows-style) line endings.
1298
1299 2018-07-16  Matt Baker  <mattbaker@apple.com>
1300
1301         Web Inspector: Fix execution highlighting after r233820
1302         https://bugs.webkit.org/show_bug.cgi?id=187703
1303         <rdar://problem/42246167>
1304
1305         Reviewed by Joseph Pecoraro.
1306
1307         * UserInterface/Views/SourceCodeTextEditor.js:
1308         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
1309         * UserInterface/Views/TextEditor.js:
1310         (WI.TextEditor.prototype.currentPositionToOriginalPosition):
1311         (WI.TextEditor.prototype._updateExecutionRangeHighlight):
1312
1313 2018-07-16  Aaron Chu  <aaron_chu@apple.com>
1314
1315         AX: Audit Tab should have an Audit Manager
1316         https://bugs.webkit.org/show_bug.cgi?id=184071
1317         <rdar://problem/38946364>
1318
1319         Reviewed by Brian Burg.
1320
1321         This implements the AuditManager for the audit feature. This patch revolves
1322         around building out an AuditManager that facilitates an audit. The AuditManager
1323         is responsible for managing and storing AuditReports and AuditTestSuites. It is
1324         also tasked to decide how to run a test -- whether as a test case or as a test
1325         suite. This patch also includes 4 models with which the AuditManager works to
1326         perform an audit and to generate a report. These models include AuditTestCase,
1327         which as a collection is stored inside an AuditTestSuite; and AuditResult,
1328         which, as a collection is stored inside an AuditReport.
1329
1330         * UserInterface/Controllers/AuditManager.js: Added.
1331         (WI.AuditManager):
1332         (WI.AuditManager.prototype.get testSuites):
1333         (WI.AuditManager.prototype.get reports):
1334         (WI.AuditManager.prototype.async.runAuditTestByRepresentedObject):
1335         (WI.AuditManager.prototype.reportForId):
1336         (WI.AuditManager.prototype.removeAllReports):
1337         (WI.AuditManager.prototype.async._runTestCase):
1338         * UserInterface/Main.html:
1339         * UserInterface/Models/AuditReport.js: Added.
1340         (WI.AuditReport):
1341         (WI.AuditReport.prototype.get representedTestCases):
1342         (WI.AuditReport.prototype.get representedTestSuite):
1343         (WI.AuditReport.prototype.get resultsData):
1344         (WI.AuditReport.prototype.get isWritable):
1345         (WI.AuditReport.prototype.get failedCount):
1346         (WI.AuditReport.prototype.addResult):
1347         (WI.AuditReport.prototype.close):
1348         * UserInterface/Models/AuditResult.js: Added.
1349         (WI.AuditResult):
1350         (WI.AuditResult.prototype.get testResult):
1351         (WI.AuditResult.prototype.get name):
1352         (WI.AuditResult.prototype.get logLevel):
1353         (WI.AuditResult.prototype.get failed):
1354         * UserInterface/Models/AuditTestCase.js: Added.
1355         (WI.AuditTestCase.prototype.get id):
1356         (WI.AuditTestCase.prototype.get name):
1357         (WI.AuditTestCase.prototype.get suite):
1358         (WI.AuditTestCase.prototype.get test):
1359         (WI.AuditTestCase.prototype.get setup):
1360         (WI.AuditTestCase.prototype.get tearDown):
1361         (WI.AuditTestCase.prototype.get errorDetails):
1362         (WI.AuditTestCase):
1363         * UserInterface/Models/AuditTestSuite.js: Added.
1364         (WI.AuditTestSuite):
1365         (WI.AuditTestSuite.testCaseDescriptors):
1366         (WI.AuditTestSuite.prototype.get id):
1367         (WI.AuditTestSuite.prototype.get name):
1368         (WI.AuditTestSuite.prototype.get testCases):
1369         (WI.AuditTestSuite.prototype._buildTestCasesFromDescriptors):
1370         * UserInterface/Test.html:
1371
1372 2018-07-16  Nikita Vasilyev  <nvasilyev@apple.com>
1373
1374         Web Inspector: Dark Mode: Console filter field buttons should be darker
1375         https://bugs.webkit.org/show_bug.cgi?id=187626
1376         <rdar://problem/42142744>
1377
1378         Reviewed by Brian Burg.
1379
1380         * UserInterface/Views/FindBanner.css:
1381         (@media (prefers-dark-interface)):
1382         (.find-banner > button.segmented):
1383         (.find-banner > button.segmented > .glyph):
1384
1385 2018-07-16  Nikita Vasilyev  <nvasilyev@apple.com>
1386
1387         Web Inspector: Dark Mode: selected item background color is too light
1388         https://bugs.webkit.org/show_bug.cgi?id=187691
1389         <rdar://problem/42225308>
1390
1391         Reviewed by Brian Burg.
1392
1393         * UserInterface/Views/DarkMode.css:
1394         (@media (prefers-dark-interface)):
1395         (:root):
1396         (.tree-outline.dom li.elements-drag-over .selection-area):
1397         (.tree-outline.dom:focus li.selected .selection-area):
1398
1399 2018-07-14  Kocsen Chung  <kocsen_chung@apple.com>
1400
1401         Ensure WebKit stack is ad-hoc signed
1402         https://bugs.webkit.org/show_bug.cgi?id=187667
1403
1404         Reviewed by Alexey Proskuryakov.
1405
1406         * Configurations/Base.xcconfig:
1407
1408 2018-07-13  Matt Baker  <mattbaker@apple.com>
1409
1410         Web Inspector: REGRESSION (r195723): Improve support for resources with '\r' and '\r\n' line endings
1411         https://bugs.webkit.org/show_bug.cgi?id=186453
1412         <rdar://problem/39689180>
1413
1414         Reviewed by Joseph Pecoraro.
1415
1416         Now that the frontend no longer uses offsets from the original source
1417         file to calculate positions within CodeMirror, it is possible to support
1418         resources with '\r' and '\r\n' line endings in the editor.
1419
1420         * UserInterface/Views/CodeMirrorEditor.js:
1421         (WI.CodeMirrorEditor.create):
1422         (WI.CodeMirrorEditor):
1423
1424 2018-07-13  Matt Baker  <mattbaker@apple.com>
1425
1426         Web Inspector: Basic blocks highlighting should use line/column locations instead of offsets
1427         https://bugs.webkit.org/show_bug.cgi?id=187613
1428         <rdar://problem/42131808>
1429
1430         Reviewed by Joseph Pecoraro.
1431
1432         * UserInterface/Controllers/BasicBlockAnnotator.js:
1433         Basic blocks sent from the backend include offsets into the original
1434         file, rather than line/column locations. In order to translate to positions
1435         within CodeMirror, we need to calculate the original line and column
1436         for each block.
1437
1438         (WI.BasicBlockAnnotator.prototype.insertAnnotations):
1439         (WI.BasicBlockAnnotator.prototype._calculateBasicBlockPositions.offsetToPosition):
1440         (WI.BasicBlockAnnotator.prototype._calculateBasicBlockPositions):
1441         (WI.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
1442         (WI.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
1443         (WI.BasicBlockAnnotator.prototype._highlightTextForBasicBlock):
1444
1445         * UserInterface/Models/SourceCodePosition.js:
1446         (WI.SourceCodePosition.prototype.offsetColumn):
1447
1448         * UserInterface/Views/TextEditor.js:
1449         (WI.TextEditor.prototype.getTextInRange):
1450         (WI.TextEditor.prototype.addStyleToTextRange):
1451         Better encapsulation for CodeMirror positions.
1452
1453         * UserInterface/Workers/Formatter/FormatterUtilities.js:
1454         (get if):
1455         Update String.prototype.lineEndings to support additional line separators.
1456
1457 2018-07-13  Matt Baker  <mattbaker@apple.com>
1458
1459         Web Inspector: Execution highlighting in the frontend should be line/column-based
1460         https://bugs.webkit.org/show_bug.cgi?id=187532
1461         <rdar://problem/42035580>
1462
1463         Reviewed by Joseph Pecoraro.
1464
1465         Source code offsets from Esprima should not be used to calculate ranges
1466         in CodeMirror for expression highlighting.
1467
1468         This also fixes a long standing bug when adjusting for the starting
1469         position of an inline script. Previously the start offset from the script
1470         TextRange was used for this purpose, but the value is often incorrect (see
1471         https://bugs.webkit.org/show_bug.cgi?id=187532#c5). By using the starting
1472         line/column instead, we avoid the problem.
1473
1474         * UserInterface/Models/ScriptSyntaxTree.js:
1475         (WI.ScriptSyntaxTree.prototype.containersOfPosition):
1476         (WI.ScriptSyntaxTree.prototype.containersOfOffset): Deleted.
1477
1478         * UserInterface/Models/SourceCodePosition.js:
1479         (WI.SourceCodePosition.prototype.offsetColumn):
1480
1481         * UserInterface/Views/SourceCodeTextEditor.js:
1482         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.toInlineScriptPosition):
1483         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.fromInlineScriptPosition):
1484         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
1485         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.convertRangeOffsetsToSourceCodeOffsets): Deleted.
1486
1487         * UserInterface/Views/TextEditor.js:
1488         (WI.TextEditor.prototype._updateExecutionRangeHighlight):
1489
1490 2018-07-13  Matt Baker  <mattbaker@apple.com>
1491
1492         Web Inspector: SourceCodePosition.js missing from Test.html
1493         https://bugs.webkit.org/show_bug.cgi?id=187644
1494
1495         Reviewed by Brian Burg.
1496
1497         * UserInterface/Test.html:
1498
1499 2018-07-12  Matt Baker  <mattbaker@apple.com>
1500
1501         Web Inspector: Type token positioning should use line/column locations from Esprima instead of offsets
1502         https://bugs.webkit.org/show_bug.cgi?id=187612
1503         <rdar://problem/42131910>
1504
1505         Reviewed by Joseph Pecoraro.
1506
1507         * UserInterface/Controllers/TypeTokenAnnotator.js:
1508         (WI.TypeTokenAnnotator.prototype.insertAnnotations):
1509         (WI.TypeTokenAnnotator.prototype._insertTypeToken):
1510         (WI.TypeTokenAnnotator.prototype._insertToken):
1511         Use line/column locations, instead of offsets, from the AST when calculating
1512         token positions for CodeMirror. Once in CodeMirror's string space, we
1513         can safely convert to/from offsets.
1514
1515         * UserInterface/Models/ScriptSyntaxTree.js:
1516         Retrieve line/column locations for AST nodes, in addition to offsets.
1517         Offsets into the original file are still needed for getting type information
1518         from the profiler in the backend.
1519
1520         (WI.ScriptSyntaxTree):
1521         (WI.ScriptSyntaxTree.prototype.filterByRange):
1522         Filter by positions, which can be safely used from CodeMirror, instead of offsets.
1523
1524         (WI.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1525         (WI.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange): Deleted.
1526
1527         * UserInterface/Models/SourceCodePosition.js:
1528         Add convenience methods for comparing line/column positions, and for
1529         converting to the format expected by CodeMirror. SourceCodePosition could
1530         be made to interoperate with CodeMirror by exposing properties `line`
1531         and `ch`, but making the conversion explicit improves code readability.
1532
1533         (WI.SourceCodePosition.prototype.equals):
1534         (WI.SourceCodePosition.prototype.isBefore):
1535         (WI.SourceCodePosition.prototype.isAfter):
1536         (WI.SourceCodePosition.prototype.isWithin):
1537         (WI.SourceCodePosition.prototype.toCodeMirror):
1538         (WI.SourceCodePosition):
1539
1540         * UserInterface/Views/TextEditor.js:
1541         (WI.TextEditor.prototype.visibleRangePositions):
1542         (WI.TextEditor.prototype.originalPositionToCurrentPosition):
1543         (WI.TextEditor.prototype.currentOffsetToCurrentPosition):
1544         (WI.TextEditor.prototype.currentPositionToCurrentOffset):
1545         (WI.TextEditor.prototype.setInlineWidget):
1546
1547 2018-07-10  Fujii Hironori  <Hironori.Fujii@sony.com>
1548
1549         REGRESSION(r229932) Use of uninitialized value in subroutine entry at copy-user-interface-resources.pl
1550         https://bugs.webkit.org/show_bug.cgi?id=187511
1551
1552         Reviewed by Brian Burg.
1553
1554         copy-user-interface-resources.pl output warning messages unless
1555         BUILT_PRODUCTS_DIR and BUILT_PRODUCTS_DIR env vars are defined.
1556
1557         * Scripts/copy-user-interface-resources.pl:
1558         (webInspectorUIAdditionsDir): Added. Return UNDEF if
1559         BUILT_PRODUCTS_DIR and SDKROOT env vars aren't defined.
1560         (combineOrStripResourcesForWebKitAdditions): Check
1561         $webInspectorUIAdditionsDir is defined.
1562
1563 2018-07-10  Ross Kirsling  <rkirsling@gmail.com>
1564
1565         Web Inspector: Layers inspector should allow control-dragging to pan the 3D render
1566         https://bugs.webkit.org/show_bug.cgi?id=185109
1567
1568         Reviewed by Matt Baker.
1569
1570         Addressed in the three.js repo itself (https://github.com/mrdoob/three.js/pull/13972),
1571         so this patch simply updates three.js and its OrbitControls module.
1572
1573         * UserInterface/External/three.js/LICENSE:
1574         * UserInterface/External/three.js/three.js:
1575         Update to r94.
1576
1577         * UserInterface/External/three.js/OrbitControls.js:
1578         Update to latest.
1579
1580         * UserInterface/Views/Layers3DContentView.js:
1581         (WI.Layers3DContentView.prototype.initialLayout):
1582         (WI.Layers3DContentView.prototype._restrictPan):
1583         Adapt to recent changes in three.js.
1584
1585 2018-07-10  Matt Baker  <mattbaker@apple.com>
1586
1587         Web Inspector: Remove unused NavigationSidebarPanel.treeElementAddedOrChanged
1588         https://bugs.webkit.org/show_bug.cgi?id=187508
1589
1590         Reviewed by Joseph Pecoraro.
1591
1592         * UserInterface/Views/NavigationSidebarPanel.js:
1593         (WI.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
1594         (WI.NavigationSidebarPanel.prototype.treeElementAddedOrChanged): Deleted.
1595
1596 2018-07-10  Matt Baker  <mattbaker@apple.com>
1597
1598         Web Inspector: REGRESSION (r217505): Debugger content view doesn't update when left sidebar is collapsed
1599         https://bugs.webkit.org/show_bug.cgi?id=187482
1600         <rdar://problem/41989190>
1601
1602         Reviewed by Brian Burg.
1603
1604         Subclasses of NavigationSidebarPanel must process tree selection changes
1605         even when collapsed. Sidebar panels perform critical controller tasks
1606         for their tabs, such as updating the view when pausing in the debugger,
1607         and when the hierarchical path component selection changes.
1608
1609         * UserInterface/Views/DebuggerSidebarPanel.js:
1610         (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
1611         * UserInterface/Views/ResourceSidebarPanel.js:
1612         (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange):
1613         * UserInterface/Views/SearchSidebarPanel.js:
1614         (WI.SearchSidebarPanel.prototype._treeSelectionDidChange):
1615         * UserInterface/Views/SourcesSidebarPanel.js:
1616         (WI.SourcesSidebarPanel.prototype._treeSelectionDidChange):
1617         * UserInterface/Views/StorageSidebarPanel.js:
1618         (WI.StorageSidebarPanel._treeSelectionDidChange):
1619
1620 2018-07-09  Brian Burg  <bburg@apple.com>
1621
1622         REGRESSION: Web Inspector no longer pauses in internal injected scripts like WDFindNodes.js
1623         https://bugs.webkit.org/show_bug.cgi?id=187350
1624         <rdar://problem/41728249>
1625
1626         Reviewed by Matt Baker.
1627
1628         * UserInterface/Base/Setting.js: Add a new setting to allow pausing in internal scripts.
1629         * UserInterface/Controllers/DebuggerManager.js: Listen to the setting change and toggle
1630         the backend setting accordingly. The default is to not break into internal scripts.
1631
1632         * UserInterface/Views/SettingsTabContentView.js:
1633         (WI.SettingsTabContentView.prototype._createDebugSettingsView):
1634         Expose the new setting in the Debug settings panel.
1635
1636 2018-07-06  Nikita Vasilyev  <nvasilyev@apple.com>
1637
1638         Web Inspector: Dark Mode: resource search field has white text on white background
1639         https://bugs.webkit.org/show_bug.cgi?id=187423
1640
1641         Reviewed by Timothy Hatcher.
1642
1643         Match the colors of sidebar filter fields.
1644
1645         * UserInterface/Views/DarkMode.css:
1646         (@media (prefers-dark-interface)):
1647         (.find-banner > input[type="search"]):
1648
1649 2018-07-04  Tim Horton  <timothy_horton@apple.com>
1650
1651         Introduce PLATFORM(IOSMAC)
1652         https://bugs.webkit.org/show_bug.cgi?id=187315
1653
1654         Reviewed by Dan Bernstein.
1655
1656         * Configurations/Base.xcconfig:
1657
1658 2018-06-28  Matt Baker  <mattbaker@apple.com>
1659
1660         Web Inspector: REGRESSION (r213000): copy from Search results content view broken
1661         https://bugs.webkit.org/show_bug.cgi?id=187020
1662         <rdar://problem/40928766>
1663
1664         Reviewed by Timothy Hatcher.
1665
1666         Since WI._copy listens for a copy event from the document, it is called
1667         after CodeMirror handles the event and sets clipboard data. If WI._copy
1668         finds a custom copy handler to call, that handler can determine whether
1669         to overwrite the current clipboard data, or leave it alone.
1670
1671         SearchTabContentView's handleCopyEvent method should return early if the
1672         content tree outline doesn't have the focus. This prevents the selection
1673         in the TextEditor from being overwritten, without any special knowledge of
1674         the content browser's current view.
1675
1676         * UserInterface/Views/SearchTabContentView.js:
1677         (WI.SearchTabContentView.prototype.handleCopyEvent):
1678
1679 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
1680
1681         Web Inspector: Dark Mode: Box Model section should have dark background
1682         https://bugs.webkit.org/show_bug.cgi?id=186976
1683
1684         Reviewed by Brian Burg.
1685
1686         Replace all instances of black text on white background with the default text and background colors.
1687
1688         * UserInterface/Views/BoxModelDetailsSectionRow.css:
1689         (@media (prefers-dark-interface)):
1690         (.details-section .row.box-model):
1691         (.details-section .row.box-model .label):
1692         (.details-section .row.box-model :matches(.position, .margin, .border, .padding, .content)):
1693         (.details-section .row.box-model:not(.hovered) :matches(.margin, .border, .padding, .content),):
1694         (.details-section .row.box-model .margin):
1695         (.details-section .row.box-model .border):
1696
1697 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
1698
1699         Web Inspector: Dark Mode: color outline is too dark
1700         https://bugs.webkit.org/show_bug.cgi?id=186975
1701
1702         Reviewed by Brian Burg.
1703
1704         Make the outline lighter than the background.
1705
1706         * UserInterface/Views/DarkMode.css:
1707         (@media (prefers-dark-interface)):
1708         (.hover-menu > svg > :matches(path, rect)):
1709
1710 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
1711
1712         Web Inspector: Dark Mode: Media query names are unreadable
1713         https://bugs.webkit.org/show_bug.cgi?id=186974
1714
1715         Reviewed by Brian Burg.
1716
1717         Change media query names from dark blue to light blue.
1718
1719         * UserInterface/Views/DarkMode.css:
1720         (@media (prefers-dark-interface)):
1721         (.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket):
1722         (.cm-s-default .cm-attribute):
1723
1724 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
1725
1726         Web Inspector: Dark Mode: Network headers colors are too dim
1727         https://bugs.webkit.org/show_bug.cgi?id=186985
1728
1729         Reviewed by Brian Burg.
1730
1731         Increasing the luminance of network header colors by increasing lightness and brightness.
1732
1733         * UserInterface/Views/DarkMode.css:
1734         (@media (prefers-dark-interface)):
1735         (:root):
1736
1737 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
1738
1739         Web Inspector: Dark Mode: Font guideline colors are too bright
1740         https://bugs.webkit.org/show_bug.cgi?id=186986
1741
1742         Reviewed by Brian Burg.
1743
1744         Make the guidelines less distractive from the font glyphs.
1745
1746         * UserInterface/Views/DarkMode.css:
1747         (@media (prefers-dark-interface)):
1748         (.content-view.resource.font .preview > .line):
1749         (.content-view.resource.font .metric.top):
1750         (.content-view.resource.font .metric.baseline):
1751         (.content-view.resource.font .metric.middle):
1752         (.content-view.resource.font .metric.xheight):
1753         (.content-view.resource.font .metric.bottom):
1754
1755 2018-06-20  Daniel Bates  <dabates@apple.com>
1756
1757         Web Inspector: All non-Same-Site cookies are marked as Same-Site Strict in Storage tab
1758         https://bugs.webkit.org/show_bug.cgi?id=186867
1759         <rdar://problem/41175424>
1760
1761         Reviewed by Matt Baker.
1762
1763         Fixes an issue where cookies that do not have a Same-Site policy would be marked up as Same-
1764         Site Strict in Web Inspector's cookie storage content view (under the storage tab).
1765
1766         * UserInterface/Views/CookieStorageContentView.js:
1767         (WI.CookieStorageContentView.prototype._rebuildTable): Only compute the display name if
1768         we cookie.sameSite is non-null and is not WI.Cookie.SameSiteType.None. Moreover, remove
1769         an extraneous call to WI.Cookie.parseSameSiteAttributeValue() as cookie.SameSite represents
1770         the already parsed value (one of the WI.Cookie.SameSiteType-scoped values).
1771
1772 2018-06-18  Brian Burg  <bburg@apple.com>
1773
1774         Web Inspector: TypeError: Array.prototype.sort passed bad value in NetworkTableContentView _updateSortAndFilteredEntries
1775         https://bugs.webkit.org/show_bug.cgi?id=186787
1776         <rdar://problem/41175680>
1777
1778         Reviewed by Timothy Hatcher.
1779
1780         * UserInterface/Views/NetworkTableContentView.js:
1781         (WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries):
1782
1783 2018-06-13  Nikita Vasilyev  <nvasilyev@apple.com>
1784
1785         Web Inspector: open source Dark Mode
1786         https://bugs.webkit.org/show_bug.cgi?id=186606
1787
1788         Reviewed by Timothy Hatcher.
1789
1790         The dark mode is currently only available on macOS Mojave via prefers-dark-interface CSS media query.
1791
1792         * UserInterface/Main.html:
1793         * UserInterface/Views/DarkMode.css: Added.
1794         (@media (prefers-dark-interface)):
1795         (:root):
1796         (body.window-inactive):
1797         (body.window-inactive *):
1798         (#main):
1799         (.tree-outline.dom li.selected .selection-area):
1800         (.tab-bar > .item > .icon):
1801         (.go-to-arrow):
1802         (.resource-link,):
1803         (.expand-list-button):
1804         (:matches(img, canvas).show-grid):
1805         (.formatted-object,):
1806         (.formatted-null,):
1807         (.editing):
1808         (.editing, .editing *):
1809         (.text-editor > .CodeMirror .execution-line):
1810         (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
1811         (.details-section > .header):
1812         (.details-section > .header > label):
1813         (.details-section .details-section,):
1814         (.details-section .details-section:not(.collapsed) > .header):
1815         (.details-section > .content > .group > .row.simple > .label):
1816         (.details-section > .content > .group:nth-child(even)):
1817         (.details-section > .content > .group > .row:matches(.empty, .text)):
1818         (.data-grid th):
1819         (.data-grid td .subtitle):
1820         (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
1821         (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
1822         (.data-grid tr.editable .cell-content > input):
1823         (.data-grid td.spanning):
1824         (.object-tree,):
1825         (.object-preview .name):
1826         (.object-preview > .size):
1827         (.tab-bar):
1828         (.tab-bar > .item):
1829         (.tab-bar > .item > .title):
1830         (.tab-bar > .item:not(.disabled).selected):
1831         (.tab-bar:not(.animating) > .item:not(.selected):hover):
1832         (.tab-bar > .item > .close):
1833         (body.window-inactive .tab-bar):
1834         (body.window-inactive .tab-bar > .item):
1835         (body.window-inactive .tab-bar > .item.selected):
1836         (body.window-inactive .tab-bar > .item > .title):
1837         (body .toolbar):
1838         (body.window-inactive .toolbar):
1839         (body.latest-mac .toolbar .item.button,):
1840         (body.latest-mac .toolbar .search-bar > input[type="search"]):
1841         (body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
1842         (body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder):
1843         (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder):
1844         (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button):
1845         (body.latest-mac .toolbar .dashboard-container):
1846         (body.latest-mac .toolbar .item.button:active):
1847         (body.latest-mac.window-inactive .toolbar .item.button,):
1848         (.navigation-bar .item.divider):
1849         (.toolbar .item.button):
1850         (.toolbar .item.button:not(.disabled):active):
1851         (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
1852         (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)):
1853         (.toolbar .dashboard.default > .item > div):
1854         (.toolbar .dashboard.default > .item.enabled > div):
1855         (.toolbar .dashboard.default > .item.enabled:hover):
1856         (.toolbar .dashboard.default > .item.enabled:hover > div):
1857         (.toolbar .dashboard.default > .resourcesCount > img,):
1858         (body.latest-mac .toolbar .dashboard .item.button):
1859         (.dashboard-container .advance-arrow):
1860         (.toolbar .dashboard.debugger):
1861         (.dashboard.debugger .navigation-bar .item.button > .glyph):
1862         (.dashboard.debugger > .location .function-name):
1863         (.dashboard.debugger > .location .go-to-link):
1864         (.dashboard.debugger > .divider):
1865         (.popover .edit-breakpoint-popover-content > label.toggle):
1866         (.popover .edit-breakpoint-popover-content > table > tr > th):
1867         (.breakpoint-action-block-body):
1868         (.breakpoint-action-block-body > .description):
1869         (.breakpoint-action-append-button,):
1870         (.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
1871         (.navigation-bar .item.button):
1872         (.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
1873         (.spreadsheet-css-declaration):
1874         (.spreadsheet-css-declaration .selector:focus,):
1875         (.spreadsheet-css-declaration.locked .origin::after):
1876         (.spreadsheet-css-declaration .origin .go-to-link,):
1877         (.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
1878         (.spreadsheet-style-declaration-editor .property.has-warning):
1879         (.spreadsheet-style-declaration-editor .property.has-warning .warning):
1880         (.spreadsheet-css-declaration .media-label):
1881         (.quick-console):
1882         (.syntax-highlighted,):
1883         (.cm-s-default,):
1884         (.CodeMirror .jump-to-symbol-highlight,):
1885         (.console-prompt):
1886         (.completion-suggestions):
1887         (.completion-suggestions-container > .item):
1888         (.CodeMirror-cursor):
1889         (.CodeMirror .CodeMirror-gutters):
1890         (.cm-s-default .cm-link):
1891         (.cm-s-default .cm-m-xml.cm-attribute,):
1892         (.cm-s-default .cm-meta):
1893         (.cm-s-default .cm-variable-3):
1894         (.cm-s-default .cm-builtin):
1895         (.tree-outline .item .subtitle):
1896         (.object-tree-property .getter,):
1897         (.item.object-tree-property.prototype-property):
1898         (.object-tree-property.prototype-property:hover,):
1899         (.object-tree-property .value.error):
1900         (.tree-outline.dom):
1901         (.tree-outline.dom li.selected + ol.children.expanded):
1902         (.tree-outline.dom .shadow):
1903         (.tree-outline.dom li.parent.shadow + ol.children.expanded,):
1904         (.showing-find-banner .tree-outline.dom .search-highlight):
1905         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):
1906         (.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
1907         (.spreadsheet-css-declaration.locked):
1908         (.spreadsheet-css-declaration .selector.style-attribute):
1909         (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
1910         (.inline-swatch):
1911         (.spreadsheet-style-panel .section-header):
1912         (.spreadsheet-style-panel .section-header .node-link:hover):
1913         (.computed-style-properties.details-section):
1914         (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):
1915         (.table,):
1916         (.table > .header > .sortable:active):
1917         (.table > .header > :matches(.sort-ascending, .sort-descending)):
1918         (.table > .header > :matches(.sort-ascending, .sort-descending)::after):
1919         (.scope-bar > li):
1920         (.timeline-overview > .navigation-bar.timelines):
1921         (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
1922         (.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):
1923         (.time-icon .icon):
1924         (.data-grid th:matches(.sort-ascending, .sort-descending)):
1925         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
1926         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
1927         (.content-view.settings .navigation-bar):
1928         (.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
1929         (.new-tab.tab.content-view):
1930         (.filter-bar > input[type="search"]):
1931         (.filter-bar > input[type="search"]::placeholder):
1932         (.filter-bar > input[type="search"]:focus):
1933         (.content-view.resource.image):
1934         (.console-messages):
1935         (.console-item):
1936         (.console-messages:focus .console-item.selected):
1937         (.console-messages:focus .console-item.selected + .console-item):
1938         (.console-session:first-of-type .console-session-header):
1939         (.console-session:not(:first-of-type) .console-session-header):
1940         (.console-messages a):
1941         (.console-messages a:hover):
1942         (.console-messages:focus .console-item.selected::after):
1943         (.console-error-level):
1944         (.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
1945         (.console-warning-level):
1946         (.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
1947         (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted):
1948         (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):
1949         (.source-code.text-editor > .CodeMirror .error):
1950         (.source-code.text-editor > .CodeMirror .warning):
1951         (.source-code.text-editor > .CodeMirror .issue-widget):
1952         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
1953         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow):
1954         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
1955         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow):
1956         (.console-message .syntax-highlighted):
1957         (.console-warning-level .console-message-text):
1958         (.console-error-level .console-message-text):
1959         (.console-user-command > .console-message-text):
1960         (.console-message .repeat-count):
1961         (.call-frame .subtitle,):
1962         (.call-frame:hover .subtitle .source-link,):
1963         (.call-frame .separator):
1964         (.quick-console.showing-log):
1965         (.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)):
1966         (.network-resource-detail):
1967         (.network-resource-detail .item.close > .glyph):
1968         (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
1969         (.resource-headers .value):
1970         (.network-table .cell.domain > .lock):
1971         (.resource-sizes > .content .label):
1972         (.popover.waterfall-popover):
1973         (.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
1974         (.resource-timing-breakdown > table > tr > td.label,):
1975         (.resource-timing-breakdown > table hr):
1976         (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
1977         (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
1978         (.web-socket.content-view .data-grid table.data tr.revealed):
1979         (.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
1980         (.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):
1981         (.item.action:not(.initial-state)::before):
1982         (.tree-outline .item.action.visual:not(.selected, .invalid)):
1983         (.item.action:not(.initial-state) > .icon):
1984         (.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):
1985         (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon,):
1986         (.content-view.canvas > .preview > img,):
1987         (.content-view.canvas-overview):
1988         (.content-view.canvas-overview .content-view.canvas):
1989         (.content-view.canvas-overview .content-view.canvas.is-recording):
1990         (.content-view.canvas-overview .content-view.canvas.is-recording > header):
1991         (.content-view.canvas-overview .content-view.canvas > header > .titles > .title):
1992         (.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,):
1993         (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
1994         (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle):
1995         (.content-view.canvas:not(.tab)):
1996         (.content-view:not(.tab).recording):
1997         (.content-view:not(.tab).recording > header > .slider-container):
1998         (.content-view:not(.tab).recording > header > .slider-container > input[type=range]):
1999         (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):
2000         (.progress-view > .titles > .title):
2001         (.progress-view > .titles > .subtitle):
2002         (.indeterminate-progress-spinner):
2003         (.content-view.shader-program > .text-editor.shader):
2004         (.content-view.shader-program > .text-editor.shader > .type-title):
2005         (.item.shader-program .status > img):
2006         (.open-resource-dialog):
2007         (.open-resource-dialog > .field > input):
2008         (.open-resource-dialog > .field > input::placeholder):
2009         (.open-resource-dialog > .tree-outline .item.selected):
2010         (.open-resource-dialog > .field::before):
2011
2012 2018-06-09  Dan Bernstein  <mitz@apple.com>
2013
2014         [Xcode] Clean up and modernize some build setting definitions
2015         https://bugs.webkit.org/show_bug.cgi?id=186463
2016
2017         Reviewed by Sam Weinig.
2018
2019         * Configurations/Base.xcconfig: Removed definition for macOS 10.11.
2020         * Configurations/DebugRelease.xcconfig: Ditto.
2021         * Configurations/Version.xcconfig: Ditto.
2022
2023 2018-06-05  Matt Baker  <mattbaker@apple.com>
2024
2025         Web Inspector: Tab picker is briefly visible when TabBar initially shown
2026         https://bugs.webkit.org/show_bug.cgi?id=186317
2027
2028         Reviewed by Joseph Pecoraro.
2029
2030         * UserInterface/Views/TabBar.js:
2031         (WI.TabBar): Picker should be initially hidden.
2032
2033 2018-06-05  Nikita Vasilyev  <nvasilyev@apple.com>
2034
2035         Web Inspector: Text in "Add New Class" in auto-capitalizes
2036         https://bugs.webkit.org/show_bug.cgi?id=186311
2037
2038         Reviewed by Matt Baker.
2039
2040         Disable spellcheck to prevent auto-capitalization.
2041
2042         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
2043         (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
2044
2045 2018-06-04  Matt Baker  <mattbaker@apple.com>
2046
2047         Web Inspector: Cannot copy a link address in Elements tab
2048         https://bugs.webkit.org/show_bug.cgi?id=186281
2049         <rdar://problem/39193355>
2050
2051         Reviewed by Brian Burg.
2052
2053         * UserInterface/Views/ContextMenuUtilities.js:
2054         (WI.appendContextMenuItemsForURL):
2055
2056 2018-05-30  Daniel Bates  <dabates@apple.com>
2057
2058         Web Inspector: Annotate Same-Site cookies
2059         https://bugs.webkit.org/show_bug.cgi?id=184897
2060         <rdar://problem/35178209>
2061
2062         Reviewed by Brian Burg.
2063
2064         Add a new column for the value of the Same-Site cookie attribute to the resource cookie content
2065         view (shown for a resource under the Network tab) and cookie storage content view (shown under
2066         the Storage tab).
2067
2068         The SameSite column in the resource cookie content view reflects the parsing of the Same-Site
2069         attribute from the HTTP response by Web Inspector. This parsing is materially consistent with
2070         the parsing of the SameSite atttribute in CFNetwork. The Same-Site column in the cookie storage
2071         content view reflects the Same-Site cookie policy associated with the cookies provided by the
2072         network stack, if supported. This column will be blank on systems whose network stack does not
2073         support Same-Site cookies (e.g libsoup).
2074
2075         * Localizations/en.lproj/localizedStrings.js:
2076         * UserInterface/Controllers/HARBuilder.js:
2077         (WI.HARBuilder.cookies):
2078         * UserInterface/Models/Cookie.js:
2079         (WI.Cookie):
2080         (WI.Cookie.displayNameForSameSiteType):
2081         (WI.Cookie.parseSameSiteAttributeValue):
2082         (WI.Cookie.parseSetCookieResponseHeader):
2083         * UserInterface/Views/CookieStorageContentView.js:
2084         (WI.CookieStorageContentView.prototype._rebuildTable):
2085         (WI.CookieStorageContentView.prototype._sortDataGrid):
2086         * UserInterface/Views/ResourceCookiesContentView.js:
2087         (WI.ResourceCookiesContentView.prototype.tablePopulateCell):
2088         (WI.ResourceCookiesContentView.prototype._generateSortComparator):
2089         (WI.ResourceCookiesContentView.prototype._refreshResponseCookiesSection):
2090
2091 2018-05-25  Matt Baker  <mattbaker@apple.com>
2092
2093         Web Inspector: Popover dismissed while attempting to move cursor inside
2094         https://bugs.webkit.org/show_bug.cgi?id=185741
2095         <rdar://problem/40340938>
2096
2097         Reviewed by Joseph Pecoraro.
2098
2099         Hovering a token within the bounds of the current popover should not
2100         show a new popover. This prevents the popover from being dismissed when
2101         the cursor passes over a token under the transparent portion of the
2102         popover frame.
2103
2104         * UserInterface/Views/SourceCodeTextEditor.js:
2105         (WI.SourceCodeTextEditor.prototype._showPopover):
2106
2107 2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
2108
2109         Unreviewed, rolling out r232052.
2110
2111         Breaks internal builds.
2112
2113         Reverted changeset:
2114
2115         "Use more C++17"
2116         https://bugs.webkit.org/show_bug.cgi?id=185176
2117         https://trac.webkit.org/changeset/232052
2118
2119 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
2120
2121         Use more C++17
2122         https://bugs.webkit.org/show_bug.cgi?id=185176
2123
2124         Reviewed by JF Bastien.
2125
2126         * Configurations/Base.xcconfig:
2127
2128 2018-05-18  Devin Rousso  <webkit@devinrousso.com>
2129
2130         Web Inspector: Canvas: put `hasVisualEffect` behind an experimental setting
2131         https://bugs.webkit.org/show_bug.cgi?id=185758
2132
2133         Reviewed by Matt Baker.
2134
2135         * Localizations/en.lproj/localizedStrings.js:
2136
2137         * UserInterface/Base/Setting.js:
2138
2139         * UserInterface/Models/RecordingAction.js:
2140         (WI.RecordingAction.prototype.process):
2141
2142         * UserInterface/Views/RecordingActionTreeElement.js:
2143         (WI.RecordingActionTreeElement.prototype.onattach):
2144
2145         * UserInterface/Views/SettingsTabContentView.js:
2146         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2147
2148 2018-05-16  Devin Rousso  <webkit@devinrousso.com>
2149
2150         Web Inspector: create a navigation item for toggling the overlay rulers/guides
2151         https://bugs.webkit.org/show_bug.cgi?id=185644
2152
2153         Reviewed by Matt Baker.
2154
2155         * Localizations/en.lproj/localizedStrings.js:
2156         * UserInterface/Base/Setting.js:
2157         * UserInterface/Views/DOMTreeContentView.js:
2158         (WI.DOMTreeContentView):
2159         (WI.DOMTreeContentView.prototype.get navigationItems):
2160         (WI.DOMTreeContentView.prototype.closed):
2161         (WI.DOMTreeContentView.prototype._showRulersChanged): Added.
2162         (WI.DOMTreeContentView.prototype._toggleShowRulers): Added.
2163
2164 2018-05-14  Nikita Vasilyev  <nvasilyev@apple.com>
2165
2166         Web Inspector: Canvas: Remove unused --value-visual-highlight CSS variable
2167         https://bugs.webkit.org/show_bug.cgi?id=185636
2168
2169         Reviewed by Matt Baker.
2170
2171         * UserInterface/Views/Variables.css:
2172         (:root):
2173
2174 2018-05-14  Devin Rousso  <webkit@devinrousso.com>
2175
2176         Web Inspector: Canvas tab: don't automatically select a recording when viewing a canvas
2177         https://bugs.webkit.org/show_bug.cgi?id=182950
2178
2179         Reviewed by Matt Baker.
2180
2181         * UserInterface/Views/CanvasSidebarPanel.js:
2182         (WI.CanvasSidebarPanel):
2183         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
2184         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
2185         (WI.CanvasSidebarPanel.prototype._canvasChanged):
2186         (WI.CanvasSidebarPanel.prototype._recordingChanged):
2187         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
2188         Add a "dummy" ScopeBarItem to the recording ScopeBar that is selected whenever a TreeElement
2189         that doesn't correspond to a Recording is selected. This way, the Recording ScopeBar will
2190         become deselected, and the list of actions will disappear. Clicking on the Recording ScopeBar
2191         will show the previously selected Recording.
2192
2193 2018-05-08  Matt Baker  <mattbaker@apple.com>
2194
2195         Web Inspector: Console drawer resizing is broken when console prompt has >1 line of code
2196         https://bugs.webkit.org/show_bug.cgi?id=185369
2197         <rdar://problem/40013202>
2198
2199         Reviewed by Devin Rousso.
2200
2201         Mouse offset calculation should account for the height of the quick console.
2202         The only reason resizing worked with the single-line quick console is that
2203         the offset calculation included the resizer height, which is very close
2204         to that of the single-line quick console (27px and 30px respectively).
2205
2206         * UserInterface/Views/ConsoleDrawer.js:
2207
2208 2018-05-04  Devin Rousso  <webkit@devinrousso.com>
2209
2210         Web Inspector: simplify the WI.Collection interface
2211         https://bugs.webkit.org/show_bug.cgi?id=185187
2212
2213         Reviewed by Brian Burg.
2214
2215         * UserInterface/Models/Collection.js:
2216         (WI.Collection.prototype.get size): Added.
2217         (WI.Collection.prototype.has): Added.
2218         (WI.Collection.prototype.toJSON):
2219         (WI.Collection.prototype.[Symbol.iterator]): Added.
2220         (WI.Collection.prototype.get items): Deleted.
2221         (WI.Collection.prototype.toArray): Deleted.
2222
2223         * UserInterface/Controllers/CanvasManager.js:
2224         (WI.CanvasManager.prototype._removeCanvas):
2225         * UserInterface/Controllers/DOMDebuggerManager.js:
2226         (WebInspector.DOMDebuggerManager.prototype.get domBreakpoints):
2227         * UserInterface/Models/Frame.js:
2228         (WI.Frame.prototype.removeAllChildFrames):
2229         (WI.Frame.prototype.resourceForURL):
2230         (WI.Frame.prototype.removeAllResources):
2231         * UserInterface/Models/Script.js:
2232         (WI.Script):
2233         * UserInterface/Views/CanvasContentView.js:
2234         (WI.CanvasContentView.prototype.initialLayout):
2235         * UserInterface/Views/CanvasOverviewContentView.js:
2236         (WI.CanvasOverviewContentView.prototype._updateNavigationItems):
2237         * UserInterface/Views/CanvasSidebarPanel.js:
2238         (WI.CanvasSidebarPanel.prototype._recordingRemoved):
2239         (WI.CanvasSidebarPanel.prototype._canvasChanged):
2240         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
2241         * UserInterface/Views/CanvasTabContentView.js:
2242         (WI.CanvasTabContentView.prototype.attached):
2243         (WI.CanvasTabContentView.prototype._addCanvas):
2244         (WI.CanvasTabContentView.prototype._removeCanvas):
2245         * UserInterface/Views/CanvasTreeElement.js:
2246         (WI.CanvasTreeElement.prototype.onpopulate):
2247         * UserInterface/Views/CollectionContentView.js:
2248         (WI.CollectionContentView.prototype.initialLayout):
2249         (WI.CollectionContentView.prototype.attached):
2250         * UserInterface/Views/CookieStorageContentView.js:
2251         (WI.CookieStorageContentView.prototype._filterCookies):
2252         * UserInterface/Views/DebuggerSidebarPanel.js:
2253         (WI.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
2254         * UserInterface/Views/FolderizedTreeElement.js:
2255         (WI.FolderizedTreeElement.prototype.updateParentStatus):
2256         (WI.FolderizedTreeElement.prototype._shouldGroupIntoFolders):
2257         * UserInterface/Views/FrameTreeElement.js:
2258         (WI.FrameTreeElement.prototype.onpopulate):
2259         * UserInterface/Views/NavigationSidebarPanel.js:
2260         (WI.NavigationSidebarPanel.prototype.get contentTreeOutlines):
2261         * UserInterface/Views/NetworkTableContentView.js:
2262         (WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):
2263         * UserInterface/Views/OpenResourceDialog.js:
2264         (WI.OpenResourceDialog.prototype._addResourcesForFrame):
2265         (WI.OpenResourceDialog.prototype._addResourcesForTarget):
2266         * UserInterface/Views/TreeOutlineGroup.js:
2267         (WI.TreeOutlineGroup.prototype.get selectedTreeElement):
2268         (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
2269         * UserInterface/Views/WorkerTreeElement.js:
2270         (WI.WorkerTreeElement.prototype.onpopulate):
2271
2272 2018-05-04  Nikita Vasilyev  <nvasilyev@apple.com>
2273
2274         Web Inspector: Styles: Newly added unsupported properties sometimes don't have warnings
2275         https://bugs.webkit.org/show_bug.cgi?id=183097
2276         <rdar://problem/37843816>
2277
2278         Reviewed by Matt Baker.
2279
2280         Update status of properties warnings every time focus moves.
2281
2282         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2283         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
2284         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
2285         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
2286         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updatePropertiesStatus):
2287         * UserInterface/Views/SpreadsheetStyleProperty.js:
2288         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
2289
2290 2018-05-04  Devin Rousso  <webkit@devinrousso.com>
2291
2292         Web Inspector: Styles Redesign: ensure that tabbing through the last section wraps back to the first
2293         https://bugs.webkit.org/show_bug.cgi?id=181973
2294
2295         Reviewed by Matt Baker.
2296
2297         Unified delegate functions to start editing previous/next rules into a single function for
2298         simplicity.
2299
2300         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2301         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
2302
2303         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2304         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector):
2305         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange):
2306         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingAdjacentRule):
2307         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationEditorStartEditingAdjacentRule): Deleted.
2308
2309         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
2310         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusFirstSection):
2311         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusLastSection):
2312         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionStartEditingAdjacentRule):
2313         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingNextRule): Deleted.
2314         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingPreviousRule): Deleted.
2315
2316         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
2317         (WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusLastPseudoClassCheckbox):
2318         (WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusFilterBar):
2319         (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
2320         (WI.GeneralStyleDetailsSidebarPanel.prototype._handleForcedPseudoClassCheckboxKeydown):
2321         (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
2322         (WI.GeneralStyleDetailsSidebarPanel.prototype._handleFilterBarInputFieldKeyDown):
2323
2324         Drive-by fix: provide tabbing support for the Computed styles panel.
2325
2326         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2327         (WI.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule):
2328         (WI.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule):
2329
2330         * UserInterface/Views/ComputedStyleDetailsPanel.js:
2331         (WI.ComputedStyleDetailsPanel.prototype.focusFirstSection):
2332         (WI.ComputedStyleDetailsPanel.prototype.focusLastSection):
2333         (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule):
2334
2335 2018-05-04  Devin Rousso  <webkit@devinrousso.com>
2336
2337         Web Inspector: Canvas tab: Determine isFunction by looking at the prototype
2338         https://bugs.webkit.org/show_bug.cgi?id=184990
2339
2340         Reviewed by Brian Burg.
2341
2342         * UserInterface/Models/RecordingAction.js:
2343         (WI.RecordingAction.isFunctionForType):
2344         (WI.RecordingAction._prototypeForType):
2345         (WI.RecordingAction.prototype.async.swizzle):
2346
2347 2018-05-01  Devin Rousso  <webkit@devinrousso.com>
2348
2349         Web Inspector: Canvas tab: determine hasVisibleEffect for all actions immediately after recording is added
2350         https://bugs.webkit.org/show_bug.cgi?id=182995
2351
2352         Reviewed by Matt Baker.
2353
2354         Previously, we'd swizzle the entirety of the `WI.Recording` in one, which would usually
2355         freeze the UI, especially for larger recordings. This patch uses `WI.YieldableTask` to split
2356         the work and allow the rest of the UI to still be usable while `WI.Recording` are processing.
2357         Additionally, since we no longer have to worry about hangs, we can do more work upfront,
2358         such as calculating `hasVisibleEffect` and the current state of 2D canvases.
2359
2360         These changes require that all uses of `WI.Recording` call `process()` before attempting to
2361         use any `frames`/`actions`/`initialState`, as they will have their original payload values
2362         and will have not been swizzled or applied.
2363
2364         * Localizations/en.lproj/localizedStrings.js:
2365
2366         * UserInterface/Models/Recording.js:
2367         (WI.Recording):
2368         (WI.Recording.prototype.process):
2369         (WI.Recording.prototype.createContext): Added.
2370         (WI.Recording.prototype.async yieldableTaskWillProcessItem): Added.
2371         (WI.Recording.prototype.async yieldableTaskDidFinish): Added.
2372
2373         * UserInterface/Models/RecordingAction.js:
2374         (WI.RecordingAction):
2375         (WI.RecordingAction.prototype.process): Added.
2376         (WI.RecordingAction.prototype.async swizzle): Added.
2377         (WI.RecordingAction.prototype.apply):
2378         (WI.RecordingAction.prototype.toJSON):
2379         (WI.RecordingAction.prototype.set state): Deleted.
2380         (WI.RecordingAction.prototype.swizzle): Deleted.
2381         (WI.RecordingAction.prototype.apply.getContent): Deleted.
2382         (WI.RecordingAction.prototype.async _swizzle): Deleted.
2383         * UserInterface/Models/RecordingInitialStateAction.js:
2384         (WI.RecordingInitialStateAction):
2385
2386         * UserInterface/Views/CanvasSidebarPanel.js:
2387         (WI.CanvasSidebarPanel):
2388         (WI.CanvasSidebarPanel.prototype.set action):
2389         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
2390         (WI.CanvasSidebarPanel.prototype._recordingChanged):
2391
2392         * UserInterface/Views/CanvasSidebarPanel.css:
2393         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .indeterminate-progress-spinner):
2394
2395         * UserInterface/Views/RecordingActionTreeElement.js:
2396         (WI.RecordingActionTreeElement):
2397         (WI.RecordingActionTreeElement.prototype.onattach):
2398         (WI.RecordingActionTreeElement.prototype._handleHasVisibleEffectChanged): Deleted.
2399
2400         * UserInterface/Views/RecordingContentView.js:
2401         (WI.RecordingContentView):
2402         (WI.RecordingContentView.prototype.get navigationItems):
2403         (WI.RecordingContentView.prototype.updateActionIndex):
2404         (WI.RecordingContentView.prototype.initialLayout):
2405         (WI.RecordingContentView.prototype._generateContentCanvas2D): Added.
2406         (WI.RecordingContentView.prototype._generateContentCanvasWebGL): Added.
2407         (WI.RecordingContentView.prototype._updateCanvasPath):
2408         (WI.RecordingContentView.prototype._updateProcessProgress): Added.
2409         (WI.RecordingContentView.prototype._handleRecordingProcessedActionSwizzle): Added.
2410         (WI.RecordingContentView.prototype._handleRecordingProcessedActionApply): Added.
2411         (WI.RecordingContentView.supportsCanvasPathDebugging): Deleted.
2412         (WI.RecordingContentView.prototype.async _generateContentCanvas2D): Deleted.
2413         (WI.RecordingContentView.prototype.async _generateContentCanvasWebGL): Deleted.
2414
2415         * UserInterface/Views/RecordingContentView.css:
2416         (.content-view:not(.tab).recording > .preview-container):
2417
2418         * UserInterface/Base/ImageUtilities.js:
2419         (WI.ImageUtilities.supportsCanvasPathDebugging):
2420
2421 2018-04-26  Jer Noble  <jer.noble@apple.com>
2422
2423         Unreviewed build fix; fix WebInspectorUI copy resources step after r231063.
2424
2425         * Configurations/Base.xcconfig:
2426
2427 2018-04-26  Jer Noble  <jer.noble@apple.com>
2428
2429         WK_COCOA_TOUCH all the things.
2430         https://bugs.webkit.org/show_bug.cgi?id=185006
2431
2432         Reviewed by Tim Horton.
2433
2434         * Configurations/WebInspectorUIFramework.xcconfig:
2435
2436 2018-04-21  Nikita Vasilyev  <nvasilyev@apple.com>
2437
2438         REGRESSION(r214076): Web Inspector: Timelines load and DOMContentLoaded markers aren't visible
2439         https://bugs.webkit.org/show_bug.cgi?id=184858
2440
2441         Reviewed by Brian Burg.
2442
2443         r214076 changed the color of all markers to light gray.
2444
2445         * UserInterface/Views/TimelineRuler.css:
2446         (.timeline-ruler > .markers > .marker):
2447         (body[dir=ltr] .timeline-ruler > .markers > .marker):
2448         (body[dir=rtl] .timeline-ruler > .markers > .marker):
2449         (.timeline-ruler > .markers > .marker.current-time):
2450         (.timeline-ruler > .markers > .marker.load-event):
2451         (.timeline-ruler > .markers > .marker.dom-content-event):
2452         (.timeline-ruler > .markers > .marker.timestamp):
2453         (body[dir=ltr] .timeline-ruler > .markers > .marker.current-time): Deleted.
2454         (body[dir=rtl] .timeline-ruler > .markers > .marker.current-time): Deleted.
2455
2456 2018-04-19  Chris Dumez  <cdumez@apple.com>
2457
2458         Rename JSDOMWindowProxy to JSWindowProxy
2459         https://bugs.webkit.org/show_bug.cgi?id=184797
2460
2461         Reviewed by Sam Weinig.
2462
2463         Rename JSDOMWindowProxy to JSWindowProxy for consistency with WindowProxy.
2464
2465         * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
2466         (HeapSnapshot.prototype._isNodeGlobalObject):
2467
2468 2018-04-19  David Kilzer  <ddkilzer@apple.com>
2469
2470         Enable Objective-C weak references
2471         <https://webkit.org/b/184789>
2472         <rdar://problem/39571716>
2473
2474         Reviewed by Dan Bernstein.
2475
2476         * Configurations/Base.xcconfig:
2477         (CLANG_ENABLE_OBJC_WEAK): Enable.
2478
2479 2018-04-16  Nikita Vasilyev  <nvasilyev@apple.com>
2480
2481         Web Inspector: Can't select and copy text from Network tab popover
2482         https://bugs.webkit.org/show_bug.cgi?id=184606
2483
2484         Reviewed by Matt Baker.
2485
2486         * UserInterface/Views/ResourceTimingBreakdownView.css:
2487         (.waterfall-popover .resource-timing-breakdown):
2488
2489 2018-04-12  Nikita Vasilyev  <nvasilyev@apple.com>
2490
2491         Web Inspector: Refactoring: move popover styles from JS to CSS
2492         https://bugs.webkit.org/show_bug.cgi?id=184558
2493
2494         Reviewed by Brian Burg.
2495
2496         Introduce several CSS variables to customize popover appearance in CSS
2497         and not JavaScript.
2498
2499         * UserInterface/Views/NetworkTableContentView.js:
2500         (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
2501         (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
2502         * UserInterface/Views/Popover.css:
2503         (.popover):
2504         * UserInterface/Views/Popover.js:
2505         (WI.Popover):
2506         (WI.Popover.prototype._drawBackground):
2507         Replace `var` with `let`.
2508
2509         (WI.Popover.prototype.get backgroundStyle): Deleted.
2510         (WI.Popover.prototype.set backgroundStyle): Deleted.
2511         * UserInterface/Views/ResourceTimingBreakdownView.css:
2512         (.popover.waterfall-popover):
2513         (.waterfall-popover-content .resource-timing-breakdown):
2514         (.waterfall-popover .resource-timing-breakdown): Deleted.
2515
2516         * UserInterface/Views/NetworkTableContentView.js:
2517         (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
2518         (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
2519         * UserInterface/Views/Popover.css:
2520         (.popover):
2521         * UserInterface/Views/Popover.js:
2522         (WI.Popover):
2523         (WI.Popover.prototype._drawBackground):
2524         * UserInterface/Views/ResourceTimingBreakdownView.css:
2525         (.popover.waterfall-popover):
2526         (.waterfall-popover-content .resource-timing-breakdown):
2527
2528 2018-04-07  Nikita Vasilyev  <nvasilyev@apple.com>
2529
2530         Web Inspector: Errors glyph doesn't fully change to blue when active
2531         https://bugs.webkit.org/show_bug.cgi?id=184389
2532
2533         Reviewed by Joseph Pecoraro.
2534
2535         The dot of the exclamation mark was always black.
2536
2537         * UserInterface/Images/Errors.svg:
2538
2539 2018-04-03  Aaron Chu  <aaron_chu@apple.com>
2540
2541         AX: Add Experimental setting for Accessibility Audit
2542         https://bugs.webkit.org/show_bug.cgi?id=183646
2543         <rdar://problem/38478583>
2544
2545         Reviewed by Brian Burg.
2546
2547         Added experimental feature flag for Accessibility Audit work.
2548
2549         * Localizations/en.lproj/localizedStrings.js:
2550         * UserInterface/Base/Setting.js:
2551         * UserInterface/Views/SettingsTabContentView.js:
2552         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2553
2554 2018-04-01  Matt Baker  <mattbaker@apple.com>
2555
2556         Web Inspector: Remove dead TabBrowser/TabContentView code
2557         https://bugs.webkit.org/show_bug.cgi?id=184104
2558
2559         Reviewed by Devin Rousso.
2560
2561         * UserInterface/Base/Main.js:
2562         (WI._tryToRestorePendingTabs):
2563         * UserInterface/Views/NewTabContentView.js:
2564         (WI.NewTabContentView.prototype.shown):
2565         (WI.NewTabContentView.prototype.hidden):
2566         * UserInterface/Views/TabBrowser.js:
2567         (WI.TabBrowser.prototype.addTabForContentView):
2568         (WI.TabBrowser.prototype.showTabForContentView):
2569         (WI.TabBrowser._tabBarItemRemoved):
2570         * UserInterface/Views/TabContentView.js:
2571         (WI.TabContentView.prototype.get parentTabBrowser): Deleted.
2572         (WI.TabContentView.prototype.set parentTabBrowser): Deleted.
2573
2574 2018-03-30  Devin Rousso  <webkit@devinrousso.com>
2575
2576         Web Inspector: tint all pixels drawn by shader program when hovering ShaderProgramTreeElement
2577         https://bugs.webkit.org/show_bug.cgi?id=175223
2578
2579         Reviewed by Matt Baker.
2580
2581         * UserInterface/Models/ShaderProgram.js:
2582         (WI.ShaderProgram):
2583         (WI.ShaderProgram.prototype.showHighlight):
2584         (WI.ShaderProgram.prototype.hideHighlight):
2585
2586         * UserInterface/Views/ShaderProgramTreeElement.js:
2587         (WI.ShaderProgramTreeElement.prototype.onattach):
2588         (WI.ShaderProgramTreeElement.prototype._handleMouseOver):
2589         (WI.ShaderProgramTreeElement.prototype._handleMouseOut):
2590         Whenever a ShaderProgramTreeElement is hovered, highlight the corresponding shader program
2591         by tinting the pixels it draws via a blend.
2592
2593 2018-03-27  Timothy Hatcher  <timothy@apple.com>
2594
2595         Web Inspector: Modernize some utility functions
2596         https://bugs.webkit.org/show_bug.cgi?id=184047
2597
2598         Reviewed by Matt Baker.
2599
2600         * UserInterface/Base/Utilities.js:
2601         (Node.prototype.enclosingNodeOrSelfWithClass): Use parentElement instead of parentNode, so we don't need to check for document.
2602         (Node.prototype.enclosingNodeOrSelfWithNodeNameInArray): Ditto. Also just toUpperCase input, since nodeName is already upper case.
2603         (String.prototype.escapeCharacters): Use Set and string iteration instead of indexOf and charAt.
2604
2605 2018-03-27  Nikita Vasilyev  <nvasilyev@apple.com>
2606
2607         Web Inspector: Command-Shift-left/right arrow keys should not switch tabs when focused on color picker text fields
2608         https://bugs.webkit.org/show_bug.cgi?id=184028
2609
2610         Reviewed by Timothy Hatcher.
2611
2612         * UserInterface/Views/EditingSupport.js:
2613         (WI.isEventTargetAnEditableField):
2614         Detect <input type="number"> as an editable text field.
2615
2616 2018-03-23  Nikita Vasilyev  <nvasilyev@apple.com>
2617
2618         Web Inspector: Styles: don't show checkboxes for invalid properties
2619         https://bugs.webkit.org/show_bug.cgi?id=183951
2620         <rdar://problem/38807602>
2621
2622         Reviewed by Matt Baker.
2623
2624         Since toggling of invalid properties isn't supported by the backend, don't show checkboxes for invalid properties.
2625
2626         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
2627         (.spreadsheet-css-declaration:matches(:hover, :focus) .property:not(:matches(.invalid-name, .invalid-value)) .property-toggle,):
2628         (.spreadsheet-css-declaration:matches(:hover, :focus) .property-toggle,): Deleted.
2629         Don't show checkboxes for invalid properties but still show them for duplicate properties.
2630
2631 2018-03-23  Brian Burg  <bburg@apple.com>
2632
2633         Web Inspector: add WebKitAdditions hooks for WebInspectorUI
2634         https://bugs.webkit.org/show_bug.cgi?id=183940
2635         <rdar://problem/38796310>
2636
2637         Reviewed by Timothy Hatcher.
2638
2639         * Scripts/combine-resources.pl:
2640         (debugLog): Added. Leave in the logging I used to debug this.
2641
2642         (concatenateIncludedFilesMatchingPattern):
2643         (stripIncludedFilesMatchingPattern):
2644         (concatenateFiles): Deleted.
2645         This function tried to do too many things. Split it into
2646         two functions, one for stripping includes and one for concatenating
2647         files referenced by includes.
2648
2649         Lastly, add a negative lookahead clause for 'WebKitAdditions' so includes
2650         containing that string are not combined when no input directory is passed
2651         to the script.
2652
2653         * Scripts/copy-user-interface-resources.pl:
2654         WebKitAdditions is computed either from BUILT_PRODUCTS_DIR or SDKROOT,
2655         depending on the build style. Just try them in order and use the first
2656         one that exists. WebInspectorUI files are in their own directory, so
2657         we can assume there are files to process if that directory exists.
2658
2659         Copy Main.html to derived sources before doing any processing on it.
2660         This makes all combining phases have the same --input-html argument.
2661
2662         (debugLog): Added. Leave in the logging I used to debug this.
2663
2664         (combineOrStripResourcesForWebKitAdditions):
2665         (stripResourcesForWebKitAdditions):
2666         (combineResourcesForWebKitAdditions):
2667         Determine if WebKitAdditions exists and whether there are any
2668         resources for WebInspectorUI present that need to be processed.
2669
2670         * UserInterface/Main.html:
2671         Add stub .js and .css WebKitAdditions files. We can add more later
2672         if it makes sense but this is good enough to validate the build machinery.
2673
2674 2018-03-23  Nikita Vasilyev  <nvasilyev@apple.com>
2675
2676         Web Inspector: Styles Redesign: flashing when switching between nodes
2677         https://bugs.webkit.org/show_bug.cgi?id=179291
2678         <rdar://problem/35352660>
2679
2680         Reviewed by Matt Baker.
2681
2682         Flashing was happening because the layout was a two-step process:
2683         1. Append empty sections.
2684         2. Layout everything inside of the section on requestAnimationFrame.
2685
2686         SpreadsheetRulesStyleDetailsPanel was converted to use layout method,
2687         so both steps happen on requestAnimationFrame.
2688
2689         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
2690         (WI.SpreadsheetRulesStyleDetailsPanel):
2691         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
2692         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
2693         The removed lines from the refresh method moved to the layout method without any changes.
2694
2695 2018-03-22  Nikita Vasilyev  <nvasilyev@apple.com>
2696
2697         Uncaught Exception: TypeError: this._textEditor.toggleUnexecutedCodeHighlights().then is not a function
2698         https://bugs.webkit.org/show_bug.cgi?id=181912
2699         <rdar://problem/36700022>
2700
2701         Reviewed by Matt Baker.
2702
2703         The uncaught exception was caused by returning `false` instead of a promise object.
2704         This patch only fixes the exception. Further enhancements should be done in <https://webkit.org/b/183887>.
2705
2706         * UserInterface/Views/SourceCodeTextEditor.js:
2707         (WI.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
2708         (WI.SourceCodeTextEditor.prototype.toggleUnexecutedCodeHighlights):
2709
2710 2018-03-20  Nikita Vasilyev  <nvasilyev@apple.com>
2711
2712         Web Inspector: Styles: Loses focus when editing a property while page is being loaded
2713         https://bugs.webkit.org/show_bug.cgi?id=182619
2714         <rdar://problem/37363185>
2715
2716         Reviewed by Matt Baker.
2717
2718         Adding or removing a stylesheet causes SpreadsheetRulesStyleDetailsPanel to refresh, triggering a layout
2719         of all SpreadsheetCSSStyleDeclarationSection child views. This resets the focus, selection, and
2720         auto-completion state.
2721
2722         This patch prevents SpreadsheetCSSStyleDeclarationSection from performing a layout when a property is being edited.
2723
2724         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2725         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
2726         Allow re-layout after creating a blank CSS property and pasting CSS code.
2727         - _pendingAddBlankPropertyIndexOffset is a number after pasting CSS rules.
2728         - _propertyPendingStartEditing is a property model after creating a new property.
2729
2730 2018-03-20  Devin Rousso  <webkit@devinrousso.com>
2731
2732         Web Inspector: Session dividers are not added when Console tab is not visible
2733         https://bugs.webkit.org/show_bug.cgi?id=168622
2734
2735         Reviewed by Matt Baker.
2736
2737         Restructure `_pendingMessages` to be a `Map [ConsoleSession, ConsoleMessageView]`. Instead
2738         of rendering to the `_currentConsoleGroup`, we now render to the saved `ConsoleSession`.
2739         Also ensure that `_pendingMessages` is cleared when navigating and "Preserve Log" is off.
2740
2741         * UserInterface/Controllers/JavaScriptLogViewController.js:
2742         (WI.JavaScriptLogViewController):
2743         (WI.JavaScriptLogViewController.prototype.startNewSession):
2744         (WI.JavaScriptLogViewController.prototype.consolePromptHistoryDidChange):
2745         (WI.JavaScriptLogViewController.prototype._appendConsoleMessageView):
2746         (WI.JavaScriptLogViewController.prototype.renderPendingMessages):
2747         (WI.JavaScriptLogViewController.prototype.get prompt): Deleted.
2748         (WI.JavaScriptLogViewController.prototype.get currentConsoleGroup): Deleted.
2749
2750 2018-03-20  Nikita Vasilyev  <nvasilyev@apple.com>
2751
2752         Web Inspector: Can't add a new class by editing class attribute in DOM outline
2753         https://bugs.webkit.org/show_bug.cgi?id=180890
2754
2755         Reviewed by Ryosuke Niwa.
2756
2757         Typing "my-foo my-bar" creates a single "my-foo\xA0my-bar" class name because
2758         contentEditable-based attribute editor sometimes inserts non-breaking space characters (\xA0).
2759
2760         Replace all non-breaking space characters with the regular space characters when
2761         commiting attribute change.
2762
2763         * UserInterface/Views/DOMTreeElement.js:
2764
2765 2018-03-16  Nikita Vasilyev  <nvasilyev@apple.com>
2766
2767         Web Inspector: Elements: "Force Print Media Styles" should not persist across Web Inspector sessions
2768         https://bugs.webkit.org/show_bug.cgi?id=183708
2769         <rdar://problem/36452183>
2770
2771         Reviewed by Matt Baker.
2772
2773         * UserInterface/Base/Main.js:
2774         (WI.loaded):
2775         * UserInterface/Views/DOMTreeContentView.js:
2776         (WI.DOMTreeContentView):
2777         (WI.DOMTreeContentView.prototype._showPrintStylesChanged):
2778         (WI.DOMTreeContentView.prototype._togglePrintStyles):
2779         (WI.DOMTreeContentView.prototype._showPrintStylesSettingChanged): Deleted.
2780         (WI.DOMTreeContentView.prototype._togglePrintStylesSetting): Deleted.
2781
2782 2018-03-14  Devin Rousso  <webkit@devinrousso.com>
2783
2784         Web Inspector: Canvas: a recording initiated by the user should be shown immediately on completion
2785         https://bugs.webkit.org/show_bug.cgi?id=183647
2786         <rdar://problem/38479187>
2787
2788         Reviewed by Matt Baker.
2789
2790         When recordings are initiated via `console.record`, we don't want to automatically show the
2791         recording after it's payload is sent to the frontend. We determine whether a recording came
2792         from the console by comparing the recording's associated canvas with the current value of
2793         `_recordingCanvas`. Previously, when stopping a recording, we would always null the value,
2794         which meant that all non-single-frame recordings (single-frame recordings are stopped by
2795         the agent after the first paint or tick after an action is performed) would be categorized
2796         as coming from the console, since `_recordingCanvas` would be null by the time the frontend
2797         recieved the payload.
2798
2799         This patch changes it so that the nulling of `_recordingCanvas` in `stopRecording` is only
2800         done if the agent command errors. It was already the case that `_recordingCanvas` was nulled
2801         in `stopRecording`, so this patch just prevents it from being nulled too early.
2802
2803         * UserInterface/Controllers/CanvasManager.js:
2804         (WI.CanvasManager.prototype.stopRecording):
2805
2806 2018-03-12  Jon Davis  <jond@apple.com>
2807
2808         Web Inspector: Remove redundant tooltips
2809         https://bugs.webkit.org/show_bug.cgi?id=183099
2810
2811         Reviewed by Matt Baker.
2812
2813         * Localizations/en.lproj/localizedStrings.js:
2814         * UserInterface/Base/Main.js:
2815         (WI.contentLoaded):
2816         Instantiate ConsoleDrawer so the keyboard shortcuts for FindBanner are available.
2817
2818         * UserInterface/Views/BreakpointTreeElement.js:
2819         (WI.BreakpointTreeElement):
2820         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2821
2822         * UserInterface/Views/ButtonNavigationItem.js:
2823         (WI.ButtonNavigationItem):
2824         Only show tooltips when the button style is an image.
2825
2826         * UserInterface/Views/ConsoleDrawer.js:
2827         (WI.ConsoleDrawer):
2828         (WI.ConsoleDrawer.prototype.toggleButtonShortcutTooltip):
2829         Added helper to set the toggle button keyboard shortcut tooltip.
2830
2831         * UserInterface/Views/DOMBreakpointTreeElement.js:
2832         (WI.DOMBreakpointTreeElement):
2833         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2834
2835         * UserInterface/Views/DOMNodeTreeElement.js:
2836         (WI.DOMNodeTreeElement):
2837         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2838
2839         * UserInterface/Views/FindBanner.js:
2840         (WI.FindBanner):
2841         * UserInterface/Views/HierarchicalPathComponent.js:
2842         (WI.HierarchicalPathComponent):
2843         (WI.HierarchicalPathComponent.prototype.get tooltip):
2844         (WI.HierarchicalPathComponent.prototype.set tooltip):
2845         (WI.HierarchicalPathComponent.prototype.get hideTooltip):
2846         (WI.HierarchicalPathComponent.prototype.set hideTooltip):
2847         (WI.HierarchicalPathComponent.prototype._updateElementTitleAndText):
2848         Add tooltip management features to manage tooltips separately of the displayName,
2849         and provide a behavior to hide tooltips while retaining the tooltip data.
2850
2851         * UserInterface/Views/HierarchicalPathNavigationItem.js:
2852         (WI.HierarchicalPathNavigationItem.prototype.updateLayout):
2853         Hide tooltips when fully visible, show tooltips for collapsed items.
2854
2855         * UserInterface/Views/PinnedTabBarItem.js:
2856         (WI.PinnedTabBarItem.prototype.titleDidChange):
2857         Set tooltips for pinned tab bar items.
2858
2859         * UserInterface/Views/QuickConsole.js:
2860         (WI.QuickConsole):
2861         Set the ConsoleDrawer toggle button tooltip after the keyboard shortcut is registered.
2862
2863         * UserInterface/Views/StorageTreeElement.js:
2864         (WI.StorageTreeElement):
2865         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2866
2867         * UserInterface/Views/TabBarItem.js:
2868         (WI.TabBarItem.prototype.get title):
2869         (WI.TabBarItem.prototype.set title):
2870         (WI.TabBarItem.prototype.titleDidChange):
2871         (WI.TabBarItem):
2872         Add title property management with an overridable titleDidChange handler for
2873         setting tooltips when needed.
2874
2875         * UserInterface/Views/TimelineTreeElement.js:
2876         (WI.TimelineTreeElement):
2877         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2878
2879         * UserInterface/Views/ToggleButtonNavigationItem.js:
2880         (WI.ToggleButtonNavigationItem.prototype.set defaultToolTip):
2881         Added a setter for manging the default tooltip of a toggle button.
2882
2883         * UserInterface/Views/XHRBreakpointTreeElement.js:
2884         (WI.XHRBreakpointTreeElement):
2885         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2886
2887 2018-03-09  Nikita Vasilyev  <nvasilyev@apple.com>
2888
2889         Web Inspector: Sources: Open all resources in Sources tab instead of Resources/Debugger
2890         https://bugs.webkit.org/show_bug.cgi?id=183317
2891         <rdar://problem/38108455>
2892
2893         Reviewed by Matt Baker.
2894
2895         * Localizations/en.lproj/localizedStrings.js:
2896         * UserInterface/Base/Main.js:
2897         * UserInterface/Views/ContextMenuUtilities.js:
2898         (WI.appendContextMenuItemsForURL):
2899         Introduce preferredTabType option instead of listing ignoreResourcesTab, ignoreDebuggerTab, ignoreSearchTab, and ignoreNetworkTab.
2900         The only correct outcome of selecting "Reveal in Sources Tab" context menu is to open Sources tab, not any other tab.
2901
2902         * UserInterface/Views/SourceCodeTextEditor.js:
2903         (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
2904         * UserInterface/Views/TabBrowser.js:
2905         (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
2906
2907 2018-03-08  Nikita Vasilyev  <nvasilyev@apple.com>
2908
2909         Web Inspector: Sources: add SourcesTabContentView and SourceSidebarPanel classes
2910         https://bugs.webkit.org/show_bug.cgi?id=183316
2911         <rdar://problem/38107639>
2912
2913         Reviewed by Matt Baker.
2914
2915         Add Sources tab and sidebar panel, which are copies of the corresponding Resources classes.
2916         The Sources tab is shown when it's enabled in the experimental settings. This patch doesn't
2917         remove existing Resources and Debugger tabs.
2918
2919         * UserInterface/Base/Main.js:
2920         (WI.contentLoaded):
2921         * UserInterface/Main.html:
2922         * UserInterface/Views/SourcesSidebarPanel.css: Added.
2923         (.sidebar > .panel.navigation.sources > .content):
2924         (.sidebar > .panel.navigation.sources > .navigation-bar):
2925         * UserInterface/Views/SourcesSidebarPanel.js: Added.
2926         (WI.SourcesSidebarPanel):
2927         (WI.SourcesSidebarPanel.shouldPlaceResourcesAtTopLevel):
2928         (WI.SourcesSidebarPanel.prototype.get minimumWidth):
2929         (WI.SourcesSidebarPanel.prototype.closed):
2930         (WI.SourcesSidebarPanel.prototype.showDefaultContentView):
2931         (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.isAncestor):
2932         (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.getParent):
2933         (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject):
2934         (WI.SourcesSidebarPanel.prototype.initialLayout):
2935         (WI.SourcesSidebarPanel.prototype.hasCustomFilters):
2936         (WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
2937         (WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
2938         (WI.SourcesSidebarPanel.prototype._mainResourceDidChange):
2939         (WI.SourcesSidebarPanel.prototype._mainFrameDidChange):
2940         (WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
2941         (WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange):
2942         (WI.SourcesSidebarPanel.prototype._scriptWasAdded):
2943         (WI.SourcesSidebarPanel.prototype._addScript):
2944         (WI.SourcesSidebarPanel.prototype._scriptWasRemoved):
2945         (WI.SourcesSidebarPanel.prototype._scriptsCleared):
2946         (WI.SourcesSidebarPanel.prototype._styleSheetAdded):
2947         (WI.SourcesSidebarPanel.prototype._addTargetWithMainResource):
2948         (WI.SourcesSidebarPanel.prototype._targetRemoved):
2949         (WI.SourcesSidebarPanel.prototype._treeSelectionDidChange):
2950         (WI.SourcesSidebarPanel.prototype._compareTreeElements):
2951         (WI.SourcesSidebarPanel.prototype._extraDomainsActivated):
2952         (WI.SourcesSidebarPanel.prototype._scopeBarSelectionDidChange):
2953         * UserInterface/Views/SourcesTabContentView.js: Added.
2954         (WI.SourcesTabContentView):
2955         (WI.SourcesTabContentView.tabInfo):
2956         (WI.SourcesTabContentView.isTabAllowed):
2957         (WI.SourcesTabContentView.prototype.get type):
2958         (WI.SourcesTabContentView.prototype.get supportsSplitContentBrowser):
2959         (WI.SourcesTabContentView.prototype.canShowRepresentedObject):
2960
2961 2018-03-07  Devin Rousso  <webkit@devinrousso.com>
2962
2963         Web Inspector: Canvas tab: ensure that the Recording TreeOutline has a specified height for virtualization
2964         https://bugs.webkit.org/show_bug.cgi?id=183015
2965
2966         Reviewed by Matt Baker.
2967
2968         * UserInterface/Views/CanvasSidebarPanel.js:
2969         (WI.CanvasSidebarPanel):
2970
2971         * UserInterface/Views/CanvasSidebarPanel.css:
2972         (.sidebar > .panel.navigation.canvas > .content):
2973         (.sidebar > .panel.navigation.canvas > .content > .navigation-bar):
2974         (.sidebar > .panel.navigation.canvas.has-recordings > .content > .recording-content):
2975         (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
2976         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .navigation-bar): Deleted.
2977         (.sidebar > .panel.navigation.canvas.has-recordings > .content > .tree-outline.canvas): Deleted.
2978
2979         * UserInterface/Views/TreeElement.js:
2980         (WI.TreeElement.prototype._detach):
2981
2982 2018-02-26  Devin Rousso  <webkit@devinrousso.com>
2983
2984         Web Inspector: Canvas Tab: Scroll into view / Inspect element if Canvas has DOM node
2985         https://bugs.webkit.org/show_bug.cgi?id=181769
2986
2987         Reviewed by Matt Baker.
2988
2989         * Localizations/en.lproj/localizedStrings.js:
2990
2991         * UserInterface/Images/Markup.svg: Added.
2992
2993         * UserInterface/Views/CanvasContentView.js:
2994         (WI.CanvasContentView):
2995         (WI.CanvasContentView.prototype.initialLayout):
2996         (WI.CanvasContentView.prototype._canvasElementButtonClicked):
2997
2998 2018-02-19  Matt Baker  <mattbaker@apple.com>
2999
3000         Web Inspector: Canvas tab: hide navigation sidebar when viewing the overview
3001         https://bugs.webkit.org/show_bug.cgi?id=182597
3002         <rdar://problem/37341564>
3003
3004         Reviewed by Devin Rousso.
3005
3006         Support showing/hiding the navigation sidebar panel based on the current
3007         represented object. Individual TabContentViews can opt-in to this behavior,
3008         by overriding TabContentView.prototype.managesNavigationSidebarPanel.
3009
3010         * UserInterface/Views/CanvasSidebarPanel.js:
3011         (WI.CanvasSidebarPanel.prototype.canShowRepresentedObject):
3012         * UserInterface/Views/CanvasTabContentView.js:
3013         (WI.CanvasTabContentView.prototype.get managesNavigationSidebarPanel):
3014         Hide the Canvas navigation sidebar when viewing the overview.
3015
3016         * UserInterface/Views/ContentBrowserTabContentView.js:
3017         (WI.ContentBrowserTabContentView):
3018         (WI.ContentBrowserTabContentView.prototype.showNavigationSidebarPanel):
3019         (WI.ContentBrowserTabContentView.prototype._navigationSidebarCollapsedStateDidChange):
3020         (WI.ContentBrowserTabContentView.prototype._contentBrowserCurrentRepresentedObjectsDidChange):
3021
3022         * UserInterface/Views/NavigationSidebarPanel.js:
3023         (WI.NavigationSidebarPanel.prototype.canShowRepresentedObject):
3024         Provide default implementation that just defers to the TabContentView.
3025         This exists so that a NavigationSidebarPanel that implements canShowRepresentedObject
3026         will have a meaningful default to fall back on.
3027
3028         * UserInterface/Views/TabBrowser.js:
3029         (WI.TabBrowser.prototype._sidebarCollapsedStateDidChange):
3030         (WI.TabBrowser.prototype._showNavigationSidebarPanelForTabContentView):
3031
3032         * UserInterface/Views/TabContentView.js:
3033         (WI.TabContentView.prototype.get managesNavigationSidebarPanel):
3034
3035 2018-02-16  Matt Baker  <mattbaker@apple.com>
3036
3037         Web Inspector: TabBar redesign: remove top-level search field and pin the Search tab
3038         https://bugs.webkit.org/show_bug.cgi?id=182353
3039         <rdar://problem/37088644>
3040
3041         Reviewed by Devin Rousso.
3042
3043         * Localizations/en.lproj/localizedStrings.js:
3044
3045         * UserInterface/Base/Main.js:
3046         (WI.contentLoaded):
3047         Create Search UI based on experimental setting. When the new TabBar is
3048         enabled, the Search tab is a pinned tab. Since it is also saveable, it
3049         needs to be added to the TabBrowser (the browser adds the item to the bar).
3050
3051         When restoring saved tabs, make an additional check to prevent a tab
3052         from being added twice. This can occur now that the Search tab is pinned.
3053
3054         * UserInterface/Images/Search.svg:
3055         Update art to better match Safari/macOS. Slightly increase the radius of
3056         the lens, and shorten the length of the handle.
3057
3058         * UserInterface/Views/GoToLineDialog.css:
3059         (.go-to-line-dialog > div::before):
3060         Update styles for new Search icon.
3061
3062         * UserInterface/Views/LegacyTabBar.js:
3063         (WI.LegacyTabBar.prototype.get saveableTabCount):
3064         Backported new TabBar method which is called by TabBrowser.
3065
3066         * UserInterface/Views/OpenResourceDialog.css:
3067         (.open-resource-dialog > .field::before):
3068         Update styles for new Search icon.
3069
3070         * UserInterface/Views/PinnedTabBarItem.js:
3071         (WI.PinnedTabBarItem.prototype.fromTabInfo):
3072         Match GeneralTabBarItem.fromTabInfo.
3073
3074         * UserInterface/Views/SearchTabContentView.js:
3075         (WI.SearchTabContentView):
3076         (WI.SearchTabContentView.tabInfo):
3077         New image (magnifying glass without border) when new TabBar is enabled.
3078
3079         * UserInterface/Views/SettingsTabContentView.js:
3080         (WI.SettingsTabContentView):
3081
3082         * UserInterface/Views/TabBar.js:
3083         (WI.TabBar):
3084         Move creation of the Settings item out of TabBar. The TabBar should
3085         only be concerned with managing tabs.
3086
3087         (WI.TabBar.prototype.get saveableTabCount):
3088         (WI.TabBar.prototype._handleContextMenu):
3089         (WI.TabBar.prototype.get normalNonEphemeralTabCount): Deleted.
3090         Now that the Search tab is pinned, there aren't any normal tabs that
3091         are also ephemeral. For the LegacyTabBar, both the Search and New Tab
3092         tabs are still in this category.
3093
3094         * UserInterface/Views/TabBrowser.js:
3095         (WI.TabBrowser.prototype.addTabForContentView):
3096         (WI.TabBrowser.prototype.closeTabForContentView):
3097         (WI.TabBrowser.prototype._tabBarItemSelected):
3098         (WI.TabBrowser._tabBarItemRemoved):
3099         Recent tab list should be validated against the list of saveable tabs,
3100         since the Search tab is no longer a normal tab (a GeneralTabBarItem),
3101         but is still persisted across Inspector sessions.
3102
3103 2018-02-16  Matt Baker  <mattbaker@apple.com>
3104
3105         Web Inspector: TabBar redesign: TabBarItem close button is incorrectly positioned
3106         https://bugs.webkit.org/show_bug.cgi?id=182844
3107         <rdar://problem/37586749>
3108
3109         Reviewed by Timothy Hatcher.
3110
3111         * UserInterface/Views/GeneralTabBarItem.js:
3112         (WI.GeneralTabBarItem.prototype.set title):
3113         Insert the title before the last flexible space item.
3114
3115         * UserInterface/Views/TabBar.css:
3116         (.tab-bar > .item):
3117         (.tab-bar > .item > .close):
3118         (.tab-bar > .item > .flex-space):
3119         (.tab-bar > .item.ephemeral > .flex-space:last-child):
3120         (.tab-bar.collapsed > .item):
3121         (.tab-bar.collapsed > .item > .flex-space):
3122         (.tab-bar.collapsed > .item > .close):
3123         (.tab-bar.collapsed > .item:hover > .close):
3124         (.tab-bar.collapsed > .item.ephemeral:hover > .icon):
3125         (.tab-bar > .item:hover > .close): Deleted.
3126         (.tab-bar:not(.collapsed) > .item.ephemeral:hover > .icon): Deleted.
3127
3128         * UserInterface/Views/TabBarItem.js:
3129         (WI.TabBarItem):
3130         Restore flexible space items before and after the icon.
3131
3132 2018-02-14  Nikita Vasilyev  <nvasilyev@apple.com>
3133
3134         Web Inspector: Styles: completion popover doesn't hide when switching panels
3135         https://bugs.webkit.org/show_bug.cgi?id=182464
3136         <rdar://problem/37202763>
3137
3138         Reviewed by Timothy Hatcher.
3139
3140         Save the position of the anchor, an element the popover is shown for, and hide the completion popover
3141         when the position changes.
3142
3143         * UserInterface/Views/CompletionSuggestionsView.js:
3144         (WI.CompletionSuggestionsView.prototype.showUntilAnchorMoves):
3145         When the popover is visible, check every 200ms if the anchor moved.
3146
3147         (WI.CompletionSuggestionsView.prototype.hide):
3148         * UserInterface/Views/SpreadsheetTextField.js:
3149         (WI.SpreadsheetTextField.prototype._updateCompletions):
3150         (WI.SpreadsheetTextField.prototype._getCaretRect):
3151         getBoundingClientRect returns {x: 0, y: 0} when it can't determine node's position.
3152         This happens when a node isn't attached to DOM, attached to DOM but not visible, and
3153         a number of odd cases.
3154
3155 2018-02-14  Matt Baker  <mattbaker@apple.com>
3156
3157         Web Inspector: TabBar redesign: only show allowed tabs in the available tabs context menu
3158         https://bugs.webkit.org/show_bug.cgi?id=182721
3159         <rdar://problem/37479019>
3160
3161         Reviewed by Timothy Hatcher.
3162
3163         In addition to only including allowed tabs in the TabBar context menu,
3164         perform a sanity check when setting the selected tab item, since the
3165         serialized selection index could refer to a tab that is no longer allowed.
3166
3167         * UserInterface/Views/LegacyTabBar.js:
3168         (WI.LegacyTabBar.prototype.set selectedTabBarItem):
3169         (WI.LegacyTabBar.prototype._handleContextMenu):
3170
3171         * UserInterface/Views/TabBar.js:
3172         (WI.TabBar.prototype.set selectedTabBarItem):
3173         (WI.TabBar.prototype._handleContextMenu):
3174
3175 2018-02-09  Matt Baker  <mattbaker@apple.com>
3176
3177         Web Inspector: Canvas tab: tree selection abruptly changes when selecting a recording frame
3178         https://bugs.webkit.org/show_bug.cgi?id=182667
3179         <rdar://problem/37412639>
3180
3181         Reviewed by Devin Rousso.
3182
3183         * UserInterface/Views/CanvasSidebarPanel.css:
3184         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .navigation-bar):
3185         (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
3186         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.recording > .icon):
3187         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .icon):
3188         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .status):
3189         (.sidebar > .panel.navigation.canvas > .content > .navigation-bar): Deleted.
3190         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.recording > .icon): Deleted.
3191         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .icon): Deleted.
3192         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .status): Deleted.
3193         Style changes for the additional DOM element required to virtualize the recording tree outline.
3194
3195         * UserInterface/Views/CanvasSidebarPanel.js:
3196         (WI.CanvasSidebarPanel):
3197         In order to be virtualized, the tree must be the only child of its parent.
3198
3199         (WI.CanvasSidebarPanel.prototype.set action):
3200         Ensure that a frame tree element isn't deselected when the last action
3201         in the frame becomes selected in the RecordingContentView.
3202
3203         (WI.CanvasSidebarPanel.prototype.shown):
3204         Refresh the sidebar, as represented objects may have changed while hidden.
3205
3206         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
3207         Unset the recording when no valid represented objects are found, to
3208         prevent a stale recording tree from being shown when viewing the overview.
3209
3210         (WI.CanvasSidebarPanel.prototype._canvasChanged):
3211         (WI.CanvasSidebarPanel.prototype._recordingChanged):
3212         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
3213         Moved toggling of the "has-recordings" style to _canvasChanged, since
3214         the navigation bar should be hidden when no canvas exists.
3215
3216         * UserInterface/Views/CollectionContentView.js:
3217         (WI.CollectionContentView.prototype.addContentViewForItem):
3218         (WI.CollectionContentView.prototype.removeContentViewForItem):
3219         Drive by fixes for child view visible state.
3220
3221         * UserInterface/Views/TreeOutline.css:
3222         (.tree-outline:not(.large):matches(:focus, .force-focus) .item.selected .status .indeterminate-progress-spinner):
3223         Make spinner easier to see against the selection background color.
3224
3225 2018-02-09  Matt Baker  <mattbaker@apple.com>
3226
3227         Web Inspector: Object.shallowEqual always fails when comparing array property values
3228         https://bugs.webkit.org/show_bug.cgi?id=182634
3229         <rdar://problem/37374639>
3230
3231         Reviewed by Devin Rousso.
3232
3233         Object.shallowEqual should use Array.shallowEqual when comparing property
3234         values, since strictly comparing objects/arrays is only true if both
3235         operands reference the same Object.
3236
3237         * UserInterface/Base/Utilities.js:
3238         (value):
3239
3240 2018-02-08  Matt Baker  <mattbaker@apple.com>
3241
3242         Web Inspector: add listing of Canvases/Programs/Recordings to the NavigationSidebar
3243         https://bugs.webkit.org/show_bug.cgi?id=178744
3244         <rdar://problem/35374379>
3245
3246         Reviewed by Devin Rousso.
3247
3248         * Localizations/en.lproj/localizedStrings.js:
3249
3250         * UserInterface/Images/Canvas2D.svg:
3251         * UserInterface/Images/Canvas3D.svg:
3252         * UserInterface/Images/Recording.svg:
3253         Update canvas icons to be monochrome. Simplified the recording icon.
3254
3255         * UserInterface/Main.html:
3256
3257         * UserInterface/Models/RecordingAction.js:
3258         (WI.RecordingAction.prototype.get state):
3259         (WI.RecordingAction.prototype.set state):
3260         Allow (2D) snapshot state to be associated with the action. Used by
3261         RecordingActionDetailsSidebarPanel to retrieve the snapshot state.
3262
3263         * UserInterface/Views/CanvasContentView.css:
3264         (.content-view.canvas:not(.tab)):
3265         (.content-view.canvas:not(.tab) > .progress): Deleted.
3266         (.content-view.canvas:not(.tab) > .progress > .frame-count): Deleted.
3267
3268         * UserInterface/Views/CanvasContentView.js:
3269         (WI.CanvasContentView):
3270         (WI.CanvasContentView.prototype.get navigationItems):
3271         (WI.CanvasContentView.prototype.layout):
3272         (WI.CanvasContentView.prototype.shown):
3273         (WI.CanvasContentView.prototype._recordingStarted):
3274         (WI.CanvasContentView.prototype._recordingProgress):
3275         (WI.CanvasContentView.prototype._recordingStopped):
3276         (WI.CanvasContentView.prototype._updateRecordNavigationItem):
3277         (WI.CanvasContentView.prototype._updateProgressView):
3278         Replace progress UI with a reusable ProgressView class.
3279         When in the overview, clicking the CanvasContentView shows a dedicated
3280         CanvasContentView for inspecting shaders and recordings. This behavior
3281         is controlled by CollectionContentView, so we need to prevent it when
3282         clicking inside the header and footer elements, which contain clickable UI.
3283
3284         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
3285         (WI.CanvasDetailsSidebarPanel.prototype.inspect):
3286
3287         * UserInterface/Views/CanvasOverviewContentView.css:
3288         (.content-view.canvas-overview .content-view.canvas):
3289         (.content-view.canvas-overview .content-view.canvas.is-recording):
3290         (.content-view.canvas-overview .content-view.canvas > :matches(header, footer)):
3291         (.content-view.canvas-overview .content-view.canvas > header):
3292         (.content-view.canvas-overview .content-view.canvas.is-recording > header):
3293         (.content-view.canvas-overview .content-view.canvas > header > .navigation-bar):
3294         (.content-view.canvas-overview .content-view.canvas:matches(:hover, .is-recording) > header > .navigation-bar):
3295         (.content-view.canvas-overview .content-view.canvas.is-recording > .progress-view,):
3296         (.content-view.canvas-overview .content-view.canvas.is-recording > .preview):
3297         (.content-view.canvas-overview .content-view.canvas > :matches(header, .progress, .preview, footer)): Deleted.
3298         (.content-view.canvas-overview .content-view.canvas.selected > :matches(.progress, .preview, footer),): Deleted.
3299         (.content-view.canvas-overview .content-view.canvas:not(:hover, .is-recording, .selected) > header > .navigation-bar): Deleted.
3300         (.content-view.canvas-overview .content-view.canvas > :matches(.progress, .preview)): Deleted.
3301         (.content-view.canvas-overview .content-view.canvas > .preview): Deleted.
3302         (.content-view.canvas-overview .content-view.canvas > .progress ~ .preview): Deleted.
3303         Clean up styles, and remove selection styles as canvases are no longer selectable in the overview.
3304
3305         * UserInterface/Views/CanvasOverviewContentView.js:
3306         (WI.CanvasOverviewContentView):
3307         (WI.CanvasOverviewContentView.prototype.get navigationItems):
3308         (WI.CanvasOverviewContentView.prototype.attached):
3309         (WI.CanvasOverviewContentView.prototype.detached):
3310         (WI.CanvasOverviewContentView.prototype.get selectionPathComponents): Deleted.
3311         (WI.CanvasOverviewContentView.prototype._changeSelectedItemVertically): Deleted.
3312         (WI.CanvasOverviewContentView.prototype._changeSelectedItemHorizontally): Deleted.
3313         (WI.CanvasOverviewContentView.prototype._selectionPathComponentsChanged): Deleted.
3314         (WI.CanvasOverviewContentView.prototype._handleUp): Deleted.
3315         (WI.CanvasOverviewContentView.prototype._handleRight): Deleted.
3316         (WI.CanvasOverviewContentView.prototype._handleDown): Deleted.
3317         (WI.CanvasOverviewContentView.prototype._handleLeft): Deleted.
3318         (WI.CanvasOverviewContentView.prototype._handleSpace): Deleted.
3319         (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange): Deleted.
3320         Disable canvas selection. Remove logic for supplemental represented objects,
3321         path components, and selection keyboard shortcuts.
3322
3323         * UserInterface/Views/CanvasSidebarPanel.css: Added.
3324         (.sidebar > .panel.navigation.canvas > .content):
3325         (.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled):
3326         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.canvas-2d .icon):
3327         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.webgl .icon):
3328         (.sidebar > .panel.navigation.canvas > .content > .navigation-bar):
3329         (.sidebar > .panel.navigation.canvas.has-recordings > .content > .tree-outline.canvas):
3330         (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
3331         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.recording > .icon):
3332         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.shader-program > .icon):
3333         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .icon):
3334         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .status):
3335
3336         * UserInterface/Views/CanvasSidebarPanel.js: Added.
3337         (WI.CanvasSidebarPanel):
3338         (WI.CanvasSidebarPanel.prototype.get canvas):
3339         (WI.CanvasSidebarPanel.prototype.set canvas):
3340         (WI.CanvasSidebarPanel.prototype.set recording):
3341         (WI.CanvasSidebarPanel.prototype.set action):
3342         (WI.CanvasSidebarPanel.prototype.shown):
3343         (WI.CanvasSidebarPanel.prototype.hidden):
3344         (WI.CanvasSidebarPanel.prototype.hasCustomFilters):
3345         (WI.CanvasSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
3346         (WI.CanvasSidebarPanel.prototype.initialLayout):
3347         (WI.CanvasSidebarPanel.prototype._recordingAdded):
3348         (WI.CanvasSidebarPanel.prototype._recordingRemoved):
3349         (WI.CanvasSidebarPanel.prototype._scopeBarSelectionChanged):
3350         (WI.CanvasSidebarPanel.prototype._toggleRecording):
3351         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
3352         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
3353         (WI.CanvasSidebarPanel.prototype._canvasChanged):
3354         (WI.CanvasSidebarPanel.prototype._recordingChanged):
3355         (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):
3356         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
3357         Add new navigation sidebar, split into two sections. The upper section