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