Web Inspector: Network Waterfall column should redraw when adding/removing new columns
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2019-01-23  Joseph Pecoraro  <pecoraro@apple.com>
2
3         Web Inspector: Network Waterfall column should redraw when adding/removing new columns
4         https://bugs.webkit.org/show_bug.cgi?id=193696
5         <rdar://problem/47464149>
6
7         Reviewed by Devin Rousso.
8
9         * UserInterface/Views/TableColumn.js:
10         (WI.TableColumn.prototype.get needsReloadOnResize):
11         * UserInterface/Views/NetworkTableContentView.js:
12         (WI.NetworkTableContentView.prototype.initialLayout):
13         Mark the waterfall column as sensitive to any resizes.
14
15         * UserInterface/Views/Table.js:
16         (WI.Table.prototype.showColumn):
17         (WI.Table.prototype.hideColumn):
18         Update column widths and reload any columns that may be sensitive to resizes.
19
20 2019-01-22  Devin Rousso  <drousso@apple.com>
21
22         Web Inspector: InspectorInstrumentation::willEvaluateScript should include column number
23         https://bugs.webkit.org/show_bug.cgi?id=116191
24         <rdar://problem/13905910>
25
26         Reviewed by Joseph Pecoraro.
27
28         * UserInterface/Controllers/TimelineManager.js:
29         (WI.TimelineManager.prototype._processRecord):
30
31 2019-01-22  Devin Rousso  <drousso@apple.com>
32
33         Web Inspector: expose Audit and Recording versions to the frontend
34         https://bugs.webkit.org/show_bug.cgi?id=193262
35         <rdar://problem/47130684>
36
37         Reviewed by Joseph Pecoraro.
38
39         * UserInterface/Protocol/InspectorBackend.js:
40         (InspectorBackendClass.prototype.registerVersion): Added.
41
42         * UserInterface/Models/AuditTestCase.js:
43         * UserInterface/Models/Recording.js:
44         (WI.Recording.fromPayload):
45         Add Interface version values.
46
47 2019-01-22  Nikita Vasilyev  <nvasilyev@apple.com>
48
49         Web Inspector: Styles: refactor properties/allProperties/visibleProperties/allVisibleProperties
50         https://bugs.webkit.org/show_bug.cgi?id=193615
51
52         Reviewed by Devin Rousso.
53
54         Remove unused visibleProperties.
55
56         Rename:
57         - properties to enabledProperties;
58         - allProperties to properties;
59         - allVisibleProperties to visibleProperties.
60
61         * UserInterface/Models/CSSProperty.js:
62         (WI.CSSProperty.prototype._prependSemicolonIfNeeded):
63         (WI.CSSProperty):
64         * UserInterface/Models/CSSStyleDeclaration.js:
65         (WI.CSSStyleDeclaration):
66         (WI.CSSStyleDeclaration.prototype.get enabledProperties):
67         (WI.CSSStyleDeclaration.prototype.get properties):
68         (WI.CSSStyleDeclaration.prototype.propertyForName):
69         (WI.CSSStyleDeclaration.prototype.newBlankProperty):
70         (WI.CSSStyleDeclaration.prototype.shiftPropertiesAfter):
71         (WI.CSSStyleDeclaration.prototype._rangeAfterPropertyAtIndex):
72         * UserInterface/Models/DOMNodeStyles.js:
73         (WI.DOMNodeStyles.prototype._parseStylePropertyPayload):
74         (WI.DOMNodeStyles.prototype._markOverriddenProperties):
75         (WI.DOMNodeStyles.prototype._associateRelatedProperties):
76         (WI.DOMNodeStyles.prototype._isPropertyFoundInMatchingRules):
77         (WI.DOMNodeStyles):
78         * UserInterface/Views/BoxModelDetailsSectionRow.js:
79         (WI.BoxModelDetailsSectionRow.prototype._updateMetrics):
80         * UserInterface/Views/ComputedStyleDetailsPanel.js:
81         (WI.ComputedStyleDetailsPanel.prototype._computePropertyTraces):
82         * UserInterface/Views/ComputedStyleSection.js:
83         (WI.ComputedStyleSection.prototype.get propertiesToRender):
84         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
85         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender):
86         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
87         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
88         * UserInterface/Views/SpreadsheetStyleProperty.js:
89         (WI.SpreadsheetStyleProperty.prototype.updateStatus):
90
91 2019-01-22  Joseph Pecoraro  <pecoraro@apple.com>
92
93         Web Inspector: Network Table appears broken after filter - rows look collapsed
94         https://bugs.webkit.org/show_bug.cgi?id=192730
95         <rdar://problem/46853158>
96
97         Reviewed by Devin Rousso.
98
99         * UserInterface/Views/Table.js:
100         (WI.Table.prototype._applyColumnWidthsToColumnsIfNeeded):
101         Affect the filler row like the other applyColumnWidths calls since this
102         now may be the initial call to size visible columns.
103
104 2019-01-22  Devin Rousso  <drousso@apple.com>
105
106         Web Inspector: Audit: use plural strings for Passed, Failed, and Unsupported
107         https://bugs.webkit.org/show_bug.cgi?id=193675
108         <rdar://problem/46628680>
109
110         Reviewed by Joseph Pecoraro.
111
112         * UserInterface/Views/AuditTestGroupContentView.js:
113         (WI.AuditTestGroupContentView.prototype.layout):
114
115         * Localizations/en.lproj/localizedStrings.js:
116
117 2019-01-18  Jer Noble  <jer.noble@apple.com>
118
119         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
120         https://bugs.webkit.org/show_bug.cgi?id=189553
121
122         Reviewed by Tim Horton.
123
124         * Configurations/Base.xcconfig:
125         * Configurations/SDKVariant.xcconfig: Added.
126
127 2019-01-18  Devin Rousso  <drousso@apple.com>
128
129         Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'resource.finished')
130         https://bugs.webkit.org/show_bug.cgi?id=193589
131
132         Reviewed by Joseph Pecoraro.
133
134         * UserInterface/Views/NetworkTableContentView.js:
135         (WI.NetworkTableContentView.prototype.get supportsSave):
136         (WI.NetworkTableContentView.prototype._HARResources):
137
138 2019-01-17  Truitt Savell  <tsavell@apple.com>
139
140         Unreviewed, rolling out r240124.
141
142         This commit broke an internal build.
143
144         Reverted changeset:
145
146         "SDK_VARIANT build destinations should be separate from non-
147         SDK_VARIANT builds"
148         https://bugs.webkit.org/show_bug.cgi?id=189553
149         https://trac.webkit.org/changeset/240124
150
151 2019-01-17  Jer Noble  <jer.noble@apple.com>
152
153         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
154         https://bugs.webkit.org/show_bug.cgi?id=189553
155
156         Reviewed by Tim Horton.
157
158         * Configurations/Base.xcconfig:
159         * Configurations/SDKVariant.xcconfig: Added.
160
161 2019-01-16  Matt Baker  <mattbaker@apple.com>
162
163         Web Inspector: Fix TreeOutline TypeError:​ this._indexesForSubtree is not a function
164         https://bugs.webkit.org/show_bug.cgi?id=193501
165         <rdar://problem/47323967>
166
167         Reviewed by Joseph Pecoraro.
168
169         * UserInterface/Views/TreeOutline.js:
170         (WI.TreeOutline.prototype.removeChildAtIndex):
171
172 2019-01-15  Devin Rousso  <drousso@apple.com>
173
174         Web Inspector: Audit: create new IDL type for exposing special functionality in test context
175         https://bugs.webkit.org/show_bug.cgi?id=193149
176         <rdar://problem/46801218>
177
178         Reviewed by Joseph Pecoraro.
179
180         Add `AuditAgent` getters and plumbing.
181
182         * UserInterface/Protocol/Target.js:
183         (WI.Target.prototype.get AuditAgent): Added.
184
185         * UserInterface/Models/AuditTestCase.js:
186         (WI.AuditTestCase.prototype.async run):
187
188         * UserInterface/Controllers/AuditManager.js:
189         (WI.AuditManager.prototype.async start):
190
191         * .eslintrc:
192
193 2019-01-14  Devin Rousso  <drousso@apple.com>
194
195         Web Inspector: Event breakpoints: typing uppercase "DOM" doesn't show completions for events that start with "DOM"
196         https://bugs.webkit.org/show_bug.cgi?id=193384
197
198         Reviewed by Joseph Pecoraro.
199
200         * UserInterface/Views/EventBreakpointPopover.js:
201         (WI.EventBreakpointPopover.prototype.show):
202
203 2019-01-14  Devin Rousso  <drousso@apple.com>
204
205         Web Inspector: Event breakpoints: text field and completion popover fonts should match
206         https://bugs.webkit.org/show_bug.cgi?id=193249
207
208         Reviewed by Matt Baker.
209
210         * UserInterface/Views/EventBreakpointPopover.css:
211         (.popover .event-breakpoint-content > .event-type > input): Added.
212         (.popover .event-breakpoint-content > .event-type > input::placeholder): Added.
213         * UserInterface/Views/EventBreakpointPopover.js:
214         (WI.EventBreakpointPopover.prototype.show):
215         (WI.EventBreakpointPopover.prototype._showSuggestionsView):
216         Subtract the <input> border and padding from the bounds position so the <input> text lines
217         up with the `WI.CompletionSuggestionsView` text.
218
219         * UserInterface/Views/CompletionSuggestionsView.js:
220         (WI.CompletionSuggestionsView):
221         Drive-by: force `dir=ltr` to match the `text-align: left;` CSS styling.
222
223 2019-01-14  Nikita Vasilyev  <nvasilyev@apple.com>
224
225         Web Inspector: Styles: pressing Down key on empty value field shouldn't discard completion popover
226         https://bugs.webkit.org/show_bug.cgi?id=193098
227         <rdar://problem/47016036>
228
229         Reviewed by Devin Rousso.
230
231         Hide CompletionSuggestionsView when SpreadsheetTextField moves, e.g. by scrolling or resizing the sidebar.
232         Update CompletionSuggestionsView position after pressing Up or Down key, because SpreadsheetTextField may
233         move from wrapping text.
234
235         * UserInterface/Views/CompletionSuggestionsView.js:
236         (WI.CompletionSuggestionsView.prototype.hide):
237         (WI.CompletionSuggestionsView.prototype.show):
238         (WI.CompletionSuggestionsView.prototype.showUntilAnchorMoves): Removed.
239         (WI.CompletionSuggestionsView.prototype.hideWhenElementMoves): Added.
240         (WI.CompletionSuggestionsView.prototype._stopMoveTimer): Added.
241         (WI.CompletionSuggestionsView):
242
243         * UserInterface/Views/SpreadsheetTextField.js:
244         (WI.SpreadsheetTextField.prototype.set suggestionHint):
245         (WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion):
246         (WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
247         (WI.SpreadsheetTextField.prototype._updateCompletions):
248         (WI.SpreadsheetTextField.prototype._showSuggestionsView): Added.
249
250         (WI.SpreadsheetTextField.prototype._reAttachSuggestionHint):
251         Drive-by: abstract out repeating code into a private method.
252
253 2019-01-14  Devin Rousso  <drousso@apple.com>
254
255         Web Inspector: Settings: group titles should vertically align with the first editor
256         https://bugs.webkit.org/show_bug.cgi?id=193391
257
258         Reviewed by Dean Jackson.
259
260         * UserInterface/Views/SettingsTabContentView.css:
261         (.content-view.settings > .settings-view > .container):
262         (.content-view.settings > .settings-view > .container > .editor-group > .editor): Added.
263         (.content-view.settings > .settings-view > .container > .editor-group > .editor:first-child > *): Added.
264         (.content-view.settings > .settings-view > .container > .editor-group > .editor select):
265         (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
266
267 2019-01-11  Matt Baker  <mattbaker@apple.com>
268
269         Web Inspector: REGRESSION: deleting an audit puts selection in a selected but invisible state
270         https://bugs.webkit.org/show_bug.cgi?id=192917
271         <rdar://problem/46875285>
272
273         Reviewed by Devin Rousso.
274
275         SelectionController should not be notified of removed children until the
276         child items have been removed from the TreeOutline. Doing so at this stage
277         is unsafe, since this method checks `this.selectedTreeElement`, which could
278         return the adjusted index from the SelectionController before anything has
279         actually been removed from the TreeOutline.
280
281         The number of calls to SelectionController.prototype.didRemoveItems is also
282         reduced somewhat, since we're no longer calling it for every TreeElement.
283
284         * UserInterface/Views/TreeOutline.js:
285         (WI.TreeOutline.prototype.removeChildAtIndex):
286         (WI.TreeOutline.prototype.removeChildren):
287         (WI.TreeOutline.prototype._forgetTreeElement):
288         (WI.TreeOutline.prototype._indexesForSubtree): Added.        
289
290 2019-01-10  Devin Rousso  <drousso@apple.com>
291
292         Web Inspector: Audit: allow audits to be enabled/disabled
293         https://bugs.webkit.org/show_bug.cgi?id=192210
294         <rdar://problem/46423583>
295
296         Reviewed by Joseph Pecoraro.
297
298         * UserInterface/Controllers/AuditManager.js:
299         (WI.AuditManager.prototype.get editing): Added.
300         (WI.AuditManager.prototype.set editing): Added.
301         (WI.AuditManager.prototype.stop):
302         (WI.AuditManager.prototype.addDefaultTestsIfNeeded):
303         Since default audits aren't stored, keep a list of disabled default tests in a `WI.Setting`.
304
305         * UserInterface/Models/AuditTestBase.js:
306         (WI.AuditTestBase):
307         (WI.AuditTestBase.prototype.get disabled): Added.
308         (WI.AuditTestBase.prototype.set disabled): Added.
309         (WI.AuditTestBase.prototype.async start):
310         (WI.AuditTestBase.prototype.stop):
311         (WI.AuditTestBase.toJSON):
312
313         * UserInterface/Models/AuditTestCase.js:
314         (WI.AuditTestCase):
315         (WI.AuditTestCase.async fromPayload):
316         (WI.AuditTestCase.prototype.toJSON):
317
318         * UserInterface/Models/AuditTestGroup.js:
319         (WI.AuditTestGroup):
320         (WI.AuditTestGroup.async fromPayload):
321         (WI.AuditTestGroup.prototype.get disabled): Added.
322         (WI.AuditTestGroup.prototype.set disabled): Added.
323         (WI.AuditTestGroup.prototype.toJSON):
324         (WI.AuditTestGroup.prototype.async run):
325         (WI.AuditTestGroup.prototype._handleTestDisabledChanged): Added.
326         (WI.AuditTestGroup.prototype._handleTestProgress):
327         Propagate `disabled` changes to all sub-tests, unless the change was caused by one of the
328         sub-tests, in which case we are now in an intermediate state.
329
330         * UserInterface/Views/AuditNavigationSidebarPanel.js:
331         (WI.AuditNavigationSidebarPanel):
332         (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView):
333         (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
334         (WI.AuditNavigationSidebarPanel.prototype.hasCustomFilters): Added.
335         (WI.AuditNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): Added.
336         (WI.AuditNavigationSidebarPanel.prototype._addTest):
337         (WI.AuditNavigationSidebarPanel.prototype._addResult):
338         (WI.AuditNavigationSidebarPanel.prototype._updateStartStopButtonNavigationItemState):
339         (WI.AuditNavigationSidebarPanel.prototype._updateEditButtonNavigationItemState): Added.
340         (WI.AuditNavigationSidebarPanel.prototype._handleAuditManagerEditingChanged): Added.
341         (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
342         (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestScheduled):
343         (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange):
344         (WI.AuditNavigationSidebarPanel.prototype._handleEditButtonNavigationItemClicked): Added.
345         * UserInterface/Views/AuditNavigationSidebarPanel.css:
346         (.sidebar > .panel.navigation.audit > .content):
347         (.sidebar > .panel.navigation.audit > .content > .tree-outline): Added.
348         (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled):active): Added.
349         (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled).activated): Added.
350         (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled).activated:active): Added.
351         (.sidebar > .panel.navigation.audit > .content .edit-audits.disabled): Added.
352         (.finish-editing-audits-placeholder.message-text-view .navigation-item-help .navigation-bar): Added.
353         Leverage custom filters to ensure that disabled audits arent shown when not editing and that
354         result tree elements aren't shown while editing.
355
356         * UserInterface/Views/AuditTestGroupContentView.js:
357         (WI.AuditTestGroupContentView.prototype.shown):
358
359         * UserInterface/Views/AuditTreeElement.js:
360         (WI.AuditTreeElement.prototype.onattach):
361         (WI.AuditTreeElement.prototype.canSelectOnMouseDown): Added.
362         (WI.AuditTreeElement.prototype._updateTestGroupDisabled): Added.
363         (WI.AuditTreeElement.prototype._handleTestDisabledChanged): Added.
364         (WI.AuditTreeElement.prototype._handleManagerEditingChanged): Added.
365         * UserInterface/Views/AuditTreeElement.css:
366         (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:not(:hover)): Added.
367         (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Added.
368         (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:not(:hover)): Deleted.
369         (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Deleted.
370         Prevent selection and running when editing.
371
372         * UserInterface/Views/TreeOutline.css:
373         (.tree-outline .children.expanded:not([hidden])): Added.
374         (.tree-outline .children.expanded): Deleted.
375
376         * UserInterface/Base/ObjectStore.js:
377         (WI.ObjectStore._open):
378         Batch operations together to help avoid multiple simultaneous `indexedDB.open` calls. This
379         should also help preserve the order of operations, as once the database is open, operations
380         are executed in the order they were enqueued.
381
382         (WI.ObjectStore.prototype.async.addObject):
383         Pass a unique `Symbol` to the `toJSON` call on the given object so that the object can save
384         additional values that wouldn't normally be saved. This doesn't conflict with normal usage
385         of `toJSON` (e.g. `JSON.stringify`) because that case also passes in a value:
386          - `undefined`, if it was called directly on the object
387          - the key for this object in the containing object
388          - the index of this object in the containing array
389         In any case, the value can never equal the unique `Symbol`, so it's guaranteed that the code
390         will only run for `WI.ObjectStore` operations.
391
392         (WI.ObjectStore.prototype.async.clear): Added.
393
394         * Localizations/en.lproj/localizedStrings.js:
395
396 2019-01-09  Devin Rousso  <drousso@apple.com>
397
398         Web Inspector: Protocol Logging: log messages as objects if inspector^2 is open
399         https://bugs.webkit.org/show_bug.cgi?id=193284
400
401         Reviewed by Joseph Pecoraro.
402
403         If inspector^2 is closed, stringify all messages.
404         If inspector^2 is open, log each message JSON object without modifying it.
405
406         * UserInterface/Protocol/LoggingProtocolTracer.js:
407         (WI.LoggingProtocolTracer.prototype._processEntry):
408
409 2019-01-09  Nikita Vasilyev  <nvasilyev@apple.com>
410
411         Web Inspector: Styles: clicking on property that soon to be discarded shouldn't start selection
412         https://bugs.webkit.org/show_bug.cgi?id=193218
413         <rdar://problem/47098303>
414
415         Reviewed by Devin Rousso.
416
417         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
418         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
419         A style property may get removed on blur event, so propertyElement may get removed from the DOM right when mousedown event happens.
420
421         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowClick):
422         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
423         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._stopSelection):
424
425 2019-01-08  Nikita Vasilyev  <nvasilyev@apple.com>
426
427         Web Inspector: Styles: Undo reverts all changes at once
428         https://bugs.webkit.org/show_bug.cgi?id=177676
429         <rdar://problem/34745031>
430
431         Reviewed by Devin Rousso.
432
433         Command-Z used to revert all changes at once because Web Inspector never
434         set any history checkpoints in the style editor.
435
436         * UserInterface/Views/SpreadsheetStyleProperty.js:
437         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
438         * UserInterface/Views/SpreadsheetTextField.js:
439         (WI.SpreadsheetTextField.prototype._handleBlur):
440
441 2019-01-08  Nikita Vasilyev  <nvasilyev@apple.com>
442
443         Web Inspector: Use prefers-color-scheme instead of prefers-dark-interface
444         https://bugs.webkit.org/show_bug.cgi?id=193265
445
446         Reviewed by Timothy Hatcher.
447
448         * UserInterface/Views/AuditTestContentView.css:
449         (@media (prefers-color-scheme: dark)):
450         * UserInterface/Views/AuditTestGroupContentView.css:
451         (@media (prefers-color-scheme: dark)):
452         * UserInterface/Views/BezierEditor.css:
453         (@media (prefers-color-scheme: dark)):
454         * UserInterface/Views/BoxModelDetailsSectionRow.css:
455         (@media (prefers-color-scheme: dark)):
456         * UserInterface/Views/BreakpointActionView.css:
457         (@media (prefers-color-scheme: dark)):
458         * UserInterface/Views/BreakpointPopoverController.css:
459         (@media (prefers-color-scheme: dark)):
460         * UserInterface/Views/ButtonNavigationItem.css:
461         (@media (prefers-color-scheme: dark)):
462         * UserInterface/Views/ButtonToolbarItem.css:
463         (@media (prefers-color-scheme: dark)):
464         * UserInterface/Views/CallFrameView.css:
465         (@media (prefers-color-scheme: dark)):
466         * UserInterface/Views/CanvasContentView.css:
467         (@media (prefers-color-scheme: dark)):
468         * UserInterface/Views/CanvasOverviewContentView.css:
469         (@media (prefers-color-scheme: dark)):
470         * UserInterface/Views/CanvasSidebarPanel.css:
471         (@media (prefers-color-scheme: dark)):
472         * UserInterface/Views/CanvasTabContentView.css:
473         (@media (prefers-color-scheme: dark)):
474         * UserInterface/Views/CodeMirrorOverrides.css:
475         (@media (prefers-color-scheme: dark)):
476         * UserInterface/Views/CompletionSuggestionsView.css:
477         (@media (prefers-color-scheme: dark)):
478         * UserInterface/Views/ComputedStyleDetailsPanel.css:
479         (@media (prefers-color-scheme: dark)):
480         * UserInterface/Views/ComputedStyleSection.css:
481         (@media (prefers-color-scheme: dark)):
482         * UserInterface/Views/ConsoleMessageView.css:
483         (@media (prefers-color-scheme: dark)):
484         * UserInterface/Views/ConsolePrompt.css:
485         (@media (prefers-color-scheme: dark)):
486         * UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
487         (@media (prefers-color-scheme: dark)):
488         * UserInterface/Views/DOMTreeOutline.css:
489         (@media (prefers-color-scheme: dark)):
490         * UserInterface/Views/DataGrid.css:
491         (@media (prefers-color-scheme: dark)):
492         * UserInterface/Views/DebuggerDashboardView.css:
493         (@media (prefers-color-scheme: dark)):
494         * UserInterface/Views/DebuggerSidebarPanel.css:
495         (@media (prefers-color-scheme: dark)):
496         * UserInterface/Views/DefaultDashboardView.css:
497         (@media (prefers-color-scheme: dark)):
498         * UserInterface/Views/DetailsSection.css:
499         (@media (prefers-color-scheme: dark)):
500         * UserInterface/Views/DividerNavigationItem.css:
501         (@media (prefers-color-scheme: dark)):
502         * UserInterface/Views/Editing.css:
503         (@media (prefers-color-scheme: dark)):
504         * UserInterface/Views/FindBanner.css:
505         (@media (prefers-color-scheme: dark)):
506         * UserInterface/Views/FontResourceContentView.css:
507         (@media (prefers-color-scheme: dark)):
508         * UserInterface/Views/FormattedValue.css:
509         (@media (prefers-color-scheme: dark)):
510         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
511         (@media (prefers-color-scheme: dark)):
512         * UserInterface/Views/HoverMenu.css:
513         (@media (prefers-color-scheme: dark)):
514         * UserInterface/Views/ImageResourceContentView.css:
515         (@media (prefers-color-scheme: dark)):
516         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
517         (@media (prefers-color-scheme: dark)):
518         * UserInterface/Views/LogContentView.css:
519         (@media (prefers-color-scheme: dark)):
520
521         * UserInterface/Views/Main.css:
522         (:root):
523
524         (@media (prefers-color-scheme: dark)):
525         * UserInterface/Views/NetworkDetailView.css:
526         (@media (prefers-color-scheme: dark)):
527         * UserInterface/Views/NetworkTableContentView.css:
528         (@media (prefers-color-scheme: dark)):
529         * UserInterface/Views/NewTabContentView.css:
530         (@media (prefers-color-scheme: dark)):
531         * UserInterface/Views/ObjectPreviewView.css:
532         (@media (prefers-color-scheme: dark)):
533         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
534         (@media (prefers-color-scheme: dark)):
535         * UserInterface/Views/OpenResourceDialog.css:
536         (@media (prefers-color-scheme: dark)):
537         * UserInterface/Views/ProgressView.css:
538         (@media (prefers-color-scheme: dark)):
539         * UserInterface/Views/QuickConsole.css:
540         (@media (prefers-color-scheme: dark)):
541         * UserInterface/Views/RecordingActionTreeElement.css:
542         (@media (prefers-color-scheme: dark)):
543         * UserInterface/Views/RecordingContentView.css:
544         (@media (prefers-color-scheme: dark)):
545         * UserInterface/Views/RecordingStateDetailsSidebarPanel.css:
546         (@media (prefers-color-scheme: dark)):
547         * UserInterface/Views/ResourceSecurityContentView.css:
548         (@media (prefers-color-scheme: dark)):
549         * UserInterface/Views/ResourceSizesContentView.css:
550         (@media (prefers-color-scheme: dark)):
551         * UserInterface/Views/ResourceTimingBreakdownView.css:
552         (@media (prefers-color-scheme: dark)):
553         * UserInterface/Views/ScopeBar.css:
554         (@media (prefers-color-scheme: dark)):
555         * UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
556         (@media (prefers-color-scheme: dark)):
557         * UserInterface/Views/SearchBar.css:
558         (@media (prefers-color-scheme: dark)):
559         * UserInterface/Views/SearchSidebarPanel.css:
560         (@media (prefers-color-scheme: dark)):
561         * UserInterface/Views/SettingsTabContentView.css:
562         (@media (prefers-color-scheme: dark)):
563         * UserInterface/Views/ShaderProgramContentView.css:
564         (@media (prefers-color-scheme: dark)):
565         * UserInterface/Views/ShaderProgramTreeElement.css:
566         (@media (prefers-color-scheme: dark)):
567         * UserInterface/Views/SourceCodeTextEditor.css:
568         (@media (prefers-color-scheme: dark)):
569         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
570         (@media (prefers-color-scheme: dark)):
571         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
572         (@media (prefers-color-scheme: dark)):
573         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
574         (@media (prefers-color-scheme: dark)):
575         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
576         (@media (prefers-color-scheme: dark)):
577         * UserInterface/Views/TabBar.css:
578         (@media (prefers-color-scheme: dark)):
579         * UserInterface/Views/Table.css:
580         (@media (prefers-color-scheme: dark)):
581         * UserInterface/Views/TextEditor.css:
582         (@media (prefers-color-scheme: dark)):
583         * UserInterface/Views/TimelineDataGrid.css:
584         (@media (prefers-color-scheme: dark)):
585         * UserInterface/Views/TimelineIcons.css:
586         (@media (prefers-color-scheme: dark)):
587         * UserInterface/Views/TimelineOverview.css:
588         (@media (prefers-color-scheme: dark)):
589         * UserInterface/Views/Toolbar.css:
590         (@media (prefers-color-scheme: dark)):
591         * UserInterface/Views/TreeOutline.css:
592         (@media (prefers-color-scheme: dark)):
593         * UserInterface/Views/URLBreakpointPopover.css:
594         (@media (prefers-color-scheme: dark)):
595         * UserInterface/Views/Variables.css:
596         (@media (prefers-color-scheme: dark)):
597         * UserInterface/Views/WebSocketContentView.css:
598         (@media (prefers-color-scheme: dark)):
599
600 2019-01-07  Devin Rousso  <drousso@apple.com>
601
602         Web Inspector: Audit: run arrow shouldn't be visible when running tests
603         https://bugs.webkit.org/show_bug.cgi?id=192209
604         <rdar://problem/46423615>
605
606         Reviewed by Brian Burg.
607
608         * UserInterface/Views/AuditTreeElement.js:
609         (WI.AuditTreeElement.prototype.onattach):
610         (WI.AuditTreeElement.prototype.ondetach):
611         (WI.AuditTreeElement.prototype._updateLevel):
612         (WI.AuditTreeElement.prototype._handleAuditManagerTestScheduled): Added.
613         (WI.AuditTreeElement.prototype._handleAuditManagerTestCompleted): Added.
614         * UserInterface/Views/AuditTreeElement.css: Added.
615         (.tree-outline .item.audit:matches(.test-case, .test-group):not(.manager-active) > .status:hover > img): Added.
616         (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Added.
617         (.tree-outline .item.audit:matches(.test-case, .test-group) > .status:hover > img): Deleted.
618         (.tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Deleted.
619
620 2019-01-07  Devin Rousso  <drousso@apple.com>
621
622         Web Inspector: extend XHR breakpoints to work with fetch
623         https://bugs.webkit.org/show_bug.cgi?id=185843
624         <rdar://problem/40431027>
625
626         Reviewed by Matt Baker.
627
628         * UserInterface/Controllers/DOMDebuggerManager.js:
629         (WI.DOMDebuggerManager):
630         (WI.DOMDebuggerManager.supportsURLBreakpoints): Added.
631         (WI.DOMDebuggerManager.prototype.get urlBreakpoints): Added.
632         (WI.DOMDebuggerManager.prototype.urlBreakpointForURL): Added.
633         (WI.DOMDebuggerManager.prototype.addURLBreakpoint): Added.
634         (WI.DOMDebuggerManager.prototype.removeURLBreakpoint): Added.
635         (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
636         (WI.DOMDebuggerManager.prototype._updateURLBreakpoint): Added.
637         (WI.DOMDebuggerManager.prototype._resolveURLBreakpoint): Added.
638         (WI.DOMDebuggerManager.prototype._saveURLBreakpoints): Added.
639         (WI.DOMDebuggerManager.prototype._urlBreakpointDisabledStateDidChange): Added.
640         (WI.DOMDebuggerManager.prototype.get xhrBreakpoints): Deleted.
641         (WI.DOMDebuggerManager.prototype.xhrBreakpointForURL): Deleted.
642         (WI.DOMDebuggerManager.prototype.addXHRBreakpoint): Deleted.
643         (WI.DOMDebuggerManager.prototype.removeXHRBreakpoint): Deleted.
644         (WI.DOMDebuggerManager.prototype._updateXHRBreakpoint.breakpointUpdated): Deleted.
645         (WI.DOMDebuggerManager.prototype._updateXHRBreakpoint): Deleted.
646         (WI.DOMDebuggerManager.prototype._resolveXHRBreakpoint): Deleted.
647         (WI.DOMDebuggerManager.prototype._saveXHRBreakpoints): Deleted.
648         (WI.DOMDebuggerManager.prototype._xhrBreakpointDisabledStateDidChange): Deleted.
649
650         * UserInterface/Controllers/DebuggerManager.js:
651         (WI.DebuggerManager.prototype._pauseReasonFromPayload):
652
653         * UserInterface/Views/DebuggerSidebarPanel.js:
654         (WI.DebuggerSidebarPanel):
655         (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
656         (WI.DebuggerSidebarPanel.prototype._addBreakpoint):
657         (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
658         (WI.DebuggerSidebarPanel.prototype._addTreeElement):
659         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
660         (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked):
661
662         * UserInterface/Views/NavigationSidebarPanel.js:
663         (WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
664
665         * UserInterface/Models/URLBreakpoint.js: Renamed from Source/WebInspectorUI/UserInterface/Models/XHRBreakpoint.js.
666         * UserInterface/Views/URLBreakpointPopover.css: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointPopover.css.
667         * UserInterface/Views/URLBreakpointPopover.js: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointPopover.js.
668         * UserInterface/Views/URLBreakpointTreeElement.css: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.css.
669         * UserInterface/Views/URLBreakpointTreeElement.js: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.js.
670
671         * UserInterface/Base/Setting.js:
672         (WI.Setting.migrateValue): Added.
673
674         * UserInterface/Main.html:
675         * UserInterface/Test.html:
676
677         * Localizations/en.lproj/localizedStrings.js:
678
679 2019-01-07  Devin Rousso  <drousso@apple.com>
680
681         Web Inspector: Network: show secure connection details per-request
682         https://bugs.webkit.org/show_bug.cgi?id=191539
683         <rdar://problem/45979891>
684
685         Reviewed by Joseph Pecoraro.
686
687         * UserInterface/Models/Resource.js:
688         (WI.Resource):
689         (WI.Resource.prototype.get security): Added.
690         (WI.Resource.prototype.updateForResponse):
691         (WI.Resource.prototype.updateWithMetrics):
692         (WI.Resource.prototype.get responseSecurity): Deleted.
693
694         * UserInterface/Views/ResourceSecurityContentView.js:
695         (WI.ResourceSecurityContentView):
696         (WI.ResourceSecurityContentView.prototype.initialLayout):
697         (WI.ResourceSecurityContentView.prototype.layout):
698         (WI.ResourceSecurityContentView.prototype._refreshConnectionSection): Added.
699         (WI.ResourceSecurityContentView.prototype._refreshCetificateSection):
700         (WI.ResourceSecurityContentView.prototype._handleResourceMetricsDidChange): Added.
701         * UserInterface/Views/ResourceSecurityContentView.css:
702         (body[dir] .resource-security > section:matches(.connection, .certificate) > .details): Added.
703         (@media (prefers-dark-interface) body[dir] .resource-security > section:matches(.connection, .certificate) > .details): Added.
704         (body[dir] .resource-security > section.certificate > .details): Deleted.
705         (@media (prefers-dark-interface) body[dir] .resource-security > section.certificate > .details): Deleted.
706
707         * Localizations/en.lproj/localizedStrings.js:
708
709 2019-01-07  Nikita Vasilyev  <nvasilyev@apple.com>
710
711         Web Inspector: "white" isn't recognized as a color keyword
712         https://bugs.webkit.org/show_bug.cgi?id=193173
713         <rdar://problem/47068595>
714
715         Reviewed by Joseph Pecoraro.
716
717         Attempt to parse "atom" token types as colors.
718
719         Display color picker only for color-aware properties. For instance,
720         display it for "color: white" but not for "-apple-pay-button-style: white".
721
722         * UserInterface/Models/CSSKeywordCompletions.js:
723         (addKeywordsForName):
724         (WI.CSSKeywordCompletions.forProperty):
725         (WI.CSSKeywordCompletions.isColorAwareProperty):
726         * UserInterface/Views/SpreadsheetStyleProperty.js:
727         (WI.SpreadsheetStyleProperty.prototype._renderValue):
728         (WI.SpreadsheetStyleProperty.prototype._addColorTokens):
729
730 2019-01-04  Joseph Pecoraro  <pecoraro@apple.com>
731
732         Web Inspector: subclasses of WI.ClusterContentView don't save/restore content views after the initial view
733         https://bugs.webkit.org/show_bug.cgi?id=192451
734         <rdar://problem/46800958>
735
736         Reviewed by Devin Rousso.
737
738         * UserInterface/Models/BackForwardEntry.js:
739         (WI.BackForwardEntry.prototype.prepareToHide):
740         * UserInterface/Views/ClusterContentView.js:
741         (WI.ClusterContentView.prototype.get shouldSaveStateOnHide):
742         * UserInterface/Views/ContentView.js:
743         (WI.ContentView.prototype.get shouldSaveStateOnHide):
744         Allow ClusterContentViews to save its state whenever its hidden,
745         this means it can be properly restored to the last state it had
746         instead of the initial state it was shown with.
747
748 2019-01-04  Devin Rousso  <drousso@apple.com>
749
750         Web Inspector: Audit: disable breakpoints when running Audit
751         https://bugs.webkit.org/show_bug.cgi?id=193158
752         <rdar://problem/47057083>
753
754         Reviewed by Joseph Pecoraro.
755
756         * UserInterface/Controllers/DebuggerManager.js:
757         (WI.DebuggerManager):
758         (WI.DebuggerManager.prototype._startDisablingBreakpointsTemporarily):
759         (WI.DebuggerManager.prototype._stopDisablingBreakpointsTemporarily):
760         (WI.DebuggerManager.prototype._handleAuditManagerTestScheduled): Added.
761         (WI.DebuggerManager.prototype._handleAuditManagerTestCompleted): Added.
762
763         * UserInterface/Views/DebuggerSidebarPanel.js:
764         (WI.DebuggerSidebarPanel.prototype._timelineCapturingWillStart):
765         (WI.DebuggerSidebarPanel.prototype._timelineCapturingStopped):
766         (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestScheduled): Added.
767         (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestCompleted): Added.
768         (WI.DebuggerSidebarPanel.prototype._updateBreakpointsDisabledBanner):
769         * UserInterface/Views/DebuggerSidebarPanel.css:
770         (.sidebar > .panel.navigation.debugger .warning-banner + .warning-banner): Added.
771
772         * UserInterface/Base/Main.js:
773         (WI.loaded):
774         * UserInterface/Test/Test.js:
775         (WI.loaded):
776         Move `WI.auditManager` higher in the managers list so that it can be used in
777         `WI.DebuggerManager`'s constructor.
778
779         * Localizations/en.lproj/localizedStrings.js:
780
781 2019-01-04  Joseph Pecoraro  <pecoraro@apple.com>
782
783         Web Inspector: Add a Setting Toggle for Source Maps
784         https://bugs.webkit.org/show_bug.cgi?id=193148
785
786         Reviewed by Devin Rousso.
787
788         * UserInterface/Controllers/NetworkManager.js:
789         (WI.NetworkManager.prototype.downloadSourceMap):
790         Don't download source maps if the setting is disabled.
791
792         * UserInterface/Base/Setting.js:
793         * UserInterface/Views/SettingsTabContentView.js:
794         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
795         Settings toggle for source maps. Enabled by default.
796
797         * Localizations/en.lproj/localizedStrings.js:
798
799 2019-01-04  Joseph Pecoraro  <pecoraro@apple.com>
800
801         Web Inspector: Include `globalThis` in default JavaScript completions
802         https://bugs.webkit.org/show_bug.cgi?id=193147
803
804         Reviewed by Devin Rousso.
805
806         * UserInterface/Controllers/CodeMirrorCompletionController.js:
807         Add `globalThis` which is a new global value.
808
809 2019-01-03  Devin Rousso  <drousso@apple.com>
810
811         Web Inspector: conic-gradient color picker doesn't accurately show color when saturation value is not 100%
812         https://bugs.webkit.org/show_bug.cgi?id=192729
813         <rdar://problem/46746815>
814
815         Reviewed by Joseph Pecoraro.
816
817         Rework `WI.ColorWheel` to use similar canvas drawing logic as `WI.LegacyColorWheel` so that
818         it's able to adjust the saturation value as the pixels gets closer to the center.
819
820         * UserInterface/Models/Color.js:
821         (WI.Color.rgb2hsl): Added.
822         (WI.Color.hsl2rgb): Added.
823         (WI.Color.cmyk2rgb):
824         (WI.Color.prototype.isKeyword):
825         (WI.Color.prototype._toRGBString):
826         (WI.Color.prototype._toRGBAString):
827         (WI.Color.prototype._toHSLString):
828         (WI.Color.prototype._toHSLAString):
829         (WI.Color.prototype._rgbaToHSLA):
830         (WI.Color.prototype._hslaToRGBA):
831         (WI.Color.rgb2hsv): Deleted.
832         (WI.Color.hsv2rgb): Deleted.
833         (WI.Color.prototype._rgbToHSL): Deleted.
834         (WI.Color.prototype._hslToRGB): Deleted.
835         Adjust the conversion functions of `WI.Color` to be more accurate.
836
837         * UserInterface/Views/ColorWheel.js:
838         (WI.ColorWheel):
839         (WI.ColorWheel.prototype.set dimension):
840         (WI.ColorWheel.prototype.set brightness):
841         (WI.ColorWheel.prototype.get tintedColor):
842         (WI.ColorWheel.prototype.set tintedColor):
843         (WI.ColorWheel.prototype._updateColorForMouseEvent):
844         (WI.ColorWheel.prototype._updateCanvas): Added.
845         (WI.ColorWheel.prototype._updateGradient): Deleted.
846         * UserInterface/Views/ColorWheel.css:
847         (.color-wheel > canvas): Added.
848         (.color-wheel > .gradient): Deleted.
849
850         * UserInterface/Views/ColorPicker.js:
851         (WI.ColorPicker):
852         (WI.ColorPicker.prototype.set color):
853         (WI.ColorPicker.prototype.sliderValueDidChange):
854         (WI.ColorPicker.prototype._updateSliders):
855         (WI.ColorPicker.prototype._showColorComponentInputs):
856         (WI.ColorPicker.supportsConicGradient): Deleted.
857
858         * UserInterface/Main.html:
859
860         * UserInterface/Views/LegacyColorWheel.js: Removed.
861
862 2019-01-02  Nikita Vasilyev  <nvasilyev@apple.com>
863
864         Web Inspector: Styles: selection lost when inspector is blurred
865         https://bugs.webkit.org/show_bug.cgi?id=192124
866         <rdar://problem/46800965>
867
868         Reviewed by Devin Rousso.
869
870         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
871         (body:matches(.window-docked-inactive, .window-inactive) .spreadsheet-style-declaration-editor .property.selected):
872         Selection should be gray when Web Inspector window isn't focused.
873
874         * UserInterface/Views/SpreadsheetStyleProperty.js:
875
876 2019-01-02  Nikita Vasilyev  <nvasilyev@apple.com>
877
878         Web Inspector: Styles: it shouldn't be possible to delete read-only properties
879         https://bugs.webkit.org/show_bug.cgi?id=193099
880         <rdar://problem/47016335>
881
882         Reviewed by Devin Rousso.
883
884         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
885         (WI.SpreadsheetCSSStyleDeclarationEditor):
886         Drive-by: Forward Delete should work the same way as Delete (Backspace).
887
888 2019-01-02  Devin Rousso  <webkit@devinrousso.com>
889
890         Web Inspector: Implement `queryObjects` Command Line API
891         https://bugs.webkit.org/show_bug.cgi?id=176766
892         <rdar://problem/34890689>
893
894         Reviewed by Joseph Pecoraro.
895
896         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
897         (WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames):
898         Add `queryObjects` to the list of command line functions.
899
900 2018-12-21  Devin Rousso  <drousso@apple.com>
901
902         Web Inspector: Styles Redesign: remove unused CSS style icons
903         https://bugs.webkit.org/show_bug.cgi?id=192999
904         <rdar://problem/46912094>
905
906         Reviewed by Matt Baker.
907
908         * UserInterface/Main.html:
909         * UserInterface/Views/StyleRuleIcons.css: Removed.
910         * UserInterface/Images/StyleRule.svg: Removed.
911         * UserInterface/Images/StyleRuleInheritedElement.svg: Removed.
912         * UserInterface/Images/StyleRulePseudoElement.svg: Removed.
913
914         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
915         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
916
917 2018-12-21  Nikita Vasilyev  <nvasilyev@apple.com>
918
919         Web Inspector: Styles: editing focus lost when inspector is blurred
920         https://bugs.webkit.org/show_bug.cgi?id=192123
921         <rdar://problem/46800966>
922
923         Reviewed by Devin Rousso.
924
925         * UserInterface/Views/SpreadsheetSelectorField.js:
926         (WI.SpreadsheetSelectorField.prototype._handleBlur):
927         * UserInterface/Views/SpreadsheetTextField.js:
928         (WI.SpreadsheetTextField.prototype._handleBlur):
929
930 2018-12-21  Devin Rousso  <drousso@apple.com>
931
932         Web Inspector: Settings: experimental setting editors are misaligned in other locales
933         https://bugs.webkit.org/show_bug.cgi?id=192971
934         <rdar://problem/46718451>
935
936         Reviewed by Joseph Pecoraro.
937
938         * UserInterface/Views/SettingsTabContentView.css:
939         (.content-view.settings > .settings-view > .container):
940         (.content-view.settings > .settings-view > .container > .title):
941
942 2018-12-21  Devin Rousso  <drousso@apple.com>
943
944         Web Inspector: update scroll position when revealing a virtualized WI.DataGridNode
945         https://bugs.webkit.org/show_bug.cgi?id=192992
946         <rdar://problem/46886427>
947
948         Reviewed by Joseph Pecoraro.
949
950         When `reveal`ing a `WI.DataGridNode`, if it is not currently in the DOM tree (e.g. it's been
951         virtualized by it's owner `WI.DataGrid`), we need to scroll to it's position so that it gets
952         added to the DOM tree before it can be revealed/selected.
953
954         * UserInterface/Views/DataGrid.js:
955         (WI.DataGrid.prototype.layout):
956         (WI.DataGrid.prototype.updateVisibleRows):
957         (WI.DataGrid.prototype._updateVisibleRows): Deleted.
958
959         * UserInterface/Views/DataGridNode.js:
960         (WI.DataGridNode.prototype.reveal):
961
962 2018-12-20  Nikita Vasilyev  <nvasilyev@apple.com>
963
964         Web Inspector: Dark Mode: Type profiler popovers have black text on dark background
965         https://bugs.webkit.org/show_bug.cgi?id=192916
966         <rdar://problem/46863518>
967
968         Reviewed by Devin Rousso.
969
970         * UserInterface/Views/SourceCodeTextEditor.css:
971         (.popover .debugger-popover-content > .body):
972         * UserInterface/Views/TypeTreeElement.css:
973         (.item.type-tree-element.prototype):
974         (.item.type-tree-element.prototype:hover,):
975         * UserInterface/Views/TypeTreeView.css:
976         (.type-tree):
977         * UserInterface/Views/Variables.css:
978         (:root):
979
980 2018-12-20  Nikita Vasilyev  <nvasilyev@apple.com>
981
982         Web Inspector: Styles: Pressing Esc when editing name/value should select entire property
983         https://bugs.webkit.org/show_bug.cgi?id=192919
984
985         Reviewed by Devin Rousso.
986
987         - Esc still hides the completion popover.
988         - Esc still discards changes.
989         - When there's no completion popover, Esc selects outer scope.
990           I.e., it goes from editing name/value to selecting the entire property.
991         - Pressing Esc for newly added properties discards those properties.
992
993         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
994         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
995         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyDidPressEsc):
996         * UserInterface/Views/SpreadsheetStyleProperty.js:
997         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidPressEsc):
998         * UserInterface/Views/SpreadsheetTextField.js:
999         (WI.SpreadsheetTextField.prototype._discardChange):
1000         (WI.SpreadsheetTextField.prototype._handleKeyDown):
1001
1002 2018-12-20  Joseph Pecoraro  <pecoraro@apple.com>
1003
1004         Web Inspector: Charles Proxy errors opening har files exported from Safari (invalid startedDateTime)
1005         https://bugs.webkit.org/show_bug.cgi?id=192959
1006         <rdar://problem/46863411>
1007
1008         Reviewed by Brian Burg.
1009
1010         * UserInterface/Views/NetworkTableContentView.js:
1011         (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
1012         (WI.NetworkTableContentView.prototype._updateExportButton):
1013         (WI.NetworkTableContentView.prototype._canExportHAR):
1014         Disallow HAR export if we don't have load data, such as the requestSentDate for
1015         the main resource or sub-resources.
1016
1017         (WI.NetworkTableContentView.prototype._HARResources):
1018         Only export resources that have load data.
1019
1020 2018-12-20  Joseph Pecoraro  <pecoraro@apple.com>
1021
1022         Web Inspector: Autoformat doesn't work on icloud.com (javascript-packed.js)
1023         https://bugs.webkit.org/show_bug.cgi?id=192946
1024         <rdar://problem/42546126>
1025
1026         Rubber-stamped by Devin Rousso.
1027
1028         * UserInterface/Base/Utilities.js:
1029         (whitespaceRatio):
1030         (isTextLikelyMinified):
1031         Check the first 2500 and the last 2500 characters whitespace ratio.
1032         If either is below 20% then treat as minified.
1033
1034 2018-12-20  Joseph Pecoraro  <pecoraro@apple.com>
1035
1036         ITMLKit Inspector: Elements tab does not show DOM Tree
1037         https://bugs.webkit.org/show_bug.cgi?id=192910
1038         <rdar://problem/46680585>
1039
1040         Reviewed by Brian Burg.
1041
1042         * UserInterface/Protocol/Connection.js:
1043         (InspectorBackend.Connection.prototype._dispatchEvent):
1044         Better logging for errors.
1045
1046         * UserInterface/Base/Main.js:
1047         * UserInterface/Controllers/AppController.js:
1048         (WI.AppController.prototype.activateExtraDomains):
1049         Let Targets get a chance to activate extra domains.
1050         Perform a little more work in these cases.
1051
1052         * UserInterface/Protocol/Target.js:
1053         (WI.Target):
1054         (WI.Target.prototype.activateExtraDomain):
1055         Expose agents for domains that are active.
1056         Expose agents for extra domains when they are activated.
1057
1058 2018-12-20  Joseph Pecoraro  <pecoraro@apple.com>
1059
1060         ITMLKit Inspector: Computed Style Box Model section throws exceptions
1061         https://bugs.webkit.org/show_bug.cgi?id=192911
1062         <rdar://problem/46861112>
1063
1064         Reviewed by Matt Baker.
1065
1066         * UserInterface/Views/BoxModelDetailsSectionRow.js:
1067         (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createBoxPartElement):
1068         (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createContentAreaElement):
1069         (WI.BoxModelDetailsSectionRow.prototype._updateMetrics):
1070         ITMLKit doesn't always provide a display/position/width/height etc properties.
1071         Protect against this, and just show an empty message in the box model section
1072         if those properties do not exist.
1073
1074 2018-12-20  Devin Rousso  <drousso@apple.com>
1075
1076         Web Inspector: UIString should take an optional key and description to aid localization
1077         https://bugs.webkit.org/show_bug.cgi?id=153962
1078         <rdar://problem/24542505>
1079
1080         Reviewed by Brian Burg.
1081
1082         * UserInterface/Base/LoadLocalizedStrings.js:
1083         (WI.UIString):
1084
1085         * UserInterface/Test/Test.js:
1086         (WI.UIString):
1087
1088         * UserInterface/Views/AuditTestGroupContentView.js:
1089         (WI.AuditTestGroupContentView.prototype.initialLayout):
1090
1091 2018-12-20  Devin Rousso  <drousso@apple.com>
1092
1093         Web Inspector: Audits: don't cache default audits
1094         https://bugs.webkit.org/show_bug.cgi?id=192918
1095         <rdar://problem/46626543>
1096
1097         Reviewed by Brian Burg.
1098
1099         Instead of adding the default audits to the "audits" `WI.ObjectStore`, which preserves them
1100         across WebInspector sessions, load them every time WebInspector is opened (unless there are
1101         existing audits) so that the localized strings are able to respond to locale changes.
1102
1103         * UserInterface/Controllers/AuditManager.js:
1104         (WI.AuditManager.prototype.removeTest):
1105         (WI.AuditManager.prototype.addDefaultTestsIfNeeded):
1106
1107 2018-12-20  Devin Rousso  <drousso@apple.com>
1108
1109         Web Inspector: Dark Mode: unreadable background color for tables containing object previews
1110         https://bugs.webkit.org/show_bug.cgi?id=192887
1111         <rdar://problem/46855270>
1112
1113         Reviewed by Brian Burg.
1114
1115         * UserInterface/Views/LogContentView.css:
1116         (.console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added.
1117         (@media (prefers-dark-interface) .console-item .data-grid tr.selected): Added.
1118         (@media (prefers-dark-interface) .console-messages:focus .console-item.selected .data-grid tr.selected): Added.
1119         (@media (prefers-dark-interface) .console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added.
1120
1121         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
1122         (.content-view.indexed-database-object-store > .data-grid tr.selected):
1123         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added.
1124         (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid tr.selected): Added.
1125         (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added.
1126         (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected td:not(:last-child)): Added.
1127
1128 2018-12-19  Devin Rousso  <drousso@apple.com>
1129
1130         Web Inspector: Audit: fix descriptions for default tests
1131         https://bugs.webkit.org/show_bug.cgi?id=192764
1132         <rdar://problem/46729437>
1133
1134         Reviewed by Matt Baker.
1135
1136         * UserInterface/Controllers/AuditManager.js:
1137         (WI.AuditManager.prototype.addDefaultTestsIfNeeded):
1138
1139         * Localizations/en.lproj/localizedStrings.js:
1140
1141 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
1142
1143         Web Inspector: "E" icon on debugger dashboard is too close to current function name
1144         https://bugs.webkit.org/show_bug.cgi?id=192915
1145
1146         Reviewed by Matt Baker.
1147
1148         * UserInterface/Views/DebuggerDashboardView.css:
1149         (.dashboard.debugger > .location):
1150         (body[dir=ltr] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
1151         (body[dir=rtl] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
1152         (.dashboard.debugger > .location .function-icon): Deleted.
1153         (body[dir=ltr] .dashboard.debugger > .location .function-icon): Deleted.
1154         (body[dir=rtl] .dashboard.debugger > .location .function-icon): Deleted.
1155
1156 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
1157
1158         Web Inspector: Dark Mode: ThreadTreeElement status icon is hard to see when hovered
1159         https://bugs.webkit.org/show_bug.cgi?id=192097
1160         <rdar://problem/46318421>
1161
1162         Reviewed by Matt Baker.
1163
1164         * UserInterface/Views/ThreadTreeElement.css:
1165         (.tree-outline > .item.thread .status-button.resume):
1166         (.tree-outline > .item.thread .status-button.resume:active):
1167
1168 2018-12-19  Devin Rousso  <drousso@apple.com>
1169
1170         Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'effectiveDOMNode.enabledPseudoClasses')
1171         https://bugs.webkit.org/show_bug.cgi?id=192783
1172
1173         Reviewed by Joseph Pecoraro.
1174
1175         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
1176         (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
1177         (WI.GeneralStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes):
1178
1179 2018-12-19  Devin Rousso  <drousso@apple.com>
1180
1181         Web Inspector: REGRESSION (r237195): Timelines: selecting a rendering frame row moves the time selection
1182         https://bugs.webkit.org/show_bug.cgi?id=192773
1183         <rdar://problem/46782446>
1184
1185         Reviewed by Joseph Pecoraro.
1186
1187         * UserInterface/Views/TimelineOverview.js:
1188         (WI.TimelineOverview.prototype._recordSelected):
1189         The Frames timeline uses `frameIndex` instead of `startTime`/`endTime`, so when trying to
1190         ensure that the selected record is within the filtered range, use `frameIndex` instead.
1191         The associated `WI.TimelineRuler` will already be using an index-based approach for
1192         selection, so this will match.
1193
1194 2018-12-19  Devin Rousso  <drousso@apple.com>
1195
1196         Web Inspector: Canvas: the recording auto-capture input shouldn't start focused
1197         https://bugs.webkit.org/show_bug.cgi?id=192454
1198
1199         Reviewed by Joseph Pecoraro.
1200
1201         * UserInterface/Views/CanvasOverviewContentView.js:
1202         (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel):
1203         (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):
1204
1205 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
1206
1207         Web Inspector: Styles: shift-clicking a color-swatch to change formats starts editing the color
1208         https://bugs.webkit.org/show_bug.cgi?id=192784
1209         <rdar://problem/46801028>
1210
1211         Reviewed by Devin Rousso.
1212
1213         * UserInterface/Views/SpreadsheetStyleProperty.js:
1214         (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
1215
1216 2018-12-19  Matt Baker  <mattbaker@apple.com>
1217
1218         Web Inspector: Elements tab: arrow key after undoing a DOM node delete selects the wrong element
1219         https://bugs.webkit.org/show_bug.cgi?id=192871
1220         <rdar://problem/46849060>
1221
1222         Reviewed by Devin Rousso.
1223
1224         Undoing a DOM node removal reinserts the node into the DOMTreeOutline.
1225         When the reinserted node precedes the selected node in the tree, the
1226         SelectionController should update `_lastSelectedIndex`.
1227
1228         * UserInterface/Controllers/SelectionController.js:
1229         (WI.SelectionController.prototype.didInsertItem):
1230
1231 2018-12-19  Devin Rousso  <drousso@apple.com>
1232
1233         Web Inspector: Audit: provide localization support for % pass display
1234         https://bugs.webkit.org/show_bug.cgi?id=192870
1235         <rdar://problem/46779245>
1236
1237         Reviewed by Brian Burg.
1238
1239         * UserInterface/Views/AuditTestGroupContentView.js:
1240         (WI.AuditTestGroupContentView.prototype.initialLayout):
1241         (WI.AuditTestGroupContentView.prototype.layout):
1242         * UserInterface/Views/AuditTestGroupContentView.css:
1243         (.content-view.audit-test-group > header > .percentage-pass):
1244         (.content-view.audit-test-group > header > .percentage-pass > span): Added.
1245         (@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass): Added.
1246         (@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass > span): Added.
1247         (.content-view.audit-test-group > header > .percentage-pass:not(:empty)::after): Deleted.
1248
1249         * Localizations/en.lproj/localizedStrings.js:
1250
1251 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
1252
1253         Web Inspector: Computed: make UI more usable when the panel is narrow
1254         https://bugs.webkit.org/show_bug.cgi?id=192578
1255         <rdar://problem/46615753>
1256
1257         Reviewed by Devin Rousso.
1258
1259         * UserInterface/Views/ComputedStyleSection.css:
1260         (.computed-style-section .computed-property-item .property-traces):
1261         (.computed-style-section .computed-property-item.expanded .disclosure-button):
1262         (.computed-style-section .computed-property-item .property-trace-item):
1263         (.computed-style-section .computed-property-item .property-trace-item::before):
1264         (.computed-style-section .computed-property-item .property):
1265         (.computed-style-section .computed-property-item .property-trace-item .selector):
1266         Allow CSS property values and selectors to take more than one line.
1267
1268         (.computed-style-section .property-trace-item .property .name,):
1269         * UserInterface/Views/ComputedStyleSection.js:
1270         (WI.ComputedStyleSection.prototype._createTrace):
1271         * UserInterface/Views/SpreadsheetStyleProperty.js:
1272         (WI.SpreadsheetStyleProperty.prototype.update):
1273
1274 2018-12-18  Simon Fraser  <simon.fraser@apple.com>
1275
1276         Web Inspector: Timelines: correctly label Intersection Observer callbacks
1277         https://bugs.webkit.org/show_bug.cgi?id=192669
1278         <rdar://problem/46702490>
1279
1280         Reviewed by Joseph Pecoraro.
1281
1282         Add InspectorInstrumentation::willFireObserverCallback() and use it to wrap calls
1283         to Intersection Observer, Performance Observer and Mutation Observer callbacks so 
1284         that they get correctly labeled in the Inspector timeline.
1285
1286         * Localizations/en.lproj/localizedStrings.js:
1287         * UserInterface/Controllers/TimelineManager.js:
1288         (WI.TimelineManager.prototype._processRecord):
1289         * UserInterface/Models/ScriptTimelineRecord.js:
1290         (WI.ScriptTimelineRecord.EventType.displayName):
1291         * UserInterface/Views/TimelineTabContentView.js:
1292         (WI.TimelineTabContentView.iconClassNameForRecord):
1293
1294 2018-12-19  Devin Rousso  <drousso@apple.com>
1295
1296         Web Inspector: Audit: "Clear Filters" button gets clipped when window is vertically small
1297         https://bugs.webkit.org/show_bug.cgi?id=192868
1298         <rdar://problem/46780400>
1299
1300         Reviewed by Matt Baker.
1301
1302         * UserInterface/Views/Main.css:
1303         (.message-text-view):
1304
1305 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
1306
1307         Web Inspector: Dark Mode: selected text is too light when Inspector window is inactive
1308         https://bugs.webkit.org/show_bug.cgi?id=190542
1309         <rdar://problem/45238712>
1310
1311         Reviewed by Devin Rousso.
1312
1313         * UserInterface/Views/CodeMirrorOverrides.css:
1314         (.CodeMirror .CodeMirror-selected):
1315
1316 2018-12-19  Nikita Vasilyev  <nvasilyev@apple.com>
1317
1318         Web Inspector: column sort controls in Layers tab sidebar don't render correctly in dark mode
1319         https://bugs.webkit.org/show_bug.cgi?id=192845
1320
1321         Reviewed by Devin Rousso.
1322
1323         * UserInterface/Views/DataGrid.css:
1324         (@media (prefers-dark-interface)):
1325         (.data-grid th.sortable:active):
1326         Drive-by: replace obnoxiously light background of the pressed header with a more subtle gray.
1327
1328         (.data-grid th.sort-ascending > div:first-child::after, .data-grid th.sort-descending > div:first-child::after):
1329         Invert colors of the arrow glyph.
1330
1331 2018-12-18  Devin Rousso  <drousso@apple.com>
1332
1333         Web Inspector: Layers: increase default column width for other localizations
1334         https://bugs.webkit.org/show_bug.cgi?id=192812
1335         <rdar://problem/46628625>
1336
1337         Reviewed by Brian Burg.
1338
1339         * UserInterface/Views/LayerDetailsSidebarPanel.js:
1340         (WI.LayerDetailsSidebarPanel.prototype._buildDataGrid):
1341         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
1342         (WI.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
1343
1344 2018-12-18  Joseph Pecoraro  <pecoraro@apple.com>
1345
1346         Web Inspector: m3u8 content not shown, it should be text
1347         https://bugs.webkit.org/show_bug.cgi?id=192731
1348         <rdar://problem/46747728>
1349
1350         Reviewed by Devin Rousso.
1351
1352         * UserInterface/Base/MIMETypeUtilities.js:
1353         (WI.shouldTreatMIMETypeAsText):
1354         Support m3u8/m3u files as text.
1355
1356 2018-12-17  Devin Rousso  <drousso@apple.com>
1357
1358         Web Inspector: Canvas: path view is misaligned
1359         https://bugs.webkit.org/show_bug.cgi?id=192761
1360
1361         Reviewed by Joseph Pecoraro.
1362
1363         * UserInterface/Views/RecordingContentView.css:
1364         (.content-view:not(.tab).recording :matches(img, canvas)):
1365         (.content-view:not(.tab).recording canvas.path):
1366
1367 2018-12-17  Devin Rousso  <drousso@apple.com>
1368
1369         Web Inspector: Audit: add plural result strings
1370         https://bugs.webkit.org/show_bug.cgi?id=192769
1371         <rdar://problem/46628680>
1372
1373         Reviewed by Brian Burg.
1374
1375         * UserInterface/Views/AuditTestContentView.js:
1376         (WI.AuditTestContentView.prototype.showNoResultDataPlaceholder):
1377
1378         * UserInterface/Views/AuditTestGroupContentView.js:
1379         (WI.AuditTestGroupContentView.prototype.layout):
1380
1381         * Localizations/en.lproj/localizedStrings.js:
1382
1383 2018-12-17  Devin Rousso  <drousso@apple.com>
1384
1385         Web Inspector: Settings: add singular "space" UIString
1386         https://bugs.webkit.org/show_bug.cgi?id=192766
1387         <rdar://problem/46776948>
1388
1389         Reviewed by Brian Burg.
1390
1391         * UserInterface/Views/SettingEditor.js:
1392         (WI.SettingEditor):
1393         (WI.SettingEditor.prototype.get label):
1394         (WI.SettingEditor.prototype.set label): Added.
1395
1396         * UserInterface/Views/SettingsTabContentView.js:
1397         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
1398         (WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting): Added.
1399         (WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting.updateLabel): Added.
1400
1401         * Localizations/en.lproj/localizedStrings.js:
1402
1403 2018-12-15  Nikita Vasilyev  <nvasilyev@apple.com>
1404
1405         Web Inspector: Styles: toggling selected properties may cause data corruption
1406         https://bugs.webkit.org/show_bug.cgi?id=192396
1407         <rdar://problem/46478383>
1408
1409         Reviewed by Devin Rousso.
1410
1411         Uncommenting a property after a commented out property used to insert an unnecessary semicolon,
1412         and not updating ranges of the following properties.
1413
1414         For example:
1415
1416             /* color: red; */
1417             /* font-size: 12px */
1418
1419         Uncommenting `font-size` would result in something like this:
1420
1421             /* color: red; */; font-size: 12px
1422                              ^
1423                              unnecessary semicolon
1424
1425         Now the semicolon doesn't get inserted and the white space is preserved better:
1426
1427             /* color: red; */
1428             font-size: 12px
1429
1430         * UserInterface/Models/CSSProperty.js:
1431         (WI.CSSProperty.prototype._updateOwnerStyleText):
1432         (WI.CSSProperty.prototype._appendSemicolonIfNeeded): Removed.
1433         (WI.CSSProperty.prototype._prependSemicolonIfNeeded): Added.
1434
1435         * UserInterface/Views/SpreadsheetStyleProperty.js:
1436         (WI.SpreadsheetStyleProperty.prototype.remove):
1437         (WI.SpreadsheetStyleProperty.prototype.update):
1438         (WI.SpreadsheetStyleProperty.prototype._handleNameChange):
1439         (WI.SpreadsheetStyleProperty.prototype._handleValueChange):
1440         Style declaration should be locked while editing. Add asserts to ensure this.
1441
1442 2018-12-14  Matt Baker  <mattbaker@apple.com>
1443
1444         Web Inspector: REGRESSION(r238599): Uncaught Exception: TypeError: null is not an object (evaluating 'treeElement.listItemElement.classList')
1445         https://bugs.webkit.org/show_bug.cgi?id=192090
1446         <rdar://problem/46318614>
1447
1448         Reviewed by Devin Rousso.
1449
1450         * UserInterface/Views/TreeOutline.js:
1451         (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
1452         Check that `listItemElement` is valid before accessing it to update class
1453         names. The selection can change before the TreeElement has been attached.
1454
1455 2018-12-14  Matt Baker  <mattbaker@apple.com>
1456
1457         Web Inspector: Cookies view should use model objects instead of raw payload data
1458         https://bugs.webkit.org/show_bug.cgi?id=189533
1459         <rdar://problem/44364183>
1460
1461         Reviewed by Joseph Pecoraro and Devin Rousso.
1462
1463         * UserInterface/Models/Cookie.js:
1464         (WI.Cookie):
1465         (WI.Cookie.fromPayload):
1466         (WI.Cookie.parseSetCookieResponseHeader):
1467         (WI.Cookie.prototype.get type):
1468         (WI.Cookie.prototype.get name):
1469         (WI.Cookie.prototype.get value):
1470         (WI.Cookie.prototype.get header):
1471         (WI.Cookie.prototype.get expires):
1472         (WI.Cookie.prototype.get maxAge):
1473         (WI.Cookie.prototype.get path):
1474         (WI.Cookie.prototype.get domain):
1475         (WI.Cookie.prototype.get secure):
1476         (WI.Cookie.prototype.get httpOnly):
1477         (WI.Cookie.prototype.get sameSite):
1478         (WI.Cookie.prototype.get size):
1479         (WI.Cookie.prototype.get url):
1480         (WI.Cookie.prototype.expirationDate):
1481         Cleanup Cookie object; add pubic getters for data, `url` property,
1482         static `fromPayload` method, and calculate `_size` if missing.
1483
1484         * UserInterface/Views/CookieStorageContentView.js:
1485         (WI.CookieStorageContentView.prototype.tableDidRemoveRows):
1486         (WI.CookieStorageContentView.prototype._reloadCookies):
1487         Create Cookie objects from the payload instead of using raw payload data.
1488
1489 2018-12-13  Devin Rousso  <drousso@apple.com>
1490
1491         Web Inspector: remove DOM.BackendNodeId and associated commands/events
1492         https://bugs.webkit.org/show_bug.cgi?id=192478
1493
1494         Reviewed by Matt Baker.
1495
1496         * Versions/Inspector-iOS-8.0.json:
1497         * Versions/Inspector-iOS-9.0.json:
1498         * Versions/Inspector-iOS-9.3.json:
1499         * Versions/Inspector-iOS-10.0.json:
1500         * Versions/Inspector-iOS-10.3.json:
1501         * Versions/Inspector-iOS-11.0.json:
1502         * Versions/Inspector-iOS-11.3.json:
1503         * Versions/Inspector-iOS-12.0.json:
1504         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
1505         * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
1506         * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
1507         * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
1508         * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
1509         * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
1510         * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js:
1511         * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js:
1512
1513 2018-12-13  Devin Rousso  <drousso@apple.com>
1514
1515         Web Inspector: experimental settings reload button disappears after changing more than one setting
1516         https://bugs.webkit.org/show_bug.cgi?id=192645
1517         <rdar://problem/46626204>
1518
1519         Reviewed by Joseph Pecoraro.
1520
1521         * UserInterface/Views/SettingsTabContentView.js:
1522         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView.listenForChange):
1523         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1524
1525 2018-12-13  Matt Baker  <mattbaker@apple.com>
1526
1527         Web Inspector: REGRESSION(r238602): Elements: deleting multiple DOM nodes doesn't select the nearest node after deletion
1528         https://bugs.webkit.org/show_bug.cgi?id=192116
1529         <rdar://problem/46344339>
1530
1531         Reviewed by Devin Rousso.
1532
1533         * UserInterface/Controllers/SelectionController.js:
1534         (WI.SelectionController.prototype.removeSelectedItems):
1535         Finding a new index to select should go through the delegate instead of
1536         naively advancing the index.
1537
1538         * UserInterface/Views/DOMTreeElement.js:
1539         (WI.DOMTreeElement.prototype._populateNodeContextMenu):
1540         (WI.DOMTreeElement.prototype.ondelete): Deleted.
1541         The menu item for removing the DOM node is now managed by the parent
1542         DOMTreeOutline, since its UI and behavior now depend on whether there
1543         are multiple elements selected.
1544
1545         * UserInterface/Views/DOMTreeOutline.js:
1546         (WI.DOMTreeOutline.prototype.populateContextMenu):
1547         (WI.DOMTreeOutline.prototype.ondelete.level):
1548         (WI.DOMTreeOutline.prototype.ondelete):
1549         Implement `ondelete` to remove selected DOM nodes using the delete and
1550         backspace keys. Also used by the DOMTreeOutline's context menu handler.
1551
1552 2018-12-13  Matt Baker  <mattbaker@apple.com>
1553
1554         Web Inspector: Table selection becomes corrupted when deleting selected cookies
1555         https://bugs.webkit.org/show_bug.cgi?id=192388
1556         <rdar://problem/46472364>
1557
1558         Reviewed by Devin Rousso.
1559
1560         * UserInterface/Controllers/SelectionController.js:
1561         (WI.SelectionController):
1562         (WI.SelectionController.prototype.didRemoveItems):
1563         (WI.SelectionController.prototype._updateSelectedItems):
1564         (WI.SelectionController.prototype.didRemoveItem): Deleted.
1565         Replace `didRemoveItem` with a method taking an IndexSet. Calling the
1566         single-index version while iterating over multiple rows in ascending
1567         order is unsafe, a detail best left to the SelectionController.
1568
1569         * UserInterface/Views/Table.js:
1570         (WI.Table.prototype.removeRow):
1571         (WI.Table.prototype._removeRows):
1572         Notify SelectionController of removed rows.
1573
1574         * UserInterface/Views/TreeOutline.js:
1575         (WI.TreeOutline.prototype.insertChild):
1576         (WI.TreeOutline.prototype.removeChildAtIndex):
1577         Remove the child from the element's `children` after calling `_forgetTreeElement`,
1578         which needs to calculate the child's index to pass to the SelectionController.
1579
1580         (WI.TreeOutline.prototype.removeChildren):
1581         Remove child items during iteration so that `children` doesn't contain
1582         detached TreeElements while calling `_forgetTreeElement`.
1583
1584         (WI.TreeOutline.prototype._rememberTreeElement):
1585         (WI.TreeOutline.prototype._forgetTreeElement):
1586
1587 2018-12-10  Matt Baker  <mattbaker@apple.com>
1588
1589         Web Inspector: REGRESSION (r238599): unable to select specific timeline
1590         https://bugs.webkit.org/show_bug.cgi?id=192443
1591         <rdar://problem/46608087>
1592
1593         Reviewed by Joseph Pecoraro.
1594
1595         When determining the trailing horizontal edge for TreeElement mouse
1596         events, TreeOutline should not assume that its containing DOM element
1597         is only as wide as its <ol> element.
1598
1599         * UserInterface/Views/TreeOutline.js:
1600         (WI.TreeOutline.prototype.treeElementFromEvent):
1601
1602 2018-12-10  Matt Baker  <mattbaker@apple.com>
1603
1604         Web Inspector: Move TreeOutlineGroup coordination out of TreeElement
1605         https://bugs.webkit.org/show_bug.cgi?id=192487
1606         <rdar://problem/46543431>
1607
1608         Reviewed by Devin Rousso.
1609
1610         * UserInterface/Views/TreeElement.js:
1611         (WI.TreeElement.prototype.select):
1612         (WI.TreeElement.prototype.deselect):
1613
1614         * UserInterface/Views/TreeOutlineGroup.js:
1615         (WI.TreeOutlineGroup):
1616         (WI.TreeOutlineGroup.prototype.itemAdded):
1617         (WI.TreeOutlineGroup.prototype.itemRemoved):
1618         (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
1619         (WI.TreeOutlineGroup.prototype._treeOutlineSelectionDidChange):
1620         (WI.TreeOutlineGroup.groupForTreeOutline): Deleted.
1621         (WI.TreeOutlineGroup.prototype.didSelectTreeElement): Deleted.
1622         make the group responsible for listening to selection changes from the
1623         TreeOutlines it manages, and synchronizing the selection between them.
1624
1625 2018-12-10  Dean Jackson  <dino@apple.com>
1626
1627         Use text/javascript as recommended by the HTML specification
1628         https://bugs.webkit.org/show_bug.cgi?id=192525
1629         <rdar://problem/46569636>
1630
1631         Reviewed by Jon Lee.
1632
1633         The HTML specification says we should use text/javascript for
1634         JavaScript files:
1635         https://html.spec.whatwg.org/multipage/scripting.html#scriptingLanguages:javascript-mime-type
1636
1637         * UserInterface/Base/MIMETypeUtilities.js:
1638         (WI.mimeTypeForFileExtension):
1639         * UserInterface/Views/TextEditor.js:
1640         (WI.TextEditor.prototype._attemptToDetermineMIMEType):
1641
1642 2018-12-06  Matt Baker  <mattbaker@apple.com>
1643
1644         Web Inspector: REGRESSION(r238602): Elements: collapsing a DOM node with the left arrow doesn't work
1645         https://bugs.webkit.org/show_bug.cgi?id=192353
1646         <rdar://problem/46455019>
1647
1648         Reviewed by Devin Rousso.
1649
1650         * UserInterface/Views/TreeElement.js:
1651         (WI.TreeElement.prototype.deselect):
1652         Don't early return when the element is not the selected tree element.
1653         This condition no longer holds now that TreeOutline supports multiple selection.
1654
1655 2018-12-05  Matt Baker  <mattbaker@apple.com>
1656
1657         Web Inspector: SelectionController should not extend the selection when allowsMultipleSelection is false
1658         https://bugs.webkit.org/show_bug.cgi?id=192390
1659         <rdar://problem/46473624>
1660
1661         Reviewed by Devin Rousso.
1662
1663         * UserInterface/Controllers/SelectionController.js:
1664         (WI.SelectionController.prototype.selectItem):
1665
1666 2018-12-04  Nikita Vasilyev  <nvasilyev@apple.com>
1667
1668         Web Inspector: Add style editing debug mode
1669         https://bugs.webkit.org/show_bug.cgi?id=192282
1670         <rdar://problem/46399176>
1671
1672         Reviewed by Matt Baker.
1673
1674         Introduce a style editing debug mode to help to troubleshoot complex bugs in the style editor.
1675
1676           - Log CSS changes;
1677           - Display red border for locked style declarations.
1678
1679         * UserInterface/Base/Setting.js:
1680         * UserInterface/Models/CSSProperty.js:
1681         (WI.CSSProperty.prototype._updateOwnerStyleText):
1682         * UserInterface/Views/SettingsTabContentView.js:
1683         (WI.SettingsTabContentView.prototype._createDebugSettingsView):
1684         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
1685         (.spreadsheet-style-declaration-editor.debug-style-locked::after):
1686         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1687         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
1688         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
1689         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateDebugLockStatus):
1690
1691 2018-12-04  Matt Baker  <mattbaker@apple.com>
1692
1693         Web Inspector: REGRESSION(r238602): Elements: changing selection no longer highlights the selected node
1694         https://bugs.webkit.org/show_bug.cgi?id=192354
1695         <rdar://problem/46444438>
1696
1697         Reviewed by Joseph Pecoraro.
1698
1699         * UserInterface/Views/TreeOutline.js:
1700         (WI.TreeOutline.prototype._treeKeyDown):
1701         (WI.TreeOutline.prototype._handleMouseDown):
1702
1703 2018-12-04  Joseph Pecoraro  <pecoraro@apple.com>
1704
1705         Web Inspector: REGRESSION(r238330): Timeline auto-capture does not work after page transition
1706         https://bugs.webkit.org/show_bug.cgi?id=192248
1707         <rdar://problem/46390199>
1708
1709         Reviewed by Devin Rousso.
1710
1711         * UserInterface/Base/Main.js:
1712         (WI.transitionPageTarget):
1713         Let the TimelineManager perform work on page transitions.
1714
1715         * UserInterface/Controllers/TimelineManager.js:
1716         (WI.TimelineManager.prototype.initializeTarget):
1717         Initialize the autocapture state of the target.
1718
1719         (WI.TimelineManager.prototype.transitionPageTarget):
1720         When transitioning pages perform a legacy (frontend based) timeline capture.
1721
1722 2018-12-04  Matt Baker  <mattbaker@apple.com>
1723
1724         Web Inspector: Elements: $0 is shown for all selected elements
1725         https://bugs.webkit.org/show_bug.cgi?id=192119
1726         <rdar://problem/46327554>
1727
1728         Reviewed by Devin Rousso.
1729
1730         * UserInterface/Views/ContentBrowserTabContentView.js:
1731         (WI.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):
1732         * UserInterface/Views/DOMTreeContentView.js:
1733         (WI.DOMTreeContentView):
1734         (WI.DOMTreeContentView.prototype.layout):
1735         (WI.DOMTreeContentView.prototype._domTreeSelectionDidChange):
1736         Update the selected DOM node using the TreeOutline's selection change
1737         event, instead of in `onselect`, which wasn't always called.
1738
1739         * UserInterface/Views/DOMTreeElement.js:
1740         (WI.DOMTreeElement.prototype.onselect): Deleted.
1741         (WI.DOMTreeElement.prototype.ondeselect): Deleted.
1742         Eliminate `onselect` and `ondeselect`. TreeOutline clients should use
1743         the TreeOutline.Event.SelectedDidChange event instead.
1744
1745         * UserInterface/Views/DOMTreeOutline.css:
1746         (.tree-outline.dom li.last-selected > span::after):
1747         (.tree-outline.dom:focus li.last-selected > span::after):
1748         (.tree-outline.dom li.selected > span::after): Deleted.
1749         (.tree-outline.dom:focus li.selected > span::after): Deleted.
1750         * UserInterface/Views/DOMTreeOutline.js:
1751         (WI.DOMTreeOutline.prototype.updateSelection): Deleted.
1752
1753         * UserInterface/Views/DebuggerSidebarPanel.js:
1754         (WI.DebuggerSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange):
1755         * UserInterface/Views/FolderizedTreeElement.js:
1756         (WI.FolderizedTreeElement.prototype._addTreeElement):
1757         * UserInterface/Views/NavigationSidebarPanel.js:
1758         (WI.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
1759         (WI.NavigationSidebarPanel.prototype._treeElementWasFiltered):
1760         (WI.NavigationSidebarPanel):
1761         * UserInterface/Views/OpenResourceDialog.js:
1762         (WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
1763         (WI.OpenResourceDialog.prototype._handleKeydownEvent):
1764         * UserInterface/Views/SourceCodeTreeElement.js:
1765         (WI.SourceCodeTreeElement.prototype.descendantResourceTreeElementTypeDidChange):
1766         * UserInterface/Views/TreeElement.js:
1767         (WI.TreeElement.prototype.select):
1768         (WI.TreeElement.prototype.revealAndSelect):
1769         (WI.TreeElement.prototype.deselect):
1770         Remove `suppressOnDeselect` and rename `suppressOnSelect` to `suppressNotification`.
1771         Now that `ondeselect` has been removed `suppressOnDeselect` is no longer
1772         meaningful, as TreeOutline generates a single `SelectedDidChange` event
1773         when the selected item changes. In the case of `revealAndSelect`, both
1774         arguments had the same value.
1775
1776         * UserInterface/Views/TreeOutline.js:
1777         (WI.TreeOutline):
1778         (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
1779         Add a unique class name to the last selected TreeElement to distinguish
1780         it from other selected elements.
1781
1782 2018-12-04  Matt Baker  <mattbaker@apple.com>
1783
1784         Web Inspector: Elements: ⌘-A should select all visible nodes
1785         https://bugs.webkit.org/show_bug.cgi?id=192120
1786         <rdar://problem/46344435>
1787
1788         Reviewed by Devin Rousso.
1789
1790         * UserInterface/Views/TreeOutline.js:
1791         (WI.TreeOutline.prototype._treeKeyDown):
1792         Remove an early return, allowing `WI.SelectionController` to handle ⌘-A
1793         and select all items.
1794
1795 2018-12-04  Devin Rousso  <drousso@apple.com>
1796
1797         Web Inspector: Audit: tests should support async operations
1798         https://bugs.webkit.org/show_bug.cgi?id=192171
1799         <rdar://problem/46423562>
1800
1801         Reviewed by Joseph Pecoraro.
1802
1803         * UserInterface/Controllers/RuntimeManager.js:
1804         (WI.RuntimeManager.supportsAwaitPromise): Added.
1805
1806         * UserInterface/Models/AuditTestCase.js:
1807         (WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty.addErrorForValueType): Deleted.
1808         (WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty): Deleted.
1809         (WI.AuditTestCase.prototype.async run.async parseResponse.async resultArrayForEach): Deleted.
1810         (WI.AuditTestCase.prototype.async run.async parseResponse): Added.
1811         (WI.AuditTestCase.prototype.async run):
1812         (WI.AuditTestCase.prototype.async run.checkResultProperty.addErrorForValueType): Deleted.
1813         (WI.AuditTestCase.prototype.async run.checkResultProperty): Deleted.
1814         (WI.AuditTestCase.prototype.async run.async resultArrayForEach): Deleted.
1815
1816         * UserInterface/Models/AuditTestCaseResult.js:
1817         (WI.AuditTestCaseResult.async fromPayload):
1818         (WI.AuditTestCaseResult.prototype.toJSON):
1819
1820         * UserInterface/Views/AuditTestCaseContentView.js:
1821         (WI.AuditTestCaseContentView.prototype.layout):
1822
1823 2018-12-03  Devin Rousso  <drousso@apple.com>
1824
1825         Web Inspector: Audit: save the expanded state of test groups
1826         https://bugs.webkit.org/show_bug.cgi?id=192346
1827         <rdar://problem/46440704>
1828
1829         Reviewed by Matt Baker.
1830
1831         * UserInterface/Views/AuditTreeElement.js:
1832         (WI.AuditTreeElement):
1833         (WI.AuditTreeElement.prototype.onattach):
1834         (WI.AuditTreeElement.prototype.onexpand): Added.
1835         (WI.AuditTreeElement.prototype.oncollapse): Added.
1836
1837 2018-12-03  Devin Rousso  <drousso@apple.com>
1838
1839         Web Inspector: Audit: sidebar briefly shows "No Filter Results" before populating default audits
1840         https://bugs.webkit.org/show_bug.cgi?id=192341
1841         <rdar://problem/46436550>
1842
1843         Reviewed by Matt Baker.
1844
1845         * UserInterface/Views/AuditNavigationSidebarPanel.js:
1846         (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
1847         (WI.AuditNavigationSidebarPanel.prototype._addTest):
1848         (WI.AuditNavigationSidebarPanel.prototype._addResult):
1849         (WI.AuditNavigationSidebarPanel.prototype.applyFiltersToTreeElement): Deleted.
1850         Delay the construction of the "Results" folder until it's needed, since adding a hidden
1851         `WI.TreeElement` will cause the placeholder to appear.
1852
1853 2018-12-03  Devin Rousso  <drousso@apple.com>
1854
1855         Web Inspector: Audit: navigating while tests are running should stop and clear all results
1856         https://bugs.webkit.org/show_bug.cgi?id=192317
1857         <rdar://problem/46435222>
1858
1859         Reviewed by Joseph Pecoraro.
1860
1861         * UserInterface/Controllers/AuditManager.js:
1862         (WI.AuditManager.prototype.async start):
1863         (WI.AuditManager.prototype._handleFrameMainResourceDidChange):
1864
1865         * UserInterface/Views/AuditNavigationSidebarPanel.js:
1866         (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
1867         Drive-by: pass the index of the saved result.
1868
1869 2018-12-03  Devin Rousso  <drousso@apple.com>
1870
1871         Web Inspector: Audit: "Add Default Audits" shown when there are no filter results
1872         https://bugs.webkit.org/show_bug.cgi?id=192105
1873
1874         Reviewed by Matt Baker.
1875
1876         * UserInterface/Views/NavigationSidebarPanel.js:
1877         (WI.NavigationSidebarPanel):
1878         (WI.NavigationSidebarPanel.prototype.get hasActiveFilters): Added.
1879         (WI.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements):
1880         (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
1881         (WI.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
1882         (WI.NavigationSidebarPanel.prototype.updateEmptyContentPlaceholder):
1883         (WI.NavigationSidebarPanel.prototype.updateFilter):
1884         (WI.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
1885         (WI.NavigationSidebarPanel.prototype._filterDidChange):
1886         (WI.NavigationSidebarPanel.prototype._updateFilter): Deleted.
1887         (WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded): Deleted.
1888
1889         * UserInterface/Views/AuditNavigationSidebarPanel.js:
1890         (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
1891         Drive-by: change capitalization for consistency with other navigation sidebars.
1892
1893         * Localizations/en.lproj/localizedStrings.js:
1894
1895 2018-12-03  Devin Rousso  <drousso@apple.com>
1896
1897         Web Inspector: Canvas: add singular localized string for "Record first %s frames"
1898         https://bugs.webkit.org/show_bug.cgi?id=192189
1899
1900         Reviewed by Joseph Pecoraro.
1901
1902         * UserInterface/Views/CanvasOverviewContentView.js:
1903         (WI.CanvasOverviewContentView):
1904         (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount):
1905         (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel): Added.
1906         (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput):
1907         (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):
1908         (WI.CanvasOverviewContentView.prototype.initialLayout): Deleted.
1909         Drive-by: update the auto-capture navigation item when the view is first created so there is
1910         no flashing of in the navigation bar (before `initialLayout` is called).
1911
1912         * UserInterface/Views/CheckboxNavigationItem.js:
1913         (WI.CheckboxNavigationItem):
1914         (WI.CheckboxNavigationItem.prototype.set label): Added.
1915
1916         * Localizations/en.lproj/localizedStrings.js:
1917
1918 2018-12-03  Matt Baker  <mattbaker@apple.com>
1919
1920         Web Inspector: REGRESSION(r238599): Multiple Selection: restoring selection when opening WebInspector puts the TreeElement into a permanent selected state
1921         https://bugs.webkit.org/show_bug.cgi?id=192091
1922         <rdar://problem/46321795>
1923
1924         Reviewed by Devin Rousso.
1925
1926         * UserInterface/Controllers/SelectionController.js:
1927         (WI.SelectionController.prototype.didInsertItem):
1928         Fix a bug where selected indexes were overwritten by the inserted index.
1929
1930         * UserInterface/Views/TreeOutline.js:
1931         (WI.TreeOutline):
1932         (WI.TreeOutline.prototype.insertChild):
1933         Update the SelectionController with the newly inserted index before
1934         attaching the TreeElement. Attaching the TreeElement can cause it to
1935         become selected, which would add the index to the SelectionController,
1936         only to have it immediately incremented by the call to `didInsertItem`.
1937         Additionally, change `insertionIndex` to be the index of the inserted
1938         item instead of the inserted item's previous sibling.
1939
1940         (WI.TreeOutline.prototype._rememberTreeElement):
1941         (WI.TreeOutline.prototype._forgetTreeElement):
1942         (WI.TreeOutline.prototype._indexOfTreeElement.previousElement): Deleted.
1943         Eliminate TreeElement index caching, which could become stale and cause
1944         the wrong index to be calculated. Additionally, instead of walking up the
1945         parent chain to determine the index, start at the root and use existing
1946         method `traverseNextTreeElement`.
1947
1948 2018-12-03  Devin Rousso  <drousso@apple.com>
1949
1950         Web Inspector: Audit: test tree elements should start out collapsed
1951         https://bugs.webkit.org/show_bug.cgi?id=192107
1952
1953         Reviewed by Matt Baker.
1954
1955         * UserInterface/Views/AuditTreeElement.js:
1956         (WI.AuditTreeElement.prototype.onattach):
1957
1958 2018-12-03  Nikita Vasilyev  <nvasilyev@apple.com>
1959
1960         Web Inspector: Styles: can't select properties of read-only rules
1961         https://bugs.webkit.org/show_bug.cgi?id=192266
1962
1963         Reviewed by Devin Rousso.
1964
1965         Implement multiple properties selection for read-only rules (such as User Agent Stylesheets)
1966         in the Styles panel.
1967
1968         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1969         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
1970         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
1971         Keep selection on layout.
1972
1973         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
1974         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
1975         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyBlur):
1976         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseEnter):
1977         SpreadsheetCSSStyleDeclarationEditor is used by ComputedStyleDetailsPanel, which doesn't have:
1978           - spreadsheetCSSStyleDeclarationEditorPropertyBlur
1979           - spreadsheetCSSStyleDeclarationEditorPropertyMouseEnter
1980
1981         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
1982         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
1983         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
1984         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
1985         * UserInterface/Views/SpreadsheetStyleProperty.js:
1986         (WI.SpreadsheetStyleProperty.prototype.startEditingName):
1987         (WI.SpreadsheetStyleProperty.prototype.startEditingValue):
1988
1989 2018-11-30  Brian Burg  <bburg@apple.com>
1990
1991         Web Inspector: resource combining should be more robust against missing WebKitAdditions
1992         https://bugs.webkit.org/show_bug.cgi?id=192255
1993         <rdar://problem/46042879>
1994
1995         Reviewed by Joseph Pecoraro.
1996
1997         * Scripts/copy-user-interface-resources.pl:
1998         (combineOrStripResourcesForWebKitAdditions):
1999
2000 2018-11-30  Nikita Vasilyev  <nvasilyev@apple.com>
2001
2002         Web Inspector: Jumping from Computed to Styles should select property
2003         https://bugs.webkit.org/show_bug.cgi?id=192198
2004
2005         Reviewed by Devin Rousso.
2006
2007         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
2008         (.spreadsheet-style-declaration-editor .property.highlighted): Deleted.
2009         (@keyframes style-property-highlight): Deleted.
2010         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2011         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty):
2012         Remove unnecessary `__propertyView` property.
2013
2014         * UserInterface/Views/SpreadsheetStyleProperty.js:
2015         (WI.SpreadsheetStyleProperty.prototype.detached):
2016         (WI.SpreadsheetStyleProperty.prototype.highlight): Deleted.
2017
2018 2018-11-30  Matt Baker  <mattbaker@apple.com>
2019
2020         Web Inspector: REGRESSION(r238599): Multiple Selection: selecting a breakpoint will change the selection to it's parent on the first click
2021         https://bugs.webkit.org/show_bug.cgi?id=192093
2022         <rdar://problem/46318466>
2023
2024         Reviewed by Devin Rousso.
2025
2026         * UserInterface/Views/TreeElement.js:
2027         (WI.TreeElement.prototype.select):
2028         TreeElement shouldn't manage the TreeOutline's selection barrier.
2029
2030         * UserInterface/Views/TreeOutline.js:
2031         (WI.TreeOutline):
2032         (WI.TreeOutline.prototype.get processingSelectionChange):
2033         (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
2034         (WI.TreeOutline.prototype.selectTreeElementInternal):
2035         The selection re-entry barrier `processingSelectionChange` should be
2036         managed internally by TreeOutline, and exposed as a read-only property.
2037         Fix a bug where the barrier was cleared before dispatching the change
2038         notification, which can cause re-entry as a side effect.
2039
2040 2018-11-30  Devin Rousso  <drousso@apple.com>
2041
2042         Web Inspector: Settings: reload button needs horizontal spacing
2043         https://bugs.webkit.org/show_bug.cgi?id=192231
2044         <rdar://problem/46274363>
2045
2046         Reviewed by Matt Baker.
2047
2048         * UserInterface/Views/SettingsTabContentView.css:
2049         (.content-view.settings > .settings-view > .container button):
2050         (.content-view.settings > .settings-view > .container > .title):
2051         (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
2052         (body[dir=ltr] .content-view.settings > .settings-view > .container > .title): Deleted.
2053         (body[dir=rtl] .content-view.settings > .settings-view > .container > .title): Deleted.
2054         (body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]): Deleted.
2055         (body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]): Deleted.
2056         Drive-by: replace `dir=*` attribute rules with `-webkit-margin-*` properties.
2057
2058 2018-11-30  Joseph Pecoraro  <pecoraro@apple.com>
2059
2060         Web Inspector: Uncaught Exception opening Web Inspector to Debugger Tab
2061         https://bugs.webkit.org/show_bug.cgi?id=192174
2062
2063         Reviewed by Devin Rousso.
2064
2065         * UserInterface/Protocol/InspectorBackend.js:
2066         (InspectorBackendClass.prototype.runAfterPendingDispatches):
2067         Dispatch the callback with a timeout if there is no backend target yet
2068         so it doesn't get lost.
2069
2070         * UserInterface/Protocol/Connection.js:
2071         (InspectorBackend.Connection.prototype.runAfterPendingDispatches):
2072         Change the ambiguous name "script" to the more familiar "callback".
2073
2074 2018-11-30  Devin Rousso  <drousso@apple.com>
2075
2076         Web Inspector: replace all unicode characters with the escaped character code
2077         https://bugs.webkit.org/show_bug.cgi?id=192216
2078         <rdar://problem/46275637>
2079
2080         Reviewed by Brian Burg.
2081
2082         * Localizations/en.lproj/localizedStrings.js:
2083         * UserInterface/Controllers/BreakpointPopoverController.js:
2084         * UserInterface/Debug/UncaughtExceptionReporter.js:
2085         * UserInterface/Models/AuditTestCase.js:
2086         * UserInterface/Models/Canvas.js:
2087         * UserInterface/Models/RecordingAction.js:
2088         * UserInterface/Models/ScriptTimelineRecord.js:
2089         * UserInterface/Views/AuditTestCaseContentView.js:
2090         * UserInterface/Views/AuditTestContentView.js:
2091         * UserInterface/Views/AuditTestGroupContentView.js:
2092         * UserInterface/Views/CallFrameView.js:
2093         * UserInterface/Views/CanvasContentView.js:
2094         * UserInterface/Views/CanvasOverviewContentView.css:
2095         * UserInterface/Views/ConsoleMessageView.css:
2096         * UserInterface/Views/ContextMenuUtilities.js:
2097         * UserInterface/Views/DOMEventsBreakdownView.js:
2098         * UserInterface/Views/DataGrid.css:
2099         * UserInterface/Views/DataGrid.js:
2100         * UserInterface/Views/DatabaseTableContentView.js:
2101         * UserInterface/Views/DebuggerDashboardView.css:
2102         * UserInterface/Views/DebuggerSidebarPanel.js:
2103         * UserInterface/Views/ErrorObjectView.js:
2104         * UserInterface/Views/EventBreakpointPopover.js:
2105         * UserInterface/Views/InlineSwatch.js:
2106         * UserInterface/Views/LayerTreeDataGridNode.js:
2107         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
2108         * UserInterface/Views/Layers3DContentView.js:
2109         * UserInterface/Views/LayoutTimelineDataGridNode.js:
2110         * UserInterface/Views/NetworkTableContentView.css:
2111         * UserInterface/Views/NetworkTableContentView.js:
2112         * UserInterface/Views/ObjectPreviewView.js:
2113         * UserInterface/Views/ProfileDataGridNode.js:
2114         * UserInterface/Views/ResourceTimelineDataGridNode.js:
2115         * UserInterface/Views/ScriptDetailsTimelineView.css:
2116         * UserInterface/Views/TextEditor.css:
2117         * UserInterface/Views/TreeOutline.css:
2118
2119 2018-11-29  Matt Baker  <mattbaker@apple.com>
2120
2121         Web Inspector: RTL: disclosure triangles should be flipped and aligned right
2122         https://bugs.webkit.org/show_bug.cgi?id=192089
2123         <rdar://problem/46316753>
2124
2125         Reviewed by Devin Rousso.
2126
2127         * UserInterface/Views/ComputedStyleSection.css:
2128         (.computed-style-section .computed-property-item .disclosure-button):
2129         (body[dir=rtl] .computed-style-section .computed-property-item .disclosure-button):
2130
2131         * UserInterface/Views/ConsoleMessageView.css:
2132         (.console-message.expandable .console-top-level-message::before):
2133         (body[dir=rtl] .console-message.expandable .console-top-level-message::before):
2134
2135         * UserInterface/Views/ErrorObjectView.css:
2136         (.error-object > .formatted-error::before):
2137         (body[dir=rtl] .error-object > .formatted-error::before):
2138         (.error-object .content):
2139
2140         * UserInterface/Views/LogContentView.css:
2141         (.console-group-title::before):
2142         (body[dir=ltr] .console-group-title::before):
2143         (body[dir=rtl] .console-group-title::before):
2144
2145         * UserInterface/Views/ObjectTreeView.css:
2146         (body[dir=rtl] .object-tree > :matches(.title, .object-preview)::before):
2147
2148         * UserInterface/Views/TypeTreeElement.css:
2149         (body[dir=rtl] .item.type-tree-element.parent > .disclosure-button):
2150
2151 2018-11-28  Dean Jackson  <dino@apple.com>
2152
2153         [ES Modules] Allow .mjs content when loaded from file://
2154         https://bugs.webkit.org/show_bug.cgi?id=192100
2155         <rdar://problem/46320065>
2156
2157         Reviewed by Sam Weinig.
2158
2159         Add a mapping from .mjs to application/javascript.
2160
2161         * UserInterface/Base/MIMETypeUtilities.js:
2162         (WI.mimeTypeForFileExtension):
2163
2164 2018-11-29  Matt Baker  <mattbaker@apple.com>
2165
2166         Web Inspector: Elements: selecting more than one DOM node causes the scope highlight to contrast
2167         https://bugs.webkit.org/show_bug.cgi?id=192118
2168         <rdar://problem/46325664>
2169
2170         Reviewed by Devin Rousso.
2171
2172         Use an alpha blended border for the "selected" DOM scope highlight,
2173         matching the "hovered" scope highlight.
2174
2175         * UserInterface/Views/DOMTreeOutline.css:
2176         (.tree-outline.dom li.selected + ol.children.expanded):
2177
2178 2018-11-28  Joseph Pecoraro  <pecoraro@apple.com>
2179
2180         Web Inspector: REGRESSION(?): all "Show *" develop menu items cause the page to crash
2181         https://bugs.webkit.org/show_bug.cgi?id=192016
2182         <rdar://problem/46284417>
2183
2184         Reviewed by Devin Rousso.
2185
2186         * UserInterface/Base/Main.js:
2187         (WI.loaded):
2188         (WI.initializeBackendTarget):
2189         (WI.contentLoaded):
2190         (WI.whenTargetsAvailable):
2191         Don't evaluate any InspectorFrontendAPI commands until the frontend
2192         has initialized a main target and the user interface.
2193
2194 2018-11-28  Nikita Vasilyev  <nvasilyev@apple.com>
2195
2196         Web Inspector: Styles: enable selection of multiple properties by default
2197         https://bugs.webkit.org/show_bug.cgi?id=192109
2198         <rdar://problem/46323565>
2199
2200         Reviewed by Devin Rousso.
2201
2202         * UserInterface/Base/Setting.js:
2203         * UserInterface/Views/SettingsTabContentView.js:
2204         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2205         Remove the checkbox.
2206
2207         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
2208         (.spreadsheet-style-declaration-editor .property):
2209         (.spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)):
2210         (.spreadsheet-style-declaration-editor .property.selected):
2211         (.spreadsheet-style-declaration-editor .property.selected:focus):
2212         (.multiple-properties-selection .spreadsheet-style-declaration-editor .property): Deleted.
2213         (.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)): Deleted.
2214         (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected): Deleted.
2215         (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected:focus): Deleted.
2216         Remove `.multiple-properties-selection` class.
2217
2218         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2219         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
2220         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2221         (WI.SpreadsheetCSSStyleDeclarationSection):
2222         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
2223         * UserInterface/Views/SpreadsheetStyleProperty.js:
2224         (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
2225         * UserInterface/Views/SpreadsheetTextField.js:
2226         (WI.SpreadsheetTextField):
2227         (WI.SpreadsheetTextField.prototype._handleFocus): Deleted.
2228
2229 2018-11-28  Devin Rousso  <drousso@apple.com>
2230
2231         Web Inspector: Audit: empty results folder is shown after clearing filters
2232         https://bugs.webkit.org/show_bug.cgi?id=192106
2233
2234         Reviewed by Matt Baker.
2235
2236         * UserInterface/Views/AuditNavigationSidebarPanel.js:
2237         (WI.AuditNavigationSidebarPanel.prototype.applyFiltersToTreeElement): Added.
2238
2239 2018-11-28  Matt Baker  <mattbaker@apple.com>
2240
2241         Web Inspector: Remove unused DataGrid and TreeOutline code
2242         https://bugs.webkit.org/show_bug.cgi?id=191622
2243         <rdar://problem/46052014>
2244
2245         Reviewed by Devin Rousso.
2246
2247         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2248         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
2249
2250         * UserInterface/Views/DOMTreeElement.js:
2251         (WI.DOMTreeElement.prototype.insertChildElement):
2252
2253         * UserInterface/Views/DOMTreeOutline.js:
2254         (WI.DOMTreeOutline):
2255         (WI.DOMTreeOutline.prototype.update):
2256
2257         * UserInterface/Views/DataGrid.js:
2258         (WI.DataGrid.prototype.removeChildrenRecursive): Deleted.
2259
2260         * UserInterface/Views/DataGridNode.js:
2261         (WI.DataGridNode.prototype.removeChildren):
2262         (WI.DataGridNode.prototype.removeChildrenRecursive): Deleted.
2263
2264         * UserInterface/Views/ErrorObjectView.css:
2265         (.error-object:not(.expanded) .content):
2266         (.error-object .content):
2267         (.error-object:not(.expanded) .tree-outline): Deleted.
2268         (.error-object .tree-outline): Deleted.
2269
2270         * UserInterface/Views/ErrorObjectView.js:
2271         (WI.ErrorObjectView):
2272         (WI.ErrorObjectView.prototype.get treeOutline): Deleted.
2273         Use a simple container since TreeOutline features aren't used,
2274         and remove unused property `treeOutline`.
2275
2276         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
2277         (WI.RecordingTraceDetailsSidebarPanel):
2278
2279         * UserInterface/Views/TreeElement.js:
2280         (WI.TreeElement.prototype.removeChildren):
2281         (WI.TreeElement.prototype.removeChildrenRecursive): Deleted.
2282
2283         * UserInterface/Views/TreeOutline.js:
2284         (WI.TreeOutline):
2285         (WI.TreeOutline.prototype.removeChildrenRecursive): Deleted.
2286         (WI.TreeOutline.prototype.reattachIfIndexChanged): Deleted.
2287         Removed `element` parameter now that the only use case has been removed.
2288
2289 2018-11-27  Matt Baker  <mattbaker@apple.com>
2290
2291         Web Inspector: Elements tab should allow selecting/deleting multiple DOM nodes
2292         https://bugs.webkit.org/show_bug.cgi?id=192059
2293         <rdar://problem/46294827>
2294
2295         Reviewed by Devin Rousso.
2296
2297         Enable multiple DOM node selection in the DOMTreeContentView.
2298
2299         * UserInterface/Controllers/SelectionController.js:
2300         (WI.SelectionController):
2301         (WI.SelectionController.prototype.get allowsEmptySelection):
2302         (WI.SelectionController.prototype.set allowsEmptySelection):
2303         Allow clients to control whether the last selected item can be deselected.
2304         (WI.SelectionController.prototype.deselectItem):
2305         (WI.SelectionController.prototype.didInsertItem):
2306         Rewritten to prevent infinite loop.
2307         (WI.SelectionController.prototype.didRemoveItem):
2308         (WI.SelectionController.prototype._updateSelectedItems):
2309         (WI.SelectionController.prototype._adjustIndexesAfter): Deleted.
2310
2311         * UserInterface/Views/DOMTreeContentView.js:
2312         (WI.DOMTreeContentView):
2313
2314         * UserInterface/Views/DOMTreeElement.js:
2315         (WI.DOMTreeElement.prototype.updateSelectionArea):
2316         * UserInterface/Views/DOMTreeOutline.js:
2317         (WI.DOMTreeOutline.prototype.updateSelection):
2318         Updating the selection area DOM element should not assume that only one
2319         TreeElement is selected at a time.
2320
2321         * UserInterface/Views/TreeOutline.js:
2322         (WI.TreeOutline.prototype.get allowsEmptySelection):
2323         (WI.TreeOutline.prototype.set allowsEmptySelection):
2324         (WI.TreeOutline.prototype.set selectedTreeElement):
2325         (WI.TreeOutline.prototype.get selectedTreeElements):
2326         (WI.TreeOutline.prototype._treeKeyDown):
2327
2328         * UserInterface/Views/TreeOutlineGroup.js:
2329         (WI.TreeOutlineGroup):
2330         (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
2331         Eliminate use of `TreeElement.prototype.deselect`.
2332
2333 2018-11-27  Matt Baker  <mattbaker@apple.com>
2334
2335         Web Inspector: TreeOutline should re-use multiple-selection logic from Table
2336         https://bugs.webkit.org/show_bug.cgi?id=191483
2337         <rdar://problem/45953305>
2338
2339         Reviewed by Devin Rousso.
2340
2341         Update TreeOutline to use SelectionController. Adopting SelectionController
2342         in TreeOutline is not as straightforward as it was in Table. Selected items
2343         are tracked by index, and TreeElement lacks an explicit index. As a consequence
2344         TreeElement indexes are calcualted as needed and cached. The cache is cleared
2345         whenever an element is added or removed.
2346
2347         * UserInterface/Controllers/SelectionController.js:
2348         (WI.SelectionController.prototype.didInsertItem):
2349         (WI.SelectionController.prototype.didRemoveItem):
2350         (WI.SelectionController.prototype.handleKeyDown):
2351         Drive-by syntax error fix.
2352         (WI.SelectionController.prototype._adjustIndexesAfter):
2353         (WI.SelectionController):
2354
2355         * UserInterface/Views/DOMTreeElement.js:
2356         (WI.DOMTreeElement.prototype.canSelectOnMouseDown):
2357         (WI.DOMTreeElement.prototype.selectOnMouseDown): Deleted.
2358
2359         * UserInterface/Views/DOMTreeOutline.js:
2360         (WI.DOMTreeOutline.prototype._onmousedown):
2361         Item selection is now handled by SelectionController.
2362
2363         * UserInterface/Views/ShaderProgramTreeElement.js:
2364         (WI.ShaderProgramTreeElement.prototype.canSelectOnMouseDown):
2365         (WI.ShaderProgramTreeElement.prototype.selectOnMouseDown): Deleted.
2366
2367         * UserInterface/Views/TreeElement.js:
2368         (WI.TreeElement.prototype.canSelectOnMouseDown):
2369         (WI.TreeElement.prototype._attach):
2370         (WI.TreeElement.prototype.select):
2371         (WI.TreeElement.prototype.deselect):
2372         Route item selection through the parent TreeOutline, in order to go though
2373         the TreeOutline's SelectionController.
2374
2375         (WI.TreeElement.treeElementMouseDown): Deleted.
2376         Moved handler to TreeOutline, which owns the SelectionController that
2377         needs to respond to mouse events.
2378
2379         * UserInterface/Views/TreeOutline.js:
2380         (WI.TreeOutline):
2381         (WI.TreeOutline.prototype.get allowsMultipleSelection):
2382         (WI.TreeOutline.prototype.set allowsMultipleSelection):
2383         (WI.TreeOutline.prototype.get selectedTreeElement):
2384         (WI.TreeOutline.prototype.set selectedTreeElement):
2385         (WI.TreeOutline.prototype.insertChild):
2386         (WI.TreeOutline.prototype.removeChildAtIndex):
2387         (WI.TreeOutline.prototype._rememberTreeElement):
2388         (WI.TreeOutline.prototype._forgetTreeElement):
2389         (WI.TreeOutline.prototype._treeKeyDown):
2390         (WI.TreeOutline.prototype.selectionControllerNumberOfItems):
2391         (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
2392         (WI.TreeOutline.prototype.selectionControllerNextSelectableIndex):
2393         (WI.TreeOutline.prototype.selectionControllerPreviousSelectableIndex):
2394         (WI.TreeOutline.prototype.selectTreeElementInternal):
2395         (WI.TreeOutline._generateStyleRulesIfNeeded._indexOfTreeElement.previousElement):
2396         (WI.TreeOutline._generateStyleRulesIfNeeded):
2397
2398 2018-11-27  Nikita Vasilyev  <nvasilyev@apple.com>
2399
2400         Web Inspector: Experimental Computed panel is unreadable in Dark Mode
2401         https://bugs.webkit.org/show_bug.cgi?id=192053
2402
2403         Reviewed by Matt Baker.
2404
2405         * UserInterface/Views/ComputedStyleDetailsPanel.css:
2406         (@media (prefers-dark-interface)):
2407         (.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)):
2408         * UserInterface/Views/ComputedStyleSection.css:
2409         (.computed-style-section .computed-property-item.expanded):
2410         (.computed-style-section .computed-property-item.expanded + .computed-property-item):
2411         (@media (prefers-dark-interface)):
2412
2413 2018-11-27  Nikita Vasilyev  <nvasilyev@apple.com>
2414
2415         Web Inspector: Computed panel: allow to expand properties to show list of overridden values
2416         https://bugs.webkit.org/show_bug.cgi?id=191984
2417
2418         Reviewed by Devin Rousso.
2419
2420         Introduce the new experimental Computed Style Cascades.
2421
2422         Each property now can expand to show a list of overridden values, their corresponding
2423         selectors, and source locations.
2424
2425         * Localizations/en.lproj/localizedStrings.js:
2426         * UserInterface/Base/Setting.js:
2427         * UserInterface/Main.html:
2428         * UserInterface/Models/DOMNodeStyles.js:
2429         (WI.DOMNodeStyles.prototype.get uniqueOrderedStyles):
2430         Move `uniqueOrderedStyles` function unmodified from SpreadsheetRulesStyleDetailsPanel so it can be used by ComputedStyleDetailsPanel, too.
2431
2432         * UserInterface/Views/ComputedStyleDetailsPanel.css:
2433         (.computed-with-traces .computed-style-properties):
2434         (.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)):
2435         (.computed-with-traces .details-section.computed-style-properties > .content):
2436         (.computed-with-traces .computed-style-properties .property .go-to-arrow):
2437
2438         * UserInterface/Views/ComputedStyleDetailsPanel.js:
2439         (WI.ComputedStyleDetailsPanel.prototype.refresh):
2440         (WI.ComputedStyleDetailsPanel.prototype.applyFilter):
2441         (WI.ComputedStyleDetailsPanel.prototype.focusFirstSection):
2442         (WI.ComputedStyleDetailsPanel.prototype.initialLayout):
2443         (WI.ComputedStyleDetailsPanel.prototype._computePropertyTraces):
2444         (WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
2445         (WI.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged):
2446         (WI.ComputedStyleDetailsPanel.prototype._handleEditorFilterApplied):
2447         (WI.ComputedStyleDetailsPanel):
2448         Use the new Computed section (WI.ComputedStyleSection) only when it's enabled in the experimental settings.
2449         Otherwise, use the current Computed section.
2450
2451         * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js:
2452         (WI.ComputedStyleDetailsSidebarPanel):
2453
2454         * UserInterface/Views/ComputedStyleSection.css: Added.
2455         (.computed-style-section):
2456         (.computed-style-section .computed-property-item):
2457         (.computed-style-section .computed-property-item.expanded):
2458         (.computed-style-section .computed-property-item.expanded + .computed-property-item):
2459         (.computed-style-section .computed-property-item .disclosure-button):
2460         (.computed-style-section .computed-property-item .property-traces):
2461         (.computed-style-section .computed-property-item.expanded .property-traces):
2462         (.computed-style-section .computed-property-item.expanded .disclosure-button):
2463         (.computed-style-section .computed-property-item .property-trace-item):
2464         (.computed-style-section .computed-property-item .property-trace-item .property.overridden .value):
2465         (.computed-style-section .property-trace-item-left,):
2466         (.computed-style-section .property-trace-item-right):
2467         (.computed-style-section .computed-property-item .property-trace-item .value):
2468         (.computed-style-section .property .value):
2469         (.computed-style-section .computed-property-item .property):
2470         (.computed-style-section .computed-property-item .property .name):
2471         (.computed-style-section .computed-property-item .property-trace-item .selector):
2472         (.computed-style-section .computed-property-item .origin):
2473         (.computed-style-section .computed-property-item .go-to-link):
2474         (.computed-style-section .property-trace-item .property .name,):
2475         (.computed-style-section .property-trace-item .property .value + span):
2476         (.computed-style-properties.details-section > .content,):
2477
2478         * UserInterface/Views/ComputedStyleSection.js: Added.
2479         (WI.ComputedStyleSection):
2480         (WI.ComputedStyleSection.prototype.get style):
2481         (WI.ComputedStyleSection.prototype.set style):
2482         (WI.ComputedStyleSection.prototype.get styleTraces):
2483         (WI.ComputedStyleSection.prototype.set styleTraces):
2484         (WI.ComputedStyleSection.prototype.set showsImplicitProperties):
2485         (WI.ComputedStyleSection.prototype.set alwaysShowPropertyNames):
2486         (WI.ComputedStyleSection.prototype.set propertyVisibilityMode):
2487         (WI.ComputedStyleSection.prototype.set hideFilterNonMatchingProperties):
2488         (WI.ComputedStyleSection.prototype.get propertiesToRender):
2489         (WI.ComputedStyleSection.prototype.layout):
2490         (WI.ComputedStyleSection.prototype.detached):
2491         (WI.ComputedStyleSection.prototype.hidden):
2492         (WI.ComputedStyleSection.prototype.applyFilter):
2493         (WI.ComputedStyleSection.prototype.spreadsheetStylePropertyShowProperty):
2494         (WI.ComputedStyleSection.prototype._createTrace):
2495         (WI.ComputedStyleSection.prototype._handlePropertiesChanged):
2496
2497         * UserInterface/Views/ExpandableView.js: Added.
2498         (WI.ExpandableView):
2499         (WI.ExpandableView.prototype.get element):
2500         (WI.ExpandableView.prototype._onDisclosureButtonClick):
2501         (WI.ExpandableView.prototype._update):
2502
2503         * UserInterface/Views/SettingsTabContentView.js:
2504         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2505
2506         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2507         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
2508         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout):
2509         Replace `_renderOrigin` with WI.StyleOriginView so it could be used by WI.ComputedStyleSection.
2510
2511         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
2512         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
2513
2514         * UserInterface/Views/SpreadsheetStyleProperty.js:
2515         (WI.SpreadsheetStyleProperty.prototype.update):
2516         (WI.SpreadsheetStyleProperty.prototype._isEditable):
2517         (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
2518         Introduce `readOnly` option so WI.SpreadsheetStyleProperty could be used by WI.ComputedStyleSection.
2519
2520         * UserInterface/Views/StyleOriginView.js: Added.
2521         (WI.StyleOriginView):
2522
2523 2018-11-27  Timothy Hatcher  <timothy@apple.com>
2524
2525         Web Inspector: Add support for forcing color scheme appearance in DOM tree.
2526         https://bugs.webkit.org/show_bug.cgi?id=191820
2527         rdar://problem/46153172
2528
2529         Reviewed by Devin Rousso.
2530
2531         * Localizations/en.lproj/localizedStrings.js: Updated.
2532         * UserInterface/Controllers/CSSManager.js:
2533         (WI.CSSManager):
2534         (WI.CSSManager.prototype.get defaultAppearance): Added.
2535         (WI.CSSManager.prototype.get forcedAppearance): Added.
2536         (WI.CSSManager.prototype.set forcedAppearance): Added.
2537         (WI.CSSManager.prototype.canForceAppearance): Added.
2538         (WI.CSSManager.prototype.defaultAppearanceDidChange): Added.
2539         * UserInterface/Images/Appearance.svg: Added.
2540         * UserInterface/Protocol/PageObserver.js:
2541         (WI.PageObserver.prototype.defaultAppearanceChanged): Added.
2542         * UserInterface/Views/DOMTreeContentView.js:
2543         (WI.DOMTreeContentView):
2544         (WI.DOMTreeContentView.prototype.get navigationItems):
2545         (WI.DOMTreeContentView.prototype._defaultAppearanceDidChange): Added.
2546         (WI.DOMTreeContentView.prototype._toggleAppearance): Added.
2547
2548 2018-11-27  Matt Baker  <mattbaker@apple.com>
2549
2550         Web Inspector: Cookies table needs copy keyboard shortcut and context menu support
2551         https://bugs.webkit.org/show_bug.cgi?id=191482
2552         <rdar://problem/45953002>
2553
2554         Reviewed by Joseph Pecoraro.
2555
2556         * UserInterface/Views/CookieStorageContentView.js:
2557         (WI.CookieStorageContentView.prototype.handleCopyEvent):
2558         (WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
2559         As with Delete, if the target row is selected, all selected rows are copied.
2560         Otherwise only the target row is copied. This distinction will be surfaced
2561         in the UI in https://webkit.org/b/191095.
2562
2563         (WI.CookieStorageContentView.prototype.tablePopulateCell):
2564         (WI.CookieStorageContentView.prototype._cookiesAtIndexes):
2565         (WI.CookieStorageContentView.prototype._formatCookiesAsText):
2566         (WI.CookieStorageContentView.prototype._formatCookiePropertyForColumn):
2567         (WI.CookieStorageContentView):
2568         Break Cookie property formatting into a helper method, which is used for
2569         formatting Table cells and creating plain text for the clipboard.
2570
2571         * UserInterface/Views/Table.js:
2572         (WI.Table.prototype.get columns):
2573
2574 2018-11-27  Matt Baker  <mattbaker@apple.com>
2575
2576         Web Inspector: Table selection should be handled by a SelectionController
2577         https://bugs.webkit.org/show_bug.cgi?id=191977
2578         <rdar://problem/46253093>
2579
2580         Reviewed by Devin Rousso.
2581
2582         Add a SelectionController class, which manages an IndexSet of selected
2583         items, and provides operations for adding and removing items from the
2584         selection. Complex behaviors such as shift-clicking to select a range of
2585         items, and updating the selection using the keyboard, are forwarded to
2586         the controller using special-purpose methods that accept DOM Event objects.
2587
2588         * UserInterface/Base/Utilities.js:
2589
2590         * UserInterface/Controllers/SelectionController.js: Added.
2591         (WI.SelectionController):
2592         (WI.SelectionController.prototype.get delegate):
2593         (WI.SelectionController.prototype.get lastSelectedItem):
2594         (WI.SelectionController.prototype.get selectedItems):
2595         (WI.SelectionController.prototype.get allowsMultipleSelection):
2596         (WI.SelectionController.prototype.set allowsMultipleSelection):
2597         (WI.SelectionController.prototype.get numberOfItems):
2598         (WI.SelectionController.prototype.hasSelectedItem):
2599         (WI.SelectionController.prototype.selectItem):
2600         (WI.SelectionController.prototype.deselectItem):
2601         (WI.SelectionController.prototype.selectAll):
2602         (WI.SelectionController.prototype.deselectAll):
2603         (WI.SelectionController.prototype.removeSelectedItems):
2604         (WI.SelectionController.prototype.reset):
2605         (WI.SelectionController.prototype.didRemoveItem):
2606         (WI.SelectionController.prototype.handleKeyDown):
2607         (WI.SelectionController.prototype.handleItemMouseDown.normalizeRange):
2608         (WI.SelectionController.prototype.handleItemMouseDown):
2609         (WI.SelectionController.prototype._deselectAllAndSelect):
2610         (WI.SelectionController.prototype._selectItemsFromArrowKey):
2611         (WI.SelectionController.prototype._nextSelectableIndex):
2612         (WI.SelectionController.prototype._previousSelectableIndex):
2613         (WI.SelectionController.prototype._updateSelectedItems):
2614
2615         * UserInterface/Main.html:
2616         * UserInterface/Test.html:
2617
2618         * UserInterface/Views/Table.js:
2619         (WI.Table):
2620         (WI.Table.prototype.get selectedRow):
2621         (WI.Table.prototype.get selectedRows):
2622         (WI.Table.prototype.get allowsMultipleSelection):
2623         (WI.Table.prototype.set allowsMultipleSelection):
2624         (WI.Table.prototype.isRowSelected):
2625         (WI.Table.prototype.reloadData):
2626         (WI.Table.prototype.selectRow):
2627         (WI.Table.prototype.deselectRow):
2628         (WI.Table.prototype.selectAll):
2629         (WI.Table.prototype.deselectAll):
2630         (WI.Table.prototype.removeRow):
2631         (WI.Table.prototype.removeSelectedRows):
2632         (WI.Table.prototype.selectionControllerSelectionDidChange):
2633         (WI.Table.prototype.selectionControllerNumberOfItems):
2634         (WI.Table.prototype.selectionControllerNextSelectableIndex):
2635         (WI.Table.prototype.selectionControllerPreviousSelectableIndex):
2636         (WI.Table.prototype._handleKeyDown):
2637         (WI.Table.prototype._handleMouseDown):
2638         (WI.Table.prototype._removeRows):
2639         (WI.Table.prototype._toggleSelectedRowStyle):
2640         (WI.Table.prototype._selectRowsFromArrowKey): Deleted.
2641         (WI.Table.prototype._handleMouseDown.normalizeRange): Deleted.
2642         (WI.Table.prototype._deselectAllAndSelect): Deleted.
2643         (WI.Table.prototype._notifySelectionDidChange): Deleted.
2644         (WI.Table.prototype._updateSelectedRows): Deleted.
2645
2646 2018-11-26  Devin Rousso  <drousso@apple.com>
2647
2648         Web Inspector: "No Filter Results" in navigation sidebar should have a button to clear filters
2649         https://bugs.webkit.org/show_bug.cgi?id=191916
2650
2651         Reviewed by Joseph Pecoraro.
2652
2653         * UserInterface/Views/NavigationSidebarPanel.js:
2654         (WI.NavigationSidebarPanel.prototype.resetFilter): Added.
2655         (WI.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
2656
2657         * UserInterface/Views/FilterBar.js:
2658         (WI.FilterBar.prototype.clear):
2659
2660         * UserInterface/Views/FilterBarButton.js:
2661         (WI.FilterBarButton.prototype.toggle):
2662
2663         * UserInterface/Views/ResourceSidebarPanel.js:
2664         (WI.ResourceSidebarPanel.prototype.resetFilter): Added.
2665         * UserInterface/Views/StorageSidebarPanel.js:
2666         (WI.StorageSidebarPanel.prototype.resetFilter): Added.
2667
2668         * UserInterface/Views/AuditTestContentView.js:
2669         (WI.AuditTestContentView.prototype.showFilteredPlaceholder):
2670         * UserInterface/Views/NetworkTableContentView.js:
2671         (WI.NetworkTableContentView.prototype._showEmptyFilterResultsMessage):
2672
2673         * UserInterface/Views/Main.css:
2674         (.message-text-view > .message + button): Added.
2675
2676         * Localizations/en.lproj/localizedStrings.js:
2677
2678 2018-11-26  Devin Rousso  <drousso@apple.com>
2679
2680         Web Inspector: Audit: automatically add to tab bar when the experimental setting is enabled
2681         https://bugs.webkit.org/show_bug.cgi?id=191659
2682
2683         Reviewed by Joseph Pecoraro.
2684
2685         * UserInterface/Views/SettingsTabContentView.js:
2686         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2687
2688         * UserInterface/Base/Main.js:
2689         (WI.loaded):
2690         Drive-by: use existing constants instead of hard-coded strings for consistency.
2691
2692 2018-11-25  Devin Rousso  <drousso@apple.com>
2693
2694         Web Inspector: Timelines: add Media timeline
2695         https://bugs.webkit.org/show_bug.cgi?id=191625
2696
2697         Reviewed by Matt Baker.
2698
2699         Add a new timeline to Timelines for media related events (e.g. event/fullscreen/low-power).
2700         Mimics what is visible by using the same instrumentation points as the Network tab when
2701         "Group Media Requests" is enabled.
2702
2703         * UserInterface/Models/MediaInstrument.js: Added.
2704         (WI.MediaInstrument):
2705         (WI.MediaInstrument.supported):
2706         (WI.MediaInstrument.prototype.get timelineRecordType):
2707         (WI.MediaInstrument.prototype.startInstrumentation):
2708         (WI.MediaInstrument.prototype.stopInstrumentation):
2709
2710         * UserInterface/Models/MediaTimelineRecord.js: Added.
2711         (WI.MediaTimelineRecord):
2712         (WI.MediaTimelineRecord.prototype.get eventType):
2713         (WI.MediaTimelineRecord.prototype.get domNode):
2714         (WI.MediaTimelineRecord.prototype.get domEvent):
2715         (WI.MediaTimelineRecord.prototype.get isLowPower):
2716         (WI.MediaTimelineRecord.prototype.get displayName):
2717         (WI.MediaTimelineRecord.prototype.saveIdentityToCookie):
2718
2719         * UserInterface/Views/MediaTimelineDataGridNode.js: Added.
2720         (WI.MediaTimelineDataGridNode):
2721         (WI.MediaTimelineDataGridNode.prototype.get records):
2722         (WI.MediaTimelineDataGridNode.prototype.get data):
2723         (WI.MediaTimelineDataGridNode.prototype.createCellContent):
2724         (WI.MediaTimelineDataGridNode.prototype.iconClassNames):
2725         (WI.MediaTimelineDataGridNode.prototype.filterableDataForColumn):
2726
2727         * UserInterface/Views/MediaTimelineOverviewGraph.js: Added.
2728         (WI.MediaTimelineOverviewGraph):
2729         (WI.MediaTimelineOverviewGraph.prototype.reset):
2730         (WI.MediaTimelineOverviewGraph.prototype.shown):
2731         (WI.MediaTimelineOverviewGraph.prototype.hidden):
2732         (WI.MediaTimelineOverviewGraph.prototype.layout):
2733         (WI.MediaTimelineOverviewGraph.prototype.updateSelectedRecord):
2734         (WI.MediaTimelineOverviewGraph.prototype._handleRecordAdded):
2735         * UserInterface/Views/MediaTimelineOverviewGraph.css: Added.
2736         (.timeline-overview-graph.media > .timeline-record-bar):
2737         (.timeline-overview-graph.media > .timeline-record-bar > .segment):
2738
2739         * UserInterface/Views/MediaTimelineView.js: Added.
2740         (WI.MediaTimelineView):
2741         (WI.MediaTimelineView.prototype.get secondsPerPixel):
2742         (WI.MediaTimelineView.prototype.get selectionPathComponents):
2743         (WI.MediaTimelineView.prototype.closed):
2744         (WI.MediaTimelineView.prototype.reset):
2745         (WI.MediaTimelineView.prototype.dataGridSortComparator.compareDOMNodes):
2746         (WI.MediaTimelineView.prototype.dataGridSortComparator.):
2747         (WI.MediaTimelineView.prototype.dataGridSortComparator):
2748         (WI.MediaTimelineView.prototype.layout):
2749         (WI.MediaTimelineView.prototype._processPendingRecords):
2750         (WI.MediaTimelineView.prototype._handleRecordAdded):
2751         (WI.MediaTimelineView.prototype._handleSelectionPathComponentSiblingSelected):
2752         * UserInterface/Views/MediaTimelineView.css: Added.
2753         (.timeline-view.media > .data-grid):
2754
2755         * UserInterface/Views/DOMEventsBreakdownView.js:
2756         (WI.DOMEventsBreakdownView.prototype.layout):
2757         * UserInterface/Views/DOMNodeEventsContentView.js:
2758         (WI.DOMNodeEventsContentView.prototype.initialLayout):
2759         * UserInterface/Views/NetworkDOMNodeDetailView.js:
2760         (WI.NetworkDOMNodeDetailView):
2761         (WI.NetworkDOMNodeDetailView.prototype.showContentViewForIdentifier):
2762         * UserInterface/Views/NetworkTableContentView.js:
2763         (WI.NetworkTableContentView):
2764         (WI.NetworkTableContentView.prototype.get filterNavigationItems):
2765         (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
2766         (WI.NetworkTableContentView.prototype._showDetailView):
2767         (WI.NetworkTableContentView.prototype._waterfallPopoverContentForNodeEntry):
2768         Remove passing of `startTimestamp` to `WI.DOMEventsBreakdownView`, as we should be showing
2769         absolute timestamps for each event, not relative to the start of the recording.
2770
2771         * UserInterface/Views/TimelineIcons.css:
2772         (.media-icon .icon): Added.
2773         (.dom-event-record .icon): Added.
2774         (.dom-event-record.fullscreen .icon): Added.
2775         (.low-power-record .icon): Added.
2776
2777         * UserInterface/Controllers/TimelineManager.js:
2778         (WI.TimelineManager.availableTimelineTypes):
2779         (WI.TimelineManager.prototype.capturingStarted):
2780         (WI.TimelineManager.prototype.capturingStopped):
2781         (WI.TimelineManager.prototype._updateAutoCaptureInstruments):
2782         (WI.TimelineManager.prototype._handleDOMNodeDidFireEvent): Added.
2783         (WI.TimelineManager.prototype._handleDOMNodeLowPowerChanged): Added.
2784
2785         * UserInterface/Views/TimelineRuler.js:
2786         (WI.TimelineRuler.prototype.clearMarkers):
2787         (WI.TimelineRuler.prototype._handleClick):
2788         * UserInterface/Views/TimelineOverview.js:
2789         (WI.TimelineOverview.prototype._timelineRulerMouseClicked):
2790         * UserInterface/Models/TimelineRecording.js:
2791         (WI.TimelineRecording.prototype.reset):
2792         (WI.TimelineRecording.prototype.addEventMarker):
2793         (WI.TimelineRecording.prototype.addRecord):
2794         (WI.TimelineRecording.prototype._keyForRecord):
2795         Drive-by: rework the logic for "click" event pass-through to the graph underneath.
2796
2797         * UserInterface/Models/Instrument.js:
2798         (WI.Instrument.createForTimelineType):
2799
2800         * UserInterface/Models/TimelineRecord.js:
2801
2802         * UserInterface/Views/TimelineTabContentView.js:
2803         (WI.TimelineTabContentView.displayNameForTimelineType):
2804         (WI.TimelineTabContentView.iconClassNameForTimelineType):
2805         (WI.TimelineTabContentView.genericClassNameForTimelineType):
2806         (WI.TimelineTabContentView.iconClassNameForRecord):
2807         (WI.TimelineTabContentView.displayNameForRecord):
2808         * UserInterface/Views/TimelineRecordBar.css:
2809         (.timeline-record-bar.timeline-record-type-media > .segment): Added.
2810
2811         * UserInterface/Views/ContentView.js:
2812         (WI.ContentView.createFromRepresentedObject):
2813         * UserInterface/Views/TimelineOverviewGraph.js:
2814         (WI.TimelineOverviewGraph.createForTimeline):
2815
2816         * UserInterface/Models/ScriptTimelineRecord.js:
2817         (WI.ScriptTimelineRecord.EventType.displayName):
2818
2819         * UserInterface/Main.html:
2820         * UserInterface/Test.html:
2821         * Localizations/en.lproj/localizedStrings.js:
2822         * UserInterface/Images/DOMEvent.svg: Added.
2823         * UserInterface/Images/DOMEventFullscreen.svg: Added.
2824         * UserInterface/Images/LowPower.svg: Added.
2825         * UserInterface/Images/MediaInstrument.svg: Added.
2826
2827 2018-11-25  Matt Baker  <mattbaker@apple.com>
2828
2829         Web Inspector: Remove parameters from TreeOutline SelectionDidChange event
2830         https://bugs.webkit.org/show_bug.cgi?id=191770
2831
2832         Reviewed by Devin Rousso.
2833
2834         * UserInterface/Controllers/CallFrameTreeController.js:
2835         (WI.CallFrameTreeController.prototype._treeSelectionDidChange):
2836         * UserInterface/Views/AuditNavigationSidebarPanel.js:
2837         (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange):
2838         * UserInterface/Views/CanvasSidebarPanel.js:
2839         (WI.CanvasSidebarPanel):
2840         (WI.CanvasSidebarPanel.prototype._treeSelectionDidChange):
2841         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): Deleted.
2842         * UserInterface/Views/CanvasTabContentView.js:
2843         (WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange):
2844         * UserInterface/Views/DebuggerSidebarPanel.js:
2845         (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
2846         * UserInterface/Views/OpenResourceDialog.js:
2847         (WI.OpenResourceDialog.prototype._treeSelectionDidChange):
2848         * UserInterface/Views/ResourceSidebarPanel.js:
2849         (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange):
2850         * UserInterface/Views/SearchSidebarPanel.js:
2851         (WI.SearchSidebarPanel.prototype._treeSelectionDidChange):
2852         * UserInterface/Views/StorageSidebarPanel.js:
2853         (WI.StorageSidebarPanel._treeSelectionDidChange):
2854         * UserInterface/Views/TimelineDataGrid.js:
2855         (WI.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):
2856         (WI.TimelineDataGrid):
2857         * UserInterface/Views/TimelineTabContentView.js:
2858         (WI.TimelineTabContentView.prototype._recordingsTreeSelectionDidChange):
2859         Use `event.target.selectedTreeElement` instead of `event.data.selectedElement`.
2860
2861         * UserInterface/Views/TimelineOverview.js:
2862         (WI.TimelineOverview.prototype._timelinesTreeSelectionDidChange):
2863         (WI.TimelineOverview.prototype._timelinesTreeSelectionDidChange.updateGraphSelectedState): Deleted.
2864         Refactor away the single place `event.data.deselectedElement` was used.
2865
2866         * UserInterface/Views/TreeElement.js:
2867         (WI.TreeElement.prototype.select):
2868         (WI.TreeElement.prototype.deselect):
2869         Remove `selectedElement` and `deselectedElement` from event data.
2870
2871 2018-11-19  Devin Rousso  <drousso@apple.com>
2872
2873         Web Inspector: Audit: removing and re-adding the tab will duplicate tests
2874         https://bugs.webkit.org/show_bug.cgi?id=191843
2875
2876         Reviewed by Matt Baker.
2877
2878         * UserInterface/Controllers/AuditManager.js:
2879         (WI.AuditManager.prototype.loadStoredTests):
2880         If we already have tests, don't attempt to load any stored tests.
2881
2882 2018-11-19  Joseph Pecoraro  <pecoraro@apple.com>
2883
2884         Web Inspector: "Reload Web Inspector" button no longer partially works
2885         https://bugs.webkit.org/show_bug.cgi?id=191773
2886         <rdar://problem/46139932>
2887
2888         Reviewed by Devin Rousso.
2889
2890         * UserInterface/Base/Main.js:
2891         * UserInterface/Debug/UncaughtExceptionReporter.js:
2892         (sheetElement.innerHTML):
2893         * UserInterface/Views/SettingsTabContentView.js:
2894
2895 2018-11-17  Devin Rousso  <drousso@apple.com>
2896
2897         Web Inspector: Network: add button to show system certificate dialog
2898         https://bugs.webkit.org/show_bug.cgi?id=191458
2899         <rdar://problem/45977019>
2900
2901         Reviewed by Joseph Pecoraro.
2902
2903         * UserInterface/Controllers/NetworkManager.js:
2904         (WI.NetworkManager.supportsShowCertificate): Added.
2905
2906         * UserInterface/Models/Resource.js:
2907         (WI.Resource.prototype.showCertificate): Added.
2908
2909         * UserInterface/Views/ResourceSecurityContentView.js:
2910         (WI.ResourceSecurityContentView.prototype._refreshCetificateSection):
2911         * UserInterface/Views/ResourceSecurityContentView.css:
2912         (.resource-security .details > .show-certificate > .key): Added.
2913         (.resource-security .details > .show-certificate > .key > .error): Added.
2914
2915         * Localizations/en.lproj/localizedStrings.js:
2916
2917 2018-11-16  Devin Rousso  <drousso@apple.com>
2918
2919         Web Inspector: Audit: add default tests
2920         https://bugs.webkit.org/show_bug.cgi?id=191758
2921
2922         Reviewed by Matt Baker.
2923
2924         * UserInterface/Controllers/AuditManager.js:
2925         (WI.AuditManager.prototype.loadStoredTests):
2926         (WI.AuditManager.prototype.addDefaultTestsIfNeeded): Added.
2927         If there are no previously saved tests in the database, automatically add the default set.
2928
2929         * UserInterface/Views/AuditNavigationSidebarPanel.js:
2930         (WI.AuditNavigationSidebarPanel.prototype._addTest):
2931         (WI.AuditNavigationSidebarPanel.prototype._addResult):
2932         (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
2933         * UserInterface/Views/AuditNavigationSidebarPanel.css:
2934         (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view): Added.
2935         (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view > .message): Added.
2936         (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view > button): Added.
2937         When the last test is removed, show a placeholder message that allows the user to re-add the
2938         default set of tests.
2939
2940         * UserInterface/Views/NavigationSidebarPanel.js:
2941         (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
2942         (WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded):
2943
2944         * Localizations/en.lproj/localizedStrings.js:
2945
2946 2018-11-16  Devin Rousso  <drousso@apple.com>
2947
2948         Web Inspector: Audit: minor style improvements
2949         https://bugs.webkit.org/show_bug.cgi?id=191727
2950
2951         Reviewed by Joseph Pecoraro.
2952
2953         * UserInterface/Controllers/AuditManager.js:
2954         (WI.AuditManager):
2955         (WI.AuditManager.prototype._handleFrameMainResourceDidChange): Added.
2956         Clear test results when the main frame navigates, but don't clear the saved results.
2957
2958         * UserInterface/Models/AuditTestCase.js:
2959         (WI.AuditTestCase.prototype.async run):
2960         * UserInterface/Models/AuditTestCaseResult.js:
2961         (WI.AuditTestCaseResult):
2962         (WI.AuditTestCaseResult.async fromPayload):
2963         (WI.AuditTestCaseResult.prototype.get resolvedDOMNodes): Added.
2964         (WI.AuditTestCaseResult.prototype.toJSON):
2965         Capture the full CSS path for any returned DOM nodes when the test finishes running, so that
2966         if the node moves around the path isn't modified as well.
2967
2968         * UserInterface/Views/AuditTestCaseContentView.js:
2969         (WI.AuditTestCaseContentView.prototype.layout):
2970         Always show the URL for the test when viewing a saved result.
2971
2972         * UserInterface/Views/AuditTestContentView.css:
2973         (.content-view-container > .content-view.audit-test > header p):
2974         (.content-view.audit-test > header):
2975         * UserInterface/Views/AuditTestCaseContentView.css:
2976         (.content-view.audit-test-case > header): Added.
2977         (.content-view.audit-test-case > header h1 > img):
2978         (.content-view.audit-test-case > header > .metadata > .source): Added.
2979         (.content-view.audit-test-case > header > .metadata > .duration):
2980         (.content-view.audit-test-case > section table > tr > td:first-child):
2981         * UserInterface/Views/AuditTestGroupContentView.css:
2982         (.content-view.audit-test-group > header):
2983         Horizontally align items in the header for visual consistency.
2984
2985 2018-11-16  Joseph Pecoraro  <pecoraro@apple.com>
2986
2987         Web Inspector: Include default filtering of InspectorBackend.dumpInspectorProtocolMessages with multi target backend
2988         https://bugs.webkit.org/show_bug.cgi?id=191785
2989
2990         Reviewed by Matt Baker.
2991
2992         * UserInterface/Debug/Bootstrap.js:
2993         (dumpMessagesCurrentState):
2994         (applyDumpMessagesState):
2995         (WI.runBootstrapOperations):
2996         Include tri-state for the logs button.
2997
2998         * UserInterface/Protocol/InspectorBackend.js:
2999         (InspectorBackendClass.prototype.set filterMultiplexingBackendInspectorProtocolMessages):
3000         (InspectorBackendClass.prototype.get filterMultiplexingBackendInspectorProtocolMessages):
3001         (InspectorBackendClass.prototype._startOrStopAutomaticTracing):
3002         Add new filtering state (the Setting already got added in the past).
3003
3004         * UserInterface/Protocol/LoggingProtocolTracer.js:
3005         (WI.LoggingProtocolTracer):
3006         (WI.LoggingProtocolTracer.prototype.set filterMultiplexingBackend):
3007         (WI.LoggingProtocolTracer.prototype.get filterMultiplexingBackend):
3008         (WI.LoggingProtocolTracer.prototype._processEntry):
3009         Perform new filtering.
3010
3011 2018-11-16  Joseph Pecoraro  <pecoraro@apple.com>
3012
3013         Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Local Inspector)
3014         https://bugs.webkit.org/show_bug.cgi?id=191740
3015         <rdar://problem/45470897>
3016
3017         Reviewed by Timothy Hatcher.
3018
3019         * UserInterface/Protocol/Connection.js:
3020         (InspectorBackend.Connection.prototype._dispatchResponse):
3021         Hide the TargetAgent does not exist message. This is necessary so that WebKitLegacy
3022         tests don't include this line in output each test.
3023
3024         * UserInterface/Test.html:
3025         * UserInterface/Test/Test.js:
3026         (WI.loaded):
3027         (WI.resetMainExecutionContext):
3028         (WI.performOneTimeFrontendInitializationsUsingTarget):
3029         Behave more like Main.js and initialize a MultiplexingBackendTarget when the
3030         TargetAgent is available.
3031
3032         * UserInterface/Protocol/InspectorBackend.js:
3033         (InspectorBackendClass.prototype.runAfterPendingDispatches):
3034         Use the main target, a.k.a. the page connection. The backend target's
3035         messages don't have any responses, so this was effectively not waiting
3036         at all.
3037
3038 2018-11-16  Matt Baker  <mattbaker@apple.com>
3039
3040         Web Inspector: TreeOutline shouldn't select first child of an expanded element on right arrow key
3041         https://bugs.webkit.org/show_bug.cgi?id=191766
3042
3043         Reviewed by Devin Rousso.
3044
3045         * UserInterface/Views/TreeOutline.js:
3046         (WI.TreeOutline.prototype._treeKeyDown):
3047
3048 2018-11-14  Matt Baker  <mattbaker@apple.com>
3049
3050         Web Inspector: Table should recalculate scrollable height when resized
3051         https://bugs.webkit.org/show_bug.cgi?id=191328
3052         <rdar://problem/45854412>
3053
3054         Reviewed by Devin Rousso.
3055
3056         * UserInterface/Views/NetworkTableContentView.js:
3057         (WI.NetworkTableContentView.prototype._hideDetailView):
3058         Force table columns to layout after hiding the detail view.
3059
3060         * UserInterface/Views/Table.js:
3061         (WI.Table):
3062         (WI.Table.prototype.showColumn):
3063         Call `_resizeColumnsAndFiller` instead of `resize`. The latter also cleared
3064         `_cachedWidth`, which isn't unnecessary since the width hasn't changed.
3065
3066         (WI.Table.prototype.layout):
3067         previously `_resizeColumnsAndFiller` always occurred after `_updateVisibleRows`,
3068         it was just a matter of whether the cached width and height were cleared first.
3069         That now happens in `sizeDidChange`.
3070
3071         (WI.Table.prototype.sizeDidChange):
3072         (WI.Table.prototype._updateVisibleRows):
3073         (WI.Table.prototype.resize): Deleted.
3074         Internally this cleared the cached width and height, which moved to `sizeDidChange`.
3075         Externally this was used by NetworkTableContentView to force columns to
3076         layout after hiding the details view. Calling `updateLayout` on the table
3077         accomplishes the same thing using the standard View API.
3078
3079         (WI.Table.prototype._resizeColumnsAndFiller):
3080         Only update the cached width, since the height will already have been
3081         updated. The number of rows doesn't change during this method, so that
3082         check was removed.
3083
3084 2018-11-14  Devin Rousso  <drousso@apple.com>
3085
3086         Web Inspector: REGRESSION(r236540): Debugger: breakpoints are sorted alphabetically instead of numerically
3087         https://bugs.webkit.org/show_bug.cgi?id=191560
3088
3089         Reviewed by Joseph Pecoraro.
3090
3091         When sorting breakpoints, if the `WI.TreeElement`s being compared both contain instances of
3092         `WI.Breakpoint`, sort by `WI.SourceCodeLocation` instead of title.
3093
3094         We only do this for `WI.Breakpoint` because they are the only debuggable item that has a
3095         `WI.SourceCodeLocation` (e.g. `WI.EventBreakpoint` is just an event name string).
3096
3097         * UserInterface/Views/DebuggerSidebarPanel.js:
3098         (WI.DebuggerSidebarPanel.prototype._addTreeElement):
3099         (WI.DebuggerSidebarPanel.prototype._compareBreakpointTreeElements): Added.
3100         (WI.DebuggerSidebarPanel.prototype._addIssue):
3101         (WI.DebuggerSidebarPanel.prototype._addTreeElement.comparator): Deleted.
3102         (WI.DebuggerSidebarPanel.prototype._compareTreeElements): Deleted.
3103
3104 2018-11-14  Nikita Vasilyev  <nvasilyev@apple.com>
3105
3106         Web Inspector: Styles: shift-clicking on a property should extend selection
3107         https://bugs.webkit.org/show_bug.cgi?id=191575
3108         <rdar://problem/46012855>
3109
3110         Reviewed by Devin Rousso.
3111
3112         When there's at least one property is selected, Shift-clicking another property should extend the selection.
3113         Pressing Up or Down keys while holding Shift also extends the selection.
3114
3115         Remove unnecessary `_startedSelection`. Use `hasSelectedProperties` and `_isMousePressed` instead.
3116
3117         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3118         `_isMousePressed` was set to `true` by mistake, causing numerous assertion fails.
3119
3120         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set focusIndex):
3121         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.hasSelectedProperties): Renamed from _hasSelectedProperties.
3122         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.extendSelectedProperties): Added.
3123         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseLeave): Removed.
3124         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyCopy):
3125
3126         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
3127         Implement Shift-ArrowUp/ArrowDown keys.
3128
3129         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
3130         (WI.SpreadsheetCSSStyleDeclarationSection):
3131         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyBlur):
3132         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyMouseLeave): Removed.
3133         This was only used to set _startedSelection.
3134
3135         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
3136         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowClick):
3137         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
3138         Remove _startedSelection and use hasSelectedProperties method instead.
3139
3140         * UserInterface/Views/SpreadsheetStyleProperty.js:
3141         (WI.SpreadsheetStyleProperty):
3142         Remove spreadsheetStylePropertyMouseLeave since it is no longer used.
3143
3144 2018-11-14  Devin Rousso  <drousso@apple.com>
3145
3146         Web Inspector: Canvas: send a call stack with each action instead of an array of call frames
3147         https://bugs.webkit.org/show_bug.cgi?id=191628
3148
3149         Reviewed by Dean Jackson.
3150
3151         * UserInterface/Models/Recording.js:
3152         (WI.Recording.prototype.async swizzle):
3153
3154         * UserInterface/Models/RecordingAction.js:
3155         (WI.RecordingAction.fromPayload):
3156         (WI.RecordingAction.prototype.async swizzle):
3157
3158 2018-11-14  Devin Rousso  <drousso@apple.com>
3159
3160         Web Inspector: add drag+drop for importing Audits and Recordings
3161         https://bugs.webkit.org/show_bug.cgi?id=191566
3162
3163         Reviewed by Joseph Pecoraro.
3164
3165         Reorganize the file loading logic for the Audit and Canvas tabs/managers. Add "drop" event
3166         handlers to the tabs that add and show the corresponding object for the imported data.
3167
3168         * UserInterface/Views/AuditTabContentView.js:
3169         (WI.AuditTabContentView):
3170         (WI.AuditTabContentView.prototype._handleDragOver): Added.
3171         (WI.AuditTabContentView.prototype._handleDrop): Added.
3172         * UserInterface/Views/CanvasTabContentView.js:
3173         (WI.CanvasTabContentView):
3174         (WI.CanvasTabContentView.prototype._addCanvas):
3175         (WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
3176         (WI.CanvasTabContentView.prototype._handleDragOver): Added.
3177         (WI.CanvasTabContentView.prototype._handleDrop): Added.
3178
3179         * UserInterface/Controllers/AuditManager.js:
3180         (WI.AuditManager.prototype.async processJSON): Added.
3181         (WI.AuditManager.prototype.export):
3182         (WI.AuditManager.prototype.import): Deleted.
3183         * UserInterface/Controllers/CanvasManager.js:
3184         (WI.CanvasManager.prototype.processJSON): Added.
3185         (WI.CanvasManager.prototype.importRecording): Deleted.
3186
3187         * UserInterface/Views/AuditNavigationSidebarPanel.js:
3188         (WI.AuditNavigationSidebarPanel):
3189         (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView):
3190         (WI.AuditNavigationSidebarPanel.prototype._handleImportButtonNavigationItemClicked):
3191         * UserInterface/Views/CanvasSidebarPanel.js:
3192         (WI.CanvasSidebarPanel):
3193         (WI.CanvasSidebarPanel.prototype._handleImportButtonNavigationItemClicked): Added.
3194         (WI.CanvasSidebarPanel.prototype._recordingChanged):
3195         (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):
3196
3197         * UserInterface/Views/CanvasOverviewContentView.js:
3198         (WI.CanvasOverviewContentView):
3199         (WI.CanvasOverviewContentView.prototype._handleImportButtonNavigationItemClicked): Added.
3200
3201         * UserInterface/Base/FileUtilities.js:
3202         (WI.FileUtilities.save): Added.
3203         (WI.FileUtilities.importText): Added.
3204         (WI.FileUtilities.importJSON): Added.
3205         (WI.FileUtilities.async readText): Added.
3206         (WI.FileUtilities.async readJSON): Added.
3207         (WI.saveDataToFile): Deleted.
3208         (WI.loadDataFromFile): Deleted.
3209         * UserInterface/Base/Main.js:
3210         (WI._contextMenuRequested):
3211         (WI._save):
3212         (WI._saveAs):
3213         * UserInterface/Views/ContextMenuUtilities.js:
3214         (WI.appendContextMenuItemsForSourceCode):
3215         * UserInterface/Views/LogContentView.js:
3216         (WI.LogContentView.prototype._handleContextMenuEvent):
3217         * UserInterface/Views/NetworkTableContentView.js:
3218         (WI.NetworkTableContentView.prototype._exportHAR):
3219         * UserInterface/Views/RecordingContentView.js:
3220         (WI.RecordingContentView.prototype._exportRecording):
3221         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
3222         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._save):
3223         Move file related functions into a static class container.
3224
3225         * Localizations/en.lproj/localizedStrings.js:
3226
3227 2018-11-14  Joseph Pecoraro  <pecoraro@apple.com>
3228
3229         Web Inspector: Include target identifier in protocol logging
3230         https://bugs.webkit.org/show_bug.cgi?id=191478
3231
3232         Reviewed by Devin Rousso.
3233
3234         * UserInterface/Protocol/Connection.js:
3235         (InspectorBackend.Connection.prototype._dispatchResponse):
3236         (InspectorBackend.Connection.prototype._dispatchEvent):
3237         (InspectorBackend.Connection.prototype._sendMessageToBackend):
3238         Call tracer log methods with the connection.
3239
3240         * UserInterface/Debug/CapturingProtocolTracer.js:
3241         * UserInterface/Protocol/ProtocolTracer.js:
3242         * UserInterface/Protocol/LoggingProtocolTracer.js:
3243         (WI.LoggingProtocolTracer):
3244         (WI.LoggingProtocolTracer.prototype.logFrontendException):
3245         (WI.LoggingProtocolTracer.prototype.logFrontendRequest):
3246         (WI.LoggingProtocolTracer.prototype.logWillHandleResponse):
3247         (WI.LoggingProtocolTracer.prototype.logDidHandleResponse):
3248         (WI.LoggingProtocolTracer.prototype.logDidHandleEvent):
3249         Include the connection in log methods.
3250
3251         (WI.LoggingProtocolTracer.prototype.logProtocolError):
3252         Removed, this is never called.
3253                 
3254         (WI.LoggingProtocolTracer.prototype._processEntry):
3255         Include the target identifier in entry messages.
3256
3257 2018-11-14  Joseph Pecoraro  <pecoraro@apple.com>
3258
3259         Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Remote Inspector)
3260         https://bugs.webkit.org/show_bug.cgi?id=191494
3261         <rdar://problem/45469854>
3262
3263         Reviewed by Devin Rousso.
3264
3265         This starts introducing multi-target support into the Web Inspector frontend.
3266         Specifically a backend connection that is persistent, but has the ability to
3267         connect to and transition between Page targets received through that backend
3268         connection.
3269
3270         This patch introduces the concept of a "Backend Target" which is the single
3271         connection that the frontend contains to a backend. The old way of connecting
3272         directly to a target is still supported. In that case the frontend constructs
3273         a DirectBackendTarget for the debuggable type the frontend was spawns for.
3274         However, if the frontend opens and has a TargetAgent, then it is likely
3275         connected to a multi-target supporting backend and instead constructs a
3276         MultiplexingBackendTarget, and will receive further information about
3277         sub-targets to connect to. The only sub-target at the moment is a Page
3278         sub-target.
3279
3280         As part of bringing up multi-target support this adds a few measures to
3281         handle situations where the frontend is playing fast and loose with agents.
3282         When the frontend does `FooAgent.method` it intends that to be performed
3283         on the "main" target being debugged. Likewise when the frontend loops
3284         over targets it expects them to be the debuggable targets. This patch
3285         profiles a new implementation of `WI.mainTarget` and `WI.targets` to
3286         match the assumptions being made by the frontend.
3287
3288           - In a direct-target world, there is a single target which
3289             should be used for global agents and in WI.targets.
3290
3291           - In a multi-target world, the page target is the one that
3292             should be used for global agents and WI.targets is the list
3293             of sub-targets (excluding the MultiplexingBackendTarget).
3294
3295         In a multi-target world, there are now commonly two Targets. The
3296         MultiplexingBackendTarget and a PageTarget sub-target. In the future
3297         this may include more targets, such as ServiceWorkers, DedicatedWorkers,
3298         and perhaps even frames.
3299
3300         In a multi-target world, the frontend is immediately told about targets
3301         as soon as it opens (via Target.targetCreated). In order to support
3302         this, frontend initialization happens without a main target being available.
3303         So this makes a few small changes to frontend initialization to perform
3304         a bit of work once we know what the main target is.
3305
3306         During a page transition the frontend is told to destroy existing targets
3307         and is soon after told about any new page targets (via Target.targetDestroyed
3308         and Target.targetCreated). The frontend special cases this page transition.
3309         It expects only one Page target to be alive at any time, accessible through
3310         WI.pageTarget. When a page transition happens the WI.pageTarget changes, and
3311         the frontend performs a bit of work to prepare the UI to handle the transition:
3312         `<Manager>.transitionPageTarget` / WI.Notification.TransitionPageTarget.
3313         For the most part the UI behaves fine as long once there are main frame
3314         change and main resource change events, but those other events allow
3315         the frontend to respond to the specific page transition cases.
3316
3317         * UserInterface/Base/Main.js:
3318         (WI.loaded):
3319         (WI.initializeBackendTarget):
3320         (WI.initializePageTarget):
3321         (WI.transitionPageTarget):
3322         (WI.terminatePageTarget):
3323         (WI.resetMainExecutionContext):
3324         (WI.redirectGlobalAgentsToConnection):
3325         (WI.contentLoaded):
3326         New global functions for target initialization
3327         and page transitioning.
3328
3329         * UserInterface/Test/Test.js:
3330         (WI.loaded):
3331         (WI.initializeBackendTarget):
3332         (WI.initializePageTarget):
3333         (WI.transitionPageTarget):
3334         (WI.terminatePageTarget):
3335         (WI.resetMainExecutionContext):
3336         (WI.redirectGlobalAgentsToConnection):
3337         New global functions for target initialization.
3338         Tests continue to be a direct connection to the Page.
3339
3340         * UserInterface/Protocol/TargetObserver.js:
3341         (WI.TargetObserver.prototype.targetCreated):
3342         (WI.TargetObserver.prototype.targetDestroyed):
3343         (WI.TargetObserver.prototype.dispatchMessageFromTarget):
3344         New observer goes to the manager.
3345
3346         * UserInterface/Controllers/TargetManager.js:
3347         (WI.TargetManager):
3348         (WI.TargetManager.prototype.get targets):
3349         (WI.TargetManager.prototype.get allTargets):
3350         (WI.TargetManager.prototype.targetForIdentifier):
3351         (WI.TargetManager.prototype.targetCreated):
3352         (WI.TargetManager.prototype.targetDestroyed):
3353         (WI.TargetManager.prototype.dispatchMessageFromTarget):
3354         (WI.TargetManager.prototype.createMultiplexingBackendTarget):
3355         (WI.TargetManager.prototype.createDirectBackendTarget):
3356         (WI.TargetManager.prototype._addTarget):
3357         (WI.TargetManager.prototype._removeTarget):
3358         (WI.TargetManager.prototype._createTarget):
3359         (WI.TargetManager.prototype._checkAndHandlePageTargetTransition):
3360         (WI.TargetManager.prototype._checkAndHandlePageTargetTermination):
3361         (WI.TargetManager.prototype.addTarget): Deleted.
3362         (WI.TargetManager.prototype.removeTarget): Deleted.
3363         (WI.TargetManager.prototype.initializeMainTarget): Deleted.
3364         TargetManager is where we handle creating and destroying targets
3365         and their connections. In order to simplify things a bit we make
3366         `WI.targets`, which goes through `get targets()` an array instead
3367         of a Set. And this includes only the sub-targets.
3368
3369         * UserInterface/Controllers/WorkerManager.js:
3370         (WI.WorkerManager.prototype.workerCreated):
3371         (WI.WorkerManager.prototype.workerTerminated):
3372         Workers are still special-target-like things that multiplex through
3373         WorkerAgent instead of TargetAgent. We'd like to promote these to
3374         be full targets in the future.
3375
3376         * UserInterface/Protocol/DirectBackendTarget.js: Renamed from Source/WebInspectorUI/UserInterface/Protocol/MainTarget.js.
3377         (WI.DirectBackendTarget):
3378         (WI.DirectBackendTarget.connectionInfoForDebuggable):
3379         (WI.DirectBackendTarget.prototype.get mainResource):
3380         (WI.DirectBackendTarget.prototype.set mainResource):
3381         This is the only "MainTarget" class. It is the backend target for a direct connection.
3382
3383         * UserInterface/Protocol/MultiplexingBackendTarget.js:
3384         (WI.MultiplexingBackendTarget):
3385         (WI.MultiplexingBackendTarget.prototype.initialize):
3386         (WI.MultiplexingBackendTarget.prototype.get name):
3387         (WI.MultiplexingBackendTarget.prototype.get executionContext):
3388         (WI.MultiplexingBackendTarget.prototype.get mainResource):
3389         This is the new backend target for a multi-target connection.
3390         We don't expect it to be treated like other targets, so we don't
3391         expect anyone to ask it for resources/executionContext/name info.
3392
3393         * UserInterface/Controllers/RuntimeManager.js:
3394         (WI.TargetManager.prototype.evaluateInInspectedWindow):
3395         This can be triggered by watch expressions before any target, and
3396         therefore execution context, is available. Just return null, when
3397         an execution context is available those clients will try again.
3398
3399         * UserInterface/Debug/Bootstrap.js:
3400         Provide an WI.isEngineeringBuild boolean that can be used for various
3401         debugging features.
3402
3403         * UserInterface/Main.html:
3404         * UserInterface/Test.html:
3405         New resources.
3406
3407         * UserInterface/Protocol/InspectorBackend.js:
3408         (InspectorBackendClass.prototype.dispatch):
3409         (InspectorBackendClass.prototype.runAfterPendingDispatches):
3410         (InspectorBackend.Agent):
3411         `InspectorBackend.mainConnection` was renamed `InspectorBackend.backendConnection`.
3412
3413         * UserInterface/Protocol/Connection.js:
3414         (InspectorBackend.Connection):
3415         (InspectorBackend.Connection.prototype._dispatchResponse):
3416         (InspectorBackend.Connection.prototype._sendCommandToBackendWithCallback):
3417         (InspectorBackend.Connection.prototype._sendCommandToBackendExpectingPromise):
3418         (InspectorBackend.BackendConnection):
3419         (InspectorBackend.BackendConnection.prototype.sendMessageToBackend):
3420         (InspectorBackend.WorkerConnection):
3421         (InspectorBackend.TargetConnection):
3422         (InspectorBackend.TargetConnection.sendMessageToBackend):
3423         Use a global sequence id to make filtering a bit easier in protocol tracing.
3424         TargetConnection is identical to WorkerConnection except it uses TargetAgent
3425         instead of WorkerAgent to perform multiplexing.
3426
3427         * UserInterface/Protocol/JavaScriptContextTarget.js:
3428         (WI.JavaScriptContextTarget):
3429         * UserInterface/Protocol/PageTarget.js:
3430         (WI.PageTarget):
3431         (WI.PageTarget.prototype.get displayName):
3432         Specialized target types.
3433
3434         * UserInterface/Views/DebuggerSidebarPanel.js:
3435         (WI.DebuggerSidebarPanel):
3436         (WI.DebuggerSidebarPanel.prototype._targetAdded):
3437         (WI.DebuggerSidebarPanel.prototype._targetRemoved):
3438         (WI.DebuggerSidebarPanel.prototype._updateCallStackTreeOutline):
3439         * UserInterface/Views/SourceCodeTextEditor.js:
3440         (WI.SourceCodeTextEditor.prototype._targetAdded):
3441         (WI.SourceCodeTextEditor.prototype._targetRemoved):
3442         (WI.SourceCodeTextEditor.prototype._callFramesDidChange):
3443         (WI.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget):
3444         (WI.SourceCodeTextEditor.prototype._reinsertAllThreadIndicators):
3445         * UserInterface/Views/QuickConsole.js:
3446         (WI.QuickConsole.prototype.initializeMainExecutionContextPathComponent):
3447         (WI.QuickConsole.prototype._targetAdded):
3448         (WI.QuickConsole.prototype._targetRemoved):
3449         We make target added get called with all targets, including the
3450         MultiplexingBackendTarget and PageTargets, both of which would
3451         not have happened before. Before it was only WorkerTargets. Make
3452         these sites a little more robust for the type of target they expect
3453         to be able to handle.
3454
3455         * UserInterface/Base/Object.js:
3456         * UserInterface/Controllers/DOMManager.js:
3457         (WI.DOMManager):
3458         (WI.DOMManager.prototype.transitionPageTarget):
3459         (WI.DOMManager.prototype.requestDocument):
3460         (WI.DOMManager.prototype._setDocument):
3461         * UserInterface/Controllers/NetworkManager.js:
3462         (WI.NetworkManager):
3463         (WI.NetworkManager.prototype.transitionPageTarget):
3464         (WI.NetworkManager.prototype.executionContextCreated):
3465         (WI.NetworkManager.prototype._processMainFrameResourceTreePayload):
3466         * UserInterface/Models/DefaultDashboard.js:
3467         (WI.DefaultDashboard):
3468         (WI.DefaultDashboard.prototype._mainResourceDidChange):
3469         (WI.DefaultDashboard.prototype._transitionPageTarget):
3470         * UserInterface/Views/NetworkTableContentView.js:
3471         (WI.NetworkTableContentView):
3472         (WI.NetworkTableContentView.prototype._mainResourceDidChange):
3473         (WI.NetworkTableContentView.prototype._transitionPageTarget):
3474         Special case handling when performing a page transition.
3475
3476         * UserInterface/Views/SettingsTabContentView.js:
3477         * UserInterface/Debug/UncaughtExceptionReporter.js:
3478         Document reloads are not supported right now.
3479
3480 2018-11-14  Devin Rousso  <drousso@apple.com>
3481
3482         Web Inspector: Canvas: don't start with auto-capture enabled
3483         https://bugs.webkit.org/show_bug.cgi?id=191553
3484
3485         Reviewed by Matt Baker.
3486
3487         * UserInterface/Views/CanvasOverviewContentView.js:
3488         (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount):
3489         (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureInputElementSize):
3490         (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput):
3491         * UserInterface/Views/CanvasOverviewContentView.css:
3492         (.navigation-bar > .item.canvas-recording-auto-capture > label > input):
3493
3494 2018-11-14  Devin Rousso  <drousso@apple.com>
3495
3496         Web Inspector: Network Graphs are missing minimum sizes, might have no graph at all
3497         https://bugs.webkit.org/show_bug.cgi?id=191208
3498
3499         Reviewed by Joseph Pecoraro.
3500
3501         `WI.NetworkTableContentView` used to rely on the `WI.timelineManager.persistentNetworkTimeline`
3502         for events when a new resource is added. It also listened for `WI.Frame.Event.MainResourceDidChange`
3503         on it's own, which was also listened to by `WI.timelineManager.persistentNetworkTimeline`.
3504         Due to the order in which these listeners are added, the new main resource would get added
3505         to the `WI.timelineManager.persistentNetworkTimeline` (and the `WI.NetworkTableContentView`
3506         shortly after), and right after that the `WI.NetworkTableContentView` would reset the graph
3507         in it's own listener for `WI.Frame.Event.MainResourceDidChange`.
3508
3509         This patch removes `WI.timelineManager.persistentNetworkTimeline` and instead makes it so
3510         that `WI.NetworkTableContentView` listens for resource added and main frame changed events
3511         on its own (similar to other views that follow this pattern), ensuring that there are no
3512         event races.
3513
3514         Also relaxes the "requirement" that prevented 0 width blocks from being drawn, allowing
3515         requests served from memory/disk to appear in the graph (their time is effectively 0).
3516
3517         * UserInterface/Views/NetworkTableContentView.js:
3518         (WI.NetworkTableContentView):
3519         (WI.NetworkTableContentView.prototype.closed):
3520         (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
3521         (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock):
3522         (WI.NetworkTableContentView.prototype._updateWaterfallTimeRange): Added.
3523         (WI.NetworkTableContentView.prototype._resourceLoadingDidFinish):
3524         (WI.NetworkTableContentView.prototype._resourceLoadingDidFail):
3525         (WI.NetworkTableContentView.prototype._handleResourceAdded): Added.
3526         (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
3527         (WI.NetworkTableContentView.prototype._handleNodeDidFireEvent):
3528         (WI.NetworkTableContentView.prototype._handleNodeLowPowerChanged):
3529         * UserInterface/Views/NetworkTableContentView.css:
3530         (.network-table .waterfall .block:matches(.mouse-tracking, .filler) + .block:not(.mouse-tracking, .filler)): Added.
3531         (.network-table .waterfall .block.filler + .block): Deleted.
3532
3533         * UserInterface/Controllers/TimelineManager.js:
3534         (WI.TimelineManager):
3535         (WI.TimelineManager.prototype._mainResourceDidChange):
3536         (WI.TimelineManager.prototype._resourceWasAdded):
3537         (WI.TimelineManager.prototype.get persistentNetworkTimeline): Deleted.
3538
3539 2018-11-13  Matt Baker  <mattbaker@apple.com>
3540
3541         Web Inspector: Table should support select all (Cmd-A)
3542         https://bugs.webkit.org/show_bug.cgi?id=190299
3543         <rdar://problem/45029170>
3544
3545         Reviewed by Devin Rousso.
3546
3547         * UserInterface/Views/Table.js:
3548         (WI.Table.prototype.selectAll):
3549         (WI.Table.prototype._handleKeyDown):
3550
3551 2018-11-13  Matt Baker  <mattbaker@apple.com>
3552
3553         Web Inspector: Table with no selection should select the first/last row on down/up arrow key
3554         https://bugs.webkit.org/show_bug.cgi?id=190100
3555         <rdar://problem/44879243>
3556
3557         Reviewed by Devin Rousso.
3558
3559         Pressing the up or down arrow key when nothing is selected should select
3560         the last or first row, respectively. After selecting the row make sure
3561         it is visible by calling the new Table method `revealRow`.
3562
3563         * UserInterface/Views/Table.js:
3564         (WI.Table.prototype.revealRow):
3565         (WI.Table.prototype._handleKeyDown):
3566         (WI.Table.prototype._selectRowsFromArrowKey):
3567
3568 2018-11-13  Nikita Vasilyev  <nvasilyev@apple.com>
3569
3570         Web Inspector: Styles: Command-A should select all properties
3571         https://bugs.webkit.org/show_bug.cgi?id=191435
3572         <rdar://problem/45921373>
3573
3574         Reviewed by Devin Rousso.
3575
3576         When focused on a style property, Command-A on Mac (Control-A on other platforms)
3577         should select all properties of the style rule.
3578
3579         * UserInterface/Base/Utilities.js:
3580         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3581         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.selectProperties):
3582         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
3583
3584 2018-11-12  Devin Rousso  <drousso@apple.com>
3585
3586         Web Inspector: Network: show secure certificate details per-request
3587         https://bugs.webkit.org/show_bug.cgi?id=191447
3588         <rdar://problem/30019476>
3589
3590         Reviewed by Joseph Pecoraro.
3591
3592         * UserInterface/Controllers/NetworkManager.js:
3593         (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
3594         (WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):
3595
3596         * UserInterface/Models/Resource.js:
3597         (WI.Resource.prototype.get responseSecurity): Added.
3598         (WI.Resource.prototype.get loadedSecurely): Added.
3599         (WI.Resource.prototype.updateForResponse):
3600
3601         * UserInterface/Views/NetworkResourceDetailView.js:
3602         (WI.NetworkResourceDetailView):
3603         (WI.NetworkResourceDetailView.prototype.initialLayout):
3604         (WI.NetworkResourceDetailView.prototype.showContentViewForIdentifier):
3605         * UserInterface/Views/NetworkResourceDetailView.css:
3606         (.content-view.resource-details .go-to-arrow): Added.
3607         (.content-view.resource-details.showing-find-banner .search-highlight): Added.
3608
3609         * UserInterface/Views/ResourceSecurityContentView.js: Added.
3610         (WI.ResourceSecurityContentView):
3611         (WI.ResourceSecurityContentView.prototype.initialLayout):
3612         (WI.ResourceSecurityContentView.prototype.layout):
3613         (WI.ResourceSecurityContentView.prototype.closed):
3614         (WI.ResourceSecurityContentView.prototype.get supportsSearch):
3615         (WI.ResourceSecurityContentView.prototype.get numberOfSearchResults):
3616         (WI.ResourceSecurityContentView.prototype.get hasPerformedSearch):
3617         (WI.ResourceSecurityContentView.prototype.set automaticallyRevealFirstSearchResult):
3618         (WI.ResourceSecurityContentView.prototype.performSearch):
3619         (WI.ResourceSecurityContentView.prototype.searchCleared):
3620         (WI.ResourceSecurityContentView.prototype.revealPreviousSearchResult):
3621         (WI.ResourceSecurityContentView.prototype.revealNextSearchResult):
3622         (WI.ResourceSecurityContentView.prototype._refreshCetificateSection):
3623         (WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs):
3624         (WI.ResourceSecurityContentView.prototype._revealSearchResult):
3625         (WI.ResourceSecurityContentView.prototype._handleResourceResponseReceived):
3626         * UserInterface/Views/ResourceSecurityContentView.css: Added.
3627         (body[dir] .resource-security > section.certificate > .details):
3628         (.resource-security .details .key):
3629         (.resource-security .dns-name + .dns-name > .key,):
3630         (.resource-security .show-more):
3631         (@media (prefers-dark-interface) body[dir] .resource-security > section.certificate > .details):
3632         (@media (prefers-dark-interface) .resource-security .details .key):
3633
3634         * UserInterface/Views/ResourceCookiesContentView.js:
3635         (WI.ResourceCookiesContentView.prototype._refreshRequestCookiesSection):
3636         (WI.ResourceCookiesContentView.prototype._refreshResponseCookiesSection):
3637         (WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithMessage): Deleted.
3638         (WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted.
3639         * UserInterface/Views/ResourceHeadersContentView.js:
3640         (WI.ResourceHeadersContentView.prototype._refreshSummarySection):
3641         (WI.ResourceHeadersContentView.prototype._refreshRedirectHeadersSections):
3642         (WI.ResourceHeadersContentView.prototype._refreshRequestHeadersSection):
3643         (WI.ResourceHeadersContentView.prototype._refreshResponseHeadersSection):
3644         (WI.ResourceHeadersContentView.prototype._refreshQueryStringSection):
3645         (WI.ResourceHeadersContentView.prototype._refreshRequestDataSection):
3646         (WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithMessage): Deleted.
3647         (WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted.
3648         (WI.ResourceHeadersContentView.prototype._appendKeyValuePair): Deleted.
3649         * UserInterface/Views/ResourceHeadersContentView.css:
3650         (.resource-headers .h1-status > .key,):
3651         (body[dir] .resource-headers > section.error > .details): Deleted.
3652         (.resource-headers > section.error .key): Deleted.
3653         (.resource-headers .details): Deleted.
3654         (.resource-headers .details .pair): Deleted.
3655         (body[dir=rtl] .resource-headers .details .pair): Deleted.
3656         (.resource-headers .details .key): Deleted.
3657         (.resource-headers .value): Deleted.
3658         (.resource-headers .go-to-arrow): Deleted.
3659         (.resource-headers.showing-find-banner .search-highlight): Deleted.
3660         * UserInterface/Views/ResourceDetailsSection.js:
3661         (WI.ResourceDetailsSection.prototype.markIncompleteSectionWithMessage): Added.
3662         (WI.ResourceDetailsSection.prototype.markIncompleteSectionWithLoadingIndicator): Added.
3663         (WI.ResourceDetailsSection.prototype.appendKeyValuePair): Added.
3664         * UserInterface/Views/ResourceDetailsSection.css:
3665         (.resource-details > section > .details): Added.
3666         (.resource-details > section > .details > .pair): Added.
3667         (body[dir=rtl] .resource-details > section > .details > .pair): Added.
3668         (.resource-details > section > .details > .pair > .key): Added.
3669         (.resource-details > section > .details > .pair > .value): Added.
3670         (body[dir] .resource-details > section.error > .details): Added.
3671         (.resource-details > section.error > .details > .pair > .key): Added.
3672         Move commonly used functions/styles from container classes onto this object.
3673
3674         * UserInterface/Main.html:
3675         * Localizations/en.lproj/localizedStrings.js:
3676
3677 2018-11-12  Matt Baker  <mattbaker@apple.com>
3678
3679         Web Inspector: Table should support shift-extending the row selection
3680         https://bugs.webkit.org/show_bug.cgi?id=189718
3681         <rdar://problem/44577942>
3682
3683         Reviewed by Devin Rousso.
3684
3685         Allow the table selection to be extended by shift-clicking a row, or by
3686         holding shift and pressing either the up or down arrow key. If both command
3687         and shift are pressed, shift is ignored. The selection behavior is modeled
3688         after AppKit's NSTableView.
3689
3690         * UserInterface/Base/IndexSet.js:
3691         (WI.IndexSet.prototype.addRange):
3692         (WI.IndexSet.prototype.deleteRange):
3693         (WI.IndexSet.prototype.equals):
3694         (WI.IndexSet.prototype.difference):
3695
3696         * UserInterface/Views/Table.js:
3697         (WI.Table):
3698         (WI.Table.prototype.set allowsMultipleSelection):
3699         (WI.Table.prototype.reloadData):
3700         (WI.Table.prototype.selectRow):
3701         (WI.Table.prototype.deselectRow):
3702         (WI.Table.prototype._handleKeyDown):
3703         Holding shift and pressing either the up or down arrow key extends the
3704         selection to the next unselected row adjacent to the anchor row, or causes
3705         the anchor row to be deselected, decreasing the selection. The table chooses
3706         the action to take based on the direction of movement (up or down), and
3707         the currently selected rows.
3708
3709         (WI.Table.prototype._selectRowsFromArrowKey):
3710         (WI.Table.prototype._handleMouseDown.normalizeRange):
3711         (WI.Table.prototype._handleMouseDown):
3712         Clicking a row while holding down shift extends the selection to include
3713         the rows between the anchor row (exclusive) and clicked row (inclusive).
3714         The anchor row is equal to the value of `_selectedRowIndex` prior to
3715         clicking a new row.
3716
3717         (WI.Table.prototype._deselectAllAndSelect):
3718         (WI.Table.prototype._removeRows):
3719         (WI.Table.prototype._toggleSelectedRowStyle):
3720         (WI.Table.prototype._updateSelectedRows):
3721         Helper method for updating the selection to the specified rows, and updating
3722         DOM styles for rows that are added to or removed from the selection.
3723
3724 2018-11-12  Nikita Vasilyev  <nvasilyev@apple.com>
3725
3726         Web Inspector: Styles: inline swatches don't work when Multiple Properties Selection is enabled
3727         https://bugs.webkit.org/show_bug.cgi?id=191165
3728         <rdar://problem/45737972>
3729
3730         Reviewed by Devin Rousso.
3731
3732         * UserInterface/Views/SpreadsheetStyleProperty.js:
3733         (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
3734         * UserInterface/Views/SpreadsheetTextField.js:
3735         (WI.SpreadsheetTextField):
3736         `click` is fired after `mouseup` and inline swatches are activated by `click` event.
3737         Changing this to `click` allows swatches to activate before editing starts.
3738
3739         (WI.SpreadsheetTextField.prototype._handleMouseDown):
3740         Clicking on the field that is being edited should't restart editing. It should move the text caret.
3741
3742 2018-11-12  Don Olmstead  <don.olmstead@sony.com>
3743
3744         Shipped PNGs include bad profiles: iCCP: known incorrect sRGB profile
3745         https://bugs.webkit.org/show_bug.cgi?id=189230
3746         <rdar://problem/44050379>
3747
3748         Reviewed by Joseph Pecoraro.
3749
3750         Runs all png images through zopflipng. This results in a smaller file
3751         size and takes care of this issue as a byproduct.
3752
3753         * UserInterface/Images/ApplicationCache.png:
3754         * UserInterface/Images/ApplicationCache@2x.png:
3755         * UserInterface/Images/ApplicationCacheManifest.png:
3756         * UserInterface/Images/ApplicationCacheManifest@2x.png:
3757         * UserInterface/Images/Breakpoint.png:
3758         * UserInterface/Images/Breakpoint@2x.png:
3759         * UserInterface/Images/BreakpointInactive.png:
3760         * UserInterface/Images/BreakpointInactive@2x.png:
3761         * UserInterface/Images/ClippingCSS.png:
3762         * UserInterface/Images/ClippingCSS@2x.png:
3763         * UserInterface/Images/ClippingCSSLarge.png:
3764         * UserInterface/Images/ClippingCSSLarge@2x.png:
3765         * UserInterface/Images/ClippingGeneric.png:
3766         * UserInterface/Images/ClippingGeneric@2x.png:
3767         * UserInterface/Images/ClippingGenericLarge.png:
3768         * UserInterface/Images/ClippingGenericLarge@2x.png:
3769         * UserInterface/Images/ClippingJS.png:
3770         * UserInterface/Images/ClippingJS@2x.png:
3771         * UserInterface/Images/ClippingJSLarge.png:
3772         * UserInterface/Images/ClippingJSLarge@2x.png:
3773         * UserInterface/Images/ColorIcon.png:
3774         * UserInterface/Images/ColorIcon@2x.png:
3775         * UserInterface/Images/Cookie.png:
3776         * UserInterface/Images/Cookie@2x.png:
3777         * UserInterface/Images/Database.png:
3778         * UserInterface/Images/Database@2x.png:
3779         * UserInterface/Images/DatabaseTable.png:
3780         * UserInterface/Images/DatabaseTable@2x.png:
3781         * UserInterface/Images/DocumentCSS.png:
3782         * UserInterface/Images/DocumentCSS@2x.png:
3783         * UserInterface/Images/DocumentCSSLarge.png:
3784         * UserInterface/Images/DocumentCSSLarge@2x.png:
3785         * UserInterface/Images/DocumentFont.png:
3786         * UserInterface/Images/DocumentFont@2x.png:
3787         * UserInterface/Images/DocumentFontLarge.png:
3788         * UserInterface/Images/DocumentFontLarge@2x.png:
3789         * UserInterface/Images/DocumentGL.png:
3790         * UserInterface/Images/DocumentGL@2x.png:
3791         * UserInterface/Images/DocumentGeneric.png:
3792         * UserInterface/Images/DocumentGeneric@2x.png:
3793         * UserInterface/Images/DocumentGenericLarge.png:
3794         * UserInterface/Images/DocumentGenericLarge@2x.png:
3795         * UserInterface/Images/DocumentImage.png:
3796         * UserInterface/Images/DocumentImage@2x.png:
3797         * UserInterface/Images/DocumentImageLarge.png:
3798         * UserInterface/Images/DocumentImageLarge@2x.png:
3799         * UserInterface/Images/DocumentJS.png:
3800         * UserInterface/Images/DocumentJS@2x.png:
3801         * UserInterface/Images/DocumentJSLarge.png:
3802         * UserInterface/Images/DocumentJSLarge@2x.png:
3803         * UserInterface/Images/DocumentMarkup.png:
3804         * UserInterface/Images/DocumentMarkup@2x.png:
3805         * UserInterface/Images/DocumentMarkupLarge.png:
3806         * UserInterface/Images/DocumentMarkupLarge@2x.png:
3807         * UserInterface/Images/FolderGeneric.png:
3808         * UserInterface/Images/FolderGeneric@2x.png:
3809         * UserInterface/Images/GradientStop.png:
3810         * UserInterface/Images/GradientStop@2x.png:
3811         * UserInterface/Images/GradientStopSelected.png:
3812         * UserInterface/Images/GradientStopSelected@2x.png:
3813         * UserInterface/Images/HoverMenuButton.png:
3814         * UserInterface/Images/HoverMenuButton@2x.png:
3815         * UserInterface/Images/InstructionPointer.png:
3816         * UserInterface/Images/InstructionPointer@2x.png:
3817         * UserInterface/Images/LocalStorage.png:
3818         * UserInterface/Images/LocalStorage@2x.png:
3819         * UserInterface/Images/SessionStorage.png:
3820         * UserInterface/Images/SessionStorage@2x.png:
3821         * UserInterface/Images/SliderThumb.png:
3822         * UserInterface/Images/SliderThumb@2x.png:
3823         * UserInterface/Images/SliderThumbPressed.png:
3824         * UserInterface/Images/SliderThumbPressed@2x.png:
3825         * UserInterface/Images/WebSocket.png:
3826         * UserInterface/Images/WebSocket@2x.png:
3827         * UserInterface/Images/WebSocketLarge.png:
3828         * UserInterface/Images/WebSocketLarge@2x.png:
3829         * UserInterface/Images/WorkerScript.png:
3830         * UserInterface/Images/WorkerScript@2x.png:
3831         * UserInterface/Images/WorkerScriptLarge.png:
3832         * UserInterface/Images/WorkerScriptLarge@2x.png:
3833
3834 2018-11-12  Nikita Vasilyev  <nvasilyev@apple.com>
3835
3836         Web Inspector: Styles: Pressing Tab or Enter should start editing focused property
3837         https://bugs.webkit.org/show_bug.cgi?id=191510
3838         <rdar://problem/45970897>
3839
3840         Reviewed by Dean Jackson.
3841
3842         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3843         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
3844
3845 2018-11-08  Joseph Pecoraro  <pecoraro@apple.com>
3846
3847         Web Inspector: Start moving toward better multi-target support
3848         https://bugs.webkit.org/show_bug.cgi?id=191345
3849
3850         Reviewed by Devin Rousso.
3851
3852         This change continues the move toward better multi-target support
3853         by explicitly using explicit target agents in more places, and
3854         converting generalized feature checks into target agnostic versions
3855         that use the new InspectorBackend.domains, which does not vary based
3856         on the connected targets / debuggable type.
3857
3858         I also audited uses of RuntimeAgent, ConsoleAgent, and DebuggerAgent
3859         for better multi-target support since these agents should already
3860         have complete multi-target support.
3861
3862         * UserInterface/Protocol/Target.js:
3863         (WI.Target.prototype.initialize):
3864         Move explicitly to target.Agent feature checks with a known target.
3865
3866         * UserInterface/Controllers/DebuggerManager.js:
3867         (WI.DebuggerManager.prototype.initializeTarget):
3868         (WI.DebuggerManager.prototype._pauseForInternalScriptsDidChange):
3869         Move explicitly to target.DebuggerAgent for feature checks with a known target.
3870
3871         * UserInterface/Controllers/NetworkManager.js:
3872         (WI.NetworkManager.prototype.initializeTarget):
3873         Move explicitly to target.NetworkAgent for feature checks with a known target.
3874
3875         * UserInterface/Controllers/RuntimeManager.js:
3876         (WI.RuntimeManager.prototype.initializeTarget):
3877         (WI.RuntimeManager.prototype.saveResult):
3878         * UserInterface/Protocol/RemoteObject.js:
3879         (WI.RemoteObject.prototype.updatePreview):
3880         (WI.RemoteObject.prototype.getDisplayablePropertyDescriptors):
3881         (WI.RemoteObject.prototype.deprecatedGetDisplayableProperties):
3882         * UserInterface/Views/SourceCodeTextEditor.js:
3883         (WI.SourceCodeTextEditor.prototype._createTypeTokenAnnotator):
3884         (WI.SourceCodeTextEditor.prototype._createBasicBlockAnnotator):
3885         Move explicitly to target.RuntimeAgent for feature checks with a known target.
3886
3887         * UserInterface/Models/CSSCompletions.js:
3888         (WI.CSSCompletions.initializeCSSCompletions):
3889         Move explicitly to target.CSSAgent for feature checks with a known target.
3890
3891         * UserInterface/Views/ContextMenuUtilities.js:
3892         Use the DebuggerAgent from the target associated with the DOMNode's
3893         remote object instead of assuming the main target.
3894
3895         * UserInterface/Views/SettingsTabContentView.js:
3896         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
3897         Update the ConsoleAgent setting on all targets that support it.