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