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