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