1d0a6261761057810a38ccd216ac3007a8d8ce7a
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2018-08-16  Devin Rousso  <drousso@apple.com>
2
3         Web Inspector: support breakpoints for arbitrary event names
4         https://bugs.webkit.org/show_bug.cgi?id=183118
5
6         Reviewed by Joseph Pecoraro.
7
8         Create UI for setting breakpoints on event names. Ties into renamed DOMDebugger commands,
9         specifically `setEventBreakpoint` and `removeEventBreakpoint`, that will pause execution if
10         any DOM event is fired that matches any previously registered breakpoints.
11
12         Event breakpoints are distinguished by name, and they currently apply globally, meaning
13         that only one breakpoint per event name can be registered.
14
15         Event breakpoints are created in the Debugger tab in a new "Event Breakpoints" section in
16         the Navigation sidebar. A new type of popover, EventBreakpointPopover, is used, but right
17         now all it contains is a basic text input for the event name. Similarly, a new TreeElement
18         subclass, EventBreakpointTreeElement, is used when showing the list of event listener
19         breakpoints, but all it shows now is the event name.
20
21         The majority of the logic in this patch was derived from XHR breakpoints.
22
23         * Localizations/en.lproj/localizedStrings.js:
24         * UserInterface/Main.html:
25         * UserInterface/Test.html:
26         * UserInterface/Images/EventBreakpoint.svg: Added.
27
28         * UserInterface/Models/EventBreakpoint.js: Added.
29         (WI.EventBreakpoint):
30         (WI.EventBreakpoint.prototype.get eventName):
31         (WI.EventBreakpoint.prototype.get disabled):
32         (WI.EventBreakpoint.prototype.set disabled):
33         (WI.EventBreakpoint.prototype.get serializableInfo):
34         (WI.EventBreakpoint.prototype.saveIdentityToCookie):
35
36         * UserInterface/Controllers/DOMDebuggerManager.js:
37         (WI.DOMDebuggerManager):
38         (WI.DOMDebuggerManager.prototype.get eventBreakpoints): Added.
39         (WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Added.
40         (WI.DOMDebuggerManager.prototype.addEventBreakpoint): Added.
41         (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): Added.
42         (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
43         (WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Added.
44         (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Added.
45         (WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Added.
46         (WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Added.
47         (WI.DOMDebuggerManager.prototype._eventBreakpointDisabledStateDidChange): Added.
48
49         * UserInterface/Controllers/DebuggerManager.js:
50         (WI.DebuggerManager.prototype._pauseReasonFromPayload):
51
52         * UserInterface/Controllers/EventBreakpointTreeController.js: Added.
53         (WI.EventBreakpointTreeController):
54         (WI.EventBreakpointTreeController.prototype.revealAndSelect):
55         (WI.EventBreakpointTreeController.prototype._eventBreakpointAdded):
56         (WI.EventBreakpointTreeController.prototype._eventBreakpointRemoved):
57         (WI.EventBreakpointTreeController.prototype._addTreeElement):
58
59         * UserInterface/Views/DebuggerSidebarPanel.js:
60         (WI.DebuggerSidebarPanel):
61         (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
62         (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Added.
63         (WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Added.
64         (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
65
66         * UserInterface/Views/EventBreakpointTreeElement.js: Added.
67         (WI.EventBreakpointTreeElement):
68         (WI.EventBreakpointTreeElement.prototype.onattach):
69         (WI.EventBreakpointTreeElement.prototype.ondetach):
70         (WI.EventBreakpointTreeElement.prototype.ondelete):
71         (WI.EventBreakpointTreeElement.prototype.onenter):
72         (WI.EventBreakpointTreeElement.prototype.onspace):
73         (WI.EventBreakpointTreeElement.prototype.populateContextMenu):
74         (WI.EventBreakpointTreeElement.prototype._statusImageElementClicked):
75         (WI.EventBreakpointTreeElement.prototype._statusImageElementFocused):
76         (WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown):
77         (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
78         (WI.EventBreakpointTreeElement.prototype._updateStatus):
79         * UserInterface/Views/EventBreakpointTreeElement.css: Added.
80         (.breakpoint.event-listener:not(.breakpoint-paused-icon) .icon):
81
82         * UserInterface/Views/EventBreakpointPopover.js: Added.
83         (WI.EventBreakpointPopover):
84         (WI.EventBreakpointPopover.prototype.get result):
85         (WI.EventBreakpointPopover.prototype.get value):
86         (WI.EventBreakpointPopover.prototype.show):
87         (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
88         * UserInterface/Views/EventBreakpointPopover.css: Added.
89         (.popover .event-listener-breakpoint-content):
90         (.popover .event-listener-breakpoint-content > input):
91
92         * UserInterface/Views/NavigationSidebarPanel.js:
93         (WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
94
95 2018-08-16  Joseph Pecoraro  <pecoraro@apple.com>
96
97         Web Inspector: Show Initiator information in Network Table
98         https://bugs.webkit.org/show_bug.cgi?id=188590
99         <rdar://problem/43305488>
100
101         Reviewed by Matt Baker.
102
103         * UserInterface/Views/NetworkResourceDetailView.js:
104         (WI.NetworkResourceDetailView):
105         (WI.NetworkResourceDetailView.prototype.shown):
106         (WI.NetworkResourceDetailView.prototype.willShowWithCookie):
107         (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
108         When a ResourceDetailView gets shown, it may also want to show its initial content view
109         with a cookie as the cookie may contain position highlight information.
110
111         * UserInterface/Views/NetworkTableContentView.js:
112         (WI.NetworkTableContentView):
113         (WI.NetworkTableContentView.prototype._showResourceDetailView):
114         (WI.NetworkTableContentView.prototype.showRepresentedObject):
115         When showing a represented object, pass the cookie information on to the detail
116         view's so that it may include the cookie when showing the final content view.
117
118         (WI.NetworkTableContentView.prototype.tablePopulateCell):
119         (WI.NetworkTableContentView.prototype._populateInitiatorCell):
120         (WI.NetworkTableContentView.prototype.initialLayout):
121         New initiator column contains a source code link to the call site.
122
123         (WI.NetworkTableContentView.prototype._generateSortComparator):
124         (WI.NetworkTableContentView.prototype._entryForResource):
125         Entry data for the initiator is a display string that can be sorted easily.
126
127 2018-08-16  Joseph Pecoraro  <pecoraro@apple.com>
128
129         LayoutTest inspector/worker/debugger-pause.html sometimes times out
130         https://bugs.webkit.org/show_bug.cgi?id=188580
131
132         Reviewed by Matt Baker.
133
134         * UserInterface/Protocol/Target.js:
135         (WI.Target.prototype.get mainResource):
136         (WI.Target.prototype.set mainResource):
137         Dispatch an event when the Main Resource is set.
138
139 2018-08-15  Aditya Keerthi  <akeerthi@apple.com>
140
141         [Datalist] Add button to TextFieldInputs with a datalist
142         https://bugs.webkit.org/show_bug.cgi?id=187741
143
144         Reviewed by Tim Horton.
145
146         Add keyword completion for 'list-button'.
147
148         * UserInterface/External/CodeMirror/css.js:
149         * UserInterface/Models/CSSKeywordCompletions.js:
150
151 2018-08-15  Devin Rousso  <drousso@apple.com>
152
153         Web Inspector: REGRESSION(r?): the probe sidebar doesn't show up when adding probes
154         https://bugs.webkit.org/show_bug.cgi?id=188594
155
156         Reviewed by Brian Burg.
157
158         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
159         (WI.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):
160         (WI.ProbeDetailsSidebarPanel.prototype.initialLayout):
161         Add checks to ensure that DOM elements for each probe section exist before trying to
162         add/remove them from the sidebar. This can happen if probes are inspected before the sidebar
163         is shown for the first time.
164
165         * UserInterface/Views/ProbeSetDataGrid.js:
166         (WI.ProbeSetDataGrid):
167         (WI.ProbeSetDataGrid.columnIdentifierForProbe): Added.
168         (WI.ProbeSetDataGrid.prototype._setupProbe):
169         (WI.ProbeSetDataGrid.prototype._teardownProbe):
170         (WI.ProbeSetDataGrid.prototype._probeExpressionChanged):
171         * UserInterface/Views/ProbeSetDataGridNode.js:
172         (WI.ProbeSetDataGridNode.prototype.set frame):
173         Provide better column identifiers for each probe's `WI.DataGrid`. It's possible for the
174         numeric probe ID value to be stringified when passing it into the constructor of
175         `WI.DataGrid`, which will not match the original numeric value on later retrieval.
176
177 2018-08-14  Matt Baker  <mattbaker@apple.com>
178
179         Web Inspector: Table should not center rows when scrolling them into view
180         https://bugs.webkit.org/show_bug.cgi?id=188593
181         <rdar://problem/43311660>
182
183         Reviewed by Devin Rousso.
184
185         * UserInterface/Views/Table.js:
186         (WI.Table.prototype._handleKeyDown):
187
188 2018-08-13  Matt Baker  <mattbaker@apple.com>
189
190         Web Inspector: Table should handle row selection instead of the table delegate
191         https://bugs.webkit.org/show_bug.cgi?id=188534
192         <rdar://problem/43253335>
193
194         Reviewed by Joseph Pecoraro.
195
196         Row selection should be implemented by Table, rather than its delegate.
197
198         * UserInterface/Views/NetworkTableContentView.js:
199         (WI.NetworkTableContentView.prototype.tableShouldSelectRow):
200         (WI.NetworkTableContentView.prototype.tableCellMouseDown): Deleted.
201         Prevent selection unless the clicked cell belongs to the name column.
202
203         * UserInterface/Views/ResourceCookiesContentView.js:
204         (WI.ResourceCookiesContentView.prototype.tableShouldSelectRow):
205         Always prevent selection.
206
207         * UserInterface/Views/Table.js:
208         (WI.Table):
209         (WI.Table.prototype._handleMouseDown):
210
211 2018-08-12  Aditya Keerthi  <akeerthi@apple.com>
212
213         [macOS] Color wells should appear pressed when presenting a color picker
214         https://bugs.webkit.org/show_bug.cgi?id=188477
215
216         Reviewed by Tim Horton.
217
218         Add keyword completion for 'color-well'.
219
220         * UserInterface/External/CodeMirror/css.js:
221         * UserInterface/Models/CSSKeywordCompletions.js:
222
223 2018-08-09  Nikita Vasilyev  <nvasilyev@apple.com>
224
225         Web Inspector: Dark Mode: SourceCodeTextEditor error/warning text widget is too light
226         https://bugs.webkit.org/show_bug.cgi?id=188126
227         <rdar://problem/42674963>
228
229         Reviewed by Matt Baker.
230
231         * UserInterface/Views/DarkMode.css:
232         (@media (prefers-dark-interface)):
233         (.source-code.text-editor > .CodeMirror .issue-widget.warning,): Added.
234         (.source-code.text-editor > .CodeMirror .issue-widget.error,): Added.
235
236 2018-08-07  Joseph Pecoraro  <pecoraro@apple.com>
237
238         Web Inspector: Add another Protocol Version (iOS 12)
239         https://bugs.webkit.org/show_bug.cgi?id=188359
240         <rdar://problem/42981364>
241
242         Reviewed by Brian Burg.
243
244         * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: Added.
245         * Versions/Inspector-iOS-12.0.json: Added.
246
247 2018-08-06  Joseph Pecoraro  <pecoraro@apple.com>
248
249         Web Inspector: Global search sometimes returns duplicate results for a resource
250         https://bugs.webkit.org/show_bug.cgi?id=188270
251         <rdar://problem/42867498>
252
253         Reviewed by Brian Burg.
254
255         * UserInterface/Views/SearchSidebarPanel.js:
256         (WI.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
257         Avoid duplicate search results in the frontend. We should also fix the backend
258         but a frontend fix will also be desired for backends that have the issue.
259
260 2018-08-03  Alex Christensen  <achristensen@webkit.org>
261
262         Fix spelling of "overridden"
263         https://bugs.webkit.org/show_bug.cgi?id=188315
264
265         Reviewed by Darin Adler.
266
267         * UserInterface/Views/ContentBrowserTabContentView.js:
268         (WI.ContentBrowserTabContentView.prototype.treeElementForRepresentedObject):
269         * UserInterface/Views/GeneralTreeElement.js:
270         (WI.GeneralTreeElement.prototype.ondetach):
271         * UserInterface/Views/NavigationBar.js:
272         (WI.NavigationBar.prototype.get sizesToFit):
273         * UserInterface/Views/NavigationSidebarPanel.js:
274         (WI.NavigationSidebarPanel.prototype.shouldFilterPopulate):
275         * UserInterface/Views/TextEditor.js:
276         (WI.TextEditor.prototype.canBeFormatted):
277         * UserInterface/Views/TreeElement.js:
278         (WI.TreeElement.prototype.onpopulate):
279
280 2018-08-01  Nikita Vasilyev  <nvasilyev@apple.com>
281
282         Web Inspector: Dark Mode: SourceCodeTextEditor thread indicator widget is too light
283         https://bugs.webkit.org/show_bug.cgi?id=188119
284         <rdar://problem/42670811>
285
286         Reviewed by Matt Baker.
287
288         Make the background of the thread indicator widget darker.
289
290         Reduce the number of HTML elements and simplify CSS by removing the HTML element that drew an arrow and using clip-path on inline widgets instead.
291
292         * UserInterface/Views/DarkMode.css:
293         (@media (prefers-dark-interface)):
294         (.text-editor > .CodeMirror .execution-line):
295         (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
296         * UserInterface/Views/SourceCodeTextEditor.css:
297         (.source-code.text-editor .CodeMirror-linewidget):
298         (.source-code.text-editor > .CodeMirror .line-indicator-widget.inline):
299         (@media (prefers-dark-interface)):
300         (.source-code.text-editor > .CodeMirror .thread-widget.inline):
301         * UserInterface/Views/SourceCodeTextEditor.js:
302         (WI.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget):
303         (WI.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues):
304         * UserInterface/Views/TextEditor.css:
305         (@media (prefers-dark-interface)):
306         (.text-editor > .CodeMirror .execution-line.primary .CodeMirror-linenumber::after):
307         * UserInterface/Views/Variables.css:
308         (:root):
309
310 2018-08-01  Nikita Vasilyev  <nvasilyev@apple.com>
311
312         Web Inspector: Dark Mode: disabled breakpoints banner is too light
313         https://bugs.webkit.org/show_bug.cgi?id=188120
314         <rdar://problem/42671348>
315
316         Reviewed by Matt Baker.
317
318         * UserInterface/Views/DebuggerSidebarPanel.css:
319         (@media (prefers-dark-interface)):
320         (.sidebar > .panel.navigation.debugger .warning-banner):
321
322 2018-07-31  Joseph Pecoraro  <pecoraro@apple.com>
323
324         Web Inspector: Include a full URL tooltip when hovering the name in the Network Tab
325         https://bugs.webkit.org/show_bug.cgi?id=188199
326
327         Reviewed by Matt Baker.
328
329         * UserInterface/Views/NetworkTableContentView.js:
330         (WI.NetworkTableContentView.prototype._populateNameCell):
331         Give a tooltip to the entire cell since the entire cell has interactivity.
332
333 2018-07-30  Nikita Vasilyev  <nvasilyev@apple.com>
334
335         Web Inspector: Dark Mode: Search sidebar panel text field has a white background
336         https://bugs.webkit.org/show_bug.cgi?id=188128
337         <rdar://problem/42678270>
338
339         Reviewed by Matt Baker.
340
341         Make the search bar in Search tab match the style of the filter bar.
342
343         * UserInterface/Views/DarkMode.css:
344         (@media (prefers-dark-interface)):
345         (:matches(.search-bar, .filter-bar) > input[type="search"],):
346         (:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder):
347         (:matches(.search-bar, .filter-bar) > input[type="search"]:focus):
348         (.filter-bar > input[type="search"]): Deleted.
349         (.filter-bar > input[type="search"]::placeholder): Deleted.
350         (.filter-bar > input[type="search"]:focus): Deleted.
351
352 2018-07-26  Ryan Haddad  <ryanhaddad@apple.com>
353
354         Unreviewed, rolling out r234281.
355
356         Broke internal builds.
357
358         Reverted changeset:
359
360         "[Datalist] Add button to TextFieldInputs with a datalist"
361         https://bugs.webkit.org/show_bug.cgi?id=187741
362         https://trac.webkit.org/changeset/234281
363
364 2018-07-26  Aditya Keerthi  <akeerthi@apple.com>
365
366         [Datalist] Add button to TextFieldInputs with a datalist
367         https://bugs.webkit.org/show_bug.cgi?id=187741
368
369         Reviewed by Tim Horton.
370
371         Add keyword completion for 'list-button'.
372
373         * UserInterface/External/CodeMirror/css.js:
374         * UserInterface/Models/CSSKeywordCompletions.js:
375
376 2018-07-25  Nikita Vasilyev  <nvasilyev@apple.com>
377
378         Web Inspector: Dark Mode: Breakpoint editor in JS debugger has inconsistent background
379         https://bugs.webkit.org/show_bug.cgi?id=188026
380
381         Reviewed by Matt Baker.
382
383         * UserInterface/Views/DarkMode.css:
384         (@media (prefers-dark-interface)):
385         (.edit-breakpoint-popover-condition):
386         (.breakpoint-action-eval-editor):
387
388 2018-07-22  Nikita Vasilyev  <nvasilyev@apple.com>
389
390         Web Inspector: Dark Mode: remove odd-looking top border
391         https://bugs.webkit.org/show_bug.cgi?id=187885
392
393         Reviewed by Matt Baker.
394
395         This border doesn't exist in the light mode, and it shouldn't be in the dark mode either.
396
397         * UserInterface/Views/DarkMode.css:
398         (@media (prefers-dark-interface)):
399         (body .toolbar):
400
401 2018-07-20  Nikita Vasilyev  <nvasilyev@apple.com>
402
403         Web Inspector: Dark Mode: Layers tab background should be dark
404         https://bugs.webkit.org/show_bug.cgi?id=187660
405         <rdar://problem/42179616>
406
407         Reviewed by Brian Burg.
408
409         * UserInterface/Views/Layers3DContentView.js:
410         (WI.Layers3DContentView.prototype.initialLayout):
411         * UserInterface/Views/Variables.css:
412         (:root):
413
414 2018-07-19  Ross Kirsling  <ross.kirsling@sony.com>
415
416         Web Inspector: Layers visualization shouldn't select on mousedown
417         https://bugs.webkit.org/show_bug.cgi?id=187488
418
419         Reviewed by Matt Baker.
420
421         * UserInterface/Views/Layers3DContentView.js:
422         (WI.Layers3DContentView):
423         (WI.Layers3DContentView.prototype.initialLayout):
424         (WI.Layers3DContentView.prototype._canvasMouseDown):
425         (WI.Layers3DContentView.prototype._canvasMouseUp):
426         Don't update selection on mousedown, update on mouseup!
427         Specifically, only update when mousedown & mouseup targets are the same and mousemove hasn't been triggered.
428
429 2018-07-19  Nikita Vasilyev  <nvasilyev@apple.com>
430
431         Web Inspector: Dark Mode: poor contrast for Search Tab's "the page's content has changed" message
432         https://bugs.webkit.org/show_bug.cgi?id=187792
433
434         Reviewed by Brian Burg.
435
436         * UserInterface/Views/DarkMode.css:
437         (@media (prefers-dark-interface)):
438         (:root):
439         Make the background color slightly more yellow and less red. This slightly dicreases the contrast
440         but makes the text look less like an error.
441
442         * UserInterface/Views/SearchSidebarPanel.css:
443         (@media (prefers-dark-interface)):
444         (.sidebar > .panel.navigation.search.changed > .banner):
445
446 2018-07-18  Matt Baker  <mattbaker@apple.com>
447
448         Web Inspector: REGRESSION(r232591): CodeMirrorEditor should not use a RegExp lineSeparator option
449         https://bugs.webkit.org/show_bug.cgi?id=187772
450         <rdar://problem/42331640>
451
452         Reviewed by Joseph Pecoraro.
453
454         * UserInterface/Views/CodeMirrorEditor.js:
455         (WI.CodeMirrorEditor.create):
456         (WI.CodeMirrorEditor):
457         CodeMirror should be left to auto-detect line separators. By default
458         it detects \n, \r\n, and \r. By specifying a regular expression we
459         merely cause problems when CodeMirror uses the supplied lineSeparator
460         when joining its array of lines together.
461
462         * UserInterface/Views/TextEditor.js:
463         (WI.TextEditor.set string.update):
464         (WI.TextEditor.prototype.set string):
465         This assertion was only true when we forced "\n" line endings everywhere.
466         It no longer holds for source text with "\r\n" (Windows-style) line endings.
467
468 2018-07-16  Matt Baker  <mattbaker@apple.com>
469
470         Web Inspector: Fix execution highlighting after r233820
471         https://bugs.webkit.org/show_bug.cgi?id=187703
472         <rdar://problem/42246167>
473
474         Reviewed by Joseph Pecoraro.
475
476         * UserInterface/Views/SourceCodeTextEditor.js:
477         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
478         * UserInterface/Views/TextEditor.js:
479         (WI.TextEditor.prototype.currentPositionToOriginalPosition):
480         (WI.TextEditor.prototype._updateExecutionRangeHighlight):
481
482 2018-07-16  Aaron Chu  <aaron_chu@apple.com>
483
484         AX: Audit Tab should have an Audit Manager
485         https://bugs.webkit.org/show_bug.cgi?id=184071
486         <rdar://problem/38946364>
487
488         Reviewed by Brian Burg.
489
490         This implements the AuditManager for the audit feature. This patch revolves
491         around building out an AuditManager that facilitates an audit. The AuditManager
492         is responsible for managing and storing AuditReports and AuditTestSuites. It is
493         also tasked to decide how to run a test -- whether as a test case or as a test
494         suite. This patch also includes 4 models with which the AuditManager works to
495         perform an audit and to generate a report. These models include AuditTestCase,
496         which as a collection is stored inside an AuditTestSuite; and AuditResult,
497         which, as a collection is stored inside an AuditReport.
498
499         * UserInterface/Controllers/AuditManager.js: Added.
500         (WI.AuditManager):
501         (WI.AuditManager.prototype.get testSuites):
502         (WI.AuditManager.prototype.get reports):
503         (WI.AuditManager.prototype.async.runAuditTestByRepresentedObject):
504         (WI.AuditManager.prototype.reportForId):
505         (WI.AuditManager.prototype.removeAllReports):
506         (WI.AuditManager.prototype.async._runTestCase):
507         * UserInterface/Main.html:
508         * UserInterface/Models/AuditReport.js: Added.
509         (WI.AuditReport):
510         (WI.AuditReport.prototype.get representedTestCases):
511         (WI.AuditReport.prototype.get representedTestSuite):
512         (WI.AuditReport.prototype.get resultsData):
513         (WI.AuditReport.prototype.get isWritable):
514         (WI.AuditReport.prototype.get failedCount):
515         (WI.AuditReport.prototype.addResult):
516         (WI.AuditReport.prototype.close):
517         * UserInterface/Models/AuditResult.js: Added.
518         (WI.AuditResult):
519         (WI.AuditResult.prototype.get testResult):
520         (WI.AuditResult.prototype.get name):
521         (WI.AuditResult.prototype.get logLevel):
522         (WI.AuditResult.prototype.get failed):
523         * UserInterface/Models/AuditTestCase.js: Added.
524         (WI.AuditTestCase.prototype.get id):
525         (WI.AuditTestCase.prototype.get name):
526         (WI.AuditTestCase.prototype.get suite):
527         (WI.AuditTestCase.prototype.get test):
528         (WI.AuditTestCase.prototype.get setup):
529         (WI.AuditTestCase.prototype.get tearDown):
530         (WI.AuditTestCase.prototype.get errorDetails):
531         (WI.AuditTestCase):
532         * UserInterface/Models/AuditTestSuite.js: Added.
533         (WI.AuditTestSuite):
534         (WI.AuditTestSuite.testCaseDescriptors):
535         (WI.AuditTestSuite.prototype.get id):
536         (WI.AuditTestSuite.prototype.get name):
537         (WI.AuditTestSuite.prototype.get testCases):
538         (WI.AuditTestSuite.prototype._buildTestCasesFromDescriptors):
539         * UserInterface/Test.html:
540
541 2018-07-16  Nikita Vasilyev  <nvasilyev@apple.com>
542
543         Web Inspector: Dark Mode: Console filter field buttons should be darker
544         https://bugs.webkit.org/show_bug.cgi?id=187626
545         <rdar://problem/42142744>
546
547         Reviewed by Brian Burg.
548
549         * UserInterface/Views/FindBanner.css:
550         (@media (prefers-dark-interface)):
551         (.find-banner > button.segmented):
552         (.find-banner > button.segmented > .glyph):
553
554 2018-07-16  Nikita Vasilyev  <nvasilyev@apple.com>
555
556         Web Inspector: Dark Mode: selected item background color is too light
557         https://bugs.webkit.org/show_bug.cgi?id=187691
558         <rdar://problem/42225308>
559
560         Reviewed by Brian Burg.
561
562         * UserInterface/Views/DarkMode.css:
563         (@media (prefers-dark-interface)):
564         (:root):
565         (.tree-outline.dom li.elements-drag-over .selection-area):
566         (.tree-outline.dom:focus li.selected .selection-area):
567
568 2018-07-14  Kocsen Chung  <kocsen_chung@apple.com>
569
570         Ensure WebKit stack is ad-hoc signed
571         https://bugs.webkit.org/show_bug.cgi?id=187667
572
573         Reviewed by Alexey Proskuryakov.
574
575         * Configurations/Base.xcconfig:
576
577 2018-07-13  Matt Baker  <mattbaker@apple.com>
578
579         Web Inspector: REGRESSION (r195723): Improve support for resources with '\r' and '\r\n' line endings
580         https://bugs.webkit.org/show_bug.cgi?id=186453
581         <rdar://problem/39689180>
582
583         Reviewed by Joseph Pecoraro.
584
585         Now that the frontend no longer uses offsets from the original source
586         file to calculate positions within CodeMirror, it is possible to support
587         resources with '\r' and '\r\n' line endings in the editor.
588
589         * UserInterface/Views/CodeMirrorEditor.js:
590         (WI.CodeMirrorEditor.create):
591         (WI.CodeMirrorEditor):
592
593 2018-07-13  Matt Baker  <mattbaker@apple.com>
594
595         Web Inspector: Basic blocks highlighting should use line/column locations instead of offsets
596         https://bugs.webkit.org/show_bug.cgi?id=187613
597         <rdar://problem/42131808>
598
599         Reviewed by Joseph Pecoraro.
600
601         * UserInterface/Controllers/BasicBlockAnnotator.js:
602         Basic blocks sent from the backend include offsets into the original
603         file, rather than line/column locations. In order to translate to positions
604         within CodeMirror, we need to calculate the original line and column
605         for each block.
606
607         (WI.BasicBlockAnnotator.prototype.insertAnnotations):
608         (WI.BasicBlockAnnotator.prototype._calculateBasicBlockPositions.offsetToPosition):
609         (WI.BasicBlockAnnotator.prototype._calculateBasicBlockPositions):
610         (WI.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
611         (WI.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
612         (WI.BasicBlockAnnotator.prototype._highlightTextForBasicBlock):
613
614         * UserInterface/Models/SourceCodePosition.js:
615         (WI.SourceCodePosition.prototype.offsetColumn):
616
617         * UserInterface/Views/TextEditor.js:
618         (WI.TextEditor.prototype.getTextInRange):
619         (WI.TextEditor.prototype.addStyleToTextRange):
620         Better encapsulation for CodeMirror positions.
621
622         * UserInterface/Workers/Formatter/FormatterUtilities.js:
623         (get if):
624         Update String.prototype.lineEndings to support additional line separators.
625
626 2018-07-13  Matt Baker  <mattbaker@apple.com>
627
628         Web Inspector: Execution highlighting in the frontend should be line/column-based
629         https://bugs.webkit.org/show_bug.cgi?id=187532
630         <rdar://problem/42035580>
631
632         Reviewed by Joseph Pecoraro.
633
634         Source code offsets from Esprima should not be used to calculate ranges
635         in CodeMirror for expression highlighting.
636
637         This also fixes a long standing bug when adjusting for the starting
638         position of an inline script. Previously the start offset from the script
639         TextRange was used for this purpose, but the value is often incorrect (see
640         https://bugs.webkit.org/show_bug.cgi?id=187532#c5). By using the starting
641         line/column instead, we avoid the problem.
642
643         * UserInterface/Models/ScriptSyntaxTree.js:
644         (WI.ScriptSyntaxTree.prototype.containersOfPosition):
645         (WI.ScriptSyntaxTree.prototype.containersOfOffset): Deleted.
646
647         * UserInterface/Models/SourceCodePosition.js:
648         (WI.SourceCodePosition.prototype.offsetColumn):
649
650         * UserInterface/Views/SourceCodeTextEditor.js:
651         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.toInlineScriptPosition):
652         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.fromInlineScriptPosition):
653         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
654         (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.convertRangeOffsetsToSourceCodeOffsets): Deleted.
655
656         * UserInterface/Views/TextEditor.js:
657         (WI.TextEditor.prototype._updateExecutionRangeHighlight):
658
659 2018-07-13  Matt Baker  <mattbaker@apple.com>
660
661         Web Inspector: SourceCodePosition.js missing from Test.html
662         https://bugs.webkit.org/show_bug.cgi?id=187644
663
664         Reviewed by Brian Burg.
665
666         * UserInterface/Test.html:
667
668 2018-07-12  Matt Baker  <mattbaker@apple.com>
669
670         Web Inspector: Type token positioning should use line/column locations from Esprima instead of offsets
671         https://bugs.webkit.org/show_bug.cgi?id=187612
672         <rdar://problem/42131910>
673
674         Reviewed by Joseph Pecoraro.
675
676         * UserInterface/Controllers/TypeTokenAnnotator.js:
677         (WI.TypeTokenAnnotator.prototype.insertAnnotations):
678         (WI.TypeTokenAnnotator.prototype._insertTypeToken):
679         (WI.TypeTokenAnnotator.prototype._insertToken):
680         Use line/column locations, instead of offsets, from the AST when calculating
681         token positions for CodeMirror. Once in CodeMirror's string space, we
682         can safely convert to/from offsets.
683
684         * UserInterface/Models/ScriptSyntaxTree.js:
685         Retrieve line/column locations for AST nodes, in addition to offsets.
686         Offsets into the original file are still needed for getting type information
687         from the profiler in the backend.
688
689         (WI.ScriptSyntaxTree):
690         (WI.ScriptSyntaxTree.prototype.filterByRange):
691         Filter by positions, which can be safely used from CodeMirror, instead of offsets.
692
693         (WI.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
694         (WI.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange): Deleted.
695
696         * UserInterface/Models/SourceCodePosition.js:
697         Add convenience methods for comparing line/column positions, and for
698         converting to the format expected by CodeMirror. SourceCodePosition could
699         be made to interoperate with CodeMirror by exposing properties `line`
700         and `ch`, but making the conversion explicit improves code readability.
701
702         (WI.SourceCodePosition.prototype.equals):
703         (WI.SourceCodePosition.prototype.isBefore):
704         (WI.SourceCodePosition.prototype.isAfter):
705         (WI.SourceCodePosition.prototype.isWithin):
706         (WI.SourceCodePosition.prototype.toCodeMirror):
707         (WI.SourceCodePosition):
708
709         * UserInterface/Views/TextEditor.js:
710         (WI.TextEditor.prototype.visibleRangePositions):
711         (WI.TextEditor.prototype.originalPositionToCurrentPosition):
712         (WI.TextEditor.prototype.currentOffsetToCurrentPosition):
713         (WI.TextEditor.prototype.currentPositionToCurrentOffset):
714         (WI.TextEditor.prototype.setInlineWidget):
715
716 2018-07-10  Fujii Hironori  <Hironori.Fujii@sony.com>
717
718         REGRESSION(r229932) Use of uninitialized value in subroutine entry at copy-user-interface-resources.pl
719         https://bugs.webkit.org/show_bug.cgi?id=187511
720
721         Reviewed by Brian Burg.
722
723         copy-user-interface-resources.pl output warning messages unless
724         BUILT_PRODUCTS_DIR and BUILT_PRODUCTS_DIR env vars are defined.
725
726         * Scripts/copy-user-interface-resources.pl:
727         (webInspectorUIAdditionsDir): Added. Return UNDEF if
728         BUILT_PRODUCTS_DIR and SDKROOT env vars aren't defined.
729         (combineOrStripResourcesForWebKitAdditions): Check
730         $webInspectorUIAdditionsDir is defined.
731
732 2018-07-10  Ross Kirsling  <rkirsling@gmail.com>
733
734         Web Inspector: Layers inspector should allow control-dragging to pan the 3D render
735         https://bugs.webkit.org/show_bug.cgi?id=185109
736
737         Reviewed by Matt Baker.
738
739         Addressed in the three.js repo itself (https://github.com/mrdoob/three.js/pull/13972),
740         so this patch simply updates three.js and its OrbitControls module.
741
742         * UserInterface/External/three.js/LICENSE:
743         * UserInterface/External/three.js/three.js:
744         Update to r94.
745
746         * UserInterface/External/three.js/OrbitControls.js:
747         Update to latest.
748
749         * UserInterface/Views/Layers3DContentView.js:
750         (WI.Layers3DContentView.prototype.initialLayout):
751         (WI.Layers3DContentView.prototype._restrictPan):
752         Adapt to recent changes in three.js.
753
754 2018-07-10  Matt Baker  <mattbaker@apple.com>
755
756         Web Inspector: Remove unused NavigationSidebarPanel.treeElementAddedOrChanged
757         https://bugs.webkit.org/show_bug.cgi?id=187508
758
759         Reviewed by Joseph Pecoraro.
760
761         * UserInterface/Views/NavigationSidebarPanel.js:
762         (WI.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
763         (WI.NavigationSidebarPanel.prototype.treeElementAddedOrChanged): Deleted.
764
765 2018-07-10  Matt Baker  <mattbaker@apple.com>
766
767         Web Inspector: REGRESSION (r217505): Debugger content view doesn't update when left sidebar is collapsed
768         https://bugs.webkit.org/show_bug.cgi?id=187482
769         <rdar://problem/41989190>
770
771         Reviewed by Brian Burg.
772
773         Subclasses of NavigationSidebarPanel must process tree selection changes
774         even when collapsed. Sidebar panels perform critical controller tasks
775         for their tabs, such as updating the view when pausing in the debugger,
776         and when the hierarchical path component selection changes.
777
778         * UserInterface/Views/DebuggerSidebarPanel.js:
779         (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
780         * UserInterface/Views/ResourceSidebarPanel.js:
781         (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange):
782         * UserInterface/Views/SearchSidebarPanel.js:
783         (WI.SearchSidebarPanel.prototype._treeSelectionDidChange):
784         * UserInterface/Views/SourcesSidebarPanel.js:
785         (WI.SourcesSidebarPanel.prototype._treeSelectionDidChange):
786         * UserInterface/Views/StorageSidebarPanel.js:
787         (WI.StorageSidebarPanel._treeSelectionDidChange):
788
789 2018-07-09  Brian Burg  <bburg@apple.com>
790
791         REGRESSION: Web Inspector no longer pauses in internal injected scripts like WDFindNodes.js
792         https://bugs.webkit.org/show_bug.cgi?id=187350
793         <rdar://problem/41728249>
794
795         Reviewed by Matt Baker.
796
797         * UserInterface/Base/Setting.js: Add a new setting to allow pausing in internal scripts.
798         * UserInterface/Controllers/DebuggerManager.js: Listen to the setting change and toggle
799         the backend setting accordingly. The default is to not break into internal scripts.
800
801         * UserInterface/Views/SettingsTabContentView.js:
802         (WI.SettingsTabContentView.prototype._createDebugSettingsView):
803         Expose the new setting in the Debug settings panel.
804
805 2018-07-06  Nikita Vasilyev  <nvasilyev@apple.com>
806
807         Web Inspector: Dark Mode: resource search field has white text on white background
808         https://bugs.webkit.org/show_bug.cgi?id=187423
809
810         Reviewed by Timothy Hatcher.
811
812         Match the colors of sidebar filter fields.
813
814         * UserInterface/Views/DarkMode.css:
815         (@media (prefers-dark-interface)):
816         (.find-banner > input[type="search"]):
817
818 2018-07-04  Tim Horton  <timothy_horton@apple.com>
819
820         Introduce PLATFORM(IOSMAC)
821         https://bugs.webkit.org/show_bug.cgi?id=187315
822
823         Reviewed by Dan Bernstein.
824
825         * Configurations/Base.xcconfig:
826
827 2018-06-28  Matt Baker  <mattbaker@apple.com>
828
829         Web Inspector: REGRESSION (r213000): copy from Search results content view broken
830         https://bugs.webkit.org/show_bug.cgi?id=187020
831         <rdar://problem/40928766>
832
833         Reviewed by Timothy Hatcher.
834
835         Since WI._copy listens for a copy event from the document, it is called
836         after CodeMirror handles the event and sets clipboard data. If WI._copy
837         finds a custom copy handler to call, that handler can determine whether
838         to overwrite the current clipboard data, or leave it alone.
839
840         SearchTabContentView's handleCopyEvent method should return early if the
841         content tree outline doesn't have the focus. This prevents the selection
842         in the TextEditor from being overwritten, without any special knowledge of
843         the content browser's current view.
844
845         * UserInterface/Views/SearchTabContentView.js:
846         (WI.SearchTabContentView.prototype.handleCopyEvent):
847
848 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
849
850         Web Inspector: Dark Mode: Box Model section should have dark background
851         https://bugs.webkit.org/show_bug.cgi?id=186976
852
853         Reviewed by Brian Burg.
854
855         Replace all instances of black text on white background with the default text and background colors.
856
857         * UserInterface/Views/BoxModelDetailsSectionRow.css:
858         (@media (prefers-dark-interface)):
859         (.details-section .row.box-model):
860         (.details-section .row.box-model .label):
861         (.details-section .row.box-model :matches(.position, .margin, .border, .padding, .content)):
862         (.details-section .row.box-model:not(.hovered) :matches(.margin, .border, .padding, .content),):
863         (.details-section .row.box-model .margin):
864         (.details-section .row.box-model .border):
865
866 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
867
868         Web Inspector: Dark Mode: color outline is too dark
869         https://bugs.webkit.org/show_bug.cgi?id=186975
870
871         Reviewed by Brian Burg.
872
873         Make the outline lighter than the background.
874
875         * UserInterface/Views/DarkMode.css:
876         (@media (prefers-dark-interface)):
877         (.hover-menu > svg > :matches(path, rect)):
878
879 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
880
881         Web Inspector: Dark Mode: Media query names are unreadable
882         https://bugs.webkit.org/show_bug.cgi?id=186974
883
884         Reviewed by Brian Burg.
885
886         Change media query names from dark blue to light blue.
887
888         * UserInterface/Views/DarkMode.css:
889         (@media (prefers-dark-interface)):
890         (.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket):
891         (.cm-s-default .cm-attribute):
892
893 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
894
895         Web Inspector: Dark Mode: Network headers colors are too dim
896         https://bugs.webkit.org/show_bug.cgi?id=186985
897
898         Reviewed by Brian Burg.
899
900         Increasing the luminance of network header colors by increasing lightness and brightness.
901
902         * UserInterface/Views/DarkMode.css:
903         (@media (prefers-dark-interface)):
904         (:root):
905
906 2018-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
907
908         Web Inspector: Dark Mode: Font guideline colors are too bright
909         https://bugs.webkit.org/show_bug.cgi?id=186986
910
911         Reviewed by Brian Burg.
912
913         Make the guidelines less distractive from the font glyphs.
914
915         * UserInterface/Views/DarkMode.css:
916         (@media (prefers-dark-interface)):
917         (.content-view.resource.font .preview > .line):
918         (.content-view.resource.font .metric.top):
919         (.content-view.resource.font .metric.baseline):
920         (.content-view.resource.font .metric.middle):
921         (.content-view.resource.font .metric.xheight):
922         (.content-view.resource.font .metric.bottom):
923
924 2018-06-20  Daniel Bates  <dabates@apple.com>
925
926         Web Inspector: All non-Same-Site cookies are marked as Same-Site Strict in Storage tab
927         https://bugs.webkit.org/show_bug.cgi?id=186867
928         <rdar://problem/41175424>
929
930         Reviewed by Matt Baker.
931
932         Fixes an issue where cookies that do not have a Same-Site policy would be marked up as Same-
933         Site Strict in Web Inspector's cookie storage content view (under the storage tab).
934
935         * UserInterface/Views/CookieStorageContentView.js:
936         (WI.CookieStorageContentView.prototype._rebuildTable): Only compute the display name if
937         we cookie.sameSite is non-null and is not WI.Cookie.SameSiteType.None. Moreover, remove
938         an extraneous call to WI.Cookie.parseSameSiteAttributeValue() as cookie.SameSite represents
939         the already parsed value (one of the WI.Cookie.SameSiteType-scoped values).
940
941 2018-06-18  Brian Burg  <bburg@apple.com>
942
943         Web Inspector: TypeError: Array.prototype.sort passed bad value in NetworkTableContentView _updateSortAndFilteredEntries
944         https://bugs.webkit.org/show_bug.cgi?id=186787
945         <rdar://problem/41175680>
946
947         Reviewed by Timothy Hatcher.
948
949         * UserInterface/Views/NetworkTableContentView.js:
950         (WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries):
951
952 2018-06-13  Nikita Vasilyev  <nvasilyev@apple.com>
953
954         Web Inspector: open source Dark Mode
955         https://bugs.webkit.org/show_bug.cgi?id=186606
956
957         Reviewed by Timothy Hatcher.
958
959         The dark mode is currently only available on macOS Mojave via prefers-dark-interface CSS media query.
960
961         * UserInterface/Main.html:
962         * UserInterface/Views/DarkMode.css: Added.
963         (@media (prefers-dark-interface)):
964         (:root):
965         (body.window-inactive):
966         (body.window-inactive *):
967         (#main):
968         (.tree-outline.dom li.selected .selection-area):
969         (.tab-bar > .item > .icon):
970         (.go-to-arrow):
971         (.resource-link,):
972         (.expand-list-button):
973         (:matches(img, canvas).show-grid):
974         (.formatted-object,):
975         (.formatted-null,):
976         (.editing):
977         (.editing, .editing *):
978         (.text-editor > .CodeMirror .execution-line):
979         (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
980         (.details-section > .header):
981         (.details-section > .header > label):
982         (.details-section .details-section,):
983         (.details-section .details-section:not(.collapsed) > .header):
984         (.details-section > .content > .group > .row.simple > .label):
985         (.details-section > .content > .group:nth-child(even)):
986         (.details-section > .content > .group > .row:matches(.empty, .text)):
987         (.data-grid th):
988         (.data-grid td .subtitle):
989         (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
990         (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
991         (.data-grid tr.editable .cell-content > input):
992         (.data-grid td.spanning):
993         (.object-tree,):
994         (.object-preview .name):
995         (.object-preview > .size):
996         (.tab-bar):
997         (.tab-bar > .item):
998         (.tab-bar > .item > .title):
999         (.tab-bar > .item:not(.disabled).selected):
1000         (.tab-bar:not(.animating) > .item:not(.selected):hover):
1001         (.tab-bar > .item > .close):
1002         (body.window-inactive .tab-bar):
1003         (body.window-inactive .tab-bar > .item):
1004         (body.window-inactive .tab-bar > .item.selected):
1005         (body.window-inactive .tab-bar > .item > .title):
1006         (body .toolbar):
1007         (body.window-inactive .toolbar):
1008         (body.latest-mac .toolbar .item.button,):
1009         (body.latest-mac .toolbar .search-bar > input[type="search"]):
1010         (body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
1011         (body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder):
1012         (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder):
1013         (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button):
1014         (body.latest-mac .toolbar .dashboard-container):
1015         (body.latest-mac .toolbar .item.button:active):
1016         (body.latest-mac.window-inactive .toolbar .item.button,):
1017         (.navigation-bar .item.divider):
1018         (.toolbar .item.button):
1019         (.toolbar .item.button:not(.disabled):active):
1020         (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
1021         (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)):
1022         (.toolbar .dashboard.default > .item > div):
1023         (.toolbar .dashboard.default > .item.enabled > div):
1024         (.toolbar .dashboard.default > .item.enabled:hover):
1025         (.toolbar .dashboard.default > .item.enabled:hover > div):
1026         (.toolbar .dashboard.default > .resourcesCount > img,):
1027         (body.latest-mac .toolbar .dashboard .item.button):
1028         (.dashboard-container .advance-arrow):
1029         (.toolbar .dashboard.debugger):
1030         (.dashboard.debugger .navigation-bar .item.button > .glyph):
1031         (.dashboard.debugger > .location .function-name):
1032         (.dashboard.debugger > .location .go-to-link):
1033         (.dashboard.debugger > .divider):
1034         (.popover .edit-breakpoint-popover-content > label.toggle):
1035         (.popover .edit-breakpoint-popover-content > table > tr > th):
1036         (.breakpoint-action-block-body):
1037         (.breakpoint-action-block-body > .description):
1038         (.breakpoint-action-append-button,):
1039         (.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
1040         (.navigation-bar .item.button):
1041         (.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
1042         (.spreadsheet-css-declaration):
1043         (.spreadsheet-css-declaration .selector:focus,):
1044         (.spreadsheet-css-declaration.locked .origin::after):
1045         (.spreadsheet-css-declaration .origin .go-to-link,):
1046         (.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
1047         (.spreadsheet-style-declaration-editor .property.has-warning):
1048         (.spreadsheet-style-declaration-editor .property.has-warning .warning):
1049         (.spreadsheet-css-declaration .media-label):
1050         (.quick-console):
1051         (.syntax-highlighted,):
1052         (.cm-s-default,):
1053         (.CodeMirror .jump-to-symbol-highlight,):
1054         (.console-prompt):
1055         (.completion-suggestions):
1056         (.completion-suggestions-container > .item):
1057         (.CodeMirror-cursor):
1058         (.CodeMirror .CodeMirror-gutters):
1059         (.cm-s-default .cm-link):
1060         (.cm-s-default .cm-m-xml.cm-attribute,):
1061         (.cm-s-default .cm-meta):
1062         (.cm-s-default .cm-variable-3):
1063         (.cm-s-default .cm-builtin):
1064         (.tree-outline .item .subtitle):
1065         (.object-tree-property .getter,):
1066         (.item.object-tree-property.prototype-property):
1067         (.object-tree-property.prototype-property:hover,):
1068         (.object-tree-property .value.error):
1069         (.tree-outline.dom):
1070         (.tree-outline.dom li.selected + ol.children.expanded):
1071         (.tree-outline.dom .shadow):
1072         (.tree-outline.dom li.parent.shadow + ol.children.expanded,):
1073         (.showing-find-banner .tree-outline.dom .search-highlight):
1074         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):
1075         (.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
1076         (.spreadsheet-css-declaration.locked):
1077         (.spreadsheet-css-declaration .selector.style-attribute):
1078         (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
1079         (.inline-swatch):
1080         (.spreadsheet-style-panel .section-header):
1081         (.spreadsheet-style-panel .section-header .node-link:hover):
1082         (.computed-style-properties.details-section):
1083         (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):
1084         (.table,):
1085         (.table > .header > .sortable:active):
1086         (.table > .header > :matches(.sort-ascending, .sort-descending)):
1087         (.table > .header > :matches(.sort-ascending, .sort-descending)::after):
1088         (.scope-bar > li):
1089         (.timeline-overview > .navigation-bar.timelines):
1090         (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
1091         (.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):
1092         (.time-icon .icon):
1093         (.data-grid th:matches(.sort-ascending, .sort-descending)):
1094         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
1095         (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
1096         (.content-view.settings .navigation-bar):
1097         (.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
1098         (.new-tab.tab.content-view):
1099         (.filter-bar > input[type="search"]):
1100         (.filter-bar > input[type="search"]::placeholder):
1101         (.filter-bar > input[type="search"]:focus):
1102         (.content-view.resource.image):
1103         (.console-messages):
1104         (.console-item):
1105         (.console-messages:focus .console-item.selected):
1106         (.console-messages:focus .console-item.selected + .console-item):
1107         (.console-session:first-of-type .console-session-header):
1108         (.console-session:not(:first-of-type) .console-session-header):
1109         (.console-messages a):
1110         (.console-messages a:hover):
1111         (.console-messages:focus .console-item.selected::after):
1112         (.console-error-level):
1113         (.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
1114         (.console-warning-level):
1115         (.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
1116         (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted):
1117         (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):
1118         (.source-code.text-editor > .CodeMirror .error):
1119         (.source-code.text-editor > .CodeMirror .warning):
1120         (.source-code.text-editor > .CodeMirror .issue-widget):
1121         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
1122         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow):
1123         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
1124         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow):
1125         (.console-message .syntax-highlighted):
1126         (.console-warning-level .console-message-text):
1127         (.console-error-level .console-message-text):
1128         (.console-user-command > .console-message-text):
1129         (.console-message .repeat-count):
1130         (.call-frame .subtitle,):
1131         (.call-frame:hover .subtitle .source-link,):
1132         (.call-frame .separator):
1133         (.quick-console.showing-log):
1134         (.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)):
1135         (.network-resource-detail):
1136         (.network-resource-detail .item.close > .glyph):
1137         (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
1138         (.resource-headers .value):
1139         (.network-table .cell.domain > .lock):
1140         (.resource-sizes > .content .label):
1141         (.popover.waterfall-popover):
1142         (.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
1143         (.resource-timing-breakdown > table > tr > td.label,):
1144         (.resource-timing-breakdown > table hr):
1145         (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
1146         (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
1147         (.web-socket.content-view .data-grid table.data tr.revealed):
1148         (.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
1149         (.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):
1150         (.item.action:not(.initial-state)::before):
1151         (.tree-outline .item.action.visual:not(.selected, .invalid)):
1152         (.item.action:not(.initial-state) > .icon):
1153         (.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):
1154         (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon,):
1155         (.content-view.canvas > .preview > img,):
1156         (.content-view.canvas-overview):
1157         (.content-view.canvas-overview .content-view.canvas):
1158         (.content-view.canvas-overview .content-view.canvas.is-recording):
1159         (.content-view.canvas-overview .content-view.canvas.is-recording > header):
1160         (.content-view.canvas-overview .content-view.canvas > header > .titles > .title):
1161         (.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,):
1162         (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
1163         (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle):
1164         (.content-view.canvas:not(.tab)):
1165         (.content-view:not(.tab).recording):
1166         (.content-view:not(.tab).recording > header > .slider-container):
1167         (.content-view:not(.tab).recording > header > .slider-container > input[type=range]):
1168         (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):
1169         (.progress-view > .titles > .title):
1170         (.progress-view > .titles > .subtitle):
1171         (.indeterminate-progress-spinner):
1172         (.content-view.shader-program > .text-editor.shader):
1173         (.content-view.shader-program > .text-editor.shader > .type-title):
1174         (.item.shader-program .status > img):
1175         (.open-resource-dialog):
1176         (.open-resource-dialog > .field > input):
1177         (.open-resource-dialog > .field > input::placeholder):
1178         (.open-resource-dialog > .tree-outline .item.selected):
1179         (.open-resource-dialog > .field::before):
1180
1181 2018-06-09  Dan Bernstein  <mitz@apple.com>
1182
1183         [Xcode] Clean up and modernize some build setting definitions
1184         https://bugs.webkit.org/show_bug.cgi?id=186463
1185
1186         Reviewed by Sam Weinig.
1187
1188         * Configurations/Base.xcconfig: Removed definition for macOS 10.11.
1189         * Configurations/DebugRelease.xcconfig: Ditto.
1190         * Configurations/Version.xcconfig: Ditto.
1191
1192 2018-06-05  Matt Baker  <mattbaker@apple.com>
1193
1194         Web Inspector: Tab picker is briefly visible when TabBar initially shown
1195         https://bugs.webkit.org/show_bug.cgi?id=186317
1196
1197         Reviewed by Joseph Pecoraro.
1198
1199         * UserInterface/Views/TabBar.js:
1200         (WI.TabBar): Picker should be initially hidden.
1201
1202 2018-06-05  Nikita Vasilyev  <nvasilyev@apple.com>
1203
1204         Web Inspector: Text in "Add New Class" in auto-capitalizes
1205         https://bugs.webkit.org/show_bug.cgi?id=186311
1206
1207         Reviewed by Matt Baker.
1208
1209         Disable spellcheck to prevent auto-capitalization.
1210
1211         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
1212         (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
1213
1214 2018-06-04  Matt Baker  <mattbaker@apple.com>
1215
1216         Web Inspector: Cannot copy a link address in Elements tab
1217         https://bugs.webkit.org/show_bug.cgi?id=186281
1218         <rdar://problem/39193355>
1219
1220         Reviewed by Brian Burg.
1221
1222         * UserInterface/Views/ContextMenuUtilities.js:
1223         (WI.appendContextMenuItemsForURL):
1224
1225 2018-05-30  Daniel Bates  <dabates@apple.com>
1226
1227         Web Inspector: Annotate Same-Site cookies
1228         https://bugs.webkit.org/show_bug.cgi?id=184897
1229         <rdar://problem/35178209>
1230
1231         Reviewed by Brian Burg.
1232
1233         Add a new column for the value of the Same-Site cookie attribute to the resource cookie content
1234         view (shown for a resource under the Network tab) and cookie storage content view (shown under
1235         the Storage tab).
1236
1237         The SameSite column in the resource cookie content view reflects the parsing of the Same-Site
1238         attribute from the HTTP response by Web Inspector. This parsing is materially consistent with
1239         the parsing of the SameSite atttribute in CFNetwork. The Same-Site column in the cookie storage
1240         content view reflects the Same-Site cookie policy associated with the cookies provided by the
1241         network stack, if supported. This column will be blank on systems whose network stack does not
1242         support Same-Site cookies (e.g libsoup).
1243
1244         * Localizations/en.lproj/localizedStrings.js:
1245         * UserInterface/Controllers/HARBuilder.js:
1246         (WI.HARBuilder.cookies):
1247         * UserInterface/Models/Cookie.js:
1248         (WI.Cookie):
1249         (WI.Cookie.displayNameForSameSiteType):
1250         (WI.Cookie.parseSameSiteAttributeValue):
1251         (WI.Cookie.parseSetCookieResponseHeader):
1252         * UserInterface/Views/CookieStorageContentView.js:
1253         (WI.CookieStorageContentView.prototype._rebuildTable):
1254         (WI.CookieStorageContentView.prototype._sortDataGrid):
1255         * UserInterface/Views/ResourceCookiesContentView.js:
1256         (WI.ResourceCookiesContentView.prototype.tablePopulateCell):
1257         (WI.ResourceCookiesContentView.prototype._generateSortComparator):
1258         (WI.ResourceCookiesContentView.prototype._refreshResponseCookiesSection):
1259
1260 2018-05-25  Matt Baker  <mattbaker@apple.com>
1261
1262         Web Inspector: Popover dismissed while attempting to move cursor inside
1263         https://bugs.webkit.org/show_bug.cgi?id=185741
1264         <rdar://problem/40340938>
1265
1266         Reviewed by Joseph Pecoraro.
1267
1268         Hovering a token within the bounds of the current popover should not
1269         show a new popover. This prevents the popover from being dismissed when
1270         the cursor passes over a token under the transparent portion of the
1271         popover frame.
1272
1273         * UserInterface/Views/SourceCodeTextEditor.js:
1274         (WI.SourceCodeTextEditor.prototype._showPopover):
1275
1276 2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
1277
1278         Unreviewed, rolling out r232052.
1279
1280         Breaks internal builds.
1281
1282         Reverted changeset:
1283
1284         "Use more C++17"
1285         https://bugs.webkit.org/show_bug.cgi?id=185176
1286         https://trac.webkit.org/changeset/232052
1287
1288 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
1289
1290         Use more C++17
1291         https://bugs.webkit.org/show_bug.cgi?id=185176
1292
1293         Reviewed by JF Bastien.
1294
1295         * Configurations/Base.xcconfig:
1296
1297 2018-05-18  Devin Rousso  <webkit@devinrousso.com>
1298
1299         Web Inspector: Canvas: put `hasVisualEffect` behind an experimental setting
1300         https://bugs.webkit.org/show_bug.cgi?id=185758
1301
1302         Reviewed by Matt Baker.
1303
1304         * Localizations/en.lproj/localizedStrings.js:
1305
1306         * UserInterface/Base/Setting.js:
1307
1308         * UserInterface/Models/RecordingAction.js:
1309         (WI.RecordingAction.prototype.process):
1310
1311         * UserInterface/Views/RecordingActionTreeElement.js:
1312         (WI.RecordingActionTreeElement.prototype.onattach):
1313
1314         * UserInterface/Views/SettingsTabContentView.js:
1315         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1316
1317 2018-05-16  Devin Rousso  <webkit@devinrousso.com>
1318
1319         Web Inspector: create a navigation item for toggling the overlay rulers/guides
1320         https://bugs.webkit.org/show_bug.cgi?id=185644
1321
1322         Reviewed by Matt Baker.
1323
1324         * Localizations/en.lproj/localizedStrings.js:
1325         * UserInterface/Base/Setting.js:
1326         * UserInterface/Views/DOMTreeContentView.js:
1327         (WI.DOMTreeContentView):
1328         (WI.DOMTreeContentView.prototype.get navigationItems):
1329         (WI.DOMTreeContentView.prototype.closed):
1330         (WI.DOMTreeContentView.prototype._showRulersChanged): Added.
1331         (WI.DOMTreeContentView.prototype._toggleShowRulers): Added.
1332
1333 2018-05-14  Nikita Vasilyev  <nvasilyev@apple.com>
1334
1335         Web Inspector: Canvas: Remove unused --value-visual-highlight CSS variable
1336         https://bugs.webkit.org/show_bug.cgi?id=185636
1337
1338         Reviewed by Matt Baker.
1339
1340         * UserInterface/Views/Variables.css:
1341         (:root):
1342
1343 2018-05-14  Devin Rousso  <webkit@devinrousso.com>
1344
1345         Web Inspector: Canvas tab: don't automatically select a recording when viewing a canvas
1346         https://bugs.webkit.org/show_bug.cgi?id=182950
1347
1348         Reviewed by Matt Baker.
1349
1350         * UserInterface/Views/CanvasSidebarPanel.js:
1351         (WI.CanvasSidebarPanel):
1352         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
1353         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
1354         (WI.CanvasSidebarPanel.prototype._canvasChanged):
1355         (WI.CanvasSidebarPanel.prototype._recordingChanged):
1356         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
1357         Add a "dummy" ScopeBarItem to the recording ScopeBar that is selected whenever a TreeElement
1358         that doesn't correspond to a Recording is selected. This way, the Recording ScopeBar will
1359         become deselected, and the list of actions will disappear. Clicking on the Recording ScopeBar
1360         will show the previously selected Recording.
1361
1362 2018-05-08  Matt Baker  <mattbaker@apple.com>
1363
1364         Web Inspector: Console drawer resizing is broken when console prompt has >1 line of code
1365         https://bugs.webkit.org/show_bug.cgi?id=185369
1366         <rdar://problem/40013202>
1367
1368         Reviewed by Devin Rousso.
1369
1370         Mouse offset calculation should account for the height of the quick console.
1371         The only reason resizing worked with the single-line quick console is that
1372         the offset calculation included the resizer height, which is very close
1373         to that of the single-line quick console (27px and 30px respectively).
1374
1375         * UserInterface/Views/ConsoleDrawer.js:
1376
1377 2018-05-04  Devin Rousso  <webkit@devinrousso.com>
1378
1379         Web Inspector: simplify the WI.Collection interface
1380         https://bugs.webkit.org/show_bug.cgi?id=185187
1381
1382         Reviewed by Brian Burg.
1383
1384         * UserInterface/Models/Collection.js:
1385         (WI.Collection.prototype.get size): Added.
1386         (WI.Collection.prototype.has): Added.
1387         (WI.Collection.prototype.toJSON):
1388         (WI.Collection.prototype.[Symbol.iterator]): Added.
1389         (WI.Collection.prototype.get items): Deleted.
1390         (WI.Collection.prototype.toArray): Deleted.
1391
1392         * UserInterface/Controllers/CanvasManager.js:
1393         (WI.CanvasManager.prototype._removeCanvas):
1394         * UserInterface/Controllers/DOMDebuggerManager.js:
1395         (WebInspector.DOMDebuggerManager.prototype.get domBreakpoints):
1396         * UserInterface/Models/Frame.js:
1397         (WI.Frame.prototype.removeAllChildFrames):
1398         (WI.Frame.prototype.resourceForURL):
1399         (WI.Frame.prototype.removeAllResources):
1400         * UserInterface/Models/Script.js:
1401         (WI.Script):
1402         * UserInterface/Views/CanvasContentView.js:
1403         (WI.CanvasContentView.prototype.initialLayout):
1404         * UserInterface/Views/CanvasOverviewContentView.js:
1405         (WI.CanvasOverviewContentView.prototype._updateNavigationItems):
1406         * UserInterface/Views/CanvasSidebarPanel.js:
1407         (WI.CanvasSidebarPanel.prototype._recordingRemoved):
1408         (WI.CanvasSidebarPanel.prototype._canvasChanged):
1409         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
1410         * UserInterface/Views/CanvasTabContentView.js:
1411         (WI.CanvasTabContentView.prototype.attached):
1412         (WI.CanvasTabContentView.prototype._addCanvas):
1413         (WI.CanvasTabContentView.prototype._removeCanvas):
1414         * UserInterface/Views/CanvasTreeElement.js:
1415         (WI.CanvasTreeElement.prototype.onpopulate):
1416         * UserInterface/Views/CollectionContentView.js:
1417         (WI.CollectionContentView.prototype.initialLayout):
1418         (WI.CollectionContentView.prototype.attached):
1419         * UserInterface/Views/CookieStorageContentView.js:
1420         (WI.CookieStorageContentView.prototype._filterCookies):
1421         * UserInterface/Views/DebuggerSidebarPanel.js:
1422         (WI.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
1423         * UserInterface/Views/FolderizedTreeElement.js:
1424         (WI.FolderizedTreeElement.prototype.updateParentStatus):
1425         (WI.FolderizedTreeElement.prototype._shouldGroupIntoFolders):
1426         * UserInterface/Views/FrameTreeElement.js:
1427         (WI.FrameTreeElement.prototype.onpopulate):
1428         * UserInterface/Views/NavigationSidebarPanel.js:
1429         (WI.NavigationSidebarPanel.prototype.get contentTreeOutlines):
1430         * UserInterface/Views/NetworkTableContentView.js:
1431         (WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):
1432         * UserInterface/Views/OpenResourceDialog.js:
1433         (WI.OpenResourceDialog.prototype._addResourcesForFrame):
1434         (WI.OpenResourceDialog.prototype._addResourcesForTarget):
1435         * UserInterface/Views/TreeOutlineGroup.js:
1436         (WI.TreeOutlineGroup.prototype.get selectedTreeElement):
1437         (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
1438         * UserInterface/Views/WorkerTreeElement.js:
1439         (WI.WorkerTreeElement.prototype.onpopulate):
1440
1441 2018-05-04  Nikita Vasilyev  <nvasilyev@apple.com>
1442
1443         Web Inspector: Styles: Newly added unsupported properties sometimes don't have warnings
1444         https://bugs.webkit.org/show_bug.cgi?id=183097
1445         <rdar://problem/37843816>
1446
1447         Reviewed by Matt Baker.
1448
1449         Update status of properties warnings every time focus moves.
1450
1451         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1452         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
1453         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
1454         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
1455         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updatePropertiesStatus):
1456         * UserInterface/Views/SpreadsheetStyleProperty.js:
1457         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
1458
1459 2018-05-04  Devin Rousso  <webkit@devinrousso.com>
1460
1461         Web Inspector: Styles Redesign: ensure that tabbing through the last section wraps back to the first
1462         https://bugs.webkit.org/show_bug.cgi?id=181973
1463
1464         Reviewed by Matt Baker.
1465
1466         Unified delegate functions to start editing previous/next rules into a single function for
1467         simplicity.
1468
1469         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1470         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
1471
1472         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
1473         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector):
1474         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange):
1475         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingAdjacentRule):
1476         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationEditorStartEditingAdjacentRule): Deleted.
1477
1478         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
1479         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusFirstSection):
1480         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusLastSection):
1481         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionStartEditingAdjacentRule):
1482         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingNextRule): Deleted.
1483         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingPreviousRule): Deleted.
1484
1485         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
1486         (WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusLastPseudoClassCheckbox):
1487         (WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusFilterBar):
1488         (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
1489         (WI.GeneralStyleDetailsSidebarPanel.prototype._handleForcedPseudoClassCheckboxKeydown):
1490         (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
1491         (WI.GeneralStyleDetailsSidebarPanel.prototype._handleFilterBarInputFieldKeyDown):
1492
1493         Drive-by fix: provide tabbing support for the Computed styles panel.
1494
1495         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1496         (WI.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule):
1497         (WI.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule):
1498
1499         * UserInterface/Views/ComputedStyleDetailsPanel.js:
1500         (WI.ComputedStyleDetailsPanel.prototype.focusFirstSection):
1501         (WI.ComputedStyleDetailsPanel.prototype.focusLastSection):
1502         (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule):
1503
1504 2018-05-04  Devin Rousso  <webkit@devinrousso.com>
1505
1506         Web Inspector: Canvas tab: Determine isFunction by looking at the prototype
1507         https://bugs.webkit.org/show_bug.cgi?id=184990
1508
1509         Reviewed by Brian Burg.
1510
1511         * UserInterface/Models/RecordingAction.js:
1512         (WI.RecordingAction.isFunctionForType):
1513         (WI.RecordingAction._prototypeForType):
1514         (WI.RecordingAction.prototype.async.swizzle):
1515
1516 2018-05-01  Devin Rousso  <webkit@devinrousso.com>
1517
1518         Web Inspector: Canvas tab: determine hasVisibleEffect for all actions immediately after recording is added
1519         https://bugs.webkit.org/show_bug.cgi?id=182995
1520
1521         Reviewed by Matt Baker.
1522
1523         Previously, we'd swizzle the entirety of the `WI.Recording` in one, which would usually
1524         freeze the UI, especially for larger recordings. This patch uses `WI.YieldableTask` to split
1525         the work and allow the rest of the UI to still be usable while `WI.Recording` are processing.
1526         Additionally, since we no longer have to worry about hangs, we can do more work upfront,
1527         such as calculating `hasVisibleEffect` and the current state of 2D canvases.
1528
1529         These changes require that all uses of `WI.Recording` call `process()` before attempting to
1530         use any `frames`/`actions`/`initialState`, as they will have their original payload values
1531         and will have not been swizzled or applied.
1532
1533         * Localizations/en.lproj/localizedStrings.js:
1534
1535         * UserInterface/Models/Recording.js:
1536         (WI.Recording):
1537         (WI.Recording.prototype.process):
1538         (WI.Recording.prototype.createContext): Added.
1539         (WI.Recording.prototype.async yieldableTaskWillProcessItem): Added.
1540         (WI.Recording.prototype.async yieldableTaskDidFinish): Added.
1541
1542         * UserInterface/Models/RecordingAction.js:
1543         (WI.RecordingAction):
1544         (WI.RecordingAction.prototype.process): Added.
1545         (WI.RecordingAction.prototype.async swizzle): Added.
1546         (WI.RecordingAction.prototype.apply):
1547         (WI.RecordingAction.prototype.toJSON):
1548         (WI.RecordingAction.prototype.set state): Deleted.
1549         (WI.RecordingAction.prototype.swizzle): Deleted.
1550         (WI.RecordingAction.prototype.apply.getContent): Deleted.
1551         (WI.RecordingAction.prototype.async _swizzle): Deleted.
1552         * UserInterface/Models/RecordingInitialStateAction.js:
1553         (WI.RecordingInitialStateAction):
1554
1555         * UserInterface/Views/CanvasSidebarPanel.js:
1556         (WI.CanvasSidebarPanel):
1557         (WI.CanvasSidebarPanel.prototype.set action):
1558         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
1559         (WI.CanvasSidebarPanel.prototype._recordingChanged):
1560
1561         * UserInterface/Views/CanvasSidebarPanel.css:
1562         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .indeterminate-progress-spinner):
1563
1564         * UserInterface/Views/RecordingActionTreeElement.js:
1565         (WI.RecordingActionTreeElement):
1566         (WI.RecordingActionTreeElement.prototype.onattach):
1567         (WI.RecordingActionTreeElement.prototype._handleHasVisibleEffectChanged): Deleted.
1568
1569         * UserInterface/Views/RecordingContentView.js:
1570         (WI.RecordingContentView):
1571         (WI.RecordingContentView.prototype.get navigationItems):
1572         (WI.RecordingContentView.prototype.updateActionIndex):
1573         (WI.RecordingContentView.prototype.initialLayout):
1574         (WI.RecordingContentView.prototype._generateContentCanvas2D): Added.
1575         (WI.RecordingContentView.prototype._generateContentCanvasWebGL): Added.
1576         (WI.RecordingContentView.prototype._updateCanvasPath):
1577         (WI.RecordingContentView.prototype._updateProcessProgress): Added.
1578         (WI.RecordingContentView.prototype._handleRecordingProcessedActionSwizzle): Added.
1579         (WI.RecordingContentView.prototype._handleRecordingProcessedActionApply): Added.
1580         (WI.RecordingContentView.supportsCanvasPathDebugging): Deleted.
1581         (WI.RecordingContentView.prototype.async _generateContentCanvas2D): Deleted.
1582         (WI.RecordingContentView.prototype.async _generateContentCanvasWebGL): Deleted.
1583
1584         * UserInterface/Views/RecordingContentView.css:
1585         (.content-view:not(.tab).recording > .preview-container):
1586
1587         * UserInterface/Base/ImageUtilities.js:
1588         (WI.ImageUtilities.supportsCanvasPathDebugging):
1589
1590 2018-04-26  Jer Noble  <jer.noble@apple.com>
1591
1592         Unreviewed build fix; fix WebInspectorUI copy resources step after r231063.
1593
1594         * Configurations/Base.xcconfig:
1595
1596 2018-04-26  Jer Noble  <jer.noble@apple.com>
1597
1598         WK_COCOA_TOUCH all the things.
1599         https://bugs.webkit.org/show_bug.cgi?id=185006
1600
1601         Reviewed by Tim Horton.
1602
1603         * Configurations/WebInspectorUIFramework.xcconfig:
1604
1605 2018-04-21  Nikita Vasilyev  <nvasilyev@apple.com>
1606
1607         REGRESSION(r214076): Web Inspector: Timelines load and DOMContentLoaded markers aren't visible
1608         https://bugs.webkit.org/show_bug.cgi?id=184858
1609
1610         Reviewed by Brian Burg.
1611
1612         r214076 changed the color of all markers to light gray.
1613
1614         * UserInterface/Views/TimelineRuler.css:
1615         (.timeline-ruler > .markers > .marker):
1616         (body[dir=ltr] .timeline-ruler > .markers > .marker):
1617         (body[dir=rtl] .timeline-ruler > .markers > .marker):
1618         (.timeline-ruler > .markers > .marker.current-time):
1619         (.timeline-ruler > .markers > .marker.load-event):
1620         (.timeline-ruler > .markers > .marker.dom-content-event):
1621         (.timeline-ruler > .markers > .marker.timestamp):
1622         (body[dir=ltr] .timeline-ruler > .markers > .marker.current-time): Deleted.
1623         (body[dir=rtl] .timeline-ruler > .markers > .marker.current-time): Deleted.
1624
1625 2018-04-19  Chris Dumez  <cdumez@apple.com>
1626
1627         Rename JSDOMWindowProxy to JSWindowProxy
1628         https://bugs.webkit.org/show_bug.cgi?id=184797
1629
1630         Reviewed by Sam Weinig.
1631
1632         Rename JSDOMWindowProxy to JSWindowProxy for consistency with WindowProxy.
1633
1634         * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
1635         (HeapSnapshot.prototype._isNodeGlobalObject):
1636
1637 2018-04-19  David Kilzer  <ddkilzer@apple.com>
1638
1639         Enable Objective-C weak references
1640         <https://webkit.org/b/184789>
1641         <rdar://problem/39571716>
1642
1643         Reviewed by Dan Bernstein.
1644
1645         * Configurations/Base.xcconfig:
1646         (CLANG_ENABLE_OBJC_WEAK): Enable.
1647
1648 2018-04-16  Nikita Vasilyev  <nvasilyev@apple.com>
1649
1650         Web Inspector: Can't select and copy text from Network tab popover
1651         https://bugs.webkit.org/show_bug.cgi?id=184606
1652
1653         Reviewed by Matt Baker.
1654
1655         * UserInterface/Views/ResourceTimingBreakdownView.css:
1656         (.waterfall-popover .resource-timing-breakdown):
1657
1658 2018-04-12  Nikita Vasilyev  <nvasilyev@apple.com>
1659
1660         Web Inspector: Refactoring: move popover styles from JS to CSS
1661         https://bugs.webkit.org/show_bug.cgi?id=184558
1662
1663         Reviewed by Brian Burg.
1664
1665         Introduce several CSS variables to customize popover appearance in CSS
1666         and not JavaScript.
1667
1668         * UserInterface/Views/NetworkTableContentView.js:
1669         (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
1670         (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
1671         * UserInterface/Views/Popover.css:
1672         (.popover):
1673         * UserInterface/Views/Popover.js:
1674         (WI.Popover):
1675         (WI.Popover.prototype._drawBackground):
1676         Replace `var` with `let`.
1677
1678         (WI.Popover.prototype.get backgroundStyle): Deleted.
1679         (WI.Popover.prototype.set backgroundStyle): Deleted.
1680         * UserInterface/Views/ResourceTimingBreakdownView.css:
1681         (.popover.waterfall-popover):
1682         (.waterfall-popover-content .resource-timing-breakdown):
1683         (.waterfall-popover .resource-timing-breakdown): Deleted.
1684
1685         * UserInterface/Views/NetworkTableContentView.js:
1686         (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
1687         (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
1688         * UserInterface/Views/Popover.css:
1689         (.popover):
1690         * UserInterface/Views/Popover.js:
1691         (WI.Popover):
1692         (WI.Popover.prototype._drawBackground):
1693         * UserInterface/Views/ResourceTimingBreakdownView.css:
1694         (.popover.waterfall-popover):
1695         (.waterfall-popover-content .resource-timing-breakdown):
1696
1697 2018-04-07  Nikita Vasilyev  <nvasilyev@apple.com>
1698
1699         Web Inspector: Errors glyph doesn't fully change to blue when active
1700         https://bugs.webkit.org/show_bug.cgi?id=184389
1701
1702         Reviewed by Joseph Pecoraro.
1703
1704         The dot of the exclamation mark was always black.
1705
1706         * UserInterface/Images/Errors.svg:
1707
1708 2018-04-03  Aaron Chu  <aaron_chu@apple.com>
1709
1710         AX: Add Experimental setting for Accessibility Audit
1711         https://bugs.webkit.org/show_bug.cgi?id=183646
1712         <rdar://problem/38478583>
1713
1714         Reviewed by Brian Burg.
1715
1716         Added experimental feature flag for Accessibility Audit work.
1717
1718         * Localizations/en.lproj/localizedStrings.js:
1719         * UserInterface/Base/Setting.js:
1720         * UserInterface/Views/SettingsTabContentView.js:
1721         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1722
1723 2018-04-01  Matt Baker  <mattbaker@apple.com>
1724
1725         Web Inspector: Remove dead TabBrowser/TabContentView code
1726         https://bugs.webkit.org/show_bug.cgi?id=184104
1727
1728         Reviewed by Devin Rousso.
1729
1730         * UserInterface/Base/Main.js:
1731         (WI._tryToRestorePendingTabs):
1732         * UserInterface/Views/NewTabContentView.js:
1733         (WI.NewTabContentView.prototype.shown):
1734         (WI.NewTabContentView.prototype.hidden):
1735         * UserInterface/Views/TabBrowser.js:
1736         (WI.TabBrowser.prototype.addTabForContentView):
1737         (WI.TabBrowser.prototype.showTabForContentView):
1738         (WI.TabBrowser._tabBarItemRemoved):
1739         * UserInterface/Views/TabContentView.js:
1740         (WI.TabContentView.prototype.get parentTabBrowser): Deleted.
1741         (WI.TabContentView.prototype.set parentTabBrowser): Deleted.
1742
1743 2018-03-30  Devin Rousso  <webkit@devinrousso.com>
1744
1745         Web Inspector: tint all pixels drawn by shader program when hovering ShaderProgramTreeElement
1746         https://bugs.webkit.org/show_bug.cgi?id=175223
1747
1748         Reviewed by Matt Baker.
1749
1750         * UserInterface/Models/ShaderProgram.js:
1751         (WI.ShaderProgram):
1752         (WI.ShaderProgram.prototype.showHighlight):
1753         (WI.ShaderProgram.prototype.hideHighlight):
1754
1755         * UserInterface/Views/ShaderProgramTreeElement.js:
1756         (WI.ShaderProgramTreeElement.prototype.onattach):
1757         (WI.ShaderProgramTreeElement.prototype._handleMouseOver):
1758         (WI.ShaderProgramTreeElement.prototype._handleMouseOut):
1759         Whenever a ShaderProgramTreeElement is hovered, highlight the corresponding shader program
1760         by tinting the pixels it draws via a blend.
1761
1762 2018-03-27  Timothy Hatcher  <timothy@apple.com>
1763
1764         Web Inspector: Modernize some utility functions
1765         https://bugs.webkit.org/show_bug.cgi?id=184047
1766
1767         Reviewed by Matt Baker.
1768
1769         * UserInterface/Base/Utilities.js:
1770         (Node.prototype.enclosingNodeOrSelfWithClass): Use parentElement instead of parentNode, so we don't need to check for document.
1771         (Node.prototype.enclosingNodeOrSelfWithNodeNameInArray): Ditto. Also just toUpperCase input, since nodeName is already upper case.
1772         (String.prototype.escapeCharacters): Use Set and string iteration instead of indexOf and charAt.
1773
1774 2018-03-27  Nikita Vasilyev  <nvasilyev@apple.com>
1775
1776         Web Inspector: Command-Shift-left/right arrow keys should not switch tabs when focused on color picker text fields
1777         https://bugs.webkit.org/show_bug.cgi?id=184028
1778
1779         Reviewed by Timothy Hatcher.
1780
1781         * UserInterface/Views/EditingSupport.js:
1782         (WI.isEventTargetAnEditableField):
1783         Detect <input type="number"> as an editable text field.
1784
1785 2018-03-23  Nikita Vasilyev  <nvasilyev@apple.com>
1786
1787         Web Inspector: Styles: don't show checkboxes for invalid properties
1788         https://bugs.webkit.org/show_bug.cgi?id=183951
1789         <rdar://problem/38807602>
1790
1791         Reviewed by Matt Baker.
1792
1793         Since toggling of invalid properties isn't supported by the backend, don't show checkboxes for invalid properties.
1794
1795         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
1796         (.spreadsheet-css-declaration:matches(:hover, :focus) .property:not(:matches(.invalid-name, .invalid-value)) .property-toggle,):
1797         (.spreadsheet-css-declaration:matches(:hover, :focus) .property-toggle,): Deleted.
1798         Don't show checkboxes for invalid properties but still show them for duplicate properties.
1799
1800 2018-03-23  Brian Burg  <bburg@apple.com>
1801
1802         Web Inspector: add WebKitAdditions hooks for WebInspectorUI
1803         https://bugs.webkit.org/show_bug.cgi?id=183940
1804         <rdar://problem/38796310>
1805
1806         Reviewed by Timothy Hatcher.
1807
1808         * Scripts/combine-resources.pl:
1809         (debugLog): Added. Leave in the logging I used to debug this.
1810
1811         (concatenateIncludedFilesMatchingPattern):
1812         (stripIncludedFilesMatchingPattern):
1813         (concatenateFiles): Deleted.
1814         This function tried to do too many things. Split it into
1815         two functions, one for stripping includes and one for concatenating
1816         files referenced by includes.
1817
1818         Lastly, add a negative lookahead clause for 'WebKitAdditions' so includes
1819         containing that string are not combined when no input directory is passed
1820         to the script.
1821
1822         * Scripts/copy-user-interface-resources.pl:
1823         WebKitAdditions is computed either from BUILT_PRODUCTS_DIR or SDKROOT,
1824         depending on the build style. Just try them in order and use the first
1825         one that exists. WebInspectorUI files are in their own directory, so
1826         we can assume there are files to process if that directory exists.
1827
1828         Copy Main.html to derived sources before doing any processing on it.
1829         This makes all combining phases have the same --input-html argument.
1830
1831         (debugLog): Added. Leave in the logging I used to debug this.
1832
1833         (combineOrStripResourcesForWebKitAdditions):
1834         (stripResourcesForWebKitAdditions):
1835         (combineResourcesForWebKitAdditions):
1836         Determine if WebKitAdditions exists and whether there are any
1837         resources for WebInspectorUI present that need to be processed.
1838
1839         * UserInterface/Main.html:
1840         Add stub .js and .css WebKitAdditions files. We can add more later
1841         if it makes sense but this is good enough to validate the build machinery.
1842
1843 2018-03-23  Nikita Vasilyev  <nvasilyev@apple.com>
1844
1845         Web Inspector: Styles Redesign: flashing when switching between nodes
1846         https://bugs.webkit.org/show_bug.cgi?id=179291
1847         <rdar://problem/35352660>
1848
1849         Reviewed by Matt Baker.
1850
1851         Flashing was happening because the layout was a two-step process:
1852         1. Append empty sections.
1853         2. Layout everything inside of the section on requestAnimationFrame.
1854
1855         SpreadsheetRulesStyleDetailsPanel was converted to use layout method,
1856         so both steps happen on requestAnimationFrame.
1857
1858         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
1859         (WI.SpreadsheetRulesStyleDetailsPanel):
1860         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
1861         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
1862         The removed lines from the refresh method moved to the layout method without any changes.
1863
1864 2018-03-22  Nikita Vasilyev  <nvasilyev@apple.com>
1865
1866         Uncaught Exception: TypeError: this._textEditor.toggleUnexecutedCodeHighlights().then is not a function
1867         https://bugs.webkit.org/show_bug.cgi?id=181912
1868         <rdar://problem/36700022>
1869
1870         Reviewed by Matt Baker.
1871
1872         The uncaught exception was caused by returning `false` instead of a promise object.
1873         This patch only fixes the exception. Further enhancements should be done in <https://webkit.org/b/183887>.
1874
1875         * UserInterface/Views/SourceCodeTextEditor.js:
1876         (WI.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
1877         (WI.SourceCodeTextEditor.prototype.toggleUnexecutedCodeHighlights):
1878
1879 2018-03-20  Nikita Vasilyev  <nvasilyev@apple.com>
1880
1881         Web Inspector: Styles: Loses focus when editing a property while page is being loaded
1882         https://bugs.webkit.org/show_bug.cgi?id=182619
1883         <rdar://problem/37363185>
1884
1885         Reviewed by Matt Baker.
1886
1887         Adding or removing a stylesheet causes SpreadsheetRulesStyleDetailsPanel to refresh, triggering a layout
1888         of all SpreadsheetCSSStyleDeclarationSection child views. This resets the focus, selection, and
1889         auto-completion state.
1890
1891         This patch prevents SpreadsheetCSSStyleDeclarationSection from performing a layout when a property is being edited.
1892
1893         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1894         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
1895         Allow re-layout after creating a blank CSS property and pasting CSS code.
1896         - _pendingAddBlankPropertyIndexOffset is a number after pasting CSS rules.
1897         - _propertyPendingStartEditing is a property model after creating a new property.
1898
1899 2018-03-20  Devin Rousso  <webkit@devinrousso.com>
1900
1901         Web Inspector: Session dividers are not added when Console tab is not visible
1902         https://bugs.webkit.org/show_bug.cgi?id=168622
1903
1904         Reviewed by Matt Baker.
1905
1906         Restructure `_pendingMessages` to be a `Map [ConsoleSession, ConsoleMessageView]`. Instead
1907         of rendering to the `_currentConsoleGroup`, we now render to the saved `ConsoleSession`.
1908         Also ensure that `_pendingMessages` is cleared when navigating and "Preserve Log" is off.
1909
1910         * UserInterface/Controllers/JavaScriptLogViewController.js:
1911         (WI.JavaScriptLogViewController):
1912         (WI.JavaScriptLogViewController.prototype.startNewSession):
1913         (WI.JavaScriptLogViewController.prototype.consolePromptHistoryDidChange):
1914         (WI.JavaScriptLogViewController.prototype._appendConsoleMessageView):
1915         (WI.JavaScriptLogViewController.prototype.renderPendingMessages):
1916         (WI.JavaScriptLogViewController.prototype.get prompt): Deleted.
1917         (WI.JavaScriptLogViewController.prototype.get currentConsoleGroup): Deleted.
1918
1919 2018-03-20  Nikita Vasilyev  <nvasilyev@apple.com>
1920
1921         Web Inspector: Can't add a new class by editing class attribute in DOM outline
1922         https://bugs.webkit.org/show_bug.cgi?id=180890
1923
1924         Reviewed by Ryosuke Niwa.
1925
1926         Typing "my-foo my-bar" creates a single "my-foo\xA0my-bar" class name because
1927         contentEditable-based attribute editor sometimes inserts non-breaking space characters (\xA0).
1928
1929         Replace all non-breaking space characters with the regular space characters when
1930         commiting attribute change.
1931
1932         * UserInterface/Views/DOMTreeElement.js:
1933
1934 2018-03-16  Nikita Vasilyev  <nvasilyev@apple.com>
1935
1936         Web Inspector: Elements: "Force Print Media Styles" should not persist across Web Inspector sessions
1937         https://bugs.webkit.org/show_bug.cgi?id=183708
1938         <rdar://problem/36452183>
1939
1940         Reviewed by Matt Baker.
1941
1942         * UserInterface/Base/Main.js:
1943         (WI.loaded):
1944         * UserInterface/Views/DOMTreeContentView.js:
1945         (WI.DOMTreeContentView):
1946         (WI.DOMTreeContentView.prototype._showPrintStylesChanged):
1947         (WI.DOMTreeContentView.prototype._togglePrintStyles):
1948         (WI.DOMTreeContentView.prototype._showPrintStylesSettingChanged): Deleted.
1949         (WI.DOMTreeContentView.prototype._togglePrintStylesSetting): Deleted.
1950
1951 2018-03-14  Devin Rousso  <webkit@devinrousso.com>
1952
1953         Web Inspector: Canvas: a recording initiated by the user should be shown immediately on completion
1954         https://bugs.webkit.org/show_bug.cgi?id=183647
1955         <rdar://problem/38479187>
1956
1957         Reviewed by Matt Baker.
1958
1959         When recordings are initiated via `console.record`, we don't want to automatically show the
1960         recording after it's payload is sent to the frontend. We determine whether a recording came
1961         from the console by comparing the recording's associated canvas with the current value of
1962         `_recordingCanvas`. Previously, when stopping a recording, we would always null the value,
1963         which meant that all non-single-frame recordings (single-frame recordings are stopped by
1964         the agent after the first paint or tick after an action is performed) would be categorized
1965         as coming from the console, since `_recordingCanvas` would be null by the time the frontend
1966         recieved the payload.
1967
1968         This patch changes it so that the nulling of `_recordingCanvas` in `stopRecording` is only
1969         done if the agent command errors. It was already the case that `_recordingCanvas` was nulled
1970         in `stopRecording`, so this patch just prevents it from being nulled too early.
1971
1972         * UserInterface/Controllers/CanvasManager.js:
1973         (WI.CanvasManager.prototype.stopRecording):
1974
1975 2018-03-12  Jon Davis  <jond@apple.com>
1976
1977         Web Inspector: Remove redundant tooltips
1978         https://bugs.webkit.org/show_bug.cgi?id=183099
1979
1980         Reviewed by Matt Baker.
1981
1982         * Localizations/en.lproj/localizedStrings.js:
1983         * UserInterface/Base/Main.js:
1984         (WI.contentLoaded):
1985         Instantiate ConsoleDrawer so the keyboard shortcuts for FindBanner are available.
1986
1987         * UserInterface/Views/BreakpointTreeElement.js:
1988         (WI.BreakpointTreeElement):
1989         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
1990
1991         * UserInterface/Views/ButtonNavigationItem.js:
1992         (WI.ButtonNavigationItem):
1993         Only show tooltips when the button style is an image.
1994
1995         * UserInterface/Views/ConsoleDrawer.js:
1996         (WI.ConsoleDrawer):
1997         (WI.ConsoleDrawer.prototype.toggleButtonShortcutTooltip):
1998         Added helper to set the toggle button keyboard shortcut tooltip.
1999
2000         * UserInterface/Views/DOMBreakpointTreeElement.js:
2001         (WI.DOMBreakpointTreeElement):
2002         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2003
2004         * UserInterface/Views/DOMNodeTreeElement.js:
2005         (WI.DOMNodeTreeElement):
2006         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2007
2008         * UserInterface/Views/FindBanner.js:
2009         (WI.FindBanner):
2010         * UserInterface/Views/HierarchicalPathComponent.js:
2011         (WI.HierarchicalPathComponent):
2012         (WI.HierarchicalPathComponent.prototype.get tooltip):
2013         (WI.HierarchicalPathComponent.prototype.set tooltip):
2014         (WI.HierarchicalPathComponent.prototype.get hideTooltip):
2015         (WI.HierarchicalPathComponent.prototype.set hideTooltip):
2016         (WI.HierarchicalPathComponent.prototype._updateElementTitleAndText):
2017         Add tooltip management features to manage tooltips separately of the displayName,
2018         and provide a behavior to hide tooltips while retaining the tooltip data.
2019
2020         * UserInterface/Views/HierarchicalPathNavigationItem.js:
2021         (WI.HierarchicalPathNavigationItem.prototype.updateLayout):
2022         Hide tooltips when fully visible, show tooltips for collapsed items.
2023
2024         * UserInterface/Views/PinnedTabBarItem.js:
2025         (WI.PinnedTabBarItem.prototype.titleDidChange):
2026         Set tooltips for pinned tab bar items.
2027
2028         * UserInterface/Views/QuickConsole.js:
2029         (WI.QuickConsole):
2030         Set the ConsoleDrawer toggle button tooltip after the keyboard shortcut is registered.
2031
2032         * UserInterface/Views/StorageTreeElement.js:
2033         (WI.StorageTreeElement):
2034         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2035
2036         * UserInterface/Views/TabBarItem.js:
2037         (WI.TabBarItem.prototype.get title):
2038         (WI.TabBarItem.prototype.set title):
2039         (WI.TabBarItem.prototype.titleDidChange):
2040         (WI.TabBarItem):
2041         Add title property management with an overridable titleDidChange handler for
2042         setting tooltips when needed.
2043
2044         * UserInterface/Views/TimelineTreeElement.js:
2045         (WI.TimelineTreeElement):
2046         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2047
2048         * UserInterface/Views/ToggleButtonNavigationItem.js:
2049         (WI.ToggleButtonNavigationItem.prototype.set defaultToolTip):
2050         Added a setter for manging the default tooltip of a toggle button.
2051
2052         * UserInterface/Views/XHRBreakpointTreeElement.js:
2053         (WI.XHRBreakpointTreeElement):
2054         Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
2055
2056 2018-03-09  Nikita Vasilyev  <nvasilyev@apple.com>
2057
2058         Web Inspector: Sources: Open all resources in Sources tab instead of Resources/Debugger
2059         https://bugs.webkit.org/show_bug.cgi?id=183317
2060         <rdar://problem/38108455>
2061
2062         Reviewed by Matt Baker.
2063
2064         * Localizations/en.lproj/localizedStrings.js:
2065         * UserInterface/Base/Main.js:
2066         * UserInterface/Views/ContextMenuUtilities.js:
2067         (WI.appendContextMenuItemsForURL):
2068         Introduce preferredTabType option instead of listing ignoreResourcesTab, ignoreDebuggerTab, ignoreSearchTab, and ignoreNetworkTab.
2069         The only correct outcome of selecting "Reveal in Sources Tab" context menu is to open Sources tab, not any other tab.
2070
2071         * UserInterface/Views/SourceCodeTextEditor.js:
2072         (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
2073         * UserInterface/Views/TabBrowser.js:
2074         (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
2075
2076 2018-03-08  Nikita Vasilyev  <nvasilyev@apple.com>
2077
2078         Web Inspector: Sources: add SourcesTabContentView and SourceSidebarPanel classes
2079         https://bugs.webkit.org/show_bug.cgi?id=183316
2080         <rdar://problem/38107639>
2081
2082         Reviewed by Matt Baker.
2083
2084         Add Sources tab and sidebar panel, which are copies of the corresponding Resources classes.
2085         The Sources tab is shown when it's enabled in the experimental settings. This patch doesn't
2086         remove existing Resources and Debugger tabs.
2087
2088         * UserInterface/Base/Main.js:
2089         (WI.contentLoaded):
2090         * UserInterface/Main.html:
2091         * UserInterface/Views/SourcesSidebarPanel.css: Added.
2092         (.sidebar > .panel.navigation.sources > .content):
2093         (.sidebar > .panel.navigation.sources > .navigation-bar):
2094         * UserInterface/Views/SourcesSidebarPanel.js: Added.
2095         (WI.SourcesSidebarPanel):
2096         (WI.SourcesSidebarPanel.shouldPlaceResourcesAtTopLevel):
2097         (WI.SourcesSidebarPanel.prototype.get minimumWidth):
2098         (WI.SourcesSidebarPanel.prototype.closed):
2099         (WI.SourcesSidebarPanel.prototype.showDefaultContentView):
2100         (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.isAncestor):
2101         (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.getParent):
2102         (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject):
2103         (WI.SourcesSidebarPanel.prototype.initialLayout):
2104         (WI.SourcesSidebarPanel.prototype.hasCustomFilters):
2105         (WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
2106         (WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
2107         (WI.SourcesSidebarPanel.prototype._mainResourceDidChange):
2108         (WI.SourcesSidebarPanel.prototype._mainFrameDidChange):
2109         (WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
2110         (WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange):
2111         (WI.SourcesSidebarPanel.prototype._scriptWasAdded):
2112         (WI.SourcesSidebarPanel.prototype._addScript):
2113         (WI.SourcesSidebarPanel.prototype._scriptWasRemoved):
2114         (WI.SourcesSidebarPanel.prototype._scriptsCleared):
2115         (WI.SourcesSidebarPanel.prototype._styleSheetAdded):
2116         (WI.SourcesSidebarPanel.prototype._addTargetWithMainResource):
2117         (WI.SourcesSidebarPanel.prototype._targetRemoved):
2118         (WI.SourcesSidebarPanel.prototype._treeSelectionDidChange):
2119         (WI.SourcesSidebarPanel.prototype._compareTreeElements):
2120         (WI.SourcesSidebarPanel.prototype._extraDomainsActivated):
2121         (WI.SourcesSidebarPanel.prototype._scopeBarSelectionDidChange):
2122         * UserInterface/Views/SourcesTabContentView.js: Added.
2123         (WI.SourcesTabContentView):
2124         (WI.SourcesTabContentView.tabInfo):
2125         (WI.SourcesTabContentView.isTabAllowed):
2126         (WI.SourcesTabContentView.prototype.get type):
2127         (WI.SourcesTabContentView.prototype.get supportsSplitContentBrowser):
2128         (WI.SourcesTabContentView.prototype.canShowRepresentedObject):
2129
2130 2018-03-07  Devin Rousso  <webkit@devinrousso.com>
2131
2132         Web Inspector: Canvas tab: ensure that the Recording TreeOutline has a specified height for virtualization
2133         https://bugs.webkit.org/show_bug.cgi?id=183015
2134
2135         Reviewed by Matt Baker.
2136
2137         * UserInterface/Views/CanvasSidebarPanel.js:
2138         (WI.CanvasSidebarPanel):
2139
2140         * UserInterface/Views/CanvasSidebarPanel.css:
2141         (.sidebar > .panel.navigation.canvas > .content):
2142         (.sidebar > .panel.navigation.canvas > .content > .navigation-bar):
2143         (.sidebar > .panel.navigation.canvas.has-recordings > .content > .recording-content):
2144         (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
2145         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .navigation-bar): Deleted.
2146         (.sidebar > .panel.navigation.canvas.has-recordings > .content > .tree-outline.canvas): Deleted.
2147
2148         * UserInterface/Views/TreeElement.js:
2149         (WI.TreeElement.prototype._detach):
2150
2151 2018-02-26  Devin Rousso  <webkit@devinrousso.com>
2152
2153         Web Inspector: Canvas Tab: Scroll into view / Inspect element if Canvas has DOM node
2154         https://bugs.webkit.org/show_bug.cgi?id=181769
2155
2156         Reviewed by Matt Baker.
2157
2158         * Localizations/en.lproj/localizedStrings.js:
2159
2160         * UserInterface/Images/Markup.svg: Added.
2161
2162         * UserInterface/Views/CanvasContentView.js:
2163         (WI.CanvasContentView):
2164         (WI.CanvasContentView.prototype.initialLayout):
2165         (WI.CanvasContentView.prototype._canvasElementButtonClicked):
2166
2167 2018-02-19  Matt Baker  <mattbaker@apple.com>
2168
2169         Web Inspector: Canvas tab: hide navigation sidebar when viewing the overview
2170         https://bugs.webkit.org/show_bug.cgi?id=182597
2171         <rdar://problem/37341564>
2172
2173         Reviewed by Devin Rousso.
2174
2175         Support showing/hiding the navigation sidebar panel based on the current
2176         represented object. Individual TabContentViews can opt-in to this behavior,
2177         by overriding TabContentView.prototype.managesNavigationSidebarPanel.
2178
2179         * UserInterface/Views/CanvasSidebarPanel.js:
2180         (WI.CanvasSidebarPanel.prototype.canShowRepresentedObject):
2181         * UserInterface/Views/CanvasTabContentView.js:
2182         (WI.CanvasTabContentView.prototype.get managesNavigationSidebarPanel):
2183         Hide the Canvas navigation sidebar when viewing the overview.
2184
2185         * UserInterface/Views/ContentBrowserTabContentView.js:
2186         (WI.ContentBrowserTabContentView):
2187         (WI.ContentBrowserTabContentView.prototype.showNavigationSidebarPanel):
2188         (WI.ContentBrowserTabContentView.prototype._navigationSidebarCollapsedStateDidChange):
2189         (WI.ContentBrowserTabContentView.prototype._contentBrowserCurrentRepresentedObjectsDidChange):
2190
2191         * UserInterface/Views/NavigationSidebarPanel.js:
2192         (WI.NavigationSidebarPanel.prototype.canShowRepresentedObject):
2193         Provide default implementation that just defers to the TabContentView.
2194         This exists so that a NavigationSidebarPanel that implements canShowRepresentedObject
2195         will have a meaningful default to fall back on.
2196
2197         * UserInterface/Views/TabBrowser.js:
2198         (WI.TabBrowser.prototype._sidebarCollapsedStateDidChange):
2199         (WI.TabBrowser.prototype._showNavigationSidebarPanelForTabContentView):
2200
2201         * UserInterface/Views/TabContentView.js:
2202         (WI.TabContentView.prototype.get managesNavigationSidebarPanel):
2203
2204 2018-02-16  Matt Baker  <mattbaker@apple.com>
2205
2206         Web Inspector: TabBar redesign: remove top-level search field and pin the Search tab
2207         https://bugs.webkit.org/show_bug.cgi?id=182353
2208         <rdar://problem/37088644>
2209
2210         Reviewed by Devin Rousso.
2211
2212         * Localizations/en.lproj/localizedStrings.js:
2213
2214         * UserInterface/Base/Main.js:
2215         (WI.contentLoaded):
2216         Create Search UI based on experimental setting. When the new TabBar is
2217         enabled, the Search tab is a pinned tab. Since it is also saveable, it
2218         needs to be added to the TabBrowser (the browser adds the item to the bar).
2219
2220         When restoring saved tabs, make an additional check to prevent a tab
2221         from being added twice. This can occur now that the Search tab is pinned.
2222
2223         * UserInterface/Images/Search.svg:
2224         Update art to better match Safari/macOS. Slightly increase the radius of
2225         the lens, and shorten the length of the handle.
2226
2227         * UserInterface/Views/GoToLineDialog.css:
2228         (.go-to-line-dialog > div::before):
2229         Update styles for new Search icon.
2230
2231         * UserInterface/Views/LegacyTabBar.js:
2232         (WI.LegacyTabBar.prototype.get saveableTabCount):
2233         Backported new TabBar method which is called by TabBrowser.
2234
2235         * UserInterface/Views/OpenResourceDialog.css:
2236         (.open-resource-dialog > .field::before):
2237         Update styles for new Search icon.
2238
2239         * UserInterface/Views/PinnedTabBarItem.js:
2240         (WI.PinnedTabBarItem.prototype.fromTabInfo):
2241         Match GeneralTabBarItem.fromTabInfo.
2242
2243         * UserInterface/Views/SearchTabContentView.js:
2244         (WI.SearchTabContentView):
2245         (WI.SearchTabContentView.tabInfo):
2246         New image (magnifying glass without border) when new TabBar is enabled.
2247
2248         * UserInterface/Views/SettingsTabContentView.js:
2249         (WI.SettingsTabContentView):
2250
2251         * UserInterface/Views/TabBar.js:
2252         (WI.TabBar):
2253         Move creation of the Settings item out of TabBar. The TabBar should
2254         only be concerned with managing tabs.
2255
2256         (WI.TabBar.prototype.get saveableTabCount):
2257         (WI.TabBar.prototype._handleContextMenu):
2258         (WI.TabBar.prototype.get normalNonEphemeralTabCount): Deleted.
2259         Now that the Search tab is pinned, there aren't any normal tabs that
2260         are also ephemeral. For the LegacyTabBar, both the Search and New Tab
2261         tabs are still in this category.
2262
2263         * UserInterface/Views/TabBrowser.js:
2264         (WI.TabBrowser.prototype.addTabForContentView):
2265         (WI.TabBrowser.prototype.closeTabForContentView):
2266         (WI.TabBrowser.prototype._tabBarItemSelected):
2267         (WI.TabBrowser._tabBarItemRemoved):
2268         Recent tab list should be validated against the list of saveable tabs,
2269         since the Search tab is no longer a normal tab (a GeneralTabBarItem),
2270         but is still persisted across Inspector sessions.
2271
2272 2018-02-16  Matt Baker  <mattbaker@apple.com>
2273
2274         Web Inspector: TabBar redesign: TabBarItem close button is incorrectly positioned
2275         https://bugs.webkit.org/show_bug.cgi?id=182844
2276         <rdar://problem/37586749>
2277
2278         Reviewed by Timothy Hatcher.
2279
2280         * UserInterface/Views/GeneralTabBarItem.js:
2281         (WI.GeneralTabBarItem.prototype.set title):
2282         Insert the title before the last flexible space item.
2283
2284         * UserInterface/Views/TabBar.css:
2285         (.tab-bar > .item):
2286         (.tab-bar > .item > .close):
2287         (.tab-bar > .item > .flex-space):
2288         (.tab-bar > .item.ephemeral > .flex-space:last-child):
2289         (.tab-bar.collapsed > .item):
2290         (.tab-bar.collapsed > .item > .flex-space):
2291         (.tab-bar.collapsed > .item > .close):
2292         (.tab-bar.collapsed > .item:hover > .close):
2293         (.tab-bar.collapsed > .item.ephemeral:hover > .icon):
2294         (.tab-bar > .item:hover > .close): Deleted.
2295         (.tab-bar:not(.collapsed) > .item.ephemeral:hover > .icon): Deleted.
2296
2297         * UserInterface/Views/TabBarItem.js:
2298         (WI.TabBarItem):
2299         Restore flexible space items before and after the icon.
2300
2301 2018-02-14  Nikita Vasilyev  <nvasilyev@apple.com>
2302
2303         Web Inspector: Styles: completion popover doesn't hide when switching panels
2304         https://bugs.webkit.org/show_bug.cgi?id=182464
2305         <rdar://problem/37202763>
2306
2307         Reviewed by Timothy Hatcher.
2308
2309         Save the position of the anchor, an element the popover is shown for, and hide the completion popover
2310         when the position changes.
2311
2312         * UserInterface/Views/CompletionSuggestionsView.js:
2313         (WI.CompletionSuggestionsView.prototype.showUntilAnchorMoves):
2314         When the popover is visible, check every 200ms if the anchor moved.
2315
2316         (WI.CompletionSuggestionsView.prototype.hide):
2317         * UserInterface/Views/SpreadsheetTextField.js:
2318         (WI.SpreadsheetTextField.prototype._updateCompletions):
2319         (WI.SpreadsheetTextField.prototype._getCaretRect):
2320         getBoundingClientRect returns {x: 0, y: 0} when it can't determine node's position.
2321         This happens when a node isn't attached to DOM, attached to DOM but not visible, and
2322         a number of odd cases.
2323
2324 2018-02-14  Matt Baker  <mattbaker@apple.com>
2325
2326         Web Inspector: TabBar redesign: only show allowed tabs in the available tabs context menu
2327         https://bugs.webkit.org/show_bug.cgi?id=182721
2328         <rdar://problem/37479019>
2329
2330         Reviewed by Timothy Hatcher.
2331
2332         In addition to only including allowed tabs in the TabBar context menu,
2333         perform a sanity check when setting the selected tab item, since the
2334         serialized selection index could refer to a tab that is no longer allowed.
2335
2336         * UserInterface/Views/LegacyTabBar.js:
2337         (WI.LegacyTabBar.prototype.set selectedTabBarItem):
2338         (WI.LegacyTabBar.prototype._handleContextMenu):
2339
2340         * UserInterface/Views/TabBar.js:
2341         (WI.TabBar.prototype.set selectedTabBarItem):
2342         (WI.TabBar.prototype._handleContextMenu):
2343
2344 2018-02-09  Matt Baker  <mattbaker@apple.com>
2345
2346         Web Inspector: Canvas tab: tree selection abruptly changes when selecting a recording frame
2347         https://bugs.webkit.org/show_bug.cgi?id=182667
2348         <rdar://problem/37412639>
2349
2350         Reviewed by Devin Rousso.
2351
2352         * UserInterface/Views/CanvasSidebarPanel.css:
2353         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .navigation-bar):
2354         (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
2355         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.recording > .icon):
2356         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .icon):
2357         (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .status):
2358         (.sidebar > .panel.navigation.canvas > .content > .navigation-bar): Deleted.
2359         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.recording > .icon): Deleted.
2360         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .icon): Deleted.
2361         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .status): Deleted.
2362         Style changes for the additional DOM element required to virtualize the recording tree outline.
2363
2364         * UserInterface/Views/CanvasSidebarPanel.js:
2365         (WI.CanvasSidebarPanel):
2366         In order to be virtualized, the tree must be the only child of its parent.
2367
2368         (WI.CanvasSidebarPanel.prototype.set action):
2369         Ensure that a frame tree element isn't deselected when the last action
2370         in the frame becomes selected in the RecordingContentView.
2371
2372         (WI.CanvasSidebarPanel.prototype.shown):
2373         Refresh the sidebar, as represented objects may have changed while hidden.
2374
2375         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
2376         Unset the recording when no valid represented objects are found, to
2377         prevent a stale recording tree from being shown when viewing the overview.
2378
2379         (WI.CanvasSidebarPanel.prototype._canvasChanged):
2380         (WI.CanvasSidebarPanel.prototype._recordingChanged):
2381         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
2382         Moved toggling of the "has-recordings" style to _canvasChanged, since
2383         the navigation bar should be hidden when no canvas exists.
2384
2385         * UserInterface/Views/CollectionContentView.js:
2386         (WI.CollectionContentView.prototype.addContentViewForItem):
2387         (WI.CollectionContentView.prototype.removeContentViewForItem):
2388         Drive by fixes for child view visible state.
2389
2390         * UserInterface/Views/TreeOutline.css:
2391         (.tree-outline:not(.large):matches(:focus, .force-focus) .item.selected .status .indeterminate-progress-spinner):
2392         Make spinner easier to see against the selection background color.
2393
2394 2018-02-09  Matt Baker  <mattbaker@apple.com>
2395
2396         Web Inspector: Object.shallowEqual always fails when comparing array property values
2397         https://bugs.webkit.org/show_bug.cgi?id=182634
2398         <rdar://problem/37374639>
2399
2400         Reviewed by Devin Rousso.
2401
2402         Object.shallowEqual should use Array.shallowEqual when comparing property
2403         values, since strictly comparing objects/arrays is only true if both
2404         operands reference the same Object.
2405
2406         * UserInterface/Base/Utilities.js:
2407         (value):
2408
2409 2018-02-08  Matt Baker  <mattbaker@apple.com>
2410
2411         Web Inspector: add listing of Canvases/Programs/Recordings to the NavigationSidebar
2412         https://bugs.webkit.org/show_bug.cgi?id=178744
2413         <rdar://problem/35374379>
2414
2415         Reviewed by Devin Rousso.
2416
2417         * Localizations/en.lproj/localizedStrings.js:
2418
2419         * UserInterface/Images/Canvas2D.svg:
2420         * UserInterface/Images/Canvas3D.svg:
2421         * UserInterface/Images/Recording.svg:
2422         Update canvas icons to be monochrome. Simplified the recording icon.
2423
2424         * UserInterface/Main.html:
2425
2426         * UserInterface/Models/RecordingAction.js:
2427         (WI.RecordingAction.prototype.get state):
2428         (WI.RecordingAction.prototype.set state):
2429         Allow (2D) snapshot state to be associated with the action. Used by
2430         RecordingActionDetailsSidebarPanel to retrieve the snapshot state.
2431
2432         * UserInterface/Views/CanvasContentView.css:
2433         (.content-view.canvas:not(.tab)):
2434         (.content-view.canvas:not(.tab) > .progress): Deleted.
2435         (.content-view.canvas:not(.tab) > .progress > .frame-count): Deleted.
2436
2437         * UserInterface/Views/CanvasContentView.js:
2438         (WI.CanvasContentView):
2439         (WI.CanvasContentView.prototype.get navigationItems):
2440         (WI.CanvasContentView.prototype.layout):
2441         (WI.CanvasContentView.prototype.shown):
2442         (WI.CanvasContentView.prototype._recordingStarted):
2443         (WI.CanvasContentView.prototype._recordingProgress):
2444         (WI.CanvasContentView.prototype._recordingStopped):
2445         (WI.CanvasContentView.prototype._updateRecordNavigationItem):
2446         (WI.CanvasContentView.prototype._updateProgressView):
2447         Replace progress UI with a reusable ProgressView class.
2448         When in the overview, clicking the CanvasContentView shows a dedicated
2449         CanvasContentView for inspecting shaders and recordings. This behavior
2450         is controlled by CollectionContentView, so we need to prevent it when
2451         clicking inside the header and footer elements, which contain clickable UI.
2452
2453         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2454         (WI.CanvasDetailsSidebarPanel.prototype.inspect):
2455
2456         * UserInterface/Views/CanvasOverviewContentView.css:
2457         (.content-view.canvas-overview .content-view.canvas):
2458         (.content-view.canvas-overview .content-view.canvas.is-recording):
2459         (.content-view.canvas-overview .content-view.canvas > :matches(header, footer)):
2460         (.content-view.canvas-overview .content-view.canvas > header):
2461         (.content-view.canvas-overview .content-view.canvas.is-recording > header):
2462         (.content-view.canvas-overview .content-view.canvas > header > .navigation-bar):
2463         (.content-view.canvas-overview .content-view.canvas:matches(:hover, .is-recording) > header > .navigation-bar):
2464         (.content-view.canvas-overview .content-view.canvas.is-recording > .progress-view,):
2465         (.content-view.canvas-overview .content-view.canvas.is-recording > .preview):
2466         (.content-view.canvas-overview .content-view.canvas > :matches(header, .progress, .preview, footer)): Deleted.
2467         (.content-view.canvas-overview .content-view.canvas.selected > :matches(.progress, .preview, footer),): Deleted.
2468         (.content-view.canvas-overview .content-view.canvas:not(:hover, .is-recording, .selected) > header > .navigation-bar): Deleted.
2469         (.content-view.canvas-overview .content-view.canvas > :matches(.progress, .preview)): Deleted.
2470         (.content-view.canvas-overview .content-view.canvas > .preview): Deleted.
2471         (.content-view.canvas-overview .content-view.canvas > .progress ~ .preview): Deleted.
2472         Clean up styles, and remove selection styles as canvases are no longer selectable in the overview.
2473
2474         * UserInterface/Views/CanvasOverviewContentView.js:
2475         (WI.CanvasOverviewContentView):
2476         (WI.CanvasOverviewContentView.prototype.get navigationItems):
2477         (WI.CanvasOverviewContentView.prototype.attached):
2478         (WI.CanvasOverviewContentView.prototype.detached):
2479         (WI.CanvasOverviewContentView.prototype.get selectionPathComponents): Deleted.
2480         (WI.CanvasOverviewContentView.prototype._changeSelectedItemVertically): Deleted.
2481         (WI.CanvasOverviewContentView.prototype._changeSelectedItemHorizontally): Deleted.
2482         (WI.CanvasOverviewContentView.prototype._selectionPathComponentsChanged): Deleted.
2483         (WI.CanvasOverviewContentView.prototype._handleUp): Deleted.
2484         (WI.CanvasOverviewContentView.prototype._handleRight): Deleted.
2485         (WI.CanvasOverviewContentView.prototype._handleDown): Deleted.
2486         (WI.CanvasOverviewContentView.prototype._handleLeft): Deleted.
2487         (WI.CanvasOverviewContentView.prototype._handleSpace): Deleted.
2488         (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange): Deleted.
2489         Disable canvas selection. Remove logic for supplemental represented objects,
2490         path components, and selection keyboard shortcuts.
2491
2492         * UserInterface/Views/CanvasSidebarPanel.css: Added.
2493         (.sidebar > .panel.navigation.canvas > .content):
2494         (.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled):
2495         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.canvas-2d .icon):
2496         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.webgl .icon):
2497         (.sidebar > .panel.navigation.canvas > .content > .navigation-bar):
2498         (.sidebar > .panel.navigation.canvas.has-recordings > .content > .tree-outline.canvas):
2499         (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
2500         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.recording > .icon):
2501         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.shader-program > .icon):
2502         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .icon):
2503         (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .status):
2504
2505         * UserInterface/Views/CanvasSidebarPanel.js: Added.
2506         (WI.CanvasSidebarPanel):
2507         (WI.CanvasSidebarPanel.prototype.get canvas):
2508         (WI.CanvasSidebarPanel.prototype.set canvas):
2509         (WI.CanvasSidebarPanel.prototype.set recording):
2510         (WI.CanvasSidebarPanel.prototype.set action):
2511         (WI.CanvasSidebarPanel.prototype.shown):
2512         (WI.CanvasSidebarPanel.prototype.hidden):
2513         (WI.CanvasSidebarPanel.prototype.hasCustomFilters):
2514         (WI.CanvasSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
2515         (WI.CanvasSidebarPanel.prototype.initialLayout):
2516         (WI.CanvasSidebarPanel.prototype._recordingAdded):
2517         (WI.CanvasSidebarPanel.prototype._recordingRemoved):
2518         (WI.CanvasSidebarPanel.prototype._scopeBarSelectionChanged):
2519         (WI.CanvasSidebarPanel.prototype._toggleRecording):
2520         (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
2521         (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
2522         (WI.CanvasSidebarPanel.prototype._canvasChanged):
2523         (WI.CanvasSidebarPanel.prototype._recordingChanged):
2524         (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):
2525         (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
2526         Add new navigation sidebar, split into two sections. The upper section
2527         contains a tree with a single element for the current canvas, and child
2528         elements for any shader programs. The maximum height of this section is 50%
2529         of the sidebar's height. The lower section contains a tree for the selected
2530         recording, and a scope bar for choosing between recordings.
2531
2532         * UserInterface/Views/CanvasTabContentView.css:
2533         (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
2534         (.content-view.tab.canvas .navigation-bar > .item .canvas.canvas-2d .icon):
2535         (.content-view.tab.canvas .navigation-bar > .item .canvas.webgl .icon):
2536         (.content-view.tab.canvas .navigation-bar > .item .shader-program > .icon):
2537         (.content-view.tab.canvas .navigation-bar > .item > .hierarchical-path-component > .icon): Deleted.
2538         (.content-view.tab.canvas .navigation-bar > .item .canvas .icon): Deleted.
2539
2540         * UserInterface/Views/CanvasTabContentView.js:
2541         (WI.CanvasTabContentView):
2542         (WI.CanvasTabContentView.prototype.canShowRepresentedObject):
2543         (WI.CanvasTabContentView.prototype.attached):
2544         (WI.CanvasTabContentView.prototype._addCanvas):
2545         (WI.CanvasTabContentView.prototype._removeCanvas):
2546         (WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange):
2547         (WI.CanvasTabContentView.prototype._recordingAdded):
2548         (WI.CanvasTabContentView.prototype._handleSpace):
2549         (WI.CanvasTabContentView.prototype.showRepresentedObject): Deleted.
2550         (WI.CanvasTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged): Deleted.
2551         (WI.CanvasTabContentView.prototype._recordingActionIndexChanged): Deleted.
2552         (WI.CanvasTabContentView.prototype._updateActionIndex): Deleted.
2553         The canvas tab now maintains a tree outline of all canvases, with an
2554         "Overview" element as the root. The Overview element is always the first
2555         item of content browser's hierarchical path.
2556
2557         * UserInterface/Views/CanvasTreeElement.js:
2558         (WI.CanvasTreeElement.createRecordingTreeElement):
2559         (WI.CanvasTreeElement):
2560         (WI.CanvasTreeElement.prototype.onattach):
2561         (WI.CanvasTreeElement.prototype.onpopulate):
2562         (WI.CanvasTreeElement.prototype._updateStatus):
2563         (WI.CanvasTreeElement.prototype.ondetach): Deleted.
2564         Make it possible to not show recordings under the Canvas element.
2565         Create `isRecording` status element (spinner).
2566
2567         * UserInterface/Views/CollectionContentView.js:
2568         (WI.CollectionContentView.prototype.shown):
2569         (WI.CollectionContentView.prototype.hidden):
2570         Child ContentViews need to be updated when the collection's visibility changes.
2571
2572         * UserInterface/Views/ContentView.js:
2573         (WI.ContentView.isViewable):
2574
2575         * UserInterface/Views/ProgressView.css: Added.
2576         (.progress-view):
2577         (.progress-view > .titles):
2578         (.progress-view > .titles > .title):
2579         (.progress-view > .titles > .subtitle):
2580         (.progress-view > .titles > .subtitle::before):
2581         (.progress-view > .indeterminate-progress-spinner):
2582
2583         * UserInterface/Views/ProgressView.js: Added.
2584         (WI.ProgressView):
2585         (WI.ProgressView.prototype.get title):
2586         (WI.ProgressView.prototype.set title):
2587         (WI.ProgressView.prototype.get subtitle):
2588         (WI.ProgressView.prototype.set subtitle):
2589         (WI.ProgressView.prototype.get visible):
2590         (WI.ProgressView.prototype.set visible):
2591         (WI.ProgressView.prototype.initialLayout):
2592         (WI.ProgressView.prototype._updateTitles):
2593         New view class (not a ContentView) for showing a generic progress message,
2594         with a title, subtitle, and progress spinner.
2595
2596         * UserInterface/Views/RecordingContentView.css:
2597         (.content-view:not(.tab).recording > .preview-container):
2598         Remove unnecessary styles.
2599
2600         * UserInterface/Views/RecordingContentView.js:
2601         (WI.RecordingContentView):
2602         (WI.RecordingContentView.prototype.get navigationItems):
2603         (WI.RecordingContentView.prototype.get supplementalRepresentedObjects):
2604         (WI.RecordingContentView.prototype.updateActionIndex):
2605         (WI.RecordingContentView.prototype.get saveData):
2606         (WI.RecordingContentView.prototype._exportRecording):
2607         Relocate the recording export logic and UI.
2608         (WI.RecordingContentView.prototype.async._generateContentCanvas2D):
2609         (WI.RecordingContentView.prototype.async._generateContentCanvasWebGL):
2610         (WI.RecordingContentView.prototype._sliderChanged):
2611         Refactor logic for notifying the rest of the UI of changes to the action slider.
2612         The selected action is now exposed as a supplemental represented object, and a
2613         corresponding SupplementalRepresentedObjectsDidChange event.
2614
2615         * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
2616         (WI.RecordingStateDetailsSidebarPanel.prototype.inspect):
2617         (WI.RecordingStateDetailsSidebarPanel.prototype.set action):
2618         (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
2619         (WI.RecordingStateDetailsSidebarPanel):
2620         (WI.RecordingStateDetailsSidebarPanel.prototype.updateAction): Deleted.
2621
2622         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
2623         (WI.RecordingTraceDetailsSidebarPanel.prototype.inspect):
2624         (WI.RecordingTraceDetailsSidebarPanel.prototype.set action):
2625         (WI.RecordingTraceDetailsSidebarPanel):
2626         (WI.RecordingTraceDetailsSidebarPanel.prototype.updateAction): Deleted.
2627         Now that the selected action is exposed to the UI as a supplemental
2628         represented object, details sidebars can be more decoupled from the
2629         canvas tab, and be notified of changes to the selection via `inspect()`.
2630
2631         * UserInterface/Views/ResourceIcons.css:
2632         (.canvas > .icon): Deleted.
2633         (.shader-program .icon): Deleted.
2634
2635 2018-02-08  Nikita Vasilyev  <nvasilyev@apple.com>
2636
2637         Web Inspector: Styles: Typing value and quickly moving focus away may display outdated value in UI
2638         https://bugs.webkit.org/show_bug.cgi?id=182588
2639         <rdar://problem/37332161>
2640
2641         Reviewed by Matt Baker.
2642
2643         CSSProperty models were updated with a 250ms delay. Quickly adding a blank property after modifying
2644         an existing property could result in outdated values being shown.
2645
2646         This patch removes the 250ms delay.
2647
2648         * UserInterface/Views/SpreadsheetStyleProperty.js:
2649         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidChange):
2650
2651 2018-02-07  Matt Baker  <mattbaker@apple.com>
2652
2653         Web Inspector: replace isAncestor with Node.contains() in LegacyTabBar
2654         https://bugs.webkit.org/show_bug.cgi?id=182586
2655
2656         Reviewed by Timothy Hatcher.
2657
2658         * UserInterface/Views/LegacyTabBar.js:
2659
2660 2018-02-07  Nikita Vasilyev  <nvasilyev@apple.com>
2661
2662         Web Inspector: Styles: completion popover doesn't hide when switching panels
2663         https://bugs.webkit.org/show_bug.cgi?id=182464
2664         <rdar://problem/37202763>
2665
2666         Reviewed by Timothy Hatcher.
2667
2668         Hide completion popover by triggering blur event on the focused text field.
2669         Removing text fields from the DOM tree would hide the completion popovers as well,
2670         but switching sidebar panels doesn't remove them from the DOM.
2671
2672         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2673         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.hidden):
2674         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2675         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.hidden):
2676         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
2677         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.hidden):
2678         * UserInterface/Views/SpreadsheetStyleProperty.js:
2679         (WI.SpreadsheetStyleProperty.prototype.hidden):
2680
2681 2018-02-06  Devin Rousso  <webkit@devinrousso.com>
2682
2683         Web Inspector: Replace isAncestor and isDescendant with native DOM contains method
2684         https://bugs.webkit.org/show_bug.cgi?id=182069
2685
2686         Reviewed by Brian Burg.
2687
2688         * UserInterface/Base/Main.js:
2689         (WI.restoreFocusFromElement):
2690         (WI._mouseDown):
2691         (WI._focusedContentBrowser):
2692         (WI._focusedContentView):
2693         * UserInterface/Base/Utilities.js:
2694         (Node.prototype.traverseNextNode):
2695         (Node.prototype.isAncestor): Deleted.
2696         (Node.prototype.isDescendant): Deleted.
2697         (Node.prototype.isSelfOrAncestor): Deleted.
2698         (Node.prototype.isSelfOrDescendant): Deleted.
2699         * UserInterface/Views/BoxModelDetailsSectionRow.js:
2700         (WI.BoxModelDetailsSectionRow.prototype._handleKeyDown):
2701         * UserInterface/Views/CSSStyleDeclarationSection.js:
2702         (WI.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
2703         * UserInterface/Views/DOMTreeOutline.js:
2704         (WI.DOMTreeOutline.prototype._onmouseout):
2705         * UserInterface/Views/DetailsSection.js:
2706         (WI.DetailsSection.prototype._headerElementClicked):
2707         * UserInterface/Views/EditingSupport.js:
2708         (WI.incrementElementValue):
2709         * UserInterface/Views/LogContentView.js:
2710         (WI.LogContentView.prototype._handleContextMenuEvent):
2711         * UserInterface/Views/ShaderProgramTreeElement.js:
2712         (WI.ShaderProgramTreeElement.prototype.selectOnMouseDown):
2713         * UserInterface/Views/SoftContextMenu.js:
2714         (WI.SoftContextMenu.prototype._menuItemMouseOut):
2715         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2716         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
2717         * UserInterface/Views/TabBar.js:
2718         (WI.TabBar.prototype.insertTabBarItem):
2719
2720 2018-02-06  Devin Rousso  <webkit@devinrousso.com>
2721
2722         Web Inspector: Elements tab should have "Jump to Layer" functionality
2723         https://bugs.webkit.org/show_bug.cgi?id=181800
2724
2725         Reviewed by Joseph Pecoraro.
2726
2727         * Localizations/en.lproj/localizedStrings.js:
2728
2729         * UserInterface/Base/Main.js:
2730         (WI.isShowingElementsTab):
2731         (WI.showLayersTab):
2732         (WI.isShowingLayersTab):
2733
2734         * UserInterface/Views/ContextMenuUtilities.js:
2735         (WI.appendContextMenuItemsForDOMNode):
2736
2737         * UserInterface/Views/LayersTabContentView.js:
2738         (WI.LayersTabContentView.prototype.selectLayerForNode):
2739
2740         * UserInterface/Views/Layers3DContentView.js:
2741         (WI.Layers3DContentView):
2742         (WI.Layers3DContentView.prototype.selectLayerForNode):
2743         (WI.Layers3DContentView.prototype.layout):
2744
2745         * UserInterface/Views/LayerDetailsSidebarPanel.js:
2746         (WI.LayerDetailsSidebarPanel):
2747         (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
2748         (WI.LayerDetailsSidebarPanel.prototype._updateDataGrid):
2749
2750 2018-02-06  Nikita Vasilyev  <nvasilyev@apple.com>
2751
2752         Web Inspector: Rename String.prototype.trimEnd to avoid conflicts with native trimEnd
2753         https://bugs.webkit.org/show_bug.cgi?id=182545
2754
2755         Reviewed by Brian Burg.
2756
2757         Rename:
2758         - trimEnd to truncateEnd
2759         - trimMiddle to truncateMiddle
2760
2761         * UserInterface/Base/Utilities.js:
2762         (String.prototype.trimMiddle): Deleted.
2763         (String.prototype.trimEnd): Deleted.
2764         (String.prototype.truncateMiddle): Added.
2765         (String.prototype.truncateEnd): Added.
2766         Use strict mode. Scrict mode allows `this` to be a primitive (a string, in our case).
2767         In non-strict mode, `this` is always an object. Without the strict mode,
2768         "a".truncateEnd(42) !== "a", because truncateEnd returns a string object.
2769
2770         * UserInterface/Views/DOMTreeElement.js:
2771         (WI.DOMTreeElement.prototype._buildAttributeDOM):
2772         * UserInterface/Views/DOMTreeElementPathComponent.js:
2773         (WI.DOMTreeElementPathComponent):
2774         * UserInterface/Views/SearchResultTreeElement.js:
2775         Remove an obvious comment.
2776
2777         (WI.SearchResultTreeElement.truncateAndHighlightTitle):
2778         * UserInterface/Views/SpreadsheetStyleProperty.js:
2779         (WI.SpreadsheetStyleProperty.prototype._renderValue):
2780
2781 2018-02-05  Nikita Vasilyev  <nvasilyev@apple.com>
2782
2783         Web Inspector: Add an experimental setting to enable Sources tab
2784         https://bugs.webkit.org/show_bug.cgi?id=182461
2785
2786         Reviewed by Brian Burg.
2787
2788         This patch only adds a setting. It doesn't add the Sources tab.
2789
2790         * Localizations/en.lproj/localizedStrings.js:
2791         * UserInterface/Base/Setting.js:
2792         * UserInterface/Views/SettingsTabContentView.js:
2793
2794 2018-02-02  Devin Rousso  <webkit@devinrousso.com>
2795
2796         Web Inspector: Styles Redesign: Pasting multiple properties should create properties instead of a bad property
2797         https://bugs.webkit.org/show_bug.cgi?id=179622
2798         <rdar://problem/35511170>
2799
2800         Reviewed by Matt Baker.
2801
2802         * UserInterface/Views/SpreadsheetStyleProperty.js:
2803         (WI.SpreadsheetStyleProperty.prototype._remove):
2804         (WI.SpreadsheetStyleProperty.prototype._update):
2805         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
2806         (WI.SpreadsheetStyleProperty.prototype._handleNamePaste):
2807         When the user pastes into the name field, parse the text for a list of name-value pairs and
2808         replace the property being edited with the text of those pairs.
2809
2810         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2811         (WI.SpreadsheetCSSStyleDeclarationEditor):
2812         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
2813         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.addBlankProperty):
2814         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
2815         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyAddBlankPropertySoon):
2816         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
2817         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
2818         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved): Deleted.
2819         Calling `addBlankProperty` will trigger a layout on the next frame, but that might be before
2820         the CSSAgent has had a chance to finish refreshing, so we need a way to defer the creation
2821         of a new property until after we have finished the next layout (which is after the refresh).
2822         Drive-by: fix naming of some delegate functions.
2823
2824         * UserInterface/Models/CSSProperty.js:
2825         (WI.CSSProperty.prototype.replaceWithText):
2826         Provide a way for replacing the property with new text.
2827
2828 2018-02-02  Matt Baker  <mattbaker@apple.com>
2829
2830         Web Inspector: TabBar redesign: remove New Tab button and add experimental feature flag
2831         https://bugs.webkit.org/show_bug.cgi?id=182342
2832         <rdar://problem/37078662>
2833
2834         Reviewed by Devin Rousso.
2835
2836         This patch adds a new experimental setting group, "User Interface", with
2837         a single setting, "Enable New TabBar". When enabled, the New Tab button is
2838         no longer available in the top-level TabBar. The 'open tabs' context menu
2839         no longer allows the last non-ephemeral open tab to be closed (unchecked).
2840
2841         * Localizations/en.lproj/localizedStrings.js:
2842
2843         * UserInterface/Base/Main.js:
2844         (WI.contentLoaded):
2845         (WI._tryToRestorePendingTabs):
2846         Retain legacy behavior behind experimental feature setting.
2847         (WI.isNewTabWithTypeAllowed):
2848
2849         * UserInterface/Base/Setting.js:
2850         * UserInterface/Main.html:
2851
2852         * UserInterface/Views/CanvasTabContentView.js:
2853         (WI.CanvasTabContentView):
2854         * UserInterface/Views/ConsoleTabContentView.js:
2855         (WI.ConsoleTabContentView):
2856         * UserInterface/Views/DebuggerTabContentView.js:
2857         (WI.DebuggerTabContentView):
2858         * UserInterface/Views/ElementsTabContentView.js:
2859         (WI.ElementsTabContentView):
2860
2861         * UserInterface/Views/GeneralTabBarItem.js:
2862         (WI.GeneralTabBarItem):
2863         (WI.GeneralTabBarItem.prototype.fromTabInfo):
2864         (WI.GeneralTabBarItem.prototype.get isEphemeral):
2865         (WI.GeneralTabBarItem.fromTabContentViewConstructor): Deleted.
2866
2867         * UserInterface/Views/LayersTabContentView.js:
2868         (WI.LayersTabContentView):
2869
2870         * UserInterface/Views/LegacyTabBar.js: Copied from Source/WebInspectorUI/UserInterface/Views/TabBar.js.
2871         (WI.LegacyTabBar):
2872         (WI.LegacyTabBar.prototype.get newTabTabBarItem):
2873         (WI.LegacyTabBar.prototype.updateNewTabTabBarItemState):
2874         (WI.LegacyTabBar.prototype.addTabBarItem):
2875         (WI.LegacyTabBar.prototype.insertTabBarItem.animateTabs):
2876         (WI.LegacyTabBar.prototype.insertTabBarItem.removeStyles):
2877         (WI.LegacyTabBar.prototype.insertTabBarItem):
2878         (WI.LegacyTabBar.prototype.removeTabBarItem.animateTabs):
2879         (WI.LegacyTabBar.prototype.removeTabBarItem.removeStyles):
2880         (WI.LegacyTabBar.prototype.removeTabBarItem):
2881         (WI.LegacyTabBar.prototype.selectPreviousTab):
2882         (WI.LegacyTabBar.prototype.selectNextTab):
2883         (WI.LegacyTabBar.prototype.get selectedTabBarItem):
2884         (WI.LegacyTabBar.prototype.set selectedTabBarItem):
2885         (WI.LegacyTabBar.prototype.get tabBarItems):
2886         (WI.LegacyTabBar.prototype.get normalTabCount):
2887         (WI.LegacyTabBar.prototype.layout.forceItemHidden):
2888         (WI.LegacyTabBar.prototype.layout):
2889         (WI.LegacyTabBar.prototype._tabBarItemsFromLeftToRight):
2890         (WI.LegacyTabBar.prototype._findTabBarItem):
2891         (WI.LegacyTabBar.prototype._hasMoreThanOneNormalTab):
2892         (WI.LegacyTabBar.prototype._openDefaultTab):
2893         (WI.LegacyTabBar.prototype._recordTabBarItemSizesAndPositions):
2894         (WI.LegacyTabBar.prototype._applyTabBarItemSizesAndPositions):
2895         (WI.LegacyTabBar.prototype._clearTabBarItemSizesAndPositions):
2896         (WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose.):
2897         (WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose):
2898         (WI.LegacyTabBar.prototype._handleMouseDown):
2899         (WI.LegacyTabBar.prototype._handleClick):
2900         (WI.LegacyTabBar.prototype._handleMouseMoved):
2901         (WI.LegacyTabBar.prototype._handleMouseUp):
2902         (WI.LegacyTabBar.prototype._handleMouseLeave):
2903         (WI.LegacyTabBar.prototype._handleContextMenu):
2904         (WI.LegacyTabBar.prototype._handleNewTabClick):
2905         (WI.LegacyTabBar.prototype._handleTabPickerTabContextMenu):
2906         (WI.LegacyTabBar.prototype._handleNewTabMouseEnter):
2907
2908         * UserInterface/Views/NetworkTabContentView.js:
2909         (WI.NetworkTabContentView):
2910         * UserInterface/Views/NewTabContentView.js:
2911         (WI.NewTabContentView):
2912         (WI.NewTabContentView.tabInfo):
2913         (WI.NewTabContentView.isEphemeral): Deleted.
2914         * UserInterface/Views/ResourcesTabContentView.js:
2915         (WI.ResourcesTabContentView):
2916         * UserInterface/Views/SearchTabContentView.js:
2917         (WI.SearchTabContentView):
2918         (WI.SearchTabContentView.tabInfo):
2919         (WI.SearchTabContentView.isEphemeral): Deleted.
2920
2921         * UserInterface/Views/SettingsTabContentView.js:
2922         (WI.SettingsTabContentView.tabInfo):
2923         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2924         (WI.SettingsTabContentView.isEphemeral): Deleted.
2925
2926         * UserInterface/Views/StorageTabContentView.js:
2927         (WI.StorageTabContentView):
2928
2929         * UserInterface/Views/TabBar.css:
2930         * UserInterface/Views/TabBar.js:
2931         (WI.TabBar):
2932         (WI.TabBar.prototype.insertTabBarItem):
2933         (WI.TabBar.prototype.removeTabBarItem):
2934         (WI.TabBar.prototype.set selectedTabBarItem):
2935         (WI.TabBar.prototype.get normalNonEphemeralTabCount):
2936         (WI.TabBar.prototype._handleMouseDown):
2937         (WI.TabBar.prototype._handleClick):
2938         (WI.TabBar.prototype._handleMouseMoved):
2939         (WI.TabBar.prototype._handleMouseLeave):
2940         (WI.TabBar.prototype._handleContextMenu):
2941         (WI.TabBar.prototype._handleTabPickerTabContextMenu):
2942         (WI.TabBar.prototype.get newTabTabBarItem): Deleted.
2943         (WI.TabBar.prototype.updateNewTabTabBarItemState): Deleted.
2944         (WI.TabBar.prototype._openDefaultTab): Deleted.
2945         (WI.TabBar.prototype._handleNewTabClick): Deleted.
2946         (WI.TabBar.prototype._handleNewTabMouseEnter): Deleted.
2947         Remove support for the New Tab button and default tab. Without a default
2948         tab, there is nothing to display when no tabs are open, so prevent the
2949         last non-pinned tab from being removed.
2950
2951         * UserInterface/Views/TabBrowser.js:
2952         (WI.TabBrowser._tabBarItemRemoved):
2953         * UserInterface/Views/TabContentView.js:
2954         (WI.TabContentView.isEphemeral): Deleted.
2955         * UserInterface/Views/TimelineTabContentView.js:
2956         (WI.TimelineTabContentView):
2957
2958 2018-01-30  Devin Rousso  <webkit@devinrousso.com>
2959
2960         Web Inspector: Replace Object.shallowMerge with ES2018 spread operator
2961         https://bugs.webkit.org/show_bug.cgi?id=182219
2962
2963         Reviewed by Brian Burg.
2964
2965         * UserInterface/Base/Utilities.js:
2966         (Object.shallowMerge): Deleted.
2967         * UserInterface/Base/DOMUtilities.js:
2968         (WI.linkifyNodeReference):
2969         * UserInterface/Base/Main.js:
2970         (WI.handlePossibleLinkClick):
2971         (WI.openURL):
2972         (WI.showSourceCodeLocation):
2973         (WI.showOriginalUnformattedSourceCodeLocation):
2974         (WI.showOriginalOrFormattedSourceCodeLocation):
2975         (WI.showOriginalOrFormattedSourceCodeTextRange):
2976         (WI.linkifyLocation):
2977         * UserInterface/Views/DOMTreeElement.js:
2978         (WI.DOMTreeElement.prototype._insertAdjacentHTML):
2979         * UserInterface/Views/WebSocketContentView.js:
2980         (WI.WebSocketContentView.prototype._addRow):
2981
2982 2018-01-26  Matt Baker  <mattbaker@apple.com>
2983
2984         Web Inspector: Timelines content browser NavigationBar is squashed at narrow heights
2985         https://bugs.webkit.org/show_bug.cgi?id=182196
2986         <rdar://problem/36929899>
2987
2988         Reviewed by Joseph Pecoraro.
2989
2990         * UserInterface/Views/NavigationBar.css:
2991         (.navigation-bar):
2992
2993 2018-01-26  Matt Baker  <mattbaker@apple.com>
2994
2995         Web Inspector: TabBar redesign: improvements to tab layout and resize behavior
2996         https://bugs.webkit.org/show_bug.cgi?id=181468
2997         <rdar://problem/36395439>
2998
2999         Reviewed by Devin Rousso.
3000
3001         * Localizations/en.lproj/localizedStrings.js:
3002
3003         * UserInterface/Images/TabPicker.svg: Added.
3004         New ">>" icon for the tab picker button.
3005
3006         * UserInterface/Views/CanvasTabContentView.js:
3007         (WI.CanvasTabContentView):
3008         * UserInterface/Views/ConsoleTabContentView.js:
3009         (WI.ConsoleTabContentView):
3010         * UserInterface/Views/DebuggerTabContentView.js:
3011         (WI.DebuggerTabContentView):
3012         * UserInterface/Views/ElementsTabContentView.js:
3013         (WI.ElementsTabContentView):
3014
3015         * UserInterface/Views/GeneralTabBarItem.js:
3016         (WI.GeneralTabBarItem):
3017         (WI.GeneralTabBarItem.fromTabContentViewConstructor):
3018         (WI.GeneralTabBarItem.prototype.get title):
3019         Add missing override for getter/setter pair.
3020         (WI.GeneralTabBarItem.prototype.set title):
3021         (WI.GeneralTabBarItem.prototype._handleContextMenuEvent):
3022         Show the close button on ephemeral tabs only (Search, New Tab).
3023         Replace unused `representedObject` parameter with `isEphemeral`, which
3024         determines whether to show a close button for the tab.
3025
3026         * UserInterface/Views/LayersTabContentView.js:
3027         (WI.LayersTabContentView):
3028
3029         * UserInterface/Views/NavigationBar.js:
3030         Remove unused symbol.
3031
3032         * UserInterface/Views/NetworkTabContentView.js:
3033         (WI.NetworkTabContentView):
3034         * UserInterface/Views/NewTabContentView.js:
3035         (WI.NewTabContentView):
3036
3037         * UserInterface/Views/PinnedTabBarItem.js:
3038         (WI.PinnedTabBarItem):
3039         Remove unused parameter.
3040
3041         * UserInterface/Views/ResourcesTabContentView.js:
3042         (WI.ResourcesTabContentView):
3043         * UserInterface/Views/SearchTabContentView.js:
3044         (WI.SearchTabContentView):
3045         * UserInterface/Views/StorageTabContentView.js:
3046         (WI.StorageTabContentView):
3047
3048         * UserInterface/Views/TabBar.css:
3049         (.tab-bar > .item):
3050         (.tab-bar.calculate-width > .item):
3051         (.tab-bar > .item.pinned.tab-picker):
3052         (.tab-bar > .item > .close):
3053         (.tab-bar > .item > .title):
3054         (.tab-bar:not(.collapsed) > .item > .title):
3055         (.tab-bar.collapsed > .item:not(.pinned) > .icon):
3056         (.tab-bar > .item:hover > .close):
3057         (.tab-bar.collapsed > .item:hover > .close):
3058         (.tab-bar:not(.collapsed) > .item.ephemeral:hover > .icon):
3059         (.tab-bar.collapsed > .item.ephemeral:hover > .title):
3060         (body[dir=ltr] .tab-bar > .item > .close): Deleted.
3061         (body[dir=rtl] .tab-bar > .item > .close): Deleted.
3062         (.tab-bar > .item > .flex-space): Deleted.
3063         (.tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted.
3064         (body[dir=ltr] .tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted.
3065         (body[dir=rtl] .tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted.
3066         (body[dir=ltr] .tab-bar > .item > .title): Deleted.
3067         (body[dir=rtl] .tab-bar > .item > .title): Deleted.
3068         (.tab-bar.collapsed > .item): Deleted.
3069         (.tab-bar.collapsed > .item > .flex-space): Deleted.
3070         (.tab-bar.collapsed > .item > .close): Deleted.
3071         (body[dir=ltr] .tab-bar.collapsed > .item > .close): Deleted.
3072         (body[dir=rtl] .tab-bar.collapsed > .item > .close): Deleted.
3073         (.tab-bar.hide-titles > .item > .title): Deleted.
3074         (.tab-bar.collapsed:not(.hide-titles) > .item:not(.pinned):hover > .icon,): Deleted.
3075         (.tab-bar.collapsed:not(.hide-titles) > .item:hover > .close,): Deleted.
3076         Clean up tab styles and prevent tabs from shrinking during flex layout.
3077         Added new `calculate-width` class, to disable flex layout when measuring
3078         the minimum width of the TabBar required to fit all tab items.
3079
3080         * UserInterface/Views/TabBar.js:
3081         (WI.TabBar):
3082         (WI.TabBar.prototype.set selectedTabBarItem):
3083         (WI.TabBar.prototype.layout.forceItemHidden):
3084         (WI.TabBar.prototype.layout):
3085         Perform two layout passes, similar to NavigationBar. The first pass disables
3086         flex layout and measures tab items at full size. If the bar isn't wide enough
3087         to show all the tabs, hide their icons and measure again. If there still isn't
3088         room, hide tabs starting from the end of the bar and display the tab picker.
3089
3090         (WI.TabBar.prototype._handleMouseDown):
3091         (WI.TabBar.prototype._handleTabPickerTabContextMenu):
3092
3093         * UserInterface/Views/TabBarItem.js:
3094         (WI.TabBarItem):
3095
3096         * UserInterface/Views/TimelineTabContentView.js:
3097         (WI.TimelineTabContentView):
3098
3099 2018-01-25  Joseph Pecoraro  <pecoraro@apple.com>
3100
3101         Web Inspector: Network Table: Sort indicator is not displayed when sorted column is hidden and re-shown
3102         https://bugs.webkit.org/show_bug.cgi?id=182164
3103         <rdar://problem/36892619>
3104
3105         Reviewed by Brian Burg.
3106
3107         * UserInterface/Views/Table.js:
3108         (WI.Table.prototype.showColumn):
3109         Re-add the sort classes if the column being shown is the active sort column.
3110
3111 2018-01-25  Joseph Pecoraro  <pecoraro@apple.com>
3112
3113         Web Inspector: Network - Cookies view should behave better at narrow widths, all data is hidden
3114         https://bugs.webkit.org/show_bug.cgi?id=182163
3115         <rdar://problem/36893241>
3116
3117         Reviewed by Brian Burg.
3118
3119         * UserInterface/Views/ResourceCookiesContentView.css:
3120         (.resource-cookies .table):
3121         Give these tables a reasonable minimum size so that if the inspector
3122         is narrow, the content view can still be scrolled to see all of
3123         the table data.
3124
3125         * UserInterface/Views/Table.css:
3126         (.table > .header):
3127         Match the data-container and mark overflow as hidden, otherwise
3128         super narrow widths show header content beyond the edge.
3129
3130 2018-01-25  Joseph Pecoraro  <pecoraro@apple.com>
3131
3132         Web Inspector: "Displayed Columns" should not be displayed in context menu if all columns are required columns
3133         https://bugs.webkit.org/show_bug.cgi?id=182162
3134         <rdar://problem/36893758>
3135
3136         Reviewed by Matt Baker.
3137
3138         * UserInterface/Views/Table.js:
3139         (WI.Table.prototype._handleHeaderContextMenu):
3140         Only add the header column when we know there are hideable columns.
3141
3142 2018-01-24  Joseph Pecoraro  <pecoraro@apple.com>
3143
3144         Web Inspector: Simplify update-LegacyInspectorBackendCommands.rb
3145         https://bugs.webkit.org/show_bug.cgi?id=182067
3146
3147         Reviewed by Brian Burg.
3148
3149         * Scripts/update-LegacyInspectorBackendCommands.rb:
3150         Remove stale dependency_json, it has always been empty for a while now.
3151         Switch to framework WebInspectorUI to generate only the backend commands
3152         and not spend time generating a bunch of cpp files.
3153
3154 2018-01-24  Nikita Vasilyev  <nvasilyev@apple.com>
3155
3156         REGRESSION (r226994): Web Inspector: Styles: Suggestions popover floats in top-left corner of Web Inspector after tabbing
3157         https://bugs.webkit.org/show_bug.cgi?id=182027
3158
3159         Reviewed by Matt Baker.
3160
3161         r226994 added a layout of all properties on property removal. Layout caused
3162         a property element to be removed from DOM right before dislaying the suggestion
3163         popover, resulting in the popover being displayed at the top left corner.
3164
3165         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3166         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
3167         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
3168         Only update property view indices when a property is removed.
3169
3170         * UserInterface/Views/SpreadsheetStyleProperty.js:
3171         (WI.SpreadsheetStyleProperty):
3172         (WI.SpreadsheetStyleProperty.prototype.set index):
3173
3174         * UserInterface/Views/SpreadsheetTextField.js:
3175         (WI.SpreadsheetTextField.prototype._updateCompletions):
3176         Checking this._element.parentNode to see if the element is attached to the DOM tree is unreliable,
3177         since the element may have a non-null parent node that is detached from the DOM tree. To fix that,
3178         we could traverse element's ancestors, but I used a concise isConnected property instead.
3179
3180 2018-01-24  Joseph Pecoraro  <pecoraro@apple.com>
3181
3182         ReferenceError:​ Can't find variable:​ DOMAgent (at ScriptSyntaxTree.js:​178:​22)​
3183         https://bugs.webkit.org/show_bug.cgi?id=182059
3184
3185         Reviewed by Matt Baker.
3186
3187         * UserInterface/Models/ScriptSyntaxTree.js:
3188         (WI.ScriptSyntaxTree.functionReturnDivot):
3189         DOMAgent won't be available in a ServiceWorker or JSContext inspector. So add
3190         a check for DOMAgent, and assume if DOMAgent doesn't exist that we should fall
3191         back to the latest path (non-iOS 9) target.
3192
3193 2018-01-23  Joseph Pecoraro  <pecoraro@apple.com>
3194
3195         Web Inspector: Network's columns shake when scrolling at non-default zoom level
3196         https://bugs.webkit.org/show_bug.cgi?id=181998
3197         <rdar://problem/36449808>
3198
3199         Reviewed by Matt Baker.
3200
3201         * UserInterface/Views/Table.js:
3202         When zoomed the bounding client rect values were fractional, which was
3203         unexpected by this area of code. Floor the values to get a value we expect
3204         to be able to evenly distribute.
3205
3206 2018-01-22  Nikita Vasilyev  <nvasilyev@apple.com>
3207
3208         Web Inspector: Styles Redesign: data corruption when updating values quickly
3209         https://bugs.webkit.org/show_bug.cgi?id=179461
3210         <rdar://problem/35431882>
3211
3212         Reviewed by Joseph Pecoraro.
3213
3214         Data corruption used to happen because CSSStyleDeclaration.prototype.text didn't
3215         update synchronously. Making two or more quick changes resulted in corrupted data.
3216
3217         Imagine we modify a CSS value 3 times:
3218
3219         Front-end:  (1)-(2)---(3)
3220         Back-end:          (1)-----(2)-(3)
3221
3222         The first response from the backend could happen after the 2nd edit. In this patch,
3223         CSSStyleDeclaration is locked when its view is being edited.
3224
3225         To correctly display invalid and overridden properties, the backend is allowed to update
3226         CSSStyleDeclaration and CSSProperty when they're locked if the text from the backend
3227         matches the model's text. This should happen when the backend is caught up with the
3228         front-end changes.
3229
3230         * UserInterface/Models/CSSProperty.js:
3231         (WI.CSSProperty.prototype.update):
3232         * UserInterface/Models/CSSStyleDeclaration.js:
3233         (WI.CSSStyleDeclaration):
3234         (WI.CSSStyleDeclaration.prototype.get locked):
3235         (WI.CSSStyleDeclaration.prototype.set locked):
3236         (WI.CSSStyleDeclaration.prototype.set text):
3237
3238         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3239         (WI.SpreadsheetCSSStyleDeclarationEditor):
3240         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
3241         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.detached):
3242         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get editing):
3243         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set focused):
3244         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set inlineSwatchActive):
3245         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.stylePropertyInlineSwatchActivated):
3246         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.stylePropertyInlineSwatchDeactivated):
3247         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
3248         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
3249         Lock CSSStyleDeclaration when a CSS property name or value is focused or
3250         an inline widget is active.
3251
3252         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
3253         (WI.SpreadsheetCSSStyleDeclarationSection):
3254         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
3255         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
3256         * UserInterface/Views/SpreadsheetStyleProperty.js:
3257         (WI.SpreadsheetStyleProperty):
3258         (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
3259         When selector is focused, clicking on the white-space should not add a new blank property.
3260
3261 2018-01-19  Ross Kirsling  <ross.kirsling@sony.com>
3262
3263         Web Inspector: Layers tab should do away with popovers (if possible)
3264         https://bugs.webkit.org/show_bug.cgi?id=181805
3265
3266         Reviewed by Matt Baker.
3267
3268         * Localizations/en.lproj/localizedStrings.js:
3269         Remove superfluous colon from a string.
3270
3271         * UserInterface/Main.html:
3272         * UserInterface/Views/LayerDetailsSidebarPanel.css:
3273         * UserInterface/Views/Layers3DContentView.css: Added.
3274         Remove popover styling from sidebar, add new file with similar styling for canvas overlay.
3275
3276         * UserInterface/Views/LayerDetailsSidebarPanel.js:
3277         (WI.LayerDetailsSidebarPanel):
3278         (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
3279         (WI.LayerDetailsSidebarPanel.prototype._dataGridSelectedNodeChanged):
3280         (WI.LayerDetailsSidebarPanel.prototype._updateLayers):
3281         (WI.LayerDetailsSidebarPanel.prototype._updateBottomBar):
3282         (WI.LayerDetailsSidebarPanel.prototype.willDismissPopover): Deleted.
3283         (WI.LayerDetailsSidebarPanel.prototype._showPopoverForSelectedNode): Deleted.
3284         (WI.LayerDetailsSidebarPanel.prototype._presentPopover): Deleted.
3285         (WI.LayerDetailsSidebarPanel.prototype._contentForPopover): Deleted.
3286         (WI.LayerDetailsSidebarPanel.prototype._populateListOfCompositingReasons.addReason): Deleted.
3287         (WI.LayerDetailsSidebarPanel.prototype._populateListOfCompositingReasons): Deleted.
3288         * UserInterface/Views/Layers3DContentView.js:
3289         (WI.Layers3DContentView):
3290         (WI.Layers3DContentView.prototype.shown):
3291         (WI.Layers3DContentView.prototype.selectLayerById):
3292         (WI.Layers3DContentView.prototype._canvasMouseDown):
3293         (WI.Layers3DContentView.prototype._buildLayerInfoElement):
3294         (WI.Layers3DContentView.prototype._updateLayerInfoElement):
3295         (WI.Layers3DContentView.prototype._updateReasonsList):
3296         Remove popover from sidebar table, overlay div with same data arrangement on top of the canvas.
3297         Also reverse the fix from r226671 since the visualization is no longer unusable without the sidebar!
3298
3299 2018-01-19  Matt Baker  <mattbaker@apple.com>
3300
3301         Web Inspector: Canvas Tab: Multiple "waiting for frames" messages displayed
3302         https://bugs.webkit.org/show_bug.cgi?id=181865
3303         <rdar://problem/36664737>
3304
3305         Reviewed by Devin Rousso.
3306
3307         * UserInterface/Views/CanvasContentView.js:
3308         (WI.CanvasContentView.prototype._recordingStarted):
3309         (WI.CanvasContentView.prototype._recordingStopped):
3310
3311 2018-01-19  Nikita Vasilyev  <nvasilyev@apple.com>
3312
3313         Web Inspector: Styles Redesign: tabbing on commented out property throws exception
3314         https://bugs.webkit.org/show_bug.cgi?id=180676
3315         <rdar://problem/35981058>
3316
3317         Reviewed by Joseph Pecoraro.
3318
3319         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3320         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
3321         Tabbing from the selector field should focus on the first editable property.
3322         When no editable properties are present, a new blank property should be added after the commented out ones.
3323
3324         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
3325         Shift-tabbing from the selector field should focus on the last editable property of the previous CSS rule.
3326         When no editable properties are present, a new blank property should be added after the commented out ones.
3327
3328         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
3329         When navigating between properties skip the commented out ones.
3330
3331         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._editablePropertyAfter):
3332         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._editablePropertyBefore):
3333         * UserInterface/Views/SpreadsheetStyleProperty.js:
3334         (WI.SpreadsheetStyleProperty.prototype.get enabled):
3335         (WI.SpreadsheetStyleProperty.prototype._update):
3336
3337 2018-01-19  Nikita Vasilyev  <nvasilyev@apple.com>
3338
3339         Web Inspector: Make styles sidebar always LTR
3340         https://bugs.webkit.org/show_bug.cgi?id=175357
3341         <rdar://problem/33787988>
3342
3343         Reviewed by Joseph Pecoraro.
3344
3345         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
3346         (WI.SpreadsheetRulesStyleDetailsPanel):
3347
3348 2018-01-19  Keith Miller  <keith_miller@apple.com>
3349
3350         HaveInternalSDK includes should be "#include?"
3351         https://bugs.webkit.org/show_bug.cgi?id=179670
3352
3353         Reviewed by Dan Bernstein.
3354
3355         * Configurations/Base.xcconfig:
3356
3357 2018-01-18  Dan Bernstein  <mitz@apple.com>
3358
3359         [Xcode] Streamline and future-proof target-macOS-version-dependent build setting definitions
3360         https://bugs.webkit.org/show_bug.cgi?id=181803
3361
3362         Reviewed by Tim Horton.
3363
3364         * Configurations/Base.xcconfig: Updated.
3365         * Configurations/DebugRelease.xcconfig: Ditto.
3366         * Configurations/Version.xcconfig: Ditto.
3367
3368 2018-01-18  Devin Rousso  <webkit@devinrousso.com>
3369
3370         Web Inspector: Canvas Tab: record button on canvas card doesn't always show on hover, or is misplaced
3371         https://bugs.webkit.org/show_bug.cgi?id=179183
3372
3373         Reviewed by Joseph Pecoraro.
3374
3375         * UserInterface/Views/CanvasOverviewContentView.css:
3376         (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop): Deleted.
3377
3378 2018-01-17  Devin Rousso  <webkit@devinrousso.com>
3379
3380         Web Inspector: clicking on a path component that has no siblings should select it
3381         https://bugs.webkit.org/show_bug.cgi?id=181772
3382
3383         Reviewed by Joseph Pecoraro.
3384
3385         * UserInterface/Views/HierarchicalPathComponent.js:
3386         (WI.HierarchicalPathComponent.prototype._updateSelectElement):
3387         (WI.HierarchicalPathComponent.prototype._selectElementMouseDown):
3388
3389 2018-01-17  Joseph Pecoraro  <pecoraro@apple.com>
3390
3391         Web Inspector: Add back localized strings for Styles sidebar panels
3392         https://bugs.webkit.org/show_bug.cgi?id=181748
3393         <rdar://problem/36583184>
3394
3395         Reviewed by Brian Burg.
3396
3397         * Localizations/en.lproj/localizedStrings.js:
3398         * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js:
3399         (WI.ComputedStyleDetailsSidebarPanel):
3400         * UserInterface/Views/RulesStyleDetailsSidebarPanel.js:
3401         (WI.RulesStyleDetailsSidebarPanel):
3402         * UserInterface/Views/VisualStyleDetailsSidebarPanel.js:
3403         (WI.VisualStyleDetailsSidebarPanel):
3404         Add back localized strings for panel titles lost in r225547.
3405
3406 2018-01-17  Joseph Pecoraro  <pecoraro@apple.com>
3407
3408         Web Inspector: Super long URL string causes bad wrapping in Resources detail sidebar
3409         https://bugs.webkit.org/show_bug.cgi?id=181617
3410
3411         Reviewed by Brian Burg.
3412
3413         * UserInterface/Views/DetailsSection.css:
3414         (.details-section > .content > .group > .row.simple > .value):
3415         Set the break to all characters.
3416
3417 2018-01-16  Matt Baker  <mattbaker@apple.com>
3418
3419         Web Inspector: Canvas tab: typing a "space" in the QuickConsole shouldn't trigger a recording
3420         https://bugs.webkit.org/show_bug.cgi?id=181706
3421         <rdar://problem/36558221>
3422
3423         Reviewed by Joseph Pecoraro.
3424
3425         * UserInterface/Views/CanvasOverviewContentView.js:
3426         (WI.CanvasOverviewContentView):
3427         (WI.CanvasOverviewContentView.prototype._handleSpace):
3428
3429 2018-01-16  Joseph Pecoraro  <pecoraro@apple.com>
3430
3431         Web Inspector: Make Console's Execution Context picker stand out when it is non-default
3432         https://bugs.webkit.org/show_bug.cgi?id=181628
3433         <rdar://problem/36492044>
3434
3435         Reviewed by Matt Baker.
3436
3437         * UserInterface/Views/HierarchicalPathComponent.css:
3438         (.hierarchical-path-component > .selector-arrows):
3439         * UserInterface/Views/HierarchicalPathComponent.js:
3440         (WI.HierarchicalPathComponent.prototype.set selectorArrows):
3441         Switch to SVG element so we can style the arrows.
3442
3443         * UserInterface/Views/QuickConsole.css:
3444         (.quick-console > .navigation-bar > .hierarchical-path .execution-context):
3445         (.quick-console > .navigation-bar > .hierarchical-path .execution-context .separator):
3446         (.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context):
3447         (.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context .selector-arrows):
3448         Styles for the execution context picker. We hide the unused separator
3449         and instead use margin so that the selected background and border don't
3450         have an extra 7px on the right/end side.
3451
3452         * UserInterface/Views/QuickConsole.js:
3453         (WI.QuickConsole.prototype._activeExecutionContextChanged):
3454         Toggle the non-default class name on the path.
3455
3456 2018-01-16  Nikita Vasilyev  <nvasilyev@apple.com>
3457
3458         Web Inspector: Styles: pressing down key should select first item from completion list when focusing on empty value
3459         https://bugs.webkit.org/show_bug.cgi?id=181633
3460         <rdar://problem/36501797>
3461
3462         Reviewed by Joseph Pecoraro.
3463
3464         * UserInterface/Views/SpreadsheetTextField.js:
3465         (WI.SpreadsheetTextField.prototype._updateCompletions):
3466
3467 2018-01-16  Nikita Vasilyev  <nvasilyev@apple.com>
3468
3469         Web Inspector: Styles Redesign: Long value causes bad wrapping
3470         https://bugs.webkit.org/show_bug.cgi?id=181618
3471         <rdar://problem/36485175>
3472
3473         Reviewed by Joseph Pecoraro.
3474
3475         Wrap long values only when editing.
3476
3477         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
3478         (.spreadsheet-style-declaration-editor .value.editing):
3479
3480 2018-01-16  Nikita Vasilyev  <nvasilyev@apple.com>
3481
3482         Web Inspector: Styles Redesign: clicking on the white space after the property sometimes places a blank property at the wrong index
3483         https://bugs.webkit.org/show_bug.cgi?id=179585
3484         <rdar://problem/35490780>
3485
3486         Reviewed by Joseph Pecoraro.
3487
3488         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3489         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
3490         Layout call is needed to update data-property-index attributes on the property views.
3491
3492 2018-01-16  Joseph Pecoraro  <pecoraro@apple.com>
3493
3494         Web Inspector: Network Tab - Export HAR Context Menu not working
3495         https://bugs.webkit.org/show_bug.cgi?id=181694
3496         <rdar://problem/36479197>
3497
3498         Reviewed by Brian Burg.
3499
3500         * UserInterface/Views/NetworkTableContentView.js:
3501         (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
3502         Ensure `this` works in the handler.
3503
3504 2018-01-15  Matt Baker  <mattbaker@apple.com>
3505
3506         Web Inspector: TabBar redesign: add context menu to TabBar for toggling available tabs
3507         https://bugs.webkit.org/show_bug.cgi?id=181448
3508         <rdar://problem/36383298>
3509
3510         Reviewed by Devin Rousso.
3511
3512         * UserInterface/Base/Main.js:
3513         (WI.loaded):
3514         (WI.contentLoaded):
3515         Reorder production tab classes and default (open) tabs.
3516         (WI.registerTabClass): Removed.
3517         Not used.
3518
3519         * UserInterface/Base/Object.js:
3520         Remove notification that is no longer used.
3521
3522         * UserInterface/Views/GeneralTabBarItem.js:
3523         (WI.GeneralTabBarItem):
3524         (WI.GeneralTabBarItem.prototype.set title):
3525         (WI.GeneralTabBarItem.prototype._handleContextMenuEvent): Deleted.
3526         Remove per-tab context menu (provided Close Tab and Close Other Tabs).
3527
3528         * UserInterface/Views/NewTabContentView.js:
3529         (WI.NewTabContentView):
3530
3531         * UserInterface/Views/TabBar.js:
3532         (WI.TabBar):
3533         (WI.TabBar.prototype._handleContextMenu):
3534
3535         * UserInterface/Views/TabBrowser.js:
3536         (WI.TabBrowser):
3537         (WI.TabBrowser._handleNewTabContextMenu): Deleted.
3538         No longer needed.
3539
3540 2018-01-13  Nikita Vasilyev  <nvasilyev@apple.com>
3541
3542         Web Inspector: Styles Redesign: properties should never be semitransparent or crossed out while editing
3543         https://bugs.webkit.org/show_bug.cgi?id=180793
3544         <rdar://problem/36038813>
3545
3546         Reviewed by Devin Rousso.
3547
3548         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
3549         (.spreadsheet-style-declaration-editor .value.editing):
3550         (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
3551         (.spreadsheet-style-declaration-editor .property.invalid-name:not(.disabled) .content > *):
3552         (.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .content .value):
3553         (.spreadsheet-style-declaration-editor .property.not-inherited .content > *):
3554         * UserInterface/Views/SpreadsheetStyleProperty.js:
3555         (WI.SpreadsheetStyleProperty.prototype._update):
3556
3557 2018-01-12  Joseph Pecoraro  <pecoraro@apple.com>
3558
3559         Web Inspector: Drop support for iOS 7 targets
3560         https://bugs.webkit.org/show_bug.cgi?id=181549
3561         <rdar://problem/36444813>
3562
3563         Reviewed by Brian Burg.
3564
3565         * Versions/Inspector-iOS-7.0.json: Removed.
3566         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js: Removed.
3567         Remove protocol snapshot and generated commands for iOS 7.
3568
3569         * UserInterface/Base/Main.js:
3570         * UserInterface/Controllers/BreakpointPopoverController.js:
3571         (WI.BreakpointPopoverController.prototype._createPopoverContent):
3572         * UserInterface/Controllers/DebuggerManager.js:
3573         (WI.DebuggerManager.prototype._setBreakpoint):
3574         * UserInterface/Controllers/SourceMapManager.js:
3575         (WI.SourceMapManager.prototype._loadAndParseSourceMap):
3576         * UserInterface/Models/Instrument.js:
3577         (WI.Instrument.startLegacyTimelineAgent):
3578         * UserInterface/Models/ResourceTimingData.js:
3579         * UserInterface/Models/ScriptTimelineRecord.js:
3580         (WI.ScriptTimelineRecord.EventType.displayName):
3581         * UserInterface/Models/SourceMapResource.js:
3582         (WI.SourceMapResource.prototype.requestContentFromBackend):
3583         * UserInterface/Protocol/CSSObserver.js:
3584         (WI.CSSObserver.prototype.regionLayoutUpdated): Deleted.
3585         * UserInterface/Protocol/RemoteObject.js:
3586         (WI.RemoteObject.fromPayload):
3587         Remove code that was only necessary to support iOS 7.
3588
3589 2018-01-12  Joseph Pecoraro  <pecoraro@apple.com>
3590
3591         Web Inspector: Support JSX (React) syntax highlighting
3592         https://bugs.webkit.org/show_bug.cgi?id=181607
3593         <rdar://problem/36442564>
3594
3595         Reviewed by Brian Burg.
3596
3597         * UserInterface/Base/MIMETypeUtilities.js:
3598         (WI.mimeTypeForFileExtension):
3599         (WI.fileExtensionForMIMEType):
3600         * UserInterface/Models/Resource.js:
3601         Support the jsx extension and mime types.
3602
3603         * UserInterface/Main.html:
3604         * Scripts/update-codemirror-resources.rb:
3605         * UserInterface/External/CodeMirror/jsx.js: Added.
3606         Include new mode from CodeMirror@d8926768.
3607
3608 2018-01-11  Joseph Pecoraro  <pecoraro@apple.com>
3609
3610         Web Inspector: Rename "Query String" section as "Query String Parameters" for clarity
3611         https://bugs.webkit.org/show_bug.cgi?id=181464
3612
3613         Reviewed by Darin Adler.
3614
3615         * Localizations/en.lproj/localizedStrings.js:
3616         * UserInterface/Views/ResourceHeadersContentView.js:
3617         (WI.ResourceHeadersContentView.prototype.initialLayout):
3618
3619 2018-01-11  Joseph Pecoraro  <pecoraro@apple.com>
3620
3621         Web Inspector: Remove unused variable in WI.DebuggerSidebarPanel
3622         https://bugs.webkit.org/show_bug.cgi?id=181517
3623
3624         Reviewed by Matt Baker.
3625
3626         * UserInterface/Views/DebuggerSidebarPanel.js:
3627
3628 2018-01-10  Joseph Pecoraro  <pecoraro@apple.com>
3629
3630         REGRESSION(r218975): Web Inspector: Add back NavigationSidebarPanel initialization parameter used by SearchSidebarPanel (top overflow shadow)
3631         https://bugs.webkit.org/show_bug.cgi?id=181518
3632         <rdar://problem/36427197>
3633
3634         Reviewed by Matt Baker.
3635
3636         * UserInterface/Views/NavigationSidebarPanel.css:
3637         (.sidebar > .panel.navigation > .overflow-shadow.top):
3638         * UserInterface/Views/NavigationSidebarPanel.js:
3639         (WI.NavigationSidebarPanel):
3640         Add back the initialization parameter still used by SearchSidebarPanel
3641         and add back its implementation. There were still references to
3642         dynamically update _topOverflowShadowElement in NavigationSidebarPanel.
3643
3644 2018-01-10  Joseph Pecoraro  <pecoraro@apple.com>
3645
3646         Web Inspector: Incorrect check with WI.debuggableType
3647         https://bugs.webkit.org/show_bug.cgi?id=181515
3648         <rdar://problem/36425509>
3649
3650         Reviewed by Brian Burg.
3651
3652         * UserInterface/Base/Main.js:
3653         (WI.contentLoaded):
3654         This moved to WI.sharedApp a while ago.
3655
3656 2018-01-10  Matt Baker  <mattbaker@apple.com>
3657
3658         Web Inspector: Canvas tab: throttle recording slider updates
3659         https://bugs.webkit.org/show_bug.cgi?id=180839
3660         <rdar://problem/36057849>
3661
3662         Reviewed by Joseph Pecoraro
3663
3664         * UserInterface/Base/Utilities.js:
3665         Add Object.throttle and Function.cancelThrottle. Repeated calls to a
3666         function on a throttled object are delayed, so that the function isn't
3667         invoked more frequently than the specified delay value.
3668
3669         For a description of throttling behavior see:
3670           - http://www.chrislondon.co/throttling-vs-debouncing
3671           - http://benalman.com/projects/jquery-throttle-debounce-plugin
3672
3673         * UserInterface/Views/RecordingContentView.js:
3674         (WI.RecordingContentView.prototype.updateActionIndex):
3675         Throttle frequency of canvas snapshot creation to 200ms.
3676         (WI.RecordingContentView.prototype.hidden):
3677         Prevent trailing edge call after hiding the view.
3678
3679 2018-01-10  Joseph Pecoraro  <pecoraro@apple.com>
3680
3681         Web Inspector: Should not try to autocomplete subsections of a string
3682         https://bugs.webkit.org/show_bug.cgi?id=181461
3683         <rdar://problem/36369421>
3684
3685         Reviewed by Brian Burg.
3686
3687         * UserInterface/Controllers/CodeMirrorCompletionController.js:
3688         (WI.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
3689         Disable autocompletion within strings.
3690
3691 2018-01-09  Joseph Pecoraro  <pecoraro@apple.com>
3692
3693         REGRESSION(r201855): Web Inspector: Should see "length" autocompletion suggestion on a string literal
3694         https://bugs.webkit.org/show_bug.cgi?id=181462
3695         <rdar://problem/36390699>
3696
3697         Reviewed by Matt Baker.
3698
3699         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
3700         (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.inspectedPage_evalResult_getCompletions):
3701         This is code that runs on the inspected target, which may have an old version of
3702         WebKit/JavaScriptCore, so don't use new syntax like this.
3703
3704         (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
3705         We intended to return the result by as a JSON value instead of a RemoteObject.
3706
3707 2018-01-09  Ross Kirsling  <ross.kirsling@sony.com>
3708
3709         Web Inspector: Layers sidebar shows popover on selection even when collapsed
3710         https://bugs.webkit.org/show_bug.cgi?id=181465
3711
3712         Reviewed by Matt Baker.
3713
3714         * UserInterface/Views/LayerDetailsSidebarPanel.js:
3715         (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
3716         Have sidebar show itself if necessary before displaying popover.
3717
3718 2018-01-08  Joseph Pecoraro  <pecoraro@apple.com>
3719
3720         Web Inspector: Find next / previous within a resource content view does not have bouncy highlight when editor scrolls
3721         https://bugs.webkit.org/show_bug.cgi?id=181279
3722         <rdar://problem/36291097>
3723
3724         Reviewed by Brian Burg.
3725
3726         * UserInterface/Views/TextEditor.js:
3727         (WI.TextEditor.prototype._revealSearchResult):
3728         Reposition the bouncy highlight on scroll based on the CodeMirror
3729         line/ch position of the search result.
3730
3731         (WI.TextEditor.prototype._removeBouncyHighlightElementIfNeeded):
3732         Track the bouncy highlight scroll handler in a member variable so that
3733         we always remember to remove it and don't leak scroll handlers.
3734
3735 2018-01-07  David Kilzer  <ddkilzer@apple.com>
3736
3737         Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects
3738         <https://webkit.org/b/181256>
3739         <rdar://problem/36281730>
3740
3741         Reviewed by Darin Adler.
3742
3743         * Configurations/Base.xcconfig:
3744         (WARNING_CFLAGS): Add -Wcast-qual.
3745
3746 2018-01-05  Joseph Pecoraro  <pecoraro@apple.com>
3747
3748         Web Inspector: Add another Protocol Version
3749         https://bugs.webkit.org/show_bug.cgi?id=181354
3750         <rdar://problem/35432817>
3751
3752         Reviewed by Matt Baker.
3753
3754         * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: Added.
3755         * Versions/Inspector-iOS-11.3.json: Added.
3756
3757 2018-01-04  Devin Rousso  <webkit@devinrousso.com>
3758
3759         Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic
3760         https://bugs.webkit.org/show_bug.cgi?id=180770
3761
3762         Reviewed by Joseph Pecoraro.
3763
3764         * UserInterface/Models/Canvas.js:
3765         (WI.Canvas.fromPayload):
3766         (WI.Canvas.prototype.get contextType):
3767         (WI.Canvas.prototype.saveIdentityToCookie):
3768         (WI.Canvas.prototype.get frame): Deleted.
3769
3770 2018-01-04  Joseph Pecoraro  <pecoraro@apple.com>
3771
3772         REGRESSION (r225709): Web Inspector: CSS Source maps not loading
3773         https://bugs.webkit.org/show_bug.cgi?id=181314
3774         <rdar://problem/36177620>
3775
3776         Reviewed by Brian Burg.
3777
3778         * UserInterface/Controllers/SourceMapManager.js:
3779         (WI.SourceMapManager.prototype._loadAndParseSourceMap):
3780         * UserInterface/Models/SourceMapResource.js:
3781         (WI.SourceMapResource.prototype.requestContentFromBackend):
3782         Correct this so that we only fall back to a reasonable frame id
3783         if we couldn't determine a frame id from earlier. Previously this
3784         was incorrectly clearing the frame id if we had gotten it earlier.
3785
3786         * UserInterface/Test.html:
3787         * UserInterface/Test/Test.js:
3788         (WI.loaded):
3789         Add SourceMap related files for tests.
3790
3791 2018-01-04  Brian Burg  <bburg@apple.com>
3792
3793         Web Inspector: Capture Element Screenshot looks fuzzy
3794         https://bugs.webkit.org/show_bug.cgi?id=175734
3795         <rdar://problem/33803377>
3796
3797         Reviewed by Joseph Pecoraro and Simon Fraser.
3798
3799         Spruce up these functions a bit. They now optionally return a promise
3800         if no callback is supplied. They now can take either a WI.DOMNode or a node id.
3801
3802         * UserInterface/Controllers/DOMTreeManager.js:
3803         (WI.DOMTreeManager.prototype.querySelector):
3804         (WI.DOMTreeManager.prototype.querySelectorAll):
3805
3806 2018-01-04  Brian Burg  <bburg@apple.com>
3807
3808         Web Inspector: add RemoteObject.fetchProperties and some basic tests for RemoteObject API
3809         https://bugs.webkit.org/show_bug.cgi?id=180945
3810
3811         Reviewed by Joseph Pecoraro.
3812
3813         Add a new method, fetchProperties, which async fetches an arbitrary list of properties
3814         from a RemoteObject. This is intended for writing tests and other quick evaluations,
3815         so it has some behaviors that are suitable in these situations:
3816         - If the evaluation throws an exception, the result will reject with that exception.
3817         - If there is a protocol error for some reason, the result will reject with an exception.
3818         - Non-string and non-number keys cause an exception, as this is probably not intended.
3819         - Does not accept a callback, returns a promise only. New code should use async.
3820
3821         For full fidelity introspection of property descriptors, clients should use the existing
3822         getOwnPropertyDescriptor[s] class of methods.
3823
3824         * UserInterface/Protocol/RemoteObject.js:
3825         (WI.RemoteObject.prototype.async.fetchProperties): Added.
3826         - Validate specified keys and remove duplicates.
3827         - Request properties one-by-one to avoid fetching all descriptors and dealing with previews.
3828         - Unwrap returned primitive values to avoid unnecessary munging in tests.
3829
3830         (WI.RemoteObject.prototype.getProperty):
3831         - Rework this to return a promise if no callback was supplied.
3832         - Introduce stricter property type checking to avoid unintended mistakes.
3833
3834         (WI.RemoteObject.prototype.callFunction):
3835         - Rework this to return a promise if no callback was supplied.
3836         - Turn thrown exceptions and protocol errors into rejected promises.
3837
3838 2018-01-04  Joseph Pecoraro  <pecoraro@apple.com>
3839
3840         Web Inspector: ⌘G / ⇧⌘G text search does not working after closing find banner
3841         https://bugs.webkit.org/show_bug.cgi?id=181280
3842         <rdar://problem/36291175>
3843
3844         Reviewed by Matt Baker.
3845
3846         * UserInterface/Views/ContentBrowser.js:
3847         (WI.ContentBrowser.prototype._findBannerDidHide):
3848         When the find banner is hidden trigger a new ContentView method,
3849         searchHidden instead of the destructive searchCleared. This allows
3850         most content views (text editors, DOM tree, Network Headers view)
3851         to keep their populated search results.
3852
3853         * UserInterface/Views/ContentView.js:
3854         (WI.ContentView.prototype.searchHidden):
3855         * UserInterface/Views/LogContentView.js:
3856         (WI.LogContentView.prototype.searchHidden):
3857         By default searchHidden does nothing. The Console's LogContentView
3858         treats the find banner differently and clears its search results.
3859
3860         * UserInterface/Views/TextEditor.js:
3861         (WI.TextEditor.prototype.searchCleared):
3862         Modernize some code while working in this area.
3863
3864         * UserInterface/Views/Main.css:
3865         (.bouncy-highlight):
3866         Ensure black text on yellow background in the bouncy highlight. In the
3867         DOM Tree it could have been white if the find banner was closed.
3868
3869 2018-01-03  Ting-Wei Lan  <lantw44@gmail.com>
3870
3871         Replace hard-coded paths in shebangs with #!/usr/bin/env
3872         https://bugs.webkit.org/show_bug.cgi?id=181040
3873
3874         Reviewed by Alex Christensen.
3875
3876         * Scripts/combine-resources.pl:
3877         * Scripts/copy-user-interface-resources-dryrun.rb:
3878         * Scripts/copy-user-interface-resources.pl:
3879         * Scripts/fix-worker-imports-for-optimized-builds.pl:
3880         * Scripts/remove-console-asserts-dryrun.rb:
3881         * Scripts/remove-console-asserts.pl:
3882         * Scripts/update-LegacyInspectorBackendCommands.rb:
3883         * Scripts/update-codemirror-resources.rb:
3884         * WebInspectorUI.vcxproj/build-webinspectorui.pl:
3885
3886 2018-01-03  Joseph Pecoraro  <pecoraro@apple.com>
3887
3888         Web Inspector: "Log Value" context menu is sometimes unavailable
3889         https://bugs.webkit.org/show_bug.cgi?id=181278
3890         <rdar://problem/36281649>
3891
3892         Reviewed by Devin Rousso.
3893
3894         * UserInterface/Views/ObjectPreviewView.css:
3895         (.object-preview > .title):
3896         * UserInterface/Views/ObjectTreeView.css:
3897         (.object-tree.expanded > .title):
3898         Make the expanded object title information 16px tall to match ObjectTree
3899         tree element row heights. This eliminates the floating console message
3900         location from overlapping the first ObjectTree's TreeElement and causing
3901         truncation and other behavior issues (like Context Menu identification).
3902
3903 2018-01-03  Joseph Pecoraro  <pecoraro@apple.com>
3904
3905         Web Inspector: RTL - DOM Tree Element selection doesn't work
3906         https://bugs.webkit.org/show_bug.cgi?id=181275
3907         <rdar://problem/36290450>
3908
3909         Reviewed by Devin Rousso.
3910
3911         * UserInterface/Views/TreeOutline.js:
3912         (WI.TreeOutline.prototype.treeElementFromEvent):
3913         Provide a better explanation for why we are making the `x` adjustment here,
3914         to detect the inner most tree element along the horizontal. Fix the algorithm
3915         for RTL, since the intent is to adjust to the trailing edge of the container
3916         which is on the opposite side in RTL.
3917
3918 2018-01-03  Joseph Pecoraro  <pecoraro@apple.com>
3919
3920         Web Inspector: Find banner sometimes does not work (when already populated and shown for first time on resource)
3921         https://bugs.webkit.org/show_bug.cgi?id=181255
3922         <rdar://problem/3