4ef79cf2dc6409748d6c6f43d0e7e0b65a913947
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2017-12-18  Matt Baker  <mattbaker@apple.com>
2
3         Web Inspector: Canvas tab: placeholder/help text wrapping looks poor at narrow widths
4         https://bugs.webkit.org/show_bug.cgi?id=180943
5         <rdar://problem/36114431>
6
7         Reviewed by Timothy Hatcher.
8
9         * UserInterface/Views/ContentView.css:
10         (.content-view > .message-text-view > .description):
11         * UserInterface/Views/Main.css:
12         (.message-text-view .navigation-item-help):
13         (.message-text-view .navigation-item-help .navigation-bar):
14         (.message-text-view .navigation-item-help .navigation-bar > .item):
15
16 2017-12-18  Devin Rousso  <webkit@devinrousso.com>
17
18         REGRESSION (r225569): Web Inspector: Commented out properties aren't properly highlighted
19         https://bugs.webkit.org/show_bug.cgi?id=180687
20
21         Reviewed by Timothy Hatcher.
22
23         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
24         (.spreadsheet-style-declaration-editor .property:not(.disabled) .name):
25         (.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
26         (.spreadsheet-style-declaration-editor .property.disabled):
27         (.spreadsheet-style-declaration-editor .name): Deleted.
28         (.spreadsheet-style-declaration-editor .value): Deleted.
29         (.spreadsheet-style-declaration-editor .property.disabled, .spreadsheet-style-declaration-editor .property.disabled > *): Deleted.
30
31 2017-12-18  Joseph Pecoraro  <pecoraro@apple.com>
32
33         Web Inspector: Network Tab - waterfall graph can be mis-sized after closing detail view
34         https://bugs.webkit.org/show_bug.cgi?id=180903
35         <rdar://problem/36087903>
36
37         Reviewed by Matt Baker.
38
39         * UserInterface/Views/NetworkTableContentView.js:
40         (WI.NetworkTableContentView.prototype._hideResourceDetailView):
41         Redraw waterfall column after hiding the detail view.
42
43 2017-12-15  Ryan Haddad  <ryanhaddad@apple.com>
44
45         Unreviewed, rolling out r225941.
46
47         This change introduced LayoutTest crashes and assertion
48         failures.
49
50         Reverted changeset:
51
52         "Web Inspector: replace HTMLCanvasElement with
53         CanvasRenderingContext for instrumentation logic"
54         https://bugs.webkit.org/show_bug.cgi?id=180770
55         https://trac.webkit.org/changeset/225941
56
57 2017-12-15  Devin Rousso  <webkit@devinrousso.com>
58
59         Web Inspector: Canvas Tab should be turned on by default
60         https://bugs.webkit.org/show_bug.cgi?id=180594
61         <rdar://problem/35938917>
62
63         Reviewed by Brian Burg.
64
65         * UserInterface/Base/Main.js:
66         (WI.loaded):
67
68 2017-12-15  Nikita Vasilyev  <nvasilyev@apple.com>
69
70         Web Inspector: Styles Redesign: clicking above selector should prepend new property
71         https://bugs.webkit.org/show_bug.cgi?id=180628
72         <rdar://problem/35954570>
73
74         Reviewed by Devin Rousso.
75
76         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
77         (.spreadsheet-style-declaration-editor .property):
78         (.spreadsheet-style-declaration-editor .property-toggle):
79         (.spreadsheet-style-declaration-editor .property.has-warning .warning):
80         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
81         (.spreadsheet-css-declaration):
82         (.spreadsheet-css-declaration :matches(.header, .header-media)):
83         (.spreadsheet-css-declaration :matches(.header, .header-media):first-child):
84         When header-media element is present, header element should have padding-top set to 0.
85
86         (.spreadsheet-css-declaration .header.editing-selector .origin):
87         (.spreadsheet-css-declaration .close-brace):
88
89 2017-12-14  David Kilzer  <ddkilzer@apple.com>
90
91         Enable -Wstrict-prototypes for WebKit
92         <https://webkit.org/b/180757>
93         <rdar://problem/36024132>
94
95         Rubber-stamped by Joseph Pecoraro.
96
97         * Configurations/Base.xcconfig:
98         (CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.
99
100 2017-12-14  Brian Burg  <bburg@apple.com>
101
102         Web Inspector: InspectorTest.evaluateInPage should unwrap primitive values by default
103         https://bugs.webkit.org/show_bug.cgi?id=180831
104
105         Reviewed by Joseph Pecoraro.
106
107         * UserInterface/Test/FrontendTestHarness.js:
108         (FrontendTestHarness.prototype.evaluateInPage.resultObjectToReturn):
109         (FrontendTestHarness.prototype.evaluateInPage):
110         Unwrap the resulting RemoteObject's value if it is a primitive.
111         Add an `options` dictionary so this behavior can be opted out.
112
113         * UserInterface/Test/TestHarness.js:
114         Add documentation of how evaluateInPage works.
115
116 2017-12-14  Nikita Vasilyev  <nvasilyev@apple.com>
117
118         Web Inspector: Styles Redesign: selecting text should not add new properties
119         https://bugs.webkit.org/show_bug.cgi?id=180797
120         <rdar://problem/36039751>
121
122         Reviewed by Devin Rousso.
123
124         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
125         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
126
127 2017-12-14  Devin Rousso  <webkit@devinrousso.com>
128
129         Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic
130         https://bugs.webkit.org/show_bug.cgi?id=180770
131
132         Reviewed by Joseph Pecoraro.
133
134         * UserInterface/Models/Canvas.js:
135         (WI.Canvas.fromPayload):
136         (WI.Canvas.prototype.get contextType):
137         (WI.Canvas.prototype.saveIdentityToCookie):
138         (WI.Canvas.prototype.get frame): Deleted.
139
140 2017-12-14  Joseph Pecoraro  <pecoraro@apple.com>
141
142         Web Inspector: Network Tab - URL filter should be case-insensitive like filter bars in other tabs
143         https://bugs.webkit.org/show_bug.cgi?id=180824
144         <rdar://problem/35910750>
145
146         Reviewed by Brian Burg.
147
148         * UserInterface/Views/NetworkTableContentView.js:
149         (WI.NetworkTableContentView):
150         (WI.NetworkTableContentView.prototype._resetFilters):
151         (WI.NetworkTableContentView.prototype._urlFilterDidChange):
152         Use a case-insensitive regex created from the search query
153         and use that when filtering resources.
154
155         (WI.NetworkTableContentView.prototype._checkURLFilterAgainstFinishedResource): Deleted.
156         (WI.NetworkTableContentView.prototype._checkURLFilterAgainstResource):
157         (WI.NetworkTableContentView.prototype._resourceLoadingDidFinish):
158         (WI.NetworkTableContentView.prototype._resourceLoadingDidFail):
159         Rename the helper for checking the URL filter.
160
161 2017-12-14  Joseph Pecoraro  <pecoraro@apple.com>
162
163         Web Inspector: UncaughtExceptionReporter fails on early errors
164         https://bugs.webkit.org/show_bug.cgi?id=180776
165
166         Reviewed by Brian Burg.
167
168         * UserInterface/Debug/UncaughtExceptionReporter.js:
169         (urlLastPathComponent):
170         (handleError):
171         (handleUncaughtException):
172         URLUtilities parseURL might not be available, so have a small
173         helper for getting a good name from a URL / filename.
174
175         (handleUncaughtExceptionRecord):
176         (dismissErrorSheet):
177         Wrap `WI` namespace accesses in a try/catch since `WI` might not be available.
178         Safely check global variables there were `Foo` as `window.Foo` to avoid errors
179         if they are not actually available.
180
181 2017-12-13  Joseph Pecoraro  <pecoraro@apple.com>
182
183         Web Inspector: Network Tab - Make text filter just a URL filter and update incrementally
184         https://bugs.webkit.org/show_bug.cgi?id=180796
185
186         Reviewed by Brian Burg.
187
188         Revert the Network Tab's text filter back to being just a URL filter with the
189         normal behaviors of our other text filters that update as you type (incremental).
190         This also renames the "text filter" to "url filter" everywhere in the ContentView
191         for clarity. A follow-up change will make the url filter be case-insensitive
192         to fully match the filter bars in other tabs.
193
194         * Localizations/en.lproj/localizedStrings.js:
195         * UserInterface/Views/NetworkTableContentView.js:
196         (WI.NetworkTableContentView):
197         (WI.NetworkTableContentView.prototype.get filterNavigationItems):
198         (WI.NetworkTableContentView.prototype._checkURLFilterAgainstFinishedResource):
199         (WI.NetworkTableContentView.prototype._updateURLFilterActiveIndicator):
200         (WI.NetworkTableContentView.prototype._resourceLoadingDidFinish):
201         (WI.NetworkTableContentView.prototype._resourceLoadingDidFail):
202         (WI.NetworkTableContentView.prototype._hasURLFilter):
203         (WI.NetworkTableContentView.prototype._hasActiveFilter):
204         (WI.NetworkTableContentView.prototype._passURLFilter):
205         (WI.NetworkTableContentView.prototype._passFilter):
206         (WI.NetworkTableContentView.prototype._updateFilteredEntries):
207         (WI.NetworkTableContentView.prototype._resetFilters):
208         (WI.NetworkTableContentView.prototype._urlFilterDidChange):
209         (WI.NetworkTableContentView.prototype._checkTextFilterAgainstFinishedResource): Deleted.
210         (WI.NetworkTableContentView.prototype._checkTextFilterAgainstFailedResource): Deleted.
211         (WI.NetworkTableContentView.prototype._updateTextFilterActiveIndicator): Deleted.
212         (WI.NetworkTableContentView.prototype._hasTextFilter): Deleted.
213         (WI.NetworkTableContentView.prototype._passTextFilter): Deleted.
214         (WI.NetworkTableContentView.prototype._textFilterDidChange): Deleted.
215
216 2017-12-13  Joseph Pecoraro  <pecoraro@apple.com>
217
218         REGRESSION: Web Inspector: Opening inspector crashes page if there are empty resources
219         https://bugs.webkit.org/show_bug.cgi?id=180787
220         <rdar://problem/35934838>
221
222         Reviewed by Brian Burg.
223
224         * UserInterface/Test/TestUtilities.js:
225         Add a generic sanitizeURL used by many tests.
226
227         * UserInterface/TestStub.html:
228         Include TestUtilities.
229
230 2017-12-13  Devin Rousso  <webkit@devinrousso.com>
231
232         Web Inspector: add instrumentation for ImageBitmapRenderingContext
233         https://bugs.webkit.org/show_bug.cgi?id=180736
234
235         Reviewed by Joseph Pecoraro.
236
237         * UserInterface/Base/ImageUtilities.js:
238         (WI.ImageUtilities.promisifyLoad):
239         (WI.ImageUtilities.imageFromImageBitmap):
240
241         * UserInterface/Models/Canvas.js:
242         (WI.Canvas.fromPayload):
243         (WI.Canvas.displayNameForContextType):
244
245         * UserInterface/Models/NativeFunctionParameters.js:
246
247         * UserInterface/Models/Recording.js:
248         (WI.Recording.displayNameForSwizzleType):
249         (WI.Recording.prototype.async swizzle):
250
251         * UserInterface/Views/RecordingActionTreeElement.js:
252         (WI.RecordingActionTreeElement._generateDOM):
253         (WI.RecordingActionTreeElement._generateDOM.createParameterElement):
254
255 2017-12-12  Nikita Vasilyev  <nvasilyev@apple.com>
256
257         Web Inspector: Styles Redesign: navigating away from empty value should remove CSS property
258         https://bugs.webkit.org/show_bug.cgi?id=180508
259
260         Reviewed by Devin Rousso.
261
262         Remove a property when navigating away from it (e.g. to the next/previous property,
263         or outside of the styles panel entirely) and either its name or value is empty:
264
265             color: [ ]->
266             <-[ ]: red
267             <-[color]:
268
269         Don't remove a property when navigating from an empty value to a non-empty name:
270
271             color: <-[ ]
272
273         Always remove a property when both name and value are empty.
274
275         * UserInterface/Views/SpreadsheetStyleProperty.js:
276         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
277         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
278         * UserInterface/Views/SpreadsheetTextField.js:
279         (WI.SpreadsheetTextField.prototype._handleBlur):
280         (WI.SpreadsheetTextField.prototype.get valueBeforeEditing): Deleted.
281
282 2017-12-12  Brian Burg  <bburg@apple.com>
283
284         Web Inspector: support async setup() and async teardown() in AsyncTestSuite
285         https://bugs.webkit.org/show_bug.cgi?id=180626
286
287         Reviewed by Timothy Hatcher.
288
289         This can make some code simpler by removing Promise-related boilerplate. I'm splitting
290         this patch from the new use-site in the interest of making it easier to review.
291
292         * UserInterface/Test/TestSuite.js:
293         (AsyncTestSuite.prototype.runTestCases):
294         (AsyncTestSuite):
295
296 2017-12-12  Brian Burg  <bburg@apple.com>
297
298         Web Inspector: SyncTestSuite should complain if passed an async setup/test/teardown function
299         https://bugs.webkit.org/show_bug.cgi?id=180717
300
301         Reviewed by Devin Rousso.
302
303         * UserInterface/Test/TestSuite.js:
304         (SyncTestSuite.prototype.addTestCase):
305         Raise an exception if test/setup/teardown is an async function. It won't work.
306
307 2017-12-12  Brian Burg  <bburg@apple.com>
308
309         Web Inspector: add InspectorTest.expectException() and use it
310         https://bugs.webkit.org/show_bug.cgi?id=180719
311
312         Reviewed by Matt Baker.
313
314         This helps straighten out async test() functions that need
315         to test exceptional cases. Without this, every such method
316         needs try/catch boilerplate to leak the error outside the
317         scope of the catch-block and then assert that it exists.
318
319         * UserInterface/Test/TestHarness.js:
320         (TestHarness.prototype.expectException):
321         Added. This method takes a callback which is expected to raise
322         an exception either by throwing an Error instance or returning
323         a Promise that rejects with an Error instance. The method returns
324         a Promise that is either resolved with the expected exception
325         from one of the above sources, or is rejected with the non-exception
326         result that was returned or resolved by the callback.
327
328 2017-12-12  Michael Catanzaro  <mcatanzaro@igalia.com>
329
330         Don't require perl(File::Copy::Recursive)
331         https://bugs.webkit.org/show_bug.cgi?id=180479
332         <rdar://problem/35944218>
333
334         Reviewed by Daniel Bates.
335
336         Fix the error handling. I added this at the last moment and failed to test. The logic is
337         inverted, causing an error to always be reported on success.
338
339         Add a missing 'mkdir -p' using File::Path::make_path. This has its own built-in error
340         reporting, so no need to add our own.
341
342         * Scripts/copy-user-interface-resources.pl:
343         (ditto):
344
345 2017-12-12  Michael Catanzaro  <mcatanzaro@igalia.com>
346
347         Unreviewed, don't print empty error message when copying resource fails
348
349         Unsurprisingly, when system() fails, there is not any useful error to be printed, so don't.
350
351         * Scripts/copy-user-interface-resources.pl:
352         (ditto):
353
354 2017-12-08  Joseph Pecoraro  <pecoraro@apple.com>
355
356         ServiceWorker Inspector: Various issues inspecting service worker on mobile.twitter.com
357         https://bugs.webkit.org/show_bug.cgi?id=180520
358         <rdar://problem/35900764>
359
360         Reviewed by Brian Burg.
361
362         * UserInterface/Main.html:
363         * UserInterface/Test.html:
364         New files.
365
366         * UserInterface/Controllers/SourceMapManager.js:
367         (WI.SourceMapManager.prototype._loadAndParseSourceMap):
368         * UserInterface/Models/SourceMapResource.js:
369         (WI.SourceMapResource.prototype.requestContentFromBackend):
370         A ServiceWorker inspector doesn't have a main frame, fall back to an
371         empty frameIdentifier, it is ignored by the Service Worker network agent.
372
373         * UserInterface/Base/Main.js:
374         Handle a Service Worker inspector where there is no frame. This can
375         search the main resource's resource collection.
376
377         * UserInterface/Controllers/DebuggerManager.js:
378         (WI.DebuggerManager.prototype.scriptDidParse):
379
380         * UserInterface/Controllers/FrameResourceManager.js:
381         (WI.FrameResourceManager.prototype.resourceRequestDidFailLoading):
382         In Service Workers the resources won't have a parent frame.
383
384         (WI.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
385         (WI.FrameResourceManager.prototype._processServiceWorkerInitializationInfo):
386         In service worker initialization fallback to using the script content
387         as the main resource if we didn't get a Script that actually includes it.
388
389         * UserInterface/Models/LocalScript.js:
390         (WI.LocalScript):
391         (WI.LocalScript.prototype.requestContentFromBackend):
392         A way to create a local Script with content.
393
394         * UserInterface/Views/SourceCodeTextEditor.js:
395         (WI.SourceCodeTextEditor.prototype.get _supportsDebugging):
396         Disallow breakpoints in a LocalScript since we have no way to tell the
397         backend where to set breakpoints.
398
399         * UserInterface/Models/TextRange.js:
400         (WI.TextRange.fromText):
401         Add a way to get a TextRange from static text.
402
403 2017-12-08  Michael Catanzaro  <mcatanzaro@igalia.com>
404
405         Don't require perl(File::Copy::Recursive)
406         https://bugs.webkit.org/show_bug.cgi?id=180479
407
408         Reviewed by Konstantin Tokarev.
409
410         If File::Copy::Recursive is not installed, there is currently a Darwin
411         fallback to the ditto command. That doesn't exist on Linux, but we can
412         emulate it by running 'cp -R' on everything in the source directory.
413         This should probably work everywhere except Windows.
414
415         * Scripts/copy-user-interface-resources.pl:
416         (ditto):
417
418 2017-12-07  Eric Carlson  <eric.carlson@apple.com>
419
420         Simplify log channel configuration UI
421         https://bugs.webkit.org/show_bug.cgi?id=180527
422         <rdar://problem/35908382>
423
424         Reviewed by Joseph Pecoraro.
425
426         * Localizations/en.lproj/localizedStrings.js:
427         * UserInterface/Models/LoggingChannel.js:
428         * UserInterface/Views/SettingsTabContentView.js:
429         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
430
431 2017-12-07  Matt Lewis  <jlewis3@apple.com>
432
433         Unreviewed, rolling out r225634.
434
435         This caused layout tests to time out.
436
437         Reverted changeset:
438
439         "Simplify log channel configuration UI"
440         https://bugs.webkit.org/show_bug.cgi?id=180527
441         https://trac.webkit.org/changeset/225634
442
443 2017-12-07  Eric Carlson  <eric.carlson@apple.com>
444
445         Simplify log channel configuration UI
446         https://bugs.webkit.org/show_bug.cgi?id=180527
447         <rdar://problem/35908382>
448
449         Reviewed by Joseph Pecoraro.
450
451         * Localizations/en.lproj/localizedStrings.js:
452         * UserInterface/Models/LoggingChannel.js:
453         * UserInterface/Views/SettingsTabContentView.js:
454         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
455
456 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
457
458         Web Inspector: Canvas: spurious warnings shown for commands that changed pixel contents
459         https://bugs.webkit.org/show_bug.cgi?id=180505
460         <rdar://problem/35891651>
461
462         Reviewed by Brian Burg.
463
464         * UserInterface/Models/RecordingAction.js:
465         (WI.RecordingAction.prototype.apply.getContent):
466         (WI.RecordingAction.prototype.apply):
467
468 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
469
470         Web Inspector: Style Redesign: filtering removes header if one rule has no match even if others do
471         https://bugs.webkit.org/show_bug.cgi?id=180467
472
473         Reviewed by Timothy Hatcher.
474
475         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
476         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
477         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
478
479 2017-12-06  Matt Baker  <mattbaker@apple.com>
480
481         Web Inspector: Details section headers overlap Classes container in the Computed Styles panel
482         https://bugs.webkit.org/show_bug.cgi?id=180380
483
484         Reviewed by Timothy Hatcher.
485
486         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
487         (.sidebar > .panel.details.css-style > .content ~ :matches(.options-container, .class-list-container)):
488
489 2017-12-06  Matt Baker  <mattbaker@apple.com>
490
491         Web Inspector: Canvas Tab initial user experience is poor when no canvases exist
492         https://bugs.webkit.org/show_bug.cgi?id=179329
493         <rdar://problem/35842036>
494
495         Reviewed by Timothy Hatcher.
496
497         This patch adds a new method, WI.createNavigationItemHelp, for creating command
498         help to display in a message text view. The method accepts a format string and
499         NavigationItem, and returns a DOM element. For example,
500
501             WI.createNavigationItemHelp("Press %s to do X.", navigationItem)
502
503         returns:
504
505             <div class="navigation-item-help">
506                 Press <div class="navigation-bar"><div class="item">...</div></div> to do X.
507             </div>
508
509         * Localizations/en.lproj/localizedStrings.js:
510         * UserInterface/Base/Main.js:
511
512         * UserInterface/Controllers/CanvasManager.js:
513         (WI.CanvasManager.prototype.importRecording):
514         Importing a recording should be a manager command with a corresponding
515         event, so that it's decoupled from any specific location in the UI.
516
517         * UserInterface/Views/CanvasOverviewContentView.js:
518         (WI.CanvasOverviewContentView):
519
520         * UserInterface/Views/CanvasTabContentView.js:
521         (WI.CanvasTabContentView):
522         (WI.CanvasTabContentView.prototype.attached):
523         (WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
524         (WI.CanvasTabContentView.prototype._recordingStopped): Deleted.
525         (WI.CanvasTabContentView.prototype._navigationSidebarImport): Deleted.
526
527         * UserInterface/Views/Main.css:
528         (.message-text-view .navigation-item-help):
529         (.message-text-view .navigation-item-help .navigation-bar):
530         (.message-text-view .navigation-item-help .navigation-bar > .item):
531         New styles for a NavigationItem appearing inline as part of descriptive
532         text. Wrapped in a fake navigation bar so navigation item styles are picked up.
533
534         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
535         (WI.RecordingNavigationSidebarPanel.prototype.initialLayout):
536         (WI.RecordingNavigationSidebarPanel.prototype._importNavigationItemClicked): Deleted.
537         Moved import code to CanvasManager.
538
539 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
540
541         Web Inspector: REGRESSION(r225569): CSSStyleDetailsSidebarPanel no longer exists
542         https://bugs.webkit.org/show_bug.cgi?id=180466
543
544         Reviewed by Joseph Pecoraro.
545
546         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
547         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.applyFilter):
548         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleEditorFilterApplied):
549
550         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
551         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
552         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
553
554         * UserInterface/Views/SpreadsheetStyleProperty.js:
555         (WI.SpreadsheetStyleProperty.prototype.applyFilter):
556
557 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
558
559         Web Inspector: Styles Redesign: display related pseudo-elements
560         https://bugs.webkit.org/show_bug.cgi?id=176187
561         <rdar://problem/34194917>
562
563         Reviewed by Timothy Hatcher.
564
565         * Localizations/en.lproj/localizedStrings.js:
566
567         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
568         (WI.SpreadsheetRulesStyleDetailsPanel):
569         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
570         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
571         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
572         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
573         (.spreadsheet-style-panel .section-header):
574         (.spreadsheet-style-panel .section-header .node-link):
575         (.spreadsheet-style-panel .section-header .node-link:hover):
576         (.spreadsheet-style-panel .section-inherited): Deleted.
577         (.spreadsheet-style-panel .section-inherited .node-link): Deleted.
578         (.spreadsheet-style-panel .section-inherited .node-link:hover): Deleted.
579         After all of the matched and inherited styles are added, loop over each pseudo-element, get
580         the DOMNodeStyles for each, refresh them if needed, and then add the header and sections.
581
582         * UserInterface/Models/DOMNodeStyles.js:
583         (WI.DOMNodeStyles.prototype.refreshIfNeeded):
584         (WI.DOMNodeStyles.prototype.refresh):
585         Return a reference to the DOMNodeStyles object once the refresh promise is resolved.
586
587         * UserInterface/Models/DOMNode.js:
588         (WI.DOMNode.prototype.get displayName):
589         If the node is a pseudo-element, display the pseudo-type instead of the node name.
590
591 2017-12-06  Devin Rousso  <webkit@devinrousso.com>
592
593         Web Inspector: [PARITY] Styles Redesign: Ability to add new style rules
594         https://bugs.webkit.org/show_bug.cgi?id=178329
595         <rdar://problem/35001005>
596
597         Reviewed by Timothy Hatcher.
598
599         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
600         (WI.SpreadsheetRulesStyleDetailsPanel):
601         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
602         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.newRuleButtonClicked):
603         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.newRuleButtonContextMenu):
604         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._addNewRule):
605         Implement the two functions that CSSStyleDetailsSidebarPanel expects to exist in order for
606         the selected panel to support adding a new rule.
607
608         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
609         (WI.SpreadsheetCSSStyleDeclarationSection):
610         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout):
611         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector):
612         If the _selectorElement has not been created yet, set a flag and focus it once layout() has
613         been called (thereby ensuring that initialLayout() has been called).
614
615 2017-12-05  Devin Rousso  <webkit@devinrousso.com>
616
617         Web Inspector: Styles Redesign: for newly added properties, pressing delete in empty value field should focus on name field
618         https://bugs.webkit.org/show_bug.cgi?id=179831
619         <rdar://problem/35626976>
620
621         Reviewed by Timothy Hatcher.
622
623         * UserInterface/Views/SpreadsheetTextField.js:
624         (WI.SpreadsheetTextField.prototype._handleKeyDown):
625
626         * UserInterface/Views/SpreadsheetStyleProperty.js:
627         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBackspace):
628
629 2017-12-05  Devin Rousso  <webkit@devinrousso.com>
630
631         Web Inspector: [PARITY] Styles Redesign: Make filtering work
632         https://bugs.webkit.org/show_bug.cgi?id=178331
633         <rdar://problem/35001015>
634
635         Reviewed by Timothy Hatcher.
636
637         Since both the sections and editors (per-section) use View semantics, we cannot simply
638         search for instances of the filtered text since not all of the subviews may have called
639         layout() yet. Instead, we have to rely on event listeners to relay information as to whether
640         the filtered text was matched up the chain, applying the correct style classes along the way.
641
642         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
643         (WI.SpreadsheetRulesStyleDetailsPanel):
644         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
645         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
646         (WI.SpreadsheetRulesStyleDetailsPanel.prototype.filterDidChange):
647         (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
648         Save the "Inherited From" elements so that they can be hidden if no styles inherited from
649         that node match the filter.
650
651         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
652         (WI.SpreadsheetCSSStyleDeclarationSection):
653         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
654         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout):
655         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.applyFilter):
656         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector):
657         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._createMediaHeader):
658         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleEditorFilterApplied):
659         Save the media header elements so that they can also be filtered.
660
661         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
662         (WI.SpreadsheetCSSStyleDeclarationEditor):
663         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
664         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.applyFilter):
665
666         * UserInterface/Views/SpreadsheetStyleProperty.js:
667         (WI.SpreadsheetStyleProperty):
668         (WI.SpreadsheetStyleProperty.prototype.applyFilter):
669         (WI.SpreadsheetStyleProperty.prototype._update):
670         Move the name and value elements to a new container so that filter highlight won't also
671         apply to the checkbox or warning element.
672
673 2017-12-05  Nikita Vasilyev  <nvasilyev@apple.com>
674
675         Web Inspector: Styles Redesign: adding a property before or after the first one appends it to the end
676         https://bugs.webkit.org/show_bug.cgi?id=180321
677         <rdar://problem/35816402>
678
679         Reviewed by Timothy Hatcher.
680
681         * UserInterface/Models/CSSStyleDeclaration.js:
682         (WI.CSSStyleDeclaration.prototype._rangeAfterPropertyAtIndex):
683         * UserInterface/Models/TextRange.js:
684         (WI.TextRange.prototype.collapseToStart):
685
686 2017-12-05  Joseph Pecoraro  <pecoraro@apple.com>
687
688         Web Inspector: Empty Message View in Network Tab has padding at top
689         https://bugs.webkit.org/show_bug.cgi?id=180453
690
691         Reviewed by Matt Baker.
692
693         * UserInterface/Views/NetworkTableContentView.css:
694         (.content-view.network .message-text-view): Deleted.
695
696 2017-12-05  Nikita Vasilyev  <nvasilyev@apple.com>
697
698         Web Inspector: Styles: make Computed a top-level sidebar tab
699         https://bugs.webkit.org/show_bug.cgi?id=174229
700         <rdar://problem/33170193>
701
702         Reviewed by Matt Baker.
703
704         Styles dropdown tab selector was removed. Styles and Computed are now top-level sidebar tabs.
705
706         Visual styles is no longer visible in the Styles sidebar tabs by default but can be enabled in the settings.
707
708         * Localizations/en.lproj/localizedStrings.js:
709         * UserInterface/Base/Setting.js:
710         * UserInterface/Main.html:
711         * UserInterface/Views/CSSStyleDeclarationSection.js:
712         (WI.CSSStyleDeclarationSection.prototype.findMatchingPropertiesAndSelectors):
713         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
714         (WI.CSSStyleDeclarationTextEditor.prototype.findMatchingProperties):
715         (WI.CSSStyleDeclarationTextEditor.prototype.removeNonMatchingProperties):
716         * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js: Added.
717         (WI.ComputedStyleDetailsSidebarPanel):
718         * UserInterface/Views/DOMTreeOutline.js:
719         (WI.DOMTreeOutline.prototype._ondragover):
720         (WI.DOMTreeOutline.prototype._ondrop):
721         * UserInterface/Views/ElementsTabContentView.js:
722         (WI.ElementsTabContentView):
723         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: Renamed from Source/WebInspectorUI/UserInterface/Views/CSSStyleDetailsSidebarPanel.css.
724         * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: Renamed from Source/WebInspectorUI/UserInterface/Views/CSSStyleDetailsSidebarPanel.js.
725         (WI.GeneralStyleDetailsSidebarPanel):
726         (WI.GeneralStyleDetailsSidebarPanel.prototype.get panel):
727         (WI.GeneralStyleDetailsSidebarPanel.prototype.visibilityDidChange):
728         (WI.GeneralStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
729         (WI.GeneralStyleDetailsSidebarPanel.prototype.layout):
730         (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
731         (WI.GeneralStyleDetailsSidebarPanel.prototype.sizeDidChange):
732         (WI.GeneralStyleDetailsSidebarPanel.prototype.get _initialScrollOffset):
733         (WI.GeneralStyleDetailsSidebarPanel.prototype._updateNoForcedPseudoClassesScrollOffset):
734         (WI.GeneralStyleDetailsSidebarPanel.prototype._showPanel):
735         (WI.GeneralStyleDetailsSidebarPanel.prototype._newRuleButtonClicked):
736         (WI.GeneralStyleDetailsSidebarPanel.prototype._newRuleButtonContextMenu):
737         (WI.GeneralStyleDetailsSidebarPanel.prototype._populateClassToggles):
738         (WI.GeneralStyleDetailsSidebarPanel.prototype._createToggleForClassName):
739         (WI.GeneralStyleDetailsSidebarPanel.prototype._filterDidChange):
740         Styles and Computed tabs share a few UI components, such as force state (:hover, :focus, etc.),
741         filter field, and CSS class toggle components. To implement this, CSSStyleDetailsSidebarPanel was renamed
742         to GeneralStyleDetailsSidebarPanel.
743
744         CSSStyleDetailsSidebarPanel used to support several panels. This is no longer the case with GeneralStyleDetailsSidebarPanel:
745         - _initiallySelectedPanel was removed.
746         - _selectedPanel was replaced by _panel.
747
748         * UserInterface/Views/GroupNavigationItem.js:
749         (WI.GroupNavigationItem.prototype.get minimumWidth):
750         * UserInterface/Views/NavigationBar.css:
751         (.navigation-bar .item,):
752         (.sidebar-navigation-bar):
753         (.sidebar-navigation-bar .holder):
754         * UserInterface/Views/NavigationBar.js:
755         (WI.NavigationBar.prototype._calculateMinimumWidth):
756         Minor optimization: don't toggle class names when there are no visible navigation items.
757
758         * UserInterface/Views/RulesStyleDetailsPanel.js:
759         (WI.RulesStyleDetailsPanel.prototype.filterDidChange):
760         * UserInterface/Views/RulesStyleDetailsSidebarPanel.js: Copied from Source/WebInspectorUI/UserInterface/Views/NavigationBar.css.
761         (WI.RulesStyleDetailsSidebarPanel):
762         * UserInterface/Views/SearchTabContentView.js:
763         (WI.SearchTabContentView):
764         * UserInterface/Views/SettingsTabContentView.js:
765         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
766         * UserInterface/Views/Sidebar.js:
767         (WI.Sidebar):
768         * UserInterface/Views/SidebarNavigationBar.js: Copied from Source/WebInspectorUI/UserInterface/Views/NavigationBar.css.
769         (WI.SidebarNavigationBar):
770         (WI.SidebarNavigationBar.prototype.insertNavigationItem):
771         (WI.SidebarNavigationBar.prototype._calculateMinimumWidth):
772         SidebarNavigationBar wraps navigation items in an element so it can correctly calculate the width of all items with spacing between them.
773
774         * UserInterface/Views/StyleDetailsPanel.js:
775         (WI.StyleDetailsPanel.prototype.get _initialScrollOffset):
776         * UserInterface/Views/VisualStyleDetailsSidebarPanel.js: Copied from Source/WebInspectorUI/UserInterface/Views/NavigationBar.css.
777         (WI.VisualStyleDetailsSidebarPanel):
778
779 2017-12-05  Joseph Pecoraro  <pecoraro@apple.com>
780
781         Web Inspector: content views for resources loaded through XHR do not reflect declared mime-type
782         https://bugs.webkit.org/show_bug.cgi?id=141389
783         <rdar://problem/19767070>
784
785         Reviewed by Brian Burg.
786
787         * UserInterface/Base/Utilities.js:
788         Blob <-> Text conversion helpers.
789
790         * UserInterface/Models/Resource.js:
791         (WI.Resource.prototype.createObjectURL):
792         Previously all Image resources were assumed to have base64Encoded data
793         which we automatically convert to a Blob. Now that some image data
794         can be transfered as text, convert that to a Blob here since the output
795         is expected to be a Blob.
796
797         * UserInterface/Views/ResourceContentView.js:
798         (WI.ResourceContentView.prototype.showGenericNoContentMessage):
799         * UserInterface/Views/TextResourceContentView.js:
800         (WI.TextResourceContentView.prototype.contentAvailable):
801         (WI.TextResourceContentView.prototype._contentDidPopulate):
802         * UserInterface/Views/ImageResourceContentView.js:
803         (WI.ImageResourceContentView.prototype.contentAvailable):
804         Better handle no content cases.
805
806         * UserInterface/Views/ResourceClusterContentView.js:
807         (WI.ResourceClusterContentView.prototype.get responseContentView):
808         (WI.ResourceClusterContentView.prototype._contentViewForResourceType):
809         Make a best effort to find a good ContentView to show the resource data.
810         This is done by looking at the ResourceType and MIME Type.
811
812         * UserInterface/Views/SVGImageResourceClusterContentView.js:
813         (WI.SVGImageResourceClusterContentView.prototype._showContentViewForIdentifier):
814         Handle if image data is now text (the image/svg+xml case).
815
816 2017-12-05  Simon Fraser  <simon.fraser@apple.com>
817
818         Remove webkitGetImageDataHD and webkitPutImageDataHD from canvas API
819         https://bugs.webkit.org/show_bug.cgi?id=180387
820
821         Reviewed by Dean Jackson.
822
823         CanvasRenderingContext2D.webkitGetImageDataHD and webkitPutImageDataHD were never standardized,
824         and Blink removed support in 2014 (https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/FOPH5dloGG8).
825
826         Since our canvas backing store is always 1x, they have no use anyway, so remove them.
827
828         * UserInterface/Models/NativeFunctionParameters.js:
829         * UserInterface/Models/RecordingAction.js:
830         (WI.RecordingAction.prototype.getImageParameters):
831         (WI.RecordingAction):
832         * UserInterface/Views/RecordingActionTreeElement.js:
833         (WI.RecordingActionTreeElement._classNameForAction.classNameForActionName):
834         (WI.RecordingActionTreeElement._classNameForAction):
835
836 2017-12-04  Devin Rousso  <webkit@devinrousso.com>
837
838         Web Inspector: provide method for recording CanvasRenderingContext2D from JavaScript
839         https://bugs.webkit.org/show_bug.cgi?id=175166
840         <rdar://problem/34040740>
841
842         Reviewed by Joseph Pecoraro.
843
844         * UserInterface/Controllers/CanvasManager.js:
845         (WI.CanvasManager.prototype.recordingFinished):
846         If a `name` is sent with the payload, use it as the suggested name.
847
848         * UserInterface/Models/NativeFunctionParameters.js:
849         Add `console.record` and `console.recordEnd`.
850
851         * UserInterface/Views/CanvasTabContentView.js:
852         (WI.CanvasTabContentView.prototype.showRepresentedObject):
853         Drive-by: remove logic that toggled the collapsed state of the navigation sidebar, as this
854         was not very controllable by the user and often was aggravating.
855
856         (WI.CanvasTabContentView.prototype._recordingStopped):
857         Only show the recording if it was not started from the console. This can determined by
858         CanvasManager when it recieves a recording if the recording's source is not the same as the
859         current canvas being recorded.
860
861 2017-12-04  Matt Baker  <mattbaker@apple.com>
862
863         Web Inspector: Canvas Tab initial user interface needs some polish
864         https://bugs.webkit.org/show_bug.cgi?id=179330
865         <rdar://problem/35367581>
866
867         Reviewed by Joseph Pecoraro.
868
869         Update the Canvas overview placeholder text and prevent appearance of
870         the vertical scrollbar when no canvases exist. This patch also includes
871         a bunch of cleanup of code that creates content placeholder text throughout
872         the UI, and makes sure all text is styled consistently.
873
874         * Localizations/en.lproj/localizedStrings.js:
875         Updated Canvas overview message text.
876
877         * UserInterface/Base/Main.js:
878         Make the "message text view" a container with child message element, instead
879         of a simple element with text content. This makes it simpler to customize
880         the message (by adding buttons, more text, etc).
881
882         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
883         (.sidebar > .panel.details.canvas .details-section.canvas-extensions .content > ul):
884         (.sidebar > .panel.details.canvas > .content > .empty-content-placeholder): Deleted.
885         (.sidebar > .panel.details.canvas > .content > .empty-content-placeholder > .message): Deleted.
886         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
887         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
888
889         * UserInterface/Views/CanvasOverviewContentView.js:
890         (WI.CanvasOverviewContentView):
891         Customize the content placeholder to include a description beneath
892         the "No Canvas Contexts" message.
893
894         * UserInterface/Views/CollectionContentView.css:
895         (.content-view.collection):
896         Change overflow-y to auto, to prevent scrollbar from appearing when
897         "Show scroll bars" system preference is enabled on macOS.
898
899         * UserInterface/Views/CollectionContentView.js:
900         Add support for custom content placeholders.
901         (WI.CollectionContentView):
902         (WI.CollectionContentView.prototype._showContentPlaceholder):
903         (WI.CollectionContentView.prototype._hideContentPlaceholder):
904
905         * UserInterface/Views/ContentView.css:
906         (.content-view > .message-text-view):
907         (.content-view > .message-text-view > .message):
908
909         * UserInterface/Views/DebuggerSidebarPanel.css:
910         (.sidebar > .panel.navigation.debugger > .content):
911         (.sidebar > .panel.navigation.debugger > :matches(.content, .empty-content-placeholder)): Deleted.
912
913         * UserInterface/Views/DetailsSection.css:
914         (.details-section > .content > .group > .row > .message-text-view):
915
916         * UserInterface/Views/Main.css:
917         (.message-text-view):
918         (.message-text-view > .message):
919         (.message-text-view.error):
920
921         * UserInterface/Views/NavigationSidebarPanel.css:
922         (.sidebar > .panel.navigation > .overflow-shadow):
923         (.sidebar > .panel.navigation > .content .empty-content-placeholder): Deleted.
924         (.sidebar > .panel.navigation > .content > .empty-content-placeholder): Deleted.
925         (.sidebar > .panel.navigation > .content .empty-content-placeholder > .message): Deleted.
926
927         * UserInterface/Views/NavigationSidebarPanel.js:
928         (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
929         (WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded):
930
931         * UserInterface/Views/NetworkTableContentView.css:
932         (.content-view.network .message-text-view):
933         (.content-view.network .message-text-view > .message):
934         Workaround to prevent "No Filter Results" message from being styled like
935         "full width" messages displayed in ContentViews (large, bold font).
936         This is needed because the placeholder message element is a immediate child
937         of the network content view, rather than the network table.
938
939         (.content-view.network .empty-content-placeholder): Deleted.
940         (body[dir=ltr] .content-view.network .empty-content-placeholder): Deleted.
941         (body[dir=rtl] .content-view.network .empty-content-placeholder): Deleted.
942         (.content-view.network .empty-content-placeholder > .message): Deleted.
943
944         * UserInterface/Views/NetworkTableContentView.js:
945         (WI.NetworkTableContentView.prototype._showEmptyFilterResultsMessage):
946
947         * UserInterface/Views/RecordingNavigationSidebarPanel.css:
948         (.sidebar > .panel.navigation.recording > .content):
949         (.sidebar > .panel.navigation.recording > :matches(.content, .empty-content-placeholder)): Deleted.
950
951         * UserInterface/Views/ResourceSidebarPanel.css:
952         (.sidebar > .panel.navigation.resource > .content):
953         (.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)): Deleted.
954
955         * UserInterface/Views/RulesStyleDetailsPanel.css:
956         (.sidebar > .panel.details.css-style > .content > .rules > .message-text-view):
957         (.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .message-text-view):
958         (.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .no-filter-results): Deleted.
959         (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results): Deleted.
960         (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results > .no-filter-results-message): Deleted.
961
962         * UserInterface/Views/RulesStyleDetailsPanel.js:
963         (WI.RulesStyleDetailsPanel):
964
965         * UserInterface/Views/SearchSidebarPanel.css:
966         (.sidebar > .panel.navigation.search > :matches(.content, .message-text-view)):
967         (.sidebar > .panel.navigation.search.changed > :matches(.content, .message-text-view)):
968         (.sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)): Deleted.
969         (.sidebar > .panel.navigation.search.changed > :matches(.content, .empty-content-placeholder)): Deleted.
970
971         * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
972         (WI.SpreadsheetRulesStyleDetailsPanel):
973
974         * UserInterface/Views/StorageSidebarPanel.css:
975         (.sidebar > .panel.navigation.storage > .content):
976         (.sidebar > .panel.navigation.storage > :matches(.content, .empty-content-placeholder)): Deleted.
977
978         * UserInterface/Views/Variables.css:
979         (:root):
980
981 2017-11-29  Nikita Vasilyev  <nvasilyev@apple.com>
982
983         Web Inspector: Styles Redesign: can't add new property after property without trailing semicolon
984         https://bugs.webkit.org/show_bug.cgi?id=179587
985         <rdar://problem/35490858>
986
987         Reviewed by Timothy Hatcher.
988
989         * UserInterface/Models/CSSProperty.js:
990         (WI.CSSProperty.prototype._updateOwnerStyleText):
991         (WI.CSSProperty.prototype._appendSemicolonIfNeeded):
992         Add a semicolon before the new property if the last property doesn't have it already.
993
994 2017-11-29  Joseph Pecoraro  <pecoraro@apple.com>
995
996         Web Inspector: Console Tab navigation bar sometimes does not include filter bar, clear console sometimes does not work
997         https://bugs.webkit.org/show_bug.cgi?id=180124
998         <rdar://problem/35740353>
999
1000         Reviewed by Brian Burg.
1001
1002         * UserInterface/Views/LogContentView.js:
1003         (WI.LogContentView.prototype.closed):
1004         Avoid removing event listeners if this LogContentView singleton is ever closed.
1005         The singleton will always be alive so we don't want to remove the event listeners
1006         without a way to add them back.
1007
1008         * UserInterface/Base/Main.js:
1009         (WI.showSplitConsole):
1010         * UserInterface/Views/ConsoleTabContentView.js:
1011         (WI.ConsoleTabContentView.prototype.shown):
1012         When showing the ConsoleTab immediately collapse the split console so that any
1013         following code that checks WI.isShowingSplitConsole will get the expected value.
1014         It is also now possible to share a ContentView across ContentBrowsers via
1015         tombstones, so remove the old code that would frequently close the LogContentView.
1016
1017 2017-11-28  Devin Rousso  <webkit@devinrousso.com>
1018
1019         Web Inspector: remove extra space before call frames in Canvas backtraces
1020         https://bugs.webkit.org/show_bug.cgi?id=180129
1021
1022         Reviewed by Matt Baker.
1023
1024         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
1025         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
1026         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
1027         (WI.RecordingTraceDetailsSidebarPanel):
1028         Hide the disclosure buttons of these TreeOutlines as they don't have children.
1029
1030 2017-11-28  Matt Baker  <mattbaker@apple.com>
1031
1032         Web Inspector: Clean up backtrace in Canvas details sidebar
1033         https://bugs.webkit.org/show_bug.cgi?id=179807
1034         <rdar://problem/35604378>
1035
1036         Reviewed by Devin Rousso.
1037
1038         * UserInterface/Controllers/CallFrameTreeController.js: Added.
1039         Display a list of call frames in a tree outline. Browse to the represented
1040         call frame's source code location when a tree element is clicked or selected.
1041
1042         (WI.CallFrameTreeController):
1043         (WI.CallFrameTreeController.prototype.get treeOutline):
1044         (WI.CallFrameTreeController.prototype.get callFrames):
1045         (WI.CallFrameTreeController.prototype.set callFrames):
1046         (WI.CallFrameTreeController.prototype.disconnect):
1047         (WI.CallFrameTreeController.prototype._treeElementClicked):
1048         (WI.CallFrameTreeController.prototype._treeSelectionDidChange):
1049         (WI.CallFrameTreeController.prototype._showSourceCodeLocation):
1050
1051         * UserInterface/Main.html:
1052
1053         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
1054         (.sidebar > .panel.details.canvas .details-section.canvas-backtrace .call-frame): Deleted.
1055         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
1056         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
1057         (WI.CanvasDetailsSidebarPanel.prototype._refreshBacktraceSection):
1058
1059         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.css:
1060         (.sidebar > .panel.details.recording-trace > .content > .call-frame): Deleted.
1061         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
1062         (WI.RecordingTraceDetailsSidebarPanel):
1063         (WI.RecordingTraceDetailsSidebarPanel.prototype.updateAction):
1064
1065         * UserInterface/Views/TreeElement.js:
1066         (WI.TreeElement.treeElementToggled):
1067         (WI.TreeElement.prototype.selectOnMouseDown):
1068         Prevent selection if parent tree outline is not selectable.
1069
1070         * UserInterface/Views/TreeOutline.css:
1071         (.tree-outline.non-selectable .item:hover):
1072
1073         * UserInterface/Views/TreeOutline.js:
1074         Add `selectable` behavior, set at construction time. When false,
1075         clicking a tree element dispatches an event instead of selecting
1076         the tree element. Default true.
1077
1078         (WI.TreeOutline):
1079         (WI.TreeOutline.prototype.get selectable):
1080         Dispatch click event when not selectable, and some drive-by cleanup.
1081
1082 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
1083
1084         Web Inspector: Move console Preserve Log setting from Setting tab to Console navigation bar
1085         https://bugs.webkit.org/show_bug.cgi?id=180125
1086
1087         Reviewed by Matt Baker.
1088
1089         * Localizations/en.lproj/localizedStrings.js:
1090         * UserInterface/Views/LogContentView.js:
1091         (WI.LogContentView):
1092         (WI.LogContentView.prototype.get navigationItems):
1093         (WI.LogContentView.prototype._clearLogOnNavigateSettingChanged):
1094         * UserInterface/Views/SettingsTabContentView.js:
1095         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
1096
1097 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
1098
1099         Web Inspector: Remove Network "Clear on load" from Settings tab now that Network tab has a toggle for it
1100         https://bugs.webkit.org/show_bug.cgi?id=180123
1101
1102         Reviewed by Matt Baker.
1103
1104         * Localizations/en.lproj/localizedStrings.js:
1105         * UserInterface/Views/SettingsTabContentView.js:
1106         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
1107
1108 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
1109
1110         Web Inspector: Network Tab - Add a toggle in the network tab to control automatically clearing or preserving log across loads
1111         https://bugs.webkit.org/show_bug.cgi?id=180110
1112         <rdar://problem/34071789>
1113
1114         Reviewed by Timothy Hatcher.
1115
1116         * Localizations/en.lproj/localizedStrings.js:
1117         New strings.
1118
1119         * UserInterface/Views/CheckboxNavigationItem.css:
1120         (.navigation-bar .item.checkbox input[type=checkbox]):
1121         Tweak style to more center the checkbox vertically.
1122
1123         * UserInterface/Views/CheckboxNavigationItem.js:
1124         (WI.CheckboxNavigationItem):
1125         Fix setting the initial value of a checkbox navigation item.
1126
1127         * UserInterface/Views/NetworkTableContentView.js:
1128         (WI.NetworkTableContentView):
1129         (WI.NetworkTableContentView.prototype.get navigationItems):
1130         (WI.NetworkTableContentView.prototype.closed):
1131         (WI.NetworkTableContentView.prototype._clearNetworkOnNavigateSettingChanged):
1132         Add a new checkbox for the clear on navigation setting.
1133
1134         * UserInterface/Views/SettingEditor.js:
1135         (WI.SettingEditor.createForSetting):
1136         Update the editor checkbox if the setting changes outside of the setting editor.
1137
1138         * UserInterface/Views/NavigationItem.js:
1139         (WI.NavigationItem.prototype.get tooltip):
1140         (WI.NavigationItem.prototype.set tooltip):
1141         * UserInterface/Views/ActivateButtonNavigationItem.js:
1142         (WI.ActivateButtonNavigationItem.prototype.set activated):
1143         * UserInterface/Views/ButtonNavigationItem.js:
1144         (WI.ButtonNavigationItem):
1145         (WI.ButtonNavigationItem.prototype.get toolTip): Deleted.
1146         (WI.ButtonNavigationItem.prototype.set toolTip): Deleted.
1147         * UserInterface/Views/ToggleButtonNavigationItem.js:
1148         (WI.ToggleButtonNavigationItem.prototype.set alternateToolTip):
1149         (WI.ToggleButtonNavigationItem.prototype.set toggled):
1150         Move tooltip to the base class and rename it from `toolTip` to `tooltip` to
1151         match existing generic places like TreeElement.
1152
1153 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
1154
1155         Web Inspector: Include Beacon loads in the Network Table's "Other" filter
1156         https://bugs.webkit.org/show_bug.cgi?id=180113
1157
1158         Reviewed by Matt Baker.
1159
1160         * UserInterface/Views/NetworkTableContentView.js:
1161         (WI.NetworkTableContentView):
1162         Ensure the Other filter will handle any type that hasn't already been handled.
1163
1164 2017-11-28  Joseph Pecoraro  <pecoraro@apple.com>
1165
1166         ServiceWorker Inspector: Frontend changes to support Network tab and sub resources
1167         https://bugs.webkit.org/show_bug.cgi?id=179642
1168         <rdar://problem/35517704>
1169
1170         Reviewed by Brian Burg.
1171
1172         This patch makes use of the NetworkAgent and ServiceWorker agents in the frontend
1173         for a ServiceWorker inspection target. It also makes changes to ensure that the
1174         subresources requested by a ServiceWorker appear as expected in both the Resources
1175         and Network Tabs.
1176
1177         The backends of ServiceWorkers and DedicatedWorkers for network requests are
1178         different, but we want the presentation to be very similiar. Ultimately we'd like
1179         to move to more similiar backends if possible.
1180
1181         The first (after Inspector.enable) message a ServiceWorker inspector sends to the
1182         backend is ServiceWorker.getInitializationInfo. This parallels a Page inspector
1183         sending Page.getResourceTree. From the response we get enough information to
1184         setup the MainTarget with enough information (targetId, URL) to know what its main
1185         resource URL will be. Like DedicatedWorkers, the target's main resource will be
1186         filled in with the first WI.Script matching the URL. With this initialization
1187         message alone the ServiceWorker Target behaves almost identically to a Worker
1188         target and Network loads associated with the target (by targetId) are added as
1189         sub-resources as expected.
1190
1191         The biggest tension in this patch is within FrameResourceManager. The class, as
1192         its name indicates, assumes page resources with Frames, navigation, and loader
1193         semantics. It takes a few modifications to make it better handle resources not
1194         associated with a Page. A follow-up will rename this to just ResourceManager as
1195         the class' main task is now to associate Resources with Targets.
1196
1197         * UserInterface/Base/Main.js:
1198         (WI.loaded):
1199         There are assumptions in a few places that the main target is a Page. Those
1200         places can now be reached when the main target is a ServiceWorker. Add a
1201         convenience WI.pageTarget that can be used in these places.
1202
1203         * UserInterface/Test/Test.js:
1204         (WI.loaded):
1205         Add pageTarget.
1206
1207         * UserInterface/Controllers/DebuggerManager.js:
1208         (WI.DebuggerManager.prototype.scriptDidParse):
1209         Generalize the condition so the main target can have its main resource populated.
1210         This will be the case when a ServiceWorker is the main target and its main resource
1211         needs to be populated from a Script.
1212
1213         * UserInterface/Controllers/FrameResourceManager.js:
1214         (WI.FrameResourceManager):
1215         (WI.FrameResourceManager.prototype._processServiceWorkerInitializationInfo):
1216         Handle ServiceWorker Resource initialization which is different from Page initialization.
1217
1218         (WI.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
1219         (WI.FrameResourceManager.prototype._addResourceToTarget):
1220         (WI.FrameResourceManager.prototype._addFrameTreeFromFrameResourceTreePayload):
1221         Eliminate PageAgent, which might not be available in some targets.
1222         Use pageTarget instead of mainTarget where appropriate.
1223
1224         * UserInterface/Controllers/TargetManager.js:
1225         (WI.TargetManager.prototype.targetForIdentifier):
1226         A ServiceWorker is the first time that the main target has an identifier,
1227         so let TargetManager find it by target id.
1228
1229         * UserInterface/Models/Resource.js:
1230         (WI.Resource):
1231         (WI.Resource.resolvedType):
1232         (WI.Resource.prototype.updateForResponse):
1233         For Resource.Type.Other resources include a better type inferred from the MIME type.
1234         ServiceWorker loads currently don't have type information and this provides a great
1235         type for such loads. This should also provide nice types for CacheStorage.add*
1236         populated resources which are otherwise type-less fetches.
1237
1238         * UserInterface/Protocol/Connection.js:
1239         Rename the class since this may no longer be a "Page".
1240
1241         * UserInterface/Protocol/MainTarget.js:
1242         (WI.MainTarget):
1243         (WI.MainTarget.mainConnectionInfo):
1244         (WI.MainTarget.prototype.get mainResource):
1245         (WI.MainTarget.prototype.set mainResource):
1246         (WI.MainTarget.prototype.get displayName): Deleted.
1247         * UserInterface/Protocol/Target.js:
1248         (WI.Target.prototype.set identifier):
1249         (WI.Target.prototype.set name):
1250         (WI.Target.prototype.get mainResource):
1251         (WI.Target.prototype.set mainResource):
1252         (WI.Target.prototype.get displayName):
1253         Give richer types for the main target. And allow a few things to be initialized
1254         lazily, which will be necessary from an initialization message.
1255
1256         * UserInterface/Views/NetworkTabContentView.js:
1257         (WI.NetworkTabContentView.isTabAllowed):
1258         Remove a PageAgent requirement for the Network tab. A ServiceWorker will not
1259         have a PageAgent, but it will have a NetworkAgent, which should be good enough.
1260
1261         * UserInterface/Views/NetworkTableContentView.js:
1262         (WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):
1263         Initial populate should populate all subresources of all targets.
1264
1265         * UserInterface/Views/ResourceContentView.js:
1266         (WI.ResourceContentView.prototype.contentAvailable):
1267         This was getting used by ResourceType.Other without warning. Make it warn.
1268
1269         * UserInterface/Views/ResourceSidebarPanel.js:
1270         (WI.ResourceSidebarPanel.prototype._addScript):
1271         (WI.ResourceSidebarPanel.prototype._addTargetWithMainResource):
1272         * UserInterface/Views/ScriptTreeElement.js:
1273         (WI.ScriptTreeElement):
1274         Allow WorkerTreeElements for ServiceWorker targets which may also be the main target.
1275         Also when adding such a tree element, promote the resource sidebar to a full tree
1276         outline, and stop hiding disclosure buttons.
1277
1278 2017-11-27  Nikita Vasilyev  <nvasilyev@apple.com>
1279
1280         Web Inspector: Styles Redesign: selector's field shadow is clipped at the bottom
1281         https://bugs.webkit.org/show_bug.cgi?id=179961
1282
1283         Reviewed by Matt Baker.
1284
1285         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
1286         (.spreadsheet-css-declaration .selector):
1287
1288 2017-11-21  Tomas Popela  <tpopela@redhat.com>
1289
1290         Unreviewed compile warning fix
1291
1292         WARNING: console.assert inside control flow statement without braces on line: 130487:
1293         console.assert(this._loggingChannelSources.includes(channel.source));
1294
1295         * UserInterface/Controllers/LogManager.js:
1296         (WI.LogManager):
1297
1298 2017-11-18  Joseph Pecoraro  <pecoraro@apple.com>
1299
1300         Web Inspector: Update the Trash / Clear icon
1301         https://bugs.webkit.org/show_bug.cgi?id=179850
1302
1303         Reviewed by Matt Baker.
1304
1305         * UserInterface/Images/NavigationItemTrash.svg:
1306         Update the icon.
1307
1308         * UserInterface/Views/ProbeDetailsSidebarPanel.css:
1309         (.sidebar > .panel.probes > .navigation-bar .item.clear-samples):
1310         * UserInterface/Views/ProbeSetDetailsSection.js:
1311         (WI.ProbeSetDetailsSection):
1312         * UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
1313         (.scope-chain .navigation-bar .item.clear-watch-expressions):
1314         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
1315         (WI.ScopeChainDetailsSidebarPanel):
1316         Resize to 15x15 and move it down a pixel.
1317
1318 2017-11-17  Joseph Pecoraro  <pecoraro@apple.com>
1319
1320         Web Inspector: Network Tab - Add HAR Export button
1321         https://bugs.webkit.org/show_bug.cgi?id=179570
1322         <rdar://problem/35484918>
1323
1324         Reviewed by Matt Baker.
1325
1326         * Localizations/en.lproj/localizedStrings.js:
1327         New strings.
1328
1329         * UserInterface/Images/Export.svg: Added.
1330         * UserInterface/Images/Import.svg: Added.
1331         Add symmetric import/export buttons.
1332
1333         * UserInterface/Base/Main.js:
1334         (WI.contentLoaded):
1335         Expose the save keyboard shortcut so we can show its display name in a tooltip.
1336
1337         * UserInterface/Views/NetworkTableContentView.js:
1338         (WI.NetworkTableContentView):
1339         (WI.NetworkTableContentView.prototype.get navigationItems):
1340         (WI.NetworkTableContentView.prototype.reset):
1341         (WI.NetworkTableContentView.prototype.layout):
1342         (WI.NetworkTableContentView.prototype._updateExportButton):
1343         Include the export button and enable/disable it when appropriate.
1344
1345         (WI.NetworkTableContentView.prototype.closed):
1346         Add a missing event listener removal.
1347
1348 2017-11-17  Matt Baker  <mattbaker@apple.com>
1349
1350         Web Inspector: Disabled ImageAndText-style buttons should have gray text
1351         https://bugs.webkit.org/show_bug.cgi?id=179843
1352         <rdar://problem/35624337>
1353
1354         Reviewed by Joseph Pecoraro.
1355
1356         * UserInterface/Views/ButtonNavigationItem.css:
1357         (.navigation-bar .item.button.disabled.image-and-text,):
1358         (.navigation-bar .item.button.disabled > .glyph): Deleted.
1359
1360 2017-11-17  Joseph Pecoraro  <pecoraro@apple.com>
1361
1362         Web Inspector: Network Tab - Update Ignore Caches button
1363         https://bugs.webkit.org/show_bug.cgi?id=179841
1364
1365         Reviewed by Matt Baker.
1366
1367         * UserInterface/Images/IgnoreCaches.svg:
1368         This changes from an arrow over a cache to a slash through a cache.
1369
1370 2017-11-17  Matt Baker  <mattbaker@apple.com>
1371
1372         Web Inspector: Remove WI.instanceForClass
1373         https://bugs.webkit.org/show_bug.cgi?id=179746
1374
1375         Reviewed by Timothy Hatcher.
1376
1377         The implementations of DetailsSidebarPanel subclasses assume that panels
1378         are closed and released when no longer needed. Keeping them alive with
1379         instanceForClass isn't the right choice, since sidebar panels remove their
1380         event listeners when closed.
1381
1382         * UserInterface/Base/Main.js:
1383         (WI.instanceForClass): Deleted.
1384         * UserInterface/Views/DebuggerTabContentView.js:
1385         (WI.DebuggerTabContentView.prototype.showDetailsSidebarPanels):
1386         * UserInterface/Views/TabContentView.js:
1387         (WI.TabContentView.prototype.get detailsSidebarPanels):
1388
1389 2017-11-17  Matt Baker  <mattbaker@apple.com>
1390
1391         Web Inspector: ButtonNavigationItem should support image and text button style
1392         https://bugs.webkit.org/show_bug.cgi?id=179625
1393         <rdar://problem/35512238>
1394
1395         Reviewed by Joseph Pecoraro.
1396
1397         * UserInterface/Main.html:
1398
1399         * UserInterface/Views/ButtonNavigationItem.css:
1400         (.navigation-bar .item.button):
1401         (.navigation-bar .item.button.image-only):
1402         (.navigation-bar .item.button.image-and-text):
1403         (.navigation-bar .item.button.image-and-text > span):
1404         (.navigation-bar .item.button.text-only):
1405         (.navigation-bar .item.button.text-only.checkbox): Deleted.
1406         (.navigation-bar .item.button.text-only.checkbox label): Deleted.
1407         Checkbox styles have been moved to a separate CSS file.
1408
1409         * UserInterface/Views/ButtonNavigationItem.js:
1410         Add backing data members for the image and label, allowing the DOM
1411         representation of the button to change as needed.
1412
1413         (WI.ButtonNavigationItem):
1414         Remove duplicate role logic. The base class sets the role.
1415
1416         (WI.ButtonNavigationItem.prototype.set label):
1417         (WI.ButtonNavigationItem.prototype.set image):
1418         (WI.ButtonNavigationItem.prototype.get buttonStyle):
1419         (WI.ButtonNavigationItem.prototype.set buttonStyle):
1420         (WI.ButtonNavigationItem.prototype.get additionalClassNames):
1421         (WI.ButtonNavigationItem.prototype._mouseClicked):
1422         (WI.ButtonNavigationItem.prototype._update):
1423         (WI.ButtonNavigationItem.prototype.updateButtonText): Deleted.
1424
1425         * UserInterface/Views/CheckboxNavigationItem.css: Added.
1426         (.navigation-bar .item.checkbox):
1427         (.navigation-bar .item.checkbox label):
1428
1429         * UserInterface/Views/CheckboxNavigationItem.js:
1430         Change base class to NavigationItem, since this item lacks an image
1431         and makes use of an actual label element instead of a span for its text.
1432
1433         (WI.CheckboxNavigationItem):
1434         (WI.CheckboxNavigationItem.prototype._checkboxChanged):
1435         (WI.CheckboxNavigationItem.prototype.updateButtonText): Deleted.
1436
1437 2017-11-17  Joseph Pecoraro  <pecoraro@apple.com>
1438
1439         Web Inspector: Remove FIXMEs for GTK+ missing icons
1440         https://bugs.webkit.org/show_bug.cgi?id=155282
1441         <rdar://problem/25076615>
1442
1443         Reviewed by Michael Catanzaro.
1444
1445         * UserInterface/Views/PathComponentIcons.css:
1446         (.source-icon .icon):
1447         (body:not(.mac-platform, .windows-platform) .heap-snapshot-record .icon,): Deleted.
1448         * UserInterface/Views/ResourceIcons.css:
1449         (.large .resource-icon.resource-type-websocket .icon):
1450         (body:not(.mac-platform, .windows-platform) .resource-icon.resource-type-ping .icon,): Deleted.
1451         (body:not(.mac-platform, .windows-platform) .large .resource-icon.resource-type-ping .icon,): Deleted.
1452         All ports now share the same images.
1453
1454 2017-11-15  Nikita Vasilyev  <nvasilyev@apple.com>
1455
1456         Web Inspector: Styles Redesign: typing colon in property name should advance to value field
1457         https://bugs.webkit.org/show_bug.cgi?id=178795
1458         <rdar://problem/35174674>
1459
1460         Reviewed by Devin Rousso.
1461
1462         * UserInterface/Views/SpreadsheetStyleProperty.js:
1463         (WI.SpreadsheetStyleProperty.prototype._update):
1464         (WI.SpreadsheetStyleProperty.prototype._handleNameBeforeInput):
1465         Unlike pressing Tab or Enter, typing ":" in the property name should discard suggestion hint.
1466
1467         (WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):
1468         We use 250ms debounce before updating this._property.name.
1469         When typing "font-f:", we want to discard suggestion hint (i.e. "font-family"),
1470         and immediately show autocomplete for "font-f" (in this case, invalid property).
1471
1472         * UserInterface/Views/SpreadsheetTextField.js:
1473         (WI.SpreadsheetTextField):
1474         (WI.SpreadsheetTextField.prototype.stopEditing):
1475         (WI.SpreadsheetTextField.prototype.discardCompletion):
1476         Call spreadsheetTextFieldDidChange when discarding non-empty suggestion hint.
1477
1478         (WI.SpreadsheetTextField.prototype.detached):
1479         (WI.SpreadsheetTextField.prototype.completionSuggestionsClickedCompletion):
1480         (WI.SpreadsheetTextField.prototype._handleBlur):
1481         (WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
1482         (WI.SpreadsheetTextField.prototype._updateCompletions):
1483         (WI.SpreadsheetTextField.prototype._applyCompletionHint):
1484         (WI.SpreadsheetTextField.prototype._hideCompletions): Deleted.
1485
1486 2017-11-15  Matt Baker  <mattbaker@apple.com>
1487
1488         Web Inspector: REGRESSION (r217750): Navigation sidebar broken after closing and re-opening tab
1489         https://bugs.webkit.org/show_bug.cgi?id=179717
1490         <rdar://problem/35551541>
1491
1492         Reviewed by Devin Rousso.
1493
1494         NavigationSidebarPanels should not be created with WI.instanceForClass.
1495
1496         * UserInterface/Views/DebuggerSidebarPanel.js:
1497         * UserInterface/Views/ResourceSidebarPanel.js:
1498         (WI.ResourceSidebarPanel):
1499         * UserInterface/Views/SearchSidebarPanel.js:
1500         (WI.SearchSidebarPanel):
1501         * UserInterface/Views/StorageSidebarPanel.js:
1502         (WI.StorageSidebarPanel):
1503         * UserInterface/Views/TabContentView.js:
1504         (WI.TabContentView.prototype.get navigationSidebarPanel):
1505
1506 2017-11-15  Michael Catanzaro  <mcatanzaro@igalia.com>
1507
1508         Remove GTK web inspector images
1509         https://bugs.webkit.org/show_bug.cgi?id=179716
1510
1511         Reviewed by Carlos Garcia Campos.
1512
1513         * Scripts/copy-user-interface-resources.pl:
1514         * UserInterface/Images/gtk/AUTHORS: Removed.
1515         * UserInterface/Images/gtk/ActiveCallFrame.svg: Removed.
1516         * UserInterface/Images/gtk/AnimationPlayStatePaused.svg: Removed.
1517         * UserInterface/Images/gtk/AnimationPlayStateRunning.svg: Removed.
1518         * UserInterface/Images/gtk/ApplicationCache.png: Removed.
1519         * UserInterface/Images/gtk/ApplicationCache@2x.png: Removed.
1520         * UserInterface/Images/gtk/ApplicationCacheManifest.png: Removed.
1521         * UserInterface/Images/gtk/ApplicationCacheManifest@2x.png: Removed.
1522         * UserInterface/Images/gtk/ArrowUp.svg: Removed.
1523         * UserInterface/Images/gtk/Assertion.svg: Removed.
1524         * UserInterface/Images/gtk/BackForwardArrows.svg: Removed.
1525         * UserInterface/Images/gtk/Breakpoint.png: Removed.
1526         * UserInterface/Images/gtk/Breakpoint@2x.png: Removed.
1527         * UserInterface/Images/gtk/BreakpointButton.svg: Removed.
1528         * UserInterface/Images/gtk/BreakpointInactive.png: Removed.
1529         * UserInterface/Images/gtk/BreakpointInactive@2x.png: Removed.
1530         * UserInterface/Images/gtk/BreakpointInactiveButton.svg: Removed.
1531         * UserInterface/Images/gtk/Breakpoints.svg: Removed.
1532         * UserInterface/Images/gtk/COPYING: Removed.
1533         * UserInterface/Images/gtk/COPYING_CCBYSA3: Removed.
1534         * UserInterface/Images/gtk/COPYING_LGPL2: Removed.
1535         * UserInterface/Images/gtk/CSSVariable.svg: Removed.
1536         * UserInterface/Images/gtk/CallTrees.svg: Removed.
1537         * UserInterface/Images/gtk/Canvas.svg: Removed.
1538         * UserInterface/Images/gtk/Canvas2D.svg: Removed.
1539         * UserInterface/Images/gtk/Canvas3D.svg: Removed.
1540         * UserInterface/Images/gtk/CanvasOverview.svg: Removed.
1541         * UserInterface/Images/gtk/Checkers.svg: Removed.
1542         * UserInterface/Images/gtk/Circle.svg: Removed.
1543         * UserInterface/Images/gtk/ClearBoth.svg: Removed.
1544         * UserInterface/Images/gtk/ClearLeft.svg: Removed.
1545         * UserInterface/Images/gtk/ClearRight.svg: Removed.
1546         * UserInterface/Images/gtk/ClippingCSS.png: Removed.
1547         * UserInterface/Images/gtk/ClippingCSS@2x.png: Removed.
1548         * UserInterface/Images/gtk/ClippingCSSLarge.png: Removed.
1549         * UserInterface/Images/gtk/ClippingCSSLarge@2x.png: Removed.
1550         * UserInterface/Images/gtk/ClippingGeneric.png: Removed.
1551         * UserInterface/Images/gtk/ClippingGeneric@2x.png: Removed.
1552         * UserInterface/Images/gtk/ClippingGenericLarge.png: Removed.
1553         * UserInterface/Images/gtk/ClippingGenericLarge@2x.png: Removed.
1554         * UserInterface/Images/gtk/ClippingJS.png: Removed.
1555         * UserInterface/Images/gtk/ClippingJS@2x.png: Removed.
1556         * UserInterface/Images/gtk/ClippingJSLarge.png: Removed.
1557         * UserInterface/Images/gtk/ClippingJSLarge@2x.png: Removed.
1558         * UserInterface/Images/gtk/Close.svg: Removed.
1559         * UserInterface/Images/gtk/CloseLarge.svg: Removed.
1560         * UserInterface/Images/gtk/CloseWhite.svg: Removed.
1561         * UserInterface/Images/gtk/ColorIcon.png: Removed.
1562         * UserInterface/Images/gtk/ColorIcon@2x.png: Removed.
1563         * UserInterface/Images/gtk/Console.svg: Removed.
1564         * UserInterface/Images/gtk/Cookie.png: Removed.
1565         * UserInterface/Images/gtk/Cookie@2x.png: Removed.
1566         * UserInterface/Images/gtk/Crosshair.svg: Removed.
1567         * UserInterface/Images/gtk/CubicBezier.svg: Removed.
1568         * UserInterface/Images/gtk/DOMBreakpoint.svg: Removed.
1569         * UserInterface/Images/gtk/DOMCharacterData.svg: Removed.
1570         * UserInterface/Images/gtk/DOMComment.svg: Removed.
1571         * UserInterface/Images/gtk/DOMDocument.svg: Removed.
1572         * UserInterface/Images/gtk/DOMDocumentType.svg: Removed.
1573         * UserInterface/Images/gtk/DOMElement.svg: Removed.
1574         * UserInterface/Images/gtk/DOMNode.svg: Removed.
1575         * UserInterface/Images/gtk/DOMTextNode.svg: Removed.
1576         * UserInterface/Images/gtk/Database.png: Removed.
1577         * UserInterface/Images/gtk/Database@2x.png: Removed.
1578         * UserInterface/Images/gtk/DatabaseTable.png: Removed.
1579         * UserInterface/Images/gtk/DatabaseTable@2x.png: Removed.
1580         * UserInterface/Images/gtk/Debug.svg: Removed.
1581         * UserInterface/Images/gtk/Debugger.svg: Removed.
1582         * UserInterface/Images/gtk/DisclosureTriangles.svg: Removed.
1583         * UserInterface/Images/gtk/DockBottom.svg: Removed.
1584         * UserInterface/Images/gtk/DockLeft.svg: Removed.
1585         * UserInterface/Images/gtk/DockRight.svg: Removed.
1586         * UserInterface/Images/gtk/DocumentCSS.png: Removed.
1587         * UserInterface/Images/gtk/DocumentCSS@2x.png: Removed.
1588         * UserInterface/Images/gtk/DocumentCSSLarge.png: Removed.
1589         * UserInterface/Images/gtk/DocumentCSSLarge@2x.png: Removed.
1590         * UserInterface/Images/gtk/DocumentFont.png: Removed.
1591         * UserInterface/Images/gtk/DocumentFont@2x.png: Removed.
1592         * UserInterface/Images/gtk/DocumentFontLarge.png: Removed.
1593         * UserInterface/Images/gtk/DocumentFontLarge@2x.png: Removed.
1594         * UserInterface/Images/gtk/DocumentGeneric.png: Removed.
1595         * UserInterface/Images/gtk/DocumentGeneric@2x.png: Removed.
1596         * UserInterface/Images/gtk/DocumentGenericLarge.png: Removed.
1597         * UserInterface/Images/gtk/DocumentGenericLarge@2x.png: Removed.
1598         * UserInterface/Images/gtk/DocumentImage.png: Removed.
1599         * UserInterface/Images/gtk/DocumentImage@2x.png: Removed.
1600         * UserInterface/Images/gtk/DocumentImageLarge.png: Removed.
1601         * UserInterface/Images/gtk/DocumentImageLarge@2x.png: Removed.
1602         * UserInterface/Images/gtk/DocumentJS.png: Removed.
1603         * UserInterface/Images/gtk/DocumentJS@2x.png: Removed.
1604         * UserInterface/Images/gtk/DocumentJSLarge.png: Removed.
1605         * UserInterface/Images/gtk/DocumentJSLarge@2x.png: Removed.
1606         * UserInterface/Images/gtk/DocumentMarkup.png: Removed.
1607         * UserInterface/Images/gtk/DocumentMarkup@2x.png: Removed.
1608         * UserInterface/Images/gtk/DocumentMarkupLarge.png: Removed.
1609         * UserInterface/Images/gtk/DocumentMarkupLarge@2x.png: Removed.
1610         * UserInterface/Images/gtk/DownloadArrow.svg: Removed.
1611         * UserInterface/Images/gtk/Elements.svg: Removed.
1612         * UserInterface/Images/gtk/Error.svg: Removed.
1613         * UserInterface/Images/gtk/Errors.svg: Removed.
1614         * UserInterface/Images/gtk/ErrorsEnabled.svg: Removed.
1615         * UserInterface/Images/gtk/EventListener.svg: Removed.
1616         * UserInterface/Images/gtk/Events.svg: Removed.
1617         * UserInterface/Images/gtk/Exception.svg: Removed.
1618         * UserInterface/Images/gtk/Eye.svg: Removed.
1619         * UserInterface/Images/gtk/FilterFieldActiveGlyph.svg: Removed.
1620         * UserInterface/Images/gtk/FilterFieldGlyph.svg: Removed.
1621         * UserInterface/Images/gtk/FloatLeft.svg: Removed.
1622         * UserInterface/Images/gtk/FloatRight.svg: Removed.
1623         * UserInterface/Images/gtk/FolderGeneric.png: Removed.
1624         * UserInterface/Images/gtk/FolderGeneric@2x.png: Removed.
1625         * UserInterface/Images/gtk/FontStyleItalic.svg: Removed.
1626         * UserInterface/Images/gtk/FontStyleNormal.svg: Removed.
1627         * UserInterface/Images/gtk/Function.svg: Removed.
1628         * UserInterface/Images/gtk/Gear.svg: Removed.
1629         * UserInterface/Images/gtk/GoToArrow.svg: Removed.
1630         * UserInterface/Images/gtk/GradientStop.png: Removed.
1631         * UserInterface/Images/gtk/GradientStop@2x.png: Removed.
1632         * UserInterface/Images/gtk/GradientStopSelected.png: Removed.
1633         * UserInterface/Images/gtk/GradientStopSelected@2x.png: Removed.
1634         * UserInterface/Images/gtk/HeapAllocationsInstrument.svg: Removed.
1635         * UserInterface/Images/gtk/HeapSnapshotObjectGraph.svg: Removed.
1636         * UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg: Removed.
1637         * UserInterface/Images/gtk/HoverMenuButton.png: Removed.
1638         * UserInterface/Images/gtk/HoverMenuButton@2x.png: Removed.
1639         * UserInterface/Images/gtk/IgnoreCaches.svg: Removed.
1640         * UserInterface/Images/gtk/Image.svg: Removed.
1641         * UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg: Removed.
1642         * UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg: Removed.
1643         * UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg: Removed.
1644         * UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg: Removed.
1645         * UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg: Removed.
1646         * UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg: Removed.
1647         * UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg: Removed.
1648         * UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg: Removed.
1649         * UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg: Removed.
1650         * UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg: Removed.
1651         * UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg: Removed.
1652         * UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg: Removed.
1653         * UserInterface/Images/gtk/Info.svg: Removed.
1654         * UserInterface/Images/gtk/InstructionPointer.png: Removed.
1655         * UserInterface/Images/gtk/InstructionPointer@2x.png: Removed.
1656         * UserInterface/Images/gtk/Issues.svg: Removed.
1657         * UserInterface/Images/gtk/IssuesEnabled.svg: Removed.
1658         * UserInterface/Images/gtk/LayerBorders.svg: Removed.
1659         * UserInterface/Images/gtk/Layers.svg: Removed.
1660         * UserInterface/Images/gtk/LayoutInstrument.svg: Removed.
1661         * UserInterface/Images/gtk/ListStylePositionInside.svg: Removed.
1662         * UserInterface/Images/gtk/ListStylePositionOutside.svg: Removed.
1663         * UserInterface/Images/gtk/LocalStorage.png: Removed.
1664         * UserInterface/Images/gtk/LocalStorage@2x.png: Removed.
1665         * UserInterface/Images/gtk/Locked.svg: Removed.
1666         * UserInterface/Images/gtk/Log.svg: Removed.
1667         * UserInterface/Images/gtk/Logs.svg: Removed.
1668         * UserInterface/Images/gtk/MemoryInstrument.svg: Removed.
1669         * UserInterface/Images/gtk/Minus.svg: Removed.
1670         * UserInterface/Images/gtk/Native.svg: Removed.
1671         * UserInterface/Images/gtk/NavigationItemCheckers.svg: Removed.
1672         * UserInterface/Images/gtk/NavigationItemCodeCoverage.svg: Removed.
1673         * UserInterface/Images/gtk/NavigationItemCurleyBraces.svg: Removed.
1674         * UserInterface/Images/gtk/NavigationItemGarbageCollect.svg: Removed.
1675         * UserInterface/Images/gtk/NavigationItemTrash.svg: Removed.
1676         * UserInterface/Images/gtk/NavigationItemTypes.svg: Removed.
1677         * UserInterface/Images/gtk/Network.svg: Removed.
1678         * UserInterface/Images/gtk/NetworkInstrument.svg: Removed.
1679         * UserInterface/Images/gtk/NewTab.svg: Removed.
1680         * UserInterface/Images/gtk/NewTabPlus.svg: Removed.
1681         * UserInterface/Images/gtk/Paint.svg: Removed.
1682         * UserInterface/Images/gtk/Path.svg: Removed.
1683         * UserInterface/Images/gtk/Pause.svg: Removed.
1684         * UserInterface/Images/gtk/PausedBreakpoint.svg: Removed.
1685         * UserInterface/Images/gtk/Pencil.svg: Removed.
1686         * UserInterface/Images/gtk/Plus13.svg: Removed.
1687         * UserInterface/Images/gtk/Plus15.svg: Removed.
1688         * UserInterface/Images/gtk/Printer.svg: Removed.
1689         * UserInterface/Images/gtk/Program.svg: Removed.
1690         * UserInterface/Images/gtk/PseudoElement.svg: Removed.
1691         * UserInterface/Images/gtk/Receiving.svg: Removed.
1692         * UserInterface/Images/gtk/Record.svg: Removed.
1693         * UserInterface/Images/gtk/Recording.svg: Removed.
1694         * UserInterface/Images/gtk/Reflection.svg: Removed.
1695         * UserInterface/Images/gtk/ReloadFull.svg: Removed.
1696         * UserInterface/Images/gtk/ReloadToolbar.svg: Removed.
1697         * UserInterface/Images/gtk/RenderingFrame.svg: Removed.
1698         * UserInterface/Images/gtk/RenderingFramesInstrument.svg: Removed.
1699         * UserInterface/Images/gtk/Request.svg: Removed.
1700         * UserInterface/Images/gtk/Resources.svg: Removed.
1701         * UserInterface/Images/gtk/Response.svg: Removed.
1702         * UserInterface/Images/gtk/ResultLine.svg: Removed.
1703         * UserInterface/Images/gtk/Resume.svg: Removed.
1704         * UserInterface/Images/gtk/ScriptsInstrument.svg: Removed.
1705         * UserInterface/Images/gtk/Search.svg: Removed.
1706         * UserInterface/Images/gtk/SearchResults.svg: Removed.
1707         * UserInterface/Images/gtk/Sending.svg: Removed.
1708         * UserInterface/Images/gtk/SessionStorage.png: Removed.
1709         * UserInterface/Images/gtk/SessionStorage@2x.png: Removed.
1710         * UserInterface/Images/gtk/ShadowDOM.svg: Removed.
1711         * UserInterface/Images/gtk/SliderThumb.png: Removed.
1712         * UserInterface/Images/gtk/SliderThumb@2x.png: Removed.
1713         * UserInterface/Images/gtk/SliderThumbPressed.png: Removed.
1714         * UserInterface/Images/gtk/SliderThumbPressed@2x.png: Removed.
1715         * UserInterface/Images/gtk/SortIndicatorArrows.svg: Removed.
1716         * UserInterface/Images/gtk/Source.svg: Removed.
1717         * UserInterface/Images/gtk/SplitToggleUp.svg: Removed.
1718         * UserInterface/Images/gtk/StepInto.svg: Removed.
1719         * UserInterface/Images/gtk/StepOut.svg: Removed.
1720         * UserInterface/Images/gtk/StepOver.svg: Removed.
1721         * UserInterface/Images/gtk/Stop.svg: Removed.
1722         * UserInterface/Images/gtk/Stopwatch.svg: Removed.
1723         * UserInterface/Images/gtk/Storage.svg: Removed.
1724         * UserInterface/Images/gtk/StyleRule.svg: Removed.
1725         * UserInterface/Images/gtk/StyleRuleInheritedElement.svg: Removed.
1726         * UserInterface/Images/gtk/StyleRulePseudoElement.svg: Removed.
1727         * UserInterface/Images/gtk/TailDeletedFunction.svg: Removed.
1728         * UserInterface/Images/gtk/TextAlignCenter.svg: Removed.
1729         * UserInterface/Images/gtk/TextAlignJustify.svg: Removed.
1730         * UserInterface/Images/gtk/TextAlignLeft.svg: Removed.
1731         * UserInterface/Images/gtk/TextAlignRight.svg: Removed.
1732         * UserInterface/Images/gtk/TextDecorationLineThrough.svg: Removed.
1733         * UserInterface/Images/gtk/TextDecorationOverline.svg: Removed.
1734         * UserInterface/Images/gtk/TextDecorationUnderline.svg: Removed.
1735         * UserInterface/Images/gtk/TextTransformCapitalize.svg: Removed.
1736         * UserInterface/Images/gtk/TextTransformLowercase.svg: Removed.
1737         * UserInterface/Images/gtk/TextTransformUppercase.svg: Removed.
1738         * UserInterface/Images/gtk/Thread.svg: Removed.
1739         * UserInterface/Images/gtk/Time.svg: Removed.
1740         * UserInterface/Images/gtk/Timeline.svg: Removed.
1741         * UserInterface/Images/gtk/TimelineRecordAPI.svg: Removed.
1742         * UserInterface/Images/gtk/TimelineRecordAnimation.svg: Removed.
1743         * UserInterface/Images/gtk/TimelineRecordComposite.svg: Removed.
1744         * UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg: Removed.
1745         * UserInterface/Images/gtk/TimelineRecordEvent.svg: Removed.
1746         * UserInterface/Images/gtk/TimelineRecordLayout.svg: Removed.
1747         * UserInterface/Images/gtk/TimelineRecordPaint.svg: Removed.
1748         * UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Removed.
1749         * UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg: Removed.
1750         * UserInterface/Images/gtk/TimelineRecordStyle.svg: Removed.
1751         * UserInterface/Images/gtk/TimelineRecordTimer.svg: Removed.
1752         * UserInterface/Images/gtk/ToggleLeftSidebar.svg: Removed.
1753         * UserInterface/Images/gtk/ToggleRightSidebar.svg: Removed.
1754         * UserInterface/Images/gtk/TypeBoolean.svg: Removed.
1755         * UserInterface/Images/gtk/TypeNull.svg: Removed.
1756         * UserInterface/Images/gtk/TypeNumber.svg: Removed.
1757         * UserInterface/Images/gtk/TypeObject.svg: Removed.
1758         * UserInterface/Images/gtk/TypeRegex.svg: Removed.
1759         * UserInterface/Images/gtk/TypeString.svg: Removed.
1760         * UserInterface/Images/gtk/TypeSymbol.svg: Removed.
1761         * UserInterface/Images/gtk/TypeUndefined.svg: Removed.
1762         * UserInterface/Images/gtk/Undock.svg: Removed.
1763         * UserInterface/Images/gtk/UpDownArrows.svg: Removed.
1764         * UserInterface/Images/gtk/UserInputPrompt.svg: Removed.
1765         * UserInterface/Images/gtk/UserInputPromptPrevious.svg: Removed.
1766         * UserInterface/Images/gtk/UserInputResult.svg: Removed.
1767         * UserInterface/Images/gtk/VisualStyleNone.svg: Removed.
1768         * UserInterface/Images/gtk/VisualStylePropertyLinked.svg: Removed.
1769         * UserInterface/Images/gtk/VisualStylePropertyUnlinked.svg: Removed.
1770         * UserInterface/Images/gtk/Warning.svg: Removed.
1771         * UserInterface/Images/gtk/WebSocket.png: Removed.
1772         * UserInterface/Images/gtk/WebSocket@2x.png: Removed.
1773         * UserInterface/Images/gtk/WebSocketLarge.png: Removed.
1774         * UserInterface/Images/gtk/WebSocketLarge@2x.png: Removed.
1775         * UserInterface/Images/gtk/Weight.svg: Removed.
1776         * UserInterface/Images/gtk/WorkerScript.png: Removed.
1777         * UserInterface/Images/gtk/WorkerScript@2x.png: Removed.
1778         * UserInterface/Images/gtk/WorkerScriptLarge.png: Removed.
1779         * UserInterface/Images/gtk/WorkerScriptLarge@2x.png: Removed.
1780
1781 2017-11-14  Joseph Pecoraro  <pecoraro@apple.com>
1782
1783         Relicense non-distributable web inspector images
1784         https://bugs.webkit.org/show_bug.cgi?id=166460
1785         <rdar://problem/29800966>
1786
1787         Reviewed by Brian Burg.
1788
1789         * APPLE_IMAGES_LICENSE.rtf: Removed.
1790         Remove the restrictive Web Inspector images license and default to the
1791         same license as the rest of WebKit.
1792
1793         The Apple Images license was never intended to restrict distribution of
1794         Web Inspector images when used as part of WebKit. Now, all contributions
1795         to Web Inspector, images and source, have the same licensing as all other
1796         WebKit contributions.
1797
1798 2017-11-14  Joseph Pecoraro  <pecoraro@apple.com>
1799
1800         Web Inspector: Network Detail Views - Split Metrics into Sizes and Timing
1801         https://bugs.webkit.org/show_bug.cgi?id=179569
1802         <rdar://problem/35484914>
1803
1804         Reviewed by Brian Burg.
1805
1806         * Localizations/en.lproj/localizedStrings.js:
1807         * UserInterface/Main.html:
1808         New resources and strings.
1809
1810         * UserInterface/Views/NetworkResourceDetailView.js:
1811         (WI.NetworkResourceDetailView):
1812         (WI.NetworkResourceDetailView.prototype.initialLayout):
1813         (WI.NetworkResourceDetailView.prototype._showPreferredContentView):
1814         (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
1815         (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToHeaders): Renamed.
1816         (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToRequestBody): Renamed.
1817         (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToResponseBody): Renamed.
1818         Split into two navigation items and views.
1819
1820         * UserInterface/Views/ResourceMetricsContentView.css: Removed.
1821         * UserInterface/Views/ResourceMetricsContentView.js: Removed.
1822         * UserInterface/Views/ResourceSizesContentView.css: Added.
1823         * UserInterface/Views/ResourceSizesContentView.js: Added.
1824         * UserInterface/Views/ResourceTimingContentView.css: Added.
1825         * UserInterface/Views/ResourceTimingContentView.js: Added.
1826         Split Metrics into two views.
1827
1828 2017-11-14  Matt Baker  <mattbaker@apple.com>
1829
1830         Web Inspector: Cleanup navigation bar dividers and separators
1831         https://bugs.webkit.org/show_bug.cgi?id=179654
1832         <rdar://problem/35523734>
1833
1834         Reviewed by Devin Rousso.
1835
1836         Update path separator icon, and reduce number of dividers used in the
1837         content browser's navigation bar, to more closely match modern Xcode.
1838
1839         * UserInterface/Images/HierarchicalNavigationItemChevron.svg:
1840         Update icon, remove tapered arrow head.
1841
1842         * UserInterface/Views/ContentBrowser.js:
1843         (WI.ContentBrowser):
1844         Remove divider between back/forward buttons and item name.
1845         (WI.ContentBrowser.prototype._updateContentViewNavigationItems):
1846
1847         * UserInterface/Views/HierarchicalPathComponent.css:
1848         (.hierarchical-path-component > .separator):
1849
1850         * UserInterface/Views/LogContentView.js:
1851         (WI.LogContentView.prototype.get navigationItems):
1852         Remove dividers between buttons provided by the current content view.
1853
1854 2017-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1855
1856         Web Inspector: Network Details Views - make section headers more prominent
1857         https://bugs.webkit.org/show_bug.cgi?id=179565
1858         <rdar://problem/35510531>
1859
1860         Reviewed by Devin Rousso.
1861
1862         * UserInterface/Views/ResourceDetailsSection.css:
1863         (.resource-details > section > .title):
1864
1865 2017-11-13  Nikita Vasilyev  <nvasilyev@apple.com>
1866
1867         Web Inspector: Styles Redesign: make selector field inline-block when editing
1868         https://bugs.webkit.org/show_bug.cgi?id=179588
1869         <rdar://problem/35490915>
1870
1871         Reviewed by Brian Burg.
1872
1873         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
1874         (.spreadsheet-css-declaration .header.editing-selector .origin):
1875         When the selector field is multiline, it covers the source link entirely.
1876         When the selector field takes only one line, the source link remains where it was before editing.
1877
1878         (.spreadsheet-css-declaration .selector):
1879         Make it `position: relative` to cover the source link.
1880
1881         (.spreadsheet-css-declaration .selector.spreadsheet-selector-field.editing):
1882         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
1883         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
1884
1885 2017-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1886
1887         REGRESSION(r223856): Web Inspector: Cannot view Request Data
1888         https://bugs.webkit.org/show_bug.cgi?id=179567
1889
1890         Reviewed by Brian Burg.
1891
1892         * UserInterface/Views/ResourceClusterContentView.js:
1893         (WI.ResourceClusterContentView.prototype._canShowRequestContentView):
1894         This condition unintentionally got flipped in r223856.
1895
1896 2017-11-13  Matt Baker  <mattbaker@apple.com>
1897
1898         Web Inspector: Add CheckboxNavigationItem
1899         https://bugs.webkit.org/show_bug.cgi?id=179584
1900         <rdar://problem/35490085>
1901
1902         Reviewed by Brian Burg.
1903
1904         * UserInterface/Main.html:
1905         * UserInterface/Views/ButtonNavigationItem.css:
1906         (.navigation-bar .item.button.text-only.checkbox):
1907         (.navigation-bar .item.button.text-only.checkbox label):
1908
1909         * UserInterface/Views/ButtonNavigationItem.js:
1910         Cleanup and some tweaks to the label to make it work with subclasses
1911         regardless of how label is represented in the DOM.
1912
1913         (WI.ButtonNavigationItem):
1914         (WI.ButtonNavigationItem.prototype.get toolTip):
1915         (WI.ButtonNavigationItem.prototype.set toolTip):
1916         (WI.ButtonNavigationItem.prototype.get label):
1917         (WI.ButtonNavigationItem.prototype.set label):
1918         (WI.ButtonNavigationItem.prototype.set image):
1919         (WI.ButtonNavigationItem.prototype.get enabled):
1920         (WI.ButtonNavigationItem.prototype.set enabled):
1921         (WI.ButtonNavigationItem.prototype.updateButtonText):
1922
1923         * UserInterface/Views/CheckboxNavigationItem.js: Added.
1924         New button item with a checkbox and label. Dispatches a Clicked evennt
1925         whenever the checked state changes.
1926
1927         (WI.CheckboxNavigationItem):
1928         (WI.CheckboxNavigationItem.prototype.get checked):
1929         (WI.CheckboxNavigationItem.prototype.set checked):
1930         (WI.CheckboxNavigationItem.prototype.get additionalClassNames):
1931         (WI.CheckboxNavigationItem.prototype.updateButtonText):
1932         (WI.CheckboxNavigationItem.prototype._checkboxChanged):
1933
1934 2017-11-13  Joseph Pecoraro  <pecoraro@apple.com>
1935
1936         Web Inspector: Give DataGrid/Table Header ContextMenu a section header to better describe its functions
1937         https://bugs.webkit.org/show_bug.cgi?id=179560
1938
1939         Reviewed by Matt Baker.
1940
1941         * Localizations/en.lproj/localizedStrings.js:
1942         New string.
1943
1944         * UserInterface/Views/DataGrid.js:
1945         (WI.DataGrid.prototype._contextMenuInHeader):
1946         * UserInterface/Views/Table.js:
1947         (WI.Table.prototype._handleHeaderContextMenu):
1948         Include a disabled context menu item as a section header.
1949
1950 2017-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
1951
1952         REGRESSION(r224566): [GTK] 26 new timeouts on inspector related tests.
1953         https://bugs.webkit.org/show_bug.cgi?id=179471
1954
1955         Reviewed by Darin Adler.
1956
1957         TestStub.html and TestStub.js was missing in resources bundle.
1958
1959         * Scripts/copy-user-interface-resources.pl: Also combine resources for TestStub.
1960
1961 2017-11-11  Joseph Pecoraro  <pecoraro@apple.com>
1962
1963         Web Inspector: Network detail views - Include a newline between sections when copying
1964         https://bugs.webkit.org/show_bug.cgi?id=179577
1965
1966         Reviewed by Matt Baker.
1967
1968         * UserInterface/Views/NetworkResourceDetailView.css:
1969         (.content-view.resource-details):
1970         * UserInterface/Views/ResourceDetailsSection.css:
1971         (.resource-details > section):
1972         (.resource-details > section > .title):
1973         Adjust styles now that there is a <br> taking up space between sections.
1974         After all the changes, the top section moved up 1px from where it was originally.
1975
1976         * UserInterface/Views/ResourceDetailsSection.js:
1977         (WI.ResourceDetailsSection):
1978         Include a <br> to get newlines when copying.
1979
1980 2017-11-11  Joseph Pecoraro  <pecoraro@apple.com>
1981
1982         Web Inspector: Network waterfall graph - make connection part thinner
1983         https://bugs.webkit.org/show_bug.cgi?id=179561
1984
1985         Reviewed by Devin Rousso.
1986
1987         * UserInterface/Views/NetworkTableContentView.css:
1988         (.waterfall .block):
1989
1990 2017-11-11  Devin Rousso  <webkit@devinrousso.com>
1991
1992         Web Inspector: Canvas tab: show detailed status during canvas recording
1993         https://bugs.webkit.org/show_bug.cgi?id=178185
1994         <rdar://problem/34939862>
1995
1996         Reviewed by Brian Burg.
1997
1998         * Localizations/en.lproj/localizedStrings.js:
1999
2000         * UserInterface/Protocol/CanvasObserver.js:
2001         (WI.CanvasObserver.prototype.recordingProgress):
2002         * UserInterface/Controllers/CanvasManager.js:
2003         (WI.CanvasManager):
2004         (WI.CanvasManager.prototype.recordingProgress):
2005         (WI.CanvasManager.prototype.recordingFinished):
2006         Maintain arrays of recorded frames for each canvas and add new frames each time a progress
2007         event is fired. When the recording is finished, use the array as part of the payload for
2008         creating a WI.Recording object.
2009
2010         * UserInterface/Models/Recording.js:
2011         (WI.Recording.fromPayload):
2012
2013         * UserInterface/Models/RecordingAction.js:
2014         (WI.RecordingAction.prototype.apply.getContent):
2015         (WI.RecordingAction.prototype.apply):
2016         Drive-by fix: toDataURL is very slow, so add alternative ways of getting and comparing the
2017         content of the canvas to determine if the action has a visible effect.
2018
2019         * UserInterface/Views/CanvasContentView.css:
2020         (.content-view.canvas:not(.tab)):
2021         (.content-view.canvas:not(.tab) > .progress):
2022         (.content-view.canvas:not(.tab) > .progress > .frame-count):
2023         * UserInterface/Views/CanvasContentView.js:
2024         (WI.CanvasContentView):
2025         (WI.CanvasContentView.prototype.attached):
2026         (WI.CanvasContentView.prototype._recordingStarted):
2027         (WI.CanvasContentView.prototype._recordingProgress):
2028         (WI.CanvasContentView.prototype._recordingStopped):
2029         Steal some space from the preview area to display a count of the number of recorded frames
2030         and the current buffer usage.
2031
2032         * UserInterface/Views/CanvasOverviewContentView.css:
2033         (.content-view.canvas-overview .content-view.canvas > :matches(header, .progress, .preview, footer)):
2034         (.content-view.canvas-overview .content-view.canvas.selected > :matches(.progress, .preview, footer),):
2035         (.content-view.canvas-overview .content-view.canvas > :matches(.progress, .preview)):
2036         (.content-view.canvas-overview .content-view.canvas > .preview):
2037         (.content-view.canvas-overview .content-view.canvas > .progress ~ .preview):
2038         (.content-view.canvas-overview .content-view.canvas > :matches(header, .preview, footer)): Deleted.
2039         (.content-view.canvas-overview .content-view.canvas.selected > :matches(.preview, footer),): Deleted.
2040
2041 2017-11-09  Nikita Vasilyev  <nvasilyev@apple.com>
2042
2043         Web Inspector: Styles Redesign: clicking on inline swatches and property checkboxes should not add a new property
2044         https://bugs.webkit.org/show_bug.cgi?id=179507
2045         <rdar://problem/35452204>
2046
2047         Reviewed by Brian Burg.
2048
2049         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2050         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
2051         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
2052         Don't add new properties when clicking on selector fields, source links, and property checkboxes.
2053
2054         * UserInterface/Views/SpreadsheetStyleProperty.js:
2055         (WI.SpreadsheetStyleProperty.prototype._update):
2056         It is safe to replace "change" event with "click" since it fires even when pressing Space key when the checkbox is focused.
2057
2058 2017-11-09  Devin Rousso  <webkit@devinrousso.com>
2059
2060         Web Inspector: support undo/redo of insertAdjacentHTML
2061         https://bugs.webkit.org/show_bug.cgi?id=179283
2062
2063         Reviewed by Joseph Pecoraro.
2064
2065         * UserInterface/Models/DOMNode.js:
2066         (WI.DOMNode.prototype.insertAdjacentHTML):
2067
2068         * UserInterface/Views/DOMTreeElement.js:
2069         (WI.DOMTreeElement.prototype._startEditingAsHTML):
2070         Drive-by: only attempt to update the cursor if an initialValue is supplied.
2071
2072 2017-11-09  Joseph Pecoraro  <pecoraro@apple.com>
2073
2074         Web Inspector: Make domain availability a list of types instead of a single type
2075         https://bugs.webkit.org/show_bug.cgi?id=179457
2076
2077         Reviewed by Brian Burg.
2078
2079         * UserInterface/Protocol/InspectorBackend.js:
2080         (InspectorBackendClass.prototype.activateDomain):
2081         The second value changed to be an optional list. Check if the active
2082         debuggable type is in the list or not.
2083
2084         * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
2085         * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
2086         * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
2087         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
2088         * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
2089         * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
2090         * Versions/Inspector-iOS-10.0.json:
2091         * Versions/Inspector-iOS-10.3.json:
2092         * Versions/Inspector-iOS-11.0.json:
2093         * Versions/Inspector-iOS-8.0.json:
2094         * Versions/Inspector-iOS-9.0.json:
2095         * Versions/Inspector-iOS-9.3.json:
2096         Since this is a change to how we generate the frontend resource,
2097         update the legacy versioned backends and regenerate their resource.
2098
2099 2017-11-09  Carlos Garcia Campos  <cgarcia@igalia.com>
2100
2101         REGRESSION(r224566): [GTK][WPE] Many inspector tests are failing after r224566
2102         https://bugs.webkit.org/show_bug.cgi?id=179419
2103
2104         Reviewed by Carlos Alberto Lopez Perez.
2105
2106         All of them fail with the following error:
2107
2108         Uncaught exception in Inspector page: ReferenceError: Can't find variable: CodeMirror [TestCombined.js:36658:15]
2109
2110         This is because Test.html, even when combined, is trying to load CodeMirror from External/CodeMirror, but
2111         CodeMirror was already combined for Main.html. We need to also combine CodeMirror for Test.html.
2112
2113         * Scripts/copy-user-interface-resources.pl:
2114
2115 2017-11-08  Joseph Pecoraro  <pecoraro@apple.com>
2116
2117         Web Inspector: Show Internal properties of PaymentRequest in Web Inspector Console
2118         https://bugs.webkit.org/show_bug.cgi?id=179276
2119
2120         Reviewed by Andy Estes.
2121
2122         * UserInterface/Test.html:
2123         * UserInterface/Test/FrontendTestHarness.js:
2124         (FrontendTestHarness.prototype.evaluateInPage):
2125         * UserInterface/Test/TestUtilities.js: Added.
2126         (promisify):
2127         Make async tests a little easier to work with by providing promises
2128         in some cases that would normally take a callback.
2129
2130 2017-11-08  Brian Burg  <bburg@apple.com>
2131
2132         Web Inspector: fix incorrect curly quote orientation in a UIString
2133         https://bugs.webkit.org/show_bug.cgi?id=179353
2134         <rdar://problem/35368697>
2135
2136         Reviewed by Joseph Pecoraro.
2137
2138         I didn't see any other instances of this mistake in our localized strings.
2139
2140         * Localizations/en.lproj/localizedStrings.js:
2141         * UserInterface/Views/ResourceTimelineDataGridNode.js:
2142         Fix it.
2143
2144 2017-11-08  Joseph Pecoraro  <pecoraro@apple.com>
2145
2146         Web Inspector: Remove unused Page.ScriptIdentifier protocol type
2147         https://bugs.webkit.org/show_bug.cgi?id=179407
2148
2149         Reviewed by Matt Baker.
2150
2151         * Versions/Inspector-iOS-10.0.json:
2152         * Versions/Inspector-iOS-10.3.json:
2153         * Versions/Inspector-iOS-11.0.json:
2154         * Versions/Inspector-iOS-7.0.json:
2155         * Versions/Inspector-iOS-8.0.json:
2156         * Versions/Inspector-iOS-9.0.json:
2157         * Versions/Inspector-iOS-9.3.json:
2158         Remove unused protocol type.
2159
2160 2017-11-06  Nikita Vasilyev  <nvasilyev@apple.com>
2161
2162         Web Inspector: Styles Redesign: Display warnings
2163         https://bugs.webkit.org/show_bug.cgi?id=179215
2164
2165         Reviewed by Brian Burg.
2166
2167         Display warning icons on the right of the property.
2168
2169         For now, the warning icons have only three title messages:
2170         - Invalid property name;
2171         - Invalid property value;
2172         - Duplicate property.
2173
2174         * Localizations/en.lproj/localizedStrings.js:
2175         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
2176         (.spreadsheet-style-declaration-editor .property):
2177         (.spreadsheet-style-declaration-editor .property-toggle):
2178         (.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .value):
2179         (.spreadsheet-style-declaration-editor .property.has-warning):
2180         (.spreadsheet-style-declaration-editor .property .warning):
2181         Draw the warning arrow and icon using only one HTML element.
2182         Don't set "top" property so the element remains vertically where it would be if it had "position: static".
2183
2184         (.spreadsheet-style-declaration-editor .property.has-warning .warning):
2185         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2186         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
2187         (WI.SpreadsheetCSSStyleDeclarationEditor):
2188         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
2189         (.spreadsheet-css-declaration):
2190         (.spreadsheet-css-declaration :matches(.header, .header-media)):
2191         (.spreadsheet-css-declaration .close-brace):
2192         Make properties span the entire width of the styles sidebar. Unsupported properties have yellow
2193         background. There should be no gaps between the property element and sidebar left and right edges.
2194
2195         * UserInterface/Views/SpreadsheetStyleProperty.js:
2196         (WI.SpreadsheetStyleProperty):
2197         (WI.SpreadsheetStyleProperty.prototype.updateStatus):
2198         (WI.SpreadsheetStyleProperty.prototype._update):
2199         (WI.SpreadsheetStyleProperty.prototype.updateClassNames): Deleted.
2200         Rename updateClassNames to updateStatus since it modifies title attribute of the warning element.
2201
2202 2017-11-06  Ross Kirsling  <ross.kirsling@sony.com>
2203
2204         Web Inspector: Two little Layers tab fixes
2205         https://bugs.webkit.org/show_bug.cgi?id=179273
2206
2207         Reviewed by Devin Rousso.
2208
2209         * UserInterface/Views/LayerDetailsSidebarPanel.js:
2210         (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
2211         Even when we suppress refire of the selected event, we still want a popover.
2212
2213         * UserInterface/Views/Layers3DContentView.js:
2214         (WI.Layers3DContentView):
2215         (WI.Layers3DContentView.prototype.shown):
2216         (WI.Layers3DContentView.prototype.hidden):
2217         (WI.Layers3DContentView.prototype.closed):
2218         (WI.Layers3DContentView.prototype._layerTreeDidChange):
2219         Opening WI directly to the Layers tab wasn't fetching layers right away. Let's fetch on every shown() and
2220         prune the hacky logic we were previously using -- it's overkill anyway, now that we're tracking mutations.
2221
2222 2017-11-06  Joseph Pecoraro  <pecoraro@apple.com>
2223
2224         Web Inspector: no way to navigate from Resource tree element to its entry in Network Tab
2225         https://bugs.webkit.org/show_bug.cgi?id=179328
2226         <rdar://problem/35367294>
2227
2228         Reviewed by Brian Burg.
2229
2230         * Localizations/en.lproj/localizedStrings.js:
2231         New reveal in network tab string.
2232
2233         * UserInterface/Base/Main.js:
2234         (WI.isShowingNetworkTab):
2235         Utility to know if the network tab is showing.
2236
2237         * UserInterface/Views/ContextMenuUtilities.js:
2238         (WI.appendContextMenuItemsForSourceCode):
2239         (showResourceWithOptions):
2240         (WI.appendContextMenuItemsForURL):
2241         Generalize context menus for just a URL.
2242
2243         * UserInterface/Views/TabBrowser.js:
2244         (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
2245         Support more tab ignore options, this is starting to get icky. We may want to
2246         move to just a preferredTab approach, since that is what some of these want.
2247
2248         * UserInterface/Views/DOMTreeElement.js:
2249         (WI.DOMTreeElement.prototype._populateTagContextMenu):
2250         Make use of new ContextMenu utility to add menu items for a URL.
2251
2252         * UserInterface/Views/NetworkTabContentView.js:
2253         (WI.NetworkTabContentView.prototype.showRepresentedObject):
2254         * UserInterface/Views/NetworkTableContentView.js:
2255         (WI.NetworkTableContentView.prototype.showRepresentedObject):
2256         Handle showing a Resource in the NetworkTab. We immediately show
2257         the details view for it, otherwise we fallback to the list view.
2258
2259 2017-11-06  Joseph Pecoraro  <pecoraro@apple.com>
2260
2261         Uncaught Exception: TypeError: null is not an object (evaluating 'mimeType.endsWith')
2262         https://bugs.webkit.org/show_bug.cgi?id=179325
2263         <rdar://problem/35366896>
2264
2265         Reviewed by Brian Burg.
2266
2267         * UserInterface/Base/MIMETypeUtilities.js:
2268         (WI.fileExtensionForMIMEType):
2269         (WI.shouldTreatMIMETypeAsText):
2270         Handle null mime types.
2271
2272 2017-11-06  Joseph Pecoraro  <pecoraro@apple.com>
2273
2274         Web Inspector: Selecting a DOM Search Result in Search Tab unexpectedly changes Tabs
2275         https://bugs.webkit.org/show_bug.cgi?id=179223
2276         <rdar://problem/33949556>
2277
2278         Reviewed by Devin Rousso.
2279
2280         * Localizations/en.lproj/localizedStrings.js:
2281         New string.
2282
2283         * UserInterface/Views/SearchResultTreeElement.js:
2284         (WI.SearchResultTreeElement.prototype.populateContextMenu):
2285         Add a context menu for search results to jump to a different tab.
2286         These behaviors match the double click behavior for search results.
2287
2288         * UserInterface/Views/SearchTabContentView.js:
2289         (WI.SearchTabContentView.prototype.canShowRepresentedObject):
2290         Always support showing a DOM Tree. Clients should be using
2291         ignoreSearchTab if they don't want to jump here.
2292
2293         * UserInterface/Views/DOMTreeDataGridNode.js:
2294         (WI.DOMTreeDataGridNode.prototype._goToArrowWasClicked):
2295         * UserInterface/Views/LayerTreeDataGridNode.js:
2296         (WI.LayerTreeDataGridNode.prototype._goToArrowWasClicked):
2297         Use ignoreSearchTab just in case when showing a DOM Tree.
2298
2299         * UserInterface/Views/ContentBrowser.js:
2300         (WI.ContentBrowser.prototype.shown):
2301         When showing, update our UI to reflect the values of the current content view, which
2302         for a while may have been owned by another ContentBrowser.
2303
2304         (WI.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
2305         (WI.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange):
2306         (WI.ContentBrowser.prototype._contentViewNavigationItemsDidChange):
2307         We can avoid work in a few places where we might not be the owning ContentBrowser
2308         of a ContentView that is changing.
2309
2310 2017-11-05  Nikita Vasilyev  <nvasilyev@apple.com>
2311
2312         REGRESSION (r221338): Web Inspector: NavigationBar incorrectly calculates minimumWidth
2313         https://bugs.webkit.org/show_bug.cgi?id=179292
2314
2315         Reviewed by Devin Rousso.
2316
2317         * UserInterface/Views/NavigationBar.js:
2318         (WI.NavigationBar.prototype._calculateMinimumWidth):
2319         totalItemWidth was the minimumWidth of the last item.
2320
2321 2017-11-05  Devin Rousso  <webkit@devinrousso.com>
2322
2323         Web Inspector: Canvas Tab: selecting Frame tree element should update preview/slider, does nothing
2324         https://bugs.webkit.org/show_bug.cgi?id=179072
2325         <rdar://problem/35278711>
2326
2327         Reviewed by Matt Baker.
2328
2329         * UserInterface/Views/CanvasTabContentView.js:
2330         (WI.CanvasTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged):
2331
2332         * UserInterface/Views/RecordingActionTreeElement.css:
2333         (.item.action > .titles .parameter.swizzled):
2334         (.tree-outline:not(:focus, .force-focus) .item.action:not(.initial-state, .parent, .invalid) > .icon): Deleted.
2335         (body:not(.window-inactive, .window-docked-inactive) .item.action > .titles .parameter.swizzled): Deleted.
2336         Drive-by: remove extra :focus selectors to prevent icon flashing when the window is blurred.
2337
2338 2017-11-04  Devin Rousso  <webkit@devinrousso.com>
2339
2340         Web Inspector: add contextmenu item to arbitrarily add HTML/Child to DOMTree
2341         https://bugs.webkit.org/show_bug.cgi?id=179042
2342
2343         Reviewed by Joseph Pecoraro.
2344
2345         * Localizations/en.lproj/localizedStrings.js:
2346
2347         * UserInterface/Models/DOMNode.js:
2348         (WI.DOMNode.prototype.insertAdjacentHTML.inspectedPage_node_insertAdjacentHTML):
2349         (WI.DOMNode.prototype.insertAdjacentHTML):
2350         Call-through to `insertAdjacentHTML` on the corresponding node in the inspected page.
2351
2352         * UserInterface/Views/DOMTreeElement.js:
2353         (WI.DOMTreeElement):
2354         (WI.DOMTreeElement.prototype._populateNodeContextMenu):
2355         (WI.DOMTreeElement.prototype._startEditingAsHTML.dispose):
2356         (WI.DOMTreeElement.prototype._startEditingAsHTML):
2357         (WI.DOMTreeElement.prototype._insertAdjacentHTML.commitCallback):
2358         (WI.DOMTreeElement.prototype._insertAdjacentHTML):
2359         (WI.DOMTreeElement.prototype.updateTitle):
2360         (WI.DOMTreeElement.prototype._singleTextChild):
2361         (WI.DOMTreeElement.prototype._nodeTitleInfo):
2362         (WI.DOMTreeElement.prototype._addHTML):
2363         (WI.DOMTreeElement.prototype._addPreviousSibling):
2364         (WI.DOMTreeElement.prototype._addNextSibling):
2365         (WI.DOMTreeElement.prototype._editAsHTML):
2366         Adjust where the editing element is placed depending on the options passed to `_editAsHTML`.
2367         If the placement is as a child, put it inside the child list. If the placement is as a
2368         sibling, place it before/after the selected TreeElement. Otherwise, add it as a child.
2369
2370         * UserInterface/Views/DOMTreeOutline.css:
2371         (.tree-outline.dom):
2372         (.tree-outline.dom li):
2373         (.tree-outline.dom li:not(.editing)):
2374         (.tree-outline.dom li.editing):
2375         (body[dir=ltr] .tree-outline.dom li): Deleted.
2376         (body[dir=rtl] .tree-outline.dom li): Deleted.
2377         Don't add padding when the list item is being edited.
2378
2379 2017-11-03  Nikita Vasilyev  <nvasilyev@apple.com>
2380
2381         Web Inspector: Uncaught Exception: null is not an object (evaluating 'selector.specificity.map') (at SpreadsheetCSSStyleDeclarationSection.js:199:51)
2382         https://bugs.webkit.org/show_bug.cgi?id=179225
2383         <rdar://problem/35329019>
2384
2385         Reviewed by Joseph Pecoraro.
2386
2387         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2388         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector):
2389         selector.specificity may not exist when the selector is dynamic and doesn't match the selected element.
2390
2391 2017-11-03  Ross Kirsling  <ross.kirsling@sony.com>
2392
2393         Web Inspector: Move Show Compositing Borders/Paint Flashing buttons from Elements tab to Layers tab
2394         https://bugs.webkit.org/show_bug.cgi?id=179211
2395
2396         Reviewed by Joseph Pecoraro.
2397
2398         * UserInterface/Views/DOMTreeContentView.js:
2399         (WI.DOMTreeContentView.prototype.get navigationItems):
2400         (WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):
2401         Guard old buttons with experimental flag.
2402
2403         * UserInterface/Views/Layers3DContentView.js:
2404         (WI.Layers3DContentView):
2405         (WI.Layers3DContentView.prototype.get navigationItems):
2406         (WI.Layers3DContentView.prototype.shown):
2407         (WI.Layers3DContentView.prototype.closed):
2408         (WI.Layers3DContentView.prototype._showPaintRectsSettingChanged):
2409         (WI.Layers3DContentView.prototype._togglePaintFlashing):
2410         (WI.Layers3DContentView.prototype._updateCompositingBordersButtonState):
2411         (WI.Layers3DContentView.prototype._toggleCompositingBorders):
2412         Add buttons to new home.
2413         No need to guard for get/setCompositingBordersVisible anymore, as these were introduced in iOS 7.
2414
2415 2017-11-03  Devin Rousso  <webkit@devinrousso.com>
2416
2417         Web Inspector: move top-level namespace functions in ImageUtilities to static class
2418         https://bugs.webkit.org/show_bug.cgi?id=179207
2419
2420         Reviewed by Brian Burg.
2421
2422         * .eslintrc:
2423         * UserInterface/Base/ImageUtilities.js:
2424         (WI.ImageUtilities.useSVGSymbol):
2425         (WI.ImageUtilities.scratchCanvasContext2D):
2426         (WI.ImageUtilities.imageFromImageData):
2427         (WI.ImageUtilities.imageFromCanvasGradient):
2428         (WI.ImageUtilities):
2429         (useSVGSymbol): Deleted.
2430         (WI.scratchCanvasContext2D): Deleted.
2431         (WI.imageFromImageData): Deleted.
2432         (WI.imageFromCanvasGradient): Deleted.
2433
2434         * UserInterface/Models/Recording.js:
2435         (WI.Recording.prototype.async swizzle):
2436         * UserInterface/Views/ButtonNavigationItem.js:
2437         (WI.ButtonNavigationItem.prototype.set image):
2438         * UserInterface/Views/CallFrameTreeElement.js:
2439         (WI.CallFrameTreeElement.prototype._updateStatus):
2440         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2441         (WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):
2442         * UserInterface/Views/DOMTreeElement.js:
2443         (WI.DOMTreeElement.prototype._updateBreakpointStatus):
2444         * UserInterface/Views/MultipleScopeBarItem.js:
2445         (WI.MultipleScopeBarItem):
2446         * UserInterface/Views/RecordingActionTreeElement.js:
2447         (WI.RecordingActionTreeElement._generateDOM):
2448         (WI.RecordingActionTreeElement.prototype._handleHasVisibleEffectChanged):
2449         * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
2450         (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
2451         * UserInterface/Views/ResourceMetricsContentView.js:
2452         (WI.ResourceMetricsContentView.prototype._refreshResourceSizeSection):
2453         * UserInterface/Views/ScopeRadioButtonNavigationItem.js:
2454         (WI.ScopeRadioButtonNavigationItem):
2455         * UserInterface/Views/ThreadTreeElement.js:
2456         (WI.ThreadTreeElement.prototype._updateStatus):
2457         * UserInterface/Views/TimelineTreeElement.js:
2458         (WI.TimelineTreeElement.prototype._showCloseButton):
2459         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
2460         (WI.VisualStyleCommaSeparatedKeywordEditor):
2461         * UserInterface/Views/VisualStyleKeywordIconList.js:
2462         (WI.VisualStyleKeywordIconList):
2463         * UserInterface/Views/VisualStylePropertyEditorLink.js:
2464         (WI.VisualStylePropertyEditorLink):
2465         * UserInterface/Views/VisualStyleSelectorSection.js:
2466         (WI.VisualStyleSelectorSection):
2467         * UserInterface/Views/WebSocketDataGridNode.js:
2468         (WI.WebSocketDataGridNode.prototype.createCellContent):
2469
2470 2017-11-03  Ross Kirsling  <ross.kirsling@sony.com>
2471
2472         Web Inspector: Hide legacy Layers sidebar on Search tab
2473         https://bugs.webkit.org/show_bug.cgi?id=179257
2474
2475         Reviewed by Joseph Pecoraro.
2476
2477         * UserInterface/Views/SearchTabContentView.js:
2478         (WI.SearchTabContentView):
2479
2480 2017-11-03  Joseph Pecoraro  <pecoraro@apple.com>
2481
2482         Web Inspector: Network Table - Include a secure lock indicator in the domain column
2483         https://bugs.webkit.org/show_bug.cgi?id=179233
2484         <rdar://problem/34070883>
2485
2486         Reviewed by Devin Rousso.
2487
2488         * UserInterface/Views/NetworkTableContentView.css:
2489         (.network-table .cell.domain > .lock):
2490         * UserInterface/Views/NetworkTableContentView.js:
2491         (WI.NetworkTableContentView.prototype.tablePopulateCell):
2492         (WI.NetworkTableContentView.prototype._populateDomainCell):
2493         Add a small lock icon by the domain if the request was https/wss.
2494
2495 2017-11-03  Devin Rousso  <webkit@devinrousso.com>
2496
2497         Web Inspector: Canvas2D Profiling: highlight expensive context commands in the captured command log
2498         https://bugs.webkit.org/show_bug.cgi?id=178302
2499         <rdar://problem/33158849>
2500
2501         Reviewed by Brian Burg.
2502
2503         * UserInterface/Models/RecordingFrame.js:
2504         (WI.RecordingFrame):
2505         (WI.RecordingFrame.fromPayload):
2506         (WI.RecordingFrame.prototype.get duration):
2507         (WI.RecordingFrame.prototype.toJSON):
2508
2509         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
2510         (WI.RecordingNavigationSidebarPanel.prototype.set recording):
2511         * UserInterface/Views/RecordingNavigationSidebarPanel.css:
2512         (.sidebar > .panel.navigation.recording > .content > .tree-outline .item.folder-icon > .status):
2513
2514 2017-11-02  Devin Rousso  <webkit@devinrousso.com>
2515
2516         Web Inspector: Canvas Tab: show supported GL extensions for selected canvas
2517         https://bugs.webkit.org/show_bug.cgi?id=179070
2518         <rdar://problem/35278276>
2519
2520         Reviewed by Brian Burg.
2521
2522         * Localizations/en.lproj/localizedStrings.js:
2523
2524         * UserInterface/Protocol/CanvasObserver.js:
2525         (WI.CanvasObserver.prototype.extensionEnabled):
2526
2527         * UserInterface/Controllers/CanvasManager.js:
2528         (WI.CanvasManager.prototype.extensionEnabled):
2529
2530         * UserInterface/Models/Canvas.js:
2531         (WI.Canvas.prototype.get extensions):
2532         (WI.Canvas.prototype.enableExtension):
2533         Maintain a Set of enabled extensions, and dispatch an event whenever an extension is enabled.
2534
2535         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
2536         (.sidebar > .panel.details.canvas .details-section.canvas-extensions .content > ul):
2537         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2538         (WI.CanvasDetailsSidebarPanel.prototype.set canvas):
2539         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
2540         (WI.CanvasDetailsSidebarPanel.prototype.layout):
2541         (WI.CanvasDetailsSidebarPanel.prototype._refreshAttributesSection):
2542         (WI.CanvasDetailsSidebarPanel.prototype._refreshExtensionsSection):
2543         Drive-by: hide Attributes section when the canvas has no attributes.
2544
2545 2017-11-02  Joseph Pecoraro  <pecoraro@apple.com>
2546
2547         Make ServiceWorker a Remote Inspector debuggable target
2548         https://bugs.webkit.org/show_bug.cgi?id=179043
2549         <rdar://problem/34126008>
2550
2551         Reviewed by Brian Burg.
2552
2553         Customize the Web Inspector frontend for a ServiceWorker target.
2554         Currently this just behaves like a JavaScript Context target because
2555         we haven't yet added support for Networking capabilities.
2556
2557         * UserInterface/Controllers/DebuggerManager.js:
2558         (WI.DebuggerManager.prototype.get knownNonResourceScripts):
2559         Drive-by fix a bug where lazily initializing the Resources / Debugger tabs
2560         would show Console evaluation scripts. We should ignore them, like we
2561         do in other places.
2562
2563         * Localizations/en.lproj/localizedStrings.js:
2564         * UserInterface/Controllers/AppController.js:
2565         (WI.AppController):
2566         (WI.AppController.debuggableTypeFromHost):
2567         * UserInterface/Controllers/AppControllerBase.js:
2568         * UserInterface/Controllers/TimelineManager.js:
2569         (WI.TimelineManager.defaultTimelineTypes):
2570         (WI.TimelineManager.availableTimelineTypes):
2571         * UserInterface/Models/TimelineRecording.js:
2572         (WI.TimelineRecording.sourceCodeTimelinesSupported):
2573         * UserInterface/Protocol/MainTarget.js:
2574         (WI.MainTarget.prototype.get displayName):
2575         * UserInterface/Test/TestAppController.js:
2576         * UserInterface/Views/DashboardContainerView.css:
2577         (body:not(.web) .toolbar .dashboard-container):
2578         (body.javascript .toolbar .dashboard-container): Deleted.
2579         * UserInterface/Views/DefaultDashboardView.css:
2580         (body:not(.web) .toolbar .dashboard.default > :matches(.resourcesCount, .resourcesSize, .time)):
2581         (body.javascript .toolbar .dashboard.default > :matches(.resourcesCount, .resourcesSize, .time)): Deleted.
2582         * UserInterface/Views/ResourceSidebarPanel.js:
2583         (WI.ResourceSidebarPanel):
2584         (WI.ResourceSidebarPanel.shouldPlaceResourcesAtTopLevel):
2585         (WI.ResourceSidebarPanel.prototype.initialLayout):
2586         (WI.ResourceSidebarPanel.prototype._addScript):
2587         (WI.ResourceSidebarPanel.prototype._extraDomainsActivated):
2588         * UserInterface/Views/Toolbar.js:
2589
2590 2017-11-02  Devin Rousso  <webkit@devinrousso.com>
2591
2592         Web Inspector: Canvas: recording parameters that include an Image should show an InlineSwatch (2D canvas)
2593         https://bugs.webkit.org/show_bug.cgi?id=177032
2594
2595         Reviewed by Brian Burg.
2596
2597         * Localizations/en.lproj/localizedStrings.js:
2598
2599         * UserInterface/Test.html:
2600         * UserInterface/Base/ImageUtilities.js:
2601         (WI.scratchCanvasContext2D):
2602         Creates a static canvas that can be used for scratch purposes, such as converting ImageData
2603         to an Image, or rendering the result of a CanvasGradient. The canvas is reset after each
2604         call of the function so it can be reused by other callers.
2605
2606         (WI.imageFromImageData):
2607         (WI.imageFromCanvasGradient):
2608         Utility functions for getting a dataURL image of ImageData/CanvasGradient after drawing it
2609         onto WI.scratchCanvasContext2D.
2610
2611         * UserInterface/Models/Recording.js:
2612         (WI.Recording.prototype.async.swizzle):
2613         Set the Image used to create a CanvasPattern as an expando property for later use.
2614
2615         * UserInterface/Models/RecordingAction.js:
2616         (WI.RecordingAction.prototype.getImageParameters):
2617
2618         * UserInterface/Views/RecordingActionTreeElement.js:
2619         (WI.RecordingActionTreeElement._generateDOM):
2620         Add Image InlineSwatch elements for parameters that are viewable as an image. For ImageData
2621         and CanvasGradient, WI.scratchCanvasContext2D is used to draw the ImageData/CanvasGradient
2622         and get a dataURL to be used as the image.
2623
2624         (WI.RecordingActionTreeElement._createSwatchForColorParameters):
2625         Drive-by: add checks that the parameter is not a CanvasGradient or CanvasPattern.
2626
2627         * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
2628         (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
2629         Add Image InlineSwatch elements for fillStyle/strokeStyle when the value is a CanvasGradient
2630         or a CanvasPattern.
2631
2632         * UserInterface/Views/InlineSwatch.js:
2633         (WI.InlineSwatch):
2634         (WI.InlineSwatch.prototype._updateSwatch):
2635         (WI.InlineSwatch.prototype._swatchElementClicked):
2636         * UserInterface/Views/InlineSwatch.css:
2637         (.inline-swatch):
2638         (.inline-swatch:matches(.color, .gradient)):
2639         (.inline-swatch:matches(.bezier, .spring, .variable)):
2640         (.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):hover):
2641         (.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):active):
2642         (.inline-swatch:not(.read-only):active > span):
2643         (.inline-swatch:matches(.bezier, .spring, .variable) > span):
2644         (.inline-swatch.image > span):
2645         (.inline-swatch:matches(.bezier, .spring, .variable):hover): Deleted.
2646         (.inline-swatch:matches(.bezier, .spring, .variable):active): Deleted.
2647         (.inline-swatch:active > span): Deleted.
2648         (.inline-swatch:matches(.bezier, .spring) > span): Deleted.
2649         Add Image type for showing previews of images.
2650         Drive-by: simplify some styles.
2651
2652         * UserInterface/Views/RecordingActionTreeElement.css:
2653         (.item.action > .titles .parameters > .inline-swatch):
2654         (.tree-outline:matches(:focus, .force-focus) .item.action > .titles .parameters > .inline-swatch): Deleted.
2655         Drive-by: remove the :focus requirement, as it would cause the InlineSwatch to shift when
2656         the user clicked out of the WebInspector window.
2657
2658 2017-11-02  Joseph Pecoraro  <pecoraro@apple.com>
2659
2660         Inspector should display service worker served responses properly
2661         https://bugs.webkit.org/show_bug.cgi?id=178597
2662         <rdar://problem/35186111>
2663
2664         Reviewed by Brian Burg.
2665
2666         * Localizations/en.lproj/localizedStrings.js:
2667         New Service Worker related strings.
2668
2669         * UserInterface/Controllers/HARBuilder.js:
2670         (WI.HARBuilder.entry):
2671         (WI.HARBuilder.timings):
2672         Only output timing data when we have real resource timing data.
2673
2674         (WI.HARBuilder.fetchType):
2675         Output a new string for a Service Worker load in our custom field.
2676
2677         * UserInterface/Models/ResourceTimingData.js:
2678         (WI.ResourceTimingData.prototype.get responseStart):
2679         Fallback further to the responseEnd. This can happen if the response
2680         itself is an error/failure and there was no response, so treat it as
2681         the same as response end.
2682
2683         * UserInterface/Models/Resource.js:
2684         (WI.Resource.responseSourceFromPayload):
2685         (WI.Resource.prototype.updateForRedirectResponse):
2686         (WI.Resource.prototype.updateForResponse):
2687         A fetch response won't change the URL, so if the URL is empty
2688         don't change it from what the request's URL was.
2689
2690         (WI.Resource.prototype.hasResponse):
2691         Failure is like finished. We should likely transition to an "isComplete" method.
2692
2693         * UserInterface/Views/NetworkTableContentView.js:
2694         (WI.NetworkTableContentView.prototype._populateTransferSizeCell):
2695         (WI.NetworkTableContentView.prototype._generateSortComparator):
2696         Output "(service worker)" in the transfer size field, to indicate this came
2697         from a Service worker. Sort such loads together.
2698
2699         * UserInterface/Views/ResourceHeadersContentView.js:
2700         (WI.ResourceHeadersContentView.prototype._responseSourceDisplayString):
2701         (WI.ResourceHeadersContentView.prototype._refreshSummarySection):
2702         Include the Service Worker response source in this details view. Also include
2703         a FIXME, since we would like to link directly to the service worker in the future.
2704
2705 2017-11-02  Nikita Vasilyev  <nvasilyev@apple.com>
2706
2707         Web Inspector: Styles Redesign: turn on CSS spreadsheet editor by default
2708         https://bugs.webkit.org/show_bug.cgi?id=179100
2709         <rdar://problem/35285990>
2710
2711         Reviewed by Brian Burg.
2712
2713         Add a "Legacy Style Editor" checkbox and remove the experimental "Spreadsheet Style Editor" checkbox.
2714
2715         Remove settings of the legacy styles editor:
2716         - Show inline warnings
2717         - Automatically insert newline
2718         - Select text on first click
2719
2720         These settings are not applicable for the spreadsheet styles editor and
2721         now are always enabled for the legacy styles editor.
2722
2723         * Localizations/en.lproj/localizedStrings.js:
2724         * UserInterface/Base/Setting.js:
2725         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2726         (WI.CSSStyleDeclarationTextEditor):
2727         (WI.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
2728         (WI.CSSStyleDeclarationTextEditor.):
2729         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2730         (WI.CSSStyleDetailsSidebarPanel):
2731         * UserInterface/Views/SettingsTabContentView.js:
2732         (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
2733         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2734
2735 2017-11-01  Devin Rousso  <webkit@devinrousso.com>
2736
2737         Web Inspector: consolidate DOMTreeElement contextmenu items into submenus
2738         https://bugs.webkit.org/show_bug.cgi?id=178996
2739
2740         Reviewed by Joseph Pecoraro.
2741
2742         * Localizations/en.lproj/localizedStrings.js:
2743
2744         * UserInterface/Views/ContextMenu.js:
2745         (WI.ContextSubMenuItem.prototype.appendItem):
2746         (WI.ContextSubMenuItem.prototype.appendSubMenuItem):
2747         (WI.ContextSubMenuItem.prototype.appendCheckboxItem):
2748         (WI.ContextSubMenuItem.prototype.pushItem):
2749         (WI.ContextSubMenuItem.prototype._pushItem): Deleted.
2750         Made `pushItem` public so that it is possible to create a ContextMenuItem without
2751         immediately adding it to the ContextMenu.
2752
2753         (WI.ContextSubMenuItem.prototype._buildDescriptor):
2754         (WI.ContextMenu.prototype._buildDescriptor):
2755         Filter out submenus that have no items.
2756
2757         * UserInterface/Views/ContextMenuUtilities.js:
2758         (WI.appendContextMenuItemsForDOMNode):
2759         * UserInterface/Views/DOMTreeElement.js:
2760         (WI.DOMTreeElement.prototype.toggleElementVisibility):
2761         (WI.DOMTreeElement.prototype._populateTagContextMenu):
2762         (WI.DOMTreeElement.prototype._populateTextContextMenu):
2763         (WI.DOMTreeElement.prototype._populateNodeContextMenu):
2764         (WI.DOMTreeElement.prototype._populateForcedPseudoStateItems): Deleted.
2765         Add relevant items to the provided submenus and reorder the entire contextmenu for better
2766         readability and consistency.
2767
2768         * UserInterface/Views/DOMTreeOutline.js:
2769         (WI.DOMTreeOutline.prototype.populateContextMenu):
2770         Create submenus for Add, Edit, Copy, and Delete, and pass them to the DOMTreeElement
2771         "populate*ContextMenu" functions so that they can add items to each submenu.
2772
2773         (WI.DOMTreeOutline.prototype._hideElement):
2774         Move to DOMTreeElement so that it can be used by a contextmenu item.
2775
2776 2017-11-01  Ross Kirsling  <ross.kirsling@sony.com>
2777
2778         Web Inspector: Improve UX of Layers tab visualization
2779         https://bugs.webkit.org/show_bug.cgi?id=178966
2780
2781         Reviewed by Devin Rousso.
2782
2783         * UserInterface/Views/Layers3DContentView.js:
2784         (WI.Layers3DContentView):
2785         (WI.Layers3DContentView.prototype.initialLayout):
2786         (WI.Layers3DContentView.prototype._canvasMouseDown):
2787         (WI.Layers3DContentView.prototype._createLayerGroup): Renamed from _addLayerGroup.
2788         (WI.Layers3DContentView.prototype._updateLayerGroupPosition): Merged into _updateLayers.
2789         Set up zoom and pan.
2790
2791         (WI.Layers3DContentView.prototype._animate):
2792         (WI.Layers3DContentView.prototype._restrictPan):
2793         Restrict pan to bounding box on XY plane.
2794
2795         (WI.Layers3DContentView.prototype.layout):
2796         (WI.Layers3DContentView.prototype._updateDocument):
2797         (WI.Layers3DContentView.prototype._resetCamera):
2798         On new document, throw out all old layers and center the camera on the new document layer.
2799
2800         (WI.Layers3DContentView.prototype.selectLayerById):
2801         (WI.Layers3DContentView.prototype._centerOnSelection):
2802         Recenter the camera when layer group selection is updated programmatically.
2803
2804         (WI.Layers3DContentView.prototype._updateLayers):
2805         (WI.Layers3DContentView.prototype._createLayerMesh):
2806         Fix visual artifact due to "depthWrite" flag.
2807
2808         * UserInterface/Views/LayerDetailsSidebarPanel.js:
2809         (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
2810         Suppress selection update event when the data grid selection is updated programmatically.
2811
2812         * UserInterface/Views/DataGridNode.js:
2813         (WI.DataGridNode.prototype.revealAndSelect):
2814         Allow forwarding of select()'s parameter.
2815
2816 2017-11-01  Joseph Pecoraro  <pecoraro@apple.com>
2817
2818         Web Inspector: Combine all storage icon files into a single file
2819         https://bugs.webkit.org/show_bug.cgi?id=179134
2820
2821         Reviewed by Devin Rousso.
2822
2823         * UserInterface/Main.html:
2824         * UserInterface/Views/CookieIcon.css: Removed.
2825         * UserInterface/Views/DOMStorageIcons.css: Removed.
2826         * UserInterface/Views/DatabaseIcon.css: Removed.
2827         * UserInterface/Views/DatabaseTableIcon.css: Removed.
2828         * UserInterface/Views/StorageIcons.css: Added.
2829         (.application-cache-manifest .icon):
2830         (.application-cache-frame .icon):
2831         (.cookie-icon .icon):
2832         (.local-storage-icon .icon):
2833         (.session-storage-icon .icon):
2834         (.database-icon .icon):
2835         (.database-table-icon .icon):
2836
2837 2017-11-01  Nikita Vasilyev  <nvasilyev@apple.com>
2838
2839         Web Inspector: Styles Redesign: Hovering over a selector should highlight matching elements on the page
2840         https://bugs.webkit.org/show_bug.cgi?id=179040
2841
2842         Reviewed by Devin Rousso.
2843
2844         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2845         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
2846         Use mouseenter/mouseleave events instead of mousein/mouseout (as in the old styles sidebar)
2847         to avoid unnecessary events being fired.
2848
2849         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._highlightNodesWithSelector):
2850         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._hideDOMNodeHighlight):
2851
2852 2017-10-30  Nikita Vasilyev  <nvasilyev@apple.com>
2853
2854         Web Inspector: [PARITY] Styles Redesign: Ability to modify style attributes
2855         https://bugs.webkit.org/show_bug.cgi?id=178328
2856         <rdar://problem/35000990>
2857
2858         Reviewed by Joseph Pecoraro.
2859
2860         Before this patch, modifying a property of a style attribute duplicated the old property
2861         and appended the new one. This happened because WI.TextRange.prototype.resolveOffsets
2862         didn't resolve offsets correctly when text didn't end with a trailing new line.
2863
2864         Since WI.TextRange.prototype.resolveOffsets is used elsewhere and this could be expected
2865         behavior, append a line break before resolving a range.
2866
2867         * UserInterface/Models/CSSProperty.js:
2868         (WI.CSSProperty.prototype._updateOwnerStyleText):
2869
2870 2017-10-30  Ross Kirsling  <ross.kirsling@sony.com>
2871
2872         Web Inspector: Clicking filler in data grid should clear selection
2873         https://bugs.webkit.org/show_bug.cgi?id=179027
2874
2875         Reviewed by Brian Burg.
2876
2877         * UserInterface/Views/DataGrid.js:
2878         (WI.DataGrid.prototype._mouseDownInDataTable):
2879
2880 2017-10-30  Devin Rousso  <webkit@devinrousso.com>
2881
2882         Web Inspector: Canvas Tab: no path components shown in recording content view after selecting a recording via View Recordings... dropdown
2883         https://bugs.webkit.org/show_bug.cgi?id=178807
2884         <rdar://problem/35176463>
2885
2886         Reviewed by Brian Burg.
2887
2888         When the first Recording is taken of a canvas, it is immediately added as a child. When the
2889         CanvasTreeElement is `attached`, however, it will attempt to regenerate its children if
2890         necessary. This is especially true for canvases with ShaderPrograms, as they are added with
2891         `addRepresentedObjectToNewChildQueue`, meaning that the child TreeElements aren't actually
2892         added until the next tick, preventing the ContentBrowser logic from generating path
2893         components correctly.
2894
2895         This patch switches to using `addChildForRepresentedObject` so that there is no delay when
2896         adding children, and also ensures that any existing recordings are also added on regeneration.
2897
2898         * UserInterface/Views/CanvasTabContentView.js:
2899         (WI.CanvasTabContentView.prototype._recordingAdded):
2900         Move logic for adding TreeElements for new Recordings to CanvasTreeElement.
2901
2902         * UserInterface/Views/CanvasTreeElement.js:
2903         (WI.CanvasTreeElement.createRecordingTreeElement):
2904         (WI.CanvasTreeElement):
2905         (WI.CanvasTreeElement.prototype.onattach):
2906         (WI.CanvasTreeElement.prototype.ondetach):
2907         (WI.CanvasTreeElement.prototype.onpopulate):
2908         (WI.CanvasTreeElement.prototype._handleItemAdded):
2909         (WI.CanvasTreeElement.prototype._handleItemRemoved):
2910         (WI.CanvasTreeElement.prototype._shaderProgramAdded): Deleted.
2911         (WI.CanvasTreeElement.prototype._shaderProgramRemoved): Deleted.
2912
2913 2017-10-30  Fujii Hironori  <Hironori.Fujii@sony.com>
2914
2915         [GTK] Web Inspector: Add Path.svg
2916         https://bugs.webkit.org/show_bug.cgi?id=178432
2917
2918         Reviewed by Carlos Garcia Campos.
2919
2920         * UserInterface/Images/gtk/Path.svg: Added.
2921
2922 2017-10-30  Nikita Vasilyev  <nvasilyev@apple.com>
2923
2924         Web Inspector: [PARITY] Styles Redesign: clicking on the white space after the property should create a blank property
2925         https://bugs.webkit.org/show_bug.cgi?id=178022
2926         <rdar://problem/34861687>
2927
2928         Reviewed by Matt Baker.
2929
2930         - Clicking on the whitespace on the right side of a property should insert a blank property after the clicked one.
2931         - Clicking on the whitespace at the end of a CSS rule should append a blank property.
2932         - Clicking on the whitespace before the first property should insert a blank property before the first one.
2933
2934         * UserInterface/Models/CSSProperty.js:
2935         (WI.CSSProperty.prototype.remove):
2936         (WI.CSSProperty.prototype._updateOwnerStyleText):
2937         Remove method previously didn't do anything for a newly added property.
2938
2939         * UserInterface/Models/CSSStyleDeclaration.js:
2940         (WI.CSSStyleDeclaration.prototype.newBlankProperty):
2941         Update indices of all properties after the newly added property.
2942
2943         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2944         (WI.SpreadsheetCSSStyleDeclarationEditor):
2945         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
2946         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
2947         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
2948         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.isFocused):
2949         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.addBlankProperty):
2950         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
2951         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
2952         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._addBlankProperty): Deleted.
2953         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._isFocused): Deleted.
2954         Re-layout SpreadsheetCSSStyleDeclarationEditor after adding a new property. Preserve edited property
2955         so we can restore editing state after the re-layout.
2956
2957         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2958         (WI.SpreadsheetCSSStyleDeclarationSection):
2959         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
2960         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
2961         (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
2962         Clicking should add a new property only when we aren't editing an existing property.
2963
2964         * UserInterface/Views/SpreadsheetStyleProperty.js:
2965         (WI.SpreadsheetStyleProperty):
2966         (WI.SpreadsheetStyleProperty.prototype.updateClassNames):
2967         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
2968         Remove newlyAdded property of SpreadsheetStyleProperty. During layout SpreadsheetCSSStyleDeclarationEditor
2969         recreates SpreadsheetStyleProperty views and newlyAdded property gets lost.
2970
2971         * UserInterface/Views/SpreadsheetTextField.js:
2972         (WI.SpreadsheetTextField.prototype.get valueBeforeEditing):
2973         (WI.SpreadsheetTextField.prototype.startEditing):
2974         (WI.SpreadsheetTextField.prototype.stopEditing):
2975         (WI.SpreadsheetTextField.prototype._discardChange):
2976
2977 2017-10-27  Devin Rousso  <webkit@devinrousso.com>
2978
2979         Web Inspector: Canvas Tab: no way to see backtrace of where a canvas context was created
2980         https://bugs.webkit.org/show_bug.cgi?id=178799
2981         <rdar://problem/35175805>
2982
2983         Reviewed by Brian Burg.
2984
2985         * Localizations/en.lproj/localizedStrings.js:
2986
2987         * UserInterface/Models/Canvas.js:
2988         (WI.Canvas.fromPayload):
2989         (WI.Canvas.prototype.get backtrace):
2990
2991         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
2992         (.sidebar > .panel.details.canvas .details-section.canvas-backtrace .call-frame):
2993
2994         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2995         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
2996         (WI.CanvasDetailsSidebarPanel.prototype.layout):
2997         (WI.CanvasDetailsSidebarPanel.prototype._refreshBacktraceSection):
2998
2999         * UserInterface/Views/ResourceIcons.css:
3000         (.canvas > .icon):
3001         (.canvas .icon): Deleted.
3002
3003 2017-10-26  Devin Rousso  <webkit@devinrousso.com>
3004
3005         Web Inspector: Canvas Tab: canvas path components from old page stick around when page is reloaded
3006         https://bugs.webkit.org/show_bug.cgi?id=178806
3007         <rdar://problem/35176360>
3008
3009         Reviewed by Brian Burg.
3010
3011         Before this change, the CanvasCollection was regenerated each time the Canvas tab was
3012         attached. This also caused the invisible TreeOutline, used for the path components and to
3013         manage selection, to be reset as well. Whenever the page refreshed, however, the old
3014         canvases, and associated recordings, were not removed. This patch reworks all of this logic
3015         to create the CanvasCollection on construction of the tab and add/remove canvases as needed.
3016
3017         * UserInterface/Controllers/CanvasManager.js:
3018         (WI.CanvasManager.prototype.canvasAdded):
3019         (WI.CanvasManager.prototype.canvasRemoved):
3020         (WI.CanvasManager.prototype._removeCanvas):
3021         (WI.CanvasManager.prototype._mainResourceDidChange):
3022         Replaced the "Cleared" event by instead firing "CanvasRemoved" for every tracked canvas. This
3023         massively simplifies the logic for when the page navigates, as everything goes through a
3024         single event listener.
3025         Drive-by: changed existing event names to remove unnecessary words.
3026
3027         * UserInterface/Views/CanvasTabContentView.js:
3028         (WI.CanvasTabContentView):
3029         (WI.CanvasTabContentView.prototype.attached):
3030         (WI.CanvasTabContentView.prototype.detached):
3031         (WI.CanvasTabContentView.prototype._addCanvas):
3032         (WI.CanvasTabContentView.prototype._removeCanvas):
3033         (WI.CanvasTabContentView.prototype._handleCanvasAdded):
3034         (WI.CanvasTabContentView.prototype._handleCanvasRemoved):
3035         (WI.CanvasTabContentView.prototype._canvasAdded): Deleted.
3036         (WI.CanvasTabContentView.prototype._canvasRemoved): Deleted.
3037         (WI.CanvasTabContentView.prototype._mainResourceDidChange): Deleted.
3038         Rework logic for the way that the CanvasCollection is maintained. It is no longer
3039         created/destroyed each time the view is attached/detached, and instead a diff is calculated
3040         for the added/existing/removed canvases and the content views are added/removed as such.
3041
3042         * UserInterface/Views/CanvasOverviewContentView.js:
3043         (WI.CanvasOverviewContentView.prototype._selectionPathComponentsChanged):
3044         Drive-by: if an imported recording is selected on the Canvas Overview view, we should show it.
3045
3046 2017-10-26  Devin Rousso  <webkit@devinrousso.com>
3047
3048         Web Inspector: Canvas Tab: canvases overview should support navigation via keyboard
3049         https://bugs.webkit.org/show_bug.cgi?id=178800
3050         <rdar://problem/35175856>
3051
3052         Reviewed by Brian Burg.
3053
3054         Create a KeyboardShorcut for each of the following:
3055          - Up: selects the previous canvas in the selected column
3056          - Down: selects the next canvas in the selected column
3057          - Right: selects the next canvas in the selected row
3058          - Left: selects the previous canvas in the selected row
3059          - Space: toggle recording of the selected canvas
3060          - Shift+Space: toggle single-frame recording of the selected canvas
3061
3062         The calculation for selected row/colum is based on the `offsetWidth` of the parent element
3063         and the selected item's content view element. Since this view uses a flexbox, all of the
3064         items are expected to have the same dimensions, meaning that this value is uniform. The
3065         intended functionality is that of a spreadsheet, where pressing pressing left/right will
3066         never change the selected row and up/down will never change the selected column.
3067
3068         * UserInterface/Views/CanvasOverviewContentView.css:
3069         (.content-view.canvas-overview):
3070         (.content-view.canvas-overview .content-view.canvas):
3071         Move margin value to a CSS variable so that it can be easily retrieved via JavaScript.
3072
3073         * UserInterface/Views/CanvasOverviewContentView.js:
3074         (WI.CanvasOverviewContentView):
3075         (WI.CanvasOverviewContentView.prototype.contentViewAdded):
3076         (WI.CanvasOverviewContentView.prototype.contentViewRemoved):
3077         (WI.CanvasOverviewContentView.prototype.attached):
3078         (WI.CanvasOverviewContentView.prototype.detached):
3079         (WI.CanvasOverviewContentView.prototype.get _itemMargin):
3080         (WI.CanvasOverviewContentView.prototype._changeSelectedItemVertically):
3081         (WI.CanvasOverviewContentView.prototype._changeSelectedItemHorizontally):
3082         (WI.CanvasOverviewContentView.prototype._updateNavigationItems):
3083         (WI.CanvasOverviewContentView.prototype._handleUp):
3084         (WI.CanvasOverviewContentView.prototype._handleRight):
3085         (WI.CanvasOverviewContentView.prototype._handleDown):
3086         (WI.CanvasOverviewContentView.prototype._handleLeft):
3087         (WI.CanvasOverviewContentView.prototype._handleSpace):
3088         (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange):
3089         Drive-by: call `_updateNavigationItems` whenever an item is added/removed so that if there
3090         are no items the navigation items cannot be clicked.
3091
3092 2017-10-26  Nikita Vasilyev  <nvasilyev@apple.com>
3093
3094         Web Inspector: Styles Redesign: Make "Style Attribute" text darker and non-focusable
3095         https://bugs.webkit.org/show_bug.cgi?id=178837
3096
3097         Reviewed by Brian Burg.
3098
3099         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
3100         (.spreadsheet-css-declaration .selector.style-attribute):
3101         Use the same shade of gray as in the "Inherited from" sections.
3102
3103         * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
3104         (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
3105         Only editable selectors should be focusable.
3106
3107 2017-10-26  Fujii Hironori  <Hironori.Fujii@sony.com>
3108
3109         [GTK] Web Inspector: Add CanvasOverview.svg and Canvas.svg
3110         https://bugs.webkit.org/show_bug.cgi?id=178426
3111
3112         Reviewed by Carlos Garcia Campos.
3113
3114         * UserInterface/Images/gtk/Canvas.svg: Added.
3115         * UserInterface/Images/gtk/CanvasOverview.svg: Added.
3116
3117 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
3118
3119         Web Inspector: provide a way to enable/disable event listeners
3120         https://bugs.webkit.org/show_bug.cgi?id=177451
3121         <rdar://problem/34994925>
3122
3123         Reviewed by Joseph Pecoraro.
3124
3125         * Localizations/en.lproj/localizedStrings.js:
3126
3127         * UserInterface/Controllers/DOMTreeManager.js:
3128         (WI.DOMTreeManager.prototype.setEventListenerDisabled):
3129
3130         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
3131         (WI.DOMNodeDetailsSidebarPanel.prototype.attached):
3132         (WI.DOMNodeDetailsSidebarPanel.prototype.detached):
3133         (WI.DOMNodeDetailsSidebarPanel.prototype._eventListenersChanged):
3134         (WI.DOMNodeDetailsSidebarPanel.prototype.addEventListeners): Deleted.
3135         (WI.DOMNodeDetailsSidebarPanel.prototype.removeEventListeners): Deleted.
3136         Listen for `WI.DOMNode.Event.EventListenersChanged` on all instances of WI.DOMNode, since we
3137         will still want to refresh the event listeners section in the event that an event listener
3138         is removed from a parent node.
3139
3140         * UserInterface/Views/EventListenerSectionGroup.js:
3141         (WI.EventListenerSectionGroup):
3142         (WI.EventListenerSectionGroup.prototype._eventText):
3143         (WI.EventListenerSectionGroup.prototype._nodeTextOrLink):
3144         (WI.EventListenerSectionGroup.prototype._createDisabledToggleElement):
3145         (WI.EventListenerSectionGroup.prototype._createDisabledToggleElement.updateTitle):
3146         * UserInterface/Views/EventListenerSectionGroup.css:
3147         (.event-listener-section > .content input[type="checkbox"]):
3148
3149         * UserInterface/Views/DetailsSectionSimpleRow.js:
3150         (WI.DetailsSectionSimpleRow.prototype.get label):
3151         (WI.DetailsSectionSimpleRow.prototype.set label):
3152
3153 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
3154
3155         Web Inspector: replace TypeVerifier with subclasses of WI.Collection
3156         https://bugs.webkit.org/show_bug.cgi?id=178045
3157         <rdar://problem/35174307>
3158
3159         Reviewed by Brian Burg.
3160
3161         * UserInterface/Models/Collection.js:
3162         (WI.Collection):
3163         (WI.Collection.prototype.get displayName):
3164         (WI.Collection.prototype.objectIsRequiredType):
3165         (WI.Collection.prototype.add):
3166         (WI.Collection.prototype.get typeVerifier): Deleted.
3167         Instead of exposing the typeVerifier, we create a public predicate that returns whether the
3168         given object matches the expected type of the Collection. Subclasses can override it to
3169         limit the scope of the collection to a particular type.
3170
3171         * UserInterface/Models/CollectionTypes.js:
3172         (WI.FrameCollection.prototype.get displayName):
3173         (WI.FrameCollection.prototype.objectIsRequiredType):
3174         (WI.FrameCollection): Deleted.
3175         (WI.ScriptCollection.prototype.get displayName):
3176         (WI.ScriptCollection.prototype.objectIsRequiredType):
3177         (WI.ScriptCollection): Deleted.
3178         (WI.CSSStyleSheetCollection.prototype.get displayName):
3179         (WI.CSSStyleSheetCollection.prototype.objectIsRequiredType):
3180         (WI.CSSStyleSheetCollection): Deleted.
3181         (WI.CanvasCollection.prototype.get displayName):
3182         (WI.CanvasCollection.prototype.objectIsRequiredType):
3183         (WI.CanvasCollection): Deleted.
3184         (WI.ShaderProgramCollection.prototype.get displayName):
3185         (WI.ShaderProgramCollection.prototype.objectIsRequiredType):
3186         (WI.ShaderProgramCollection): Deleted.
3187         (WI.RecordingCollection.prototype.get displayName):
3188         (WI.RecordingCollection.prototype.objectIsRequiredType):
3189         (WI.RecordingCollection): Deleted.
3190         * UserInterface/Models/ResourceCollection.js:
3191         (WI.ResourceCollection):
3192         (WI.ResourceCollection.prototype.get displayName):
3193         (WI.ResourceCollection.prototype.objectIsRequiredType):
3194         (WI.ResourceCollection.verifierForType): Deleted.
3195         * UserInterface/Views/TreeOutlineGroup.js:
3196         (WI.TreeOutlineGroup.prototype.objectIsRequiredType):
3197         (WI.TreeOutlineGroup): Deleted.
3198         Introduce additional subclasses of Collection for other model types. Modify existing
3199         subclasses to remove `typeVerifier` and instead extend `objectIsRequiredType`.
3200
3201         * UserInterface/Models/Canvas.js:
3202         (WI.Canvas):
3203         * UserInterface/Models/Frame.js:
3204         (WI.Frame):
3205         * UserInterface/Protocol/Target.js:
3206         (WI.Target):
3207         * UserInterface/Views/ResourceSidebarPanel.js:
3208         (WI.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
3209         (WI.ResourceSidebarPanel.prototype._addScript):
3210
3211         * UserInterface/Views/CollectionContentView.js:
3212         (WI.CollectionContentView):
3213         (WI.CollectionContentView.titleForCollection): Delete.
3214         * UserInterface/Views/ResourceCollectionContentView.js:
3215         (WI.ResourceCollectionContentView):
3216         Require that subclasses of Collection override `get displayName` if the CollectionContentView
3217         is not provided with a `contentPlaceholderText`.
3218
3219         (WI.CollectionContentView.prototype.initialLayout):
3220         We don't need to create and add ContentView for each item of the Collection, as this is
3221         already done by attached().
3222
3223         (WI.CollectionContentView.prototype._showContentPlaceholder):
3224         Remove the 250ms delay before showing the placeholder TitleView.
3225
3226         * UserInterface/Views/FolderizedTreeElement.js:
3227         (WI.FolderizedTreeElement.prototype._settingsForRepresentedObject):
3228
3229 2017-10-25  Joseph Pecoraro  <pecoraro@apple.com>
3230
3231         Web Inspector: Display fetch() initiated loads as "fetch" instead of "xhr" in the Network Tab
3232         https://bugs.webkit.org/show_bug.cgi?id=178826
3233
3234         Reviewed by Youenn Fablet.
3235
3236         * UserInterface/Views/NetworkTableContentView.js:
3237         (WI.NetworkTableContentView.shortDisplayNameForResourceType):
3238         Fetch and XHR loads are still grouped under the succinct "XHR" filter, but
3239         at least display the better type name in the "Type" column of the table.
3240
3241 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
3242
3243         Web Inspector: Canvas Tab: selected canvas card loses selection outline style while recording
3244         https://bugs.webkit.org/show_bug.cgi?id=178814
3245         <rdar://problem/35177317>
3246
3247         Reviewed by Brian Burg.
3248
3249         * UserInterface/Views/CanvasOverviewContentView.css:
3250         (.content-view.canvas-overview .content-view.canvas):
3251         (.content-view.canvas-overview .content-view.canvas > :matches(header, .preview, footer)):
3252         (.content-view.canvas-overview .content-view.canvas.selected > :matches(.preview, footer),):
3253         (.content-view.canvas-overview .content-view.canvas > header):
3254         (.content-view.canvas-overview .content-view.canvas.is-recording > header):
3255         (.content-view.canvas-overview .content-view.canvas > .preview):
3256         (.content-view.canvas-overview .content-view.canvas > footer):
3257         (.content-view.canvas-overview .content-view.canvas.selected:not(.is-recording)): Deleted.
3258         Instead of applying the border to the entire element, apply parts of the border to each of
3259         its children so that we can choose what colors to use for each part.
3260
3261 2017-10-25  Nikita Vasilyev  <nvasilyev@apple.com>
3262
3263         Web Inspector: [PARITY] Styles Redesign: Add color gradient, bezier curve, and spring inline widgets
3264         https://bugs.webkit.org/show_bug.cgi?id=178404
3265         <rdar://problem/35035992>
3266
3267         Reviewed by Devin Rousso.
3268
3269         Add inline widgets for the following CSS values:
3270         - Gradients, e.g. `background-image: linear-gradient(yellow, orange)`
3271         - Bezier curves, e.g. `transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55)`
3272         - Spring functions, e.g. `transition-timing-function: spring(1, 2, 2, 4)`
3273
3274         * UserInterface/Models/Color.js:
3275         (WI.Color.prototype.toString):
3276         Don't throw. The are never try/catch blocks on the callsites.
3277
3278         * UserInterface/Views/SpreadsheetStyleProperty.js:
3279         (WI.SpreadsheetStyleProperty.prototype._renderValue):
3280         (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
3281         (WI.SpreadsheetStyleProperty.prototype._addGradientTokens):
3282         (WI.SpreadsheetStyleProperty.prototype._addColorTokens):
3283         (WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens):
3284
3285 2017-10-25  Nikita Vasilyev  <nvasilyev@apple.com>
3286
3287         Web Inspector: Styles Redesign: Newly added invalid property isn't immediately shown as invalid
3288         https://bugs.webkit.org/show_bug.cgi?id=178488
3289
3290         Reviewed by Brian Burg.
3291
3292         * UserInterface/Models/CSSStyleDeclaration.js:
3293         (WI.CSSStyleDeclaration.prototype.newBlankProperty):
3294         Call this.update to update _properties, _allProperties, _visibleProperties, and _allVisibleProperties.
3295
3296         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
3297         (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled)):
3298         (.spreadsheet-style-declaration-editor .property.invalid-name:not(.disabled)):
3299         (.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .value):
3300         When the property name is valid, but the value isn't, display red line-through only for the value.
3301         This is how it works in the old styles sidebar as well.
3302
3303         * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3304         (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
3305         (WI.SpreadsheetCSSStyleDeclarationEditor):
3306         * UserInterface/Views/SpreadsheetStyleProperty.js:
3307         (WI.SpreadsheetStyleProperty):
3308         (WI.SpreadsheetStyleProperty.prototype.updateClassNames):
3309         (WI.SpreadsheetStyleProperty.prototype._update):
3310         Introduce updateClassNames method. Unlike _update, it doesn't change text selection or focus and
3311         can be safely called on a property while it's being edited.
3312
3313 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
3314
3315         Web Inspector: Canvas Tab: clicking on a canvas card causes details sidebar to show and mess up card arrangement
3316         https://bugs.webkit.org/show_bug.cgi?id=178803
3317         <rdar://problem/35176082>
3318
3319         Reviewed by Brian Burg.
3320
3321         * Localizations/en.lproj/localizedStrings.js:
3322         * UserInterface/Views/CanvasDetailsSidebarPanel.css:
3323         (.sidebar > .panel.details.canvas > .content > .empty-content-placeholder):
3324         (.sidebar > .panel.details.canvas > .content > .empty-content-placeholder > .message):
3325         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
3326         (WI.CanvasDetailsSidebarPanel):
3327         (WI.CanvasDetailsSidebarPanel.prototype.inspect):
3328         (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
3329         (WI.CanvasDetailsSidebarPanel.prototype.layout):
3330
3331         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
3332         (WI.RecordingNavigationSidebarPanel.disallowInstanceForClass): Deleted.
3333         * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
3334         (WI.RecordingStateDetailsSidebarPanel.disallowInstanceForClass): Deleted.
3335         * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
3336         (WI.RecordingTraceDetailsSidebarPanel.disallowInstanceForClass): Deleted.
3337         Drive-by: these sidebar panels are now only used by the Canvas tab, so we no longer need to
3338         provide support for multiple instances of them.
3339
3340 2017-10-25  Devin Rousso  <webkit@devinrousso.com>
3341
3342         Web Inspector: preserve Recordings for each Canvas after closing the Canvas tab
3343         https://bugs.webkit.org/show_bug.cgi?id=178767
3344         <rdar://problem/35167239>
3345
3346         Reviewed by Brian Burg.
3347
3348         * UserInterface/Test.html:
3349         Include CollectionTypes for tests.
3350
3351         * UserInterface/Controllers/CanvasManager.js:
3352         (WI.CanvasManager.prototype.recordingFinished):
3353
3354         * UserInterface/Models/Canvas.js:
3355         (WI.Canvas):
3356         (WI.Canvas.prototype.get recordingCollection):
3357
3358         * UserInterface/Models/CollectionTypes.js:
3359         (WI.CanvasCollection):
3360         (WI.RecordingCollection):
3361
3362         * UserInterface/Views/CanvasContentView.js:
3363         (WI.CanvasContentView.prototype.initialLayout):
3364         (WI.CanvasContentView.prototype._addRecording):
3365         (WI.CanvasContentView.prototype._recordingStopped):
3366
3367         * UserInterface/Views/CanvasTabContentView.js:
3368         (WI.CanvasTabContentView.prototype.attached):
3369         (WI.CanvasTabContentView.prototype._recordingAdded):
3370
3371 2017-10-24  Joseph Pecoraro  <pecoraro@apple.com>
3372
3373         REGRESSION(r222181): Web Inspector: Augmenting Agents Domains are not getting activated
3374         https://bugs.webkit.org/show_bug.cgi?id=178768
3375         <rdar://problem/35081334>
3376
3377         Reviewed by Brian Burg.
3378
3379         * UserInterface/Base/Main.js:
3380         Simplify event dispatch.
3381
3382         * UserInterface/Controllers/AppController.js:
3383         (WI.AppController.prototype.activateExtraDomains):
3384         Pass the domains on.
3385
3386 2017-10-24  Joseph Pecoraro  <pecoraro@apple.com>
3387
3388         Web Inspector: Console Drawer resizing doesn't match cursor position
3389         https://bugs.webkit.org/show_bug.cgi?id=178753
3390         <rdar://problem/35160484>
3391
3392         Reviewed by Brian Burg.
3393
3394         * UserInterface/Views/ConsoleDrawer.js:
3395         (WI.ConsoleDrawer.prototype._updateDrawerHeight):
3396         Drive-by fix an early return that would never have worked.
3397
3398         * UserInterface/Views/Main.css:
3399         (#content):
3400         Give the #content a flex grow of 1. This causes the space to grow as it
3401         already was but now it does not affect the size of the fixed height sibling.
3402
3403 2017-10-24  Eric Carlson  <eric.carlson@apple.com>
3404
3405         Web Inspector: Enable WebKit logging configuration and display
3406         https://bugs.webkit.org/show_bug.cgi?id=177027
3407         <rdar://problem/33964767>
3408
3409         Reviewed by Joseph Pecoraro.
3410
3411         * Localizations/en.lproj/localizedStrings.js: Add new localized strings.
3412
3413         * UserInterface/Controllers/LogManager.js:
3414         (WI.LogManager): Initialize _loggingChannelSources, fetch _customLoggingChannels.
3415         (WI.LogManager.supportsLogChannels): New.
3416         (WI.LogManager.prototype.get customLoggingChannels): New.
3417         (WI.LogManager.prototype.get logChannelSources): New.
3418
3419         * UserInterface/Main.html:
3420         * UserInterface/Models/ConsoleMessage.js: Add Media and WebRTC.
3421
3422         * UserInterface/Models/IssueMessage.js:
3423         (WI.IssueMessage): Add media and webrtc.
3424
3425         * UserInterface/Models/LoggingChannel.js: Added.
3426         (WI.LoggingChannel):
3427         (WI.LoggingChannel.fromPayload):
3428         (WI.LoggingChannel.prototype.get source):
3429         (WI.LoggingChannel.prototype.get level):
3430
3431         * UserInterface/Views/LogContentView.js:
3432         (WI.LogContentView): Add new scope buttons for "Log", "Info", and "Debug". Create log channel
3433             scope buttons once logging has started.
3434         (WI.LogContentView.prototype.get navigationItems): Add the log message scope bar when necessary.
3435         (WI.LogContentView.prototype._scopeFromMessageSource): New.
3436         (WI.LogContentView.prototype._scopeFromMessageLevel): Don't group Info, Log, and Debug.
3437         (WI.LogContentView.prototype._messageAdded): Force a UI update the first time a WebKit log
3438             message is added.
3439
3440         (WI.LogContentView.prototype._messageShouldBeVisible): New, deal with message source bar buttons.
3441         (WI.LogContentView.prototype._messageSourceBarSelectionDidChange): New.
3442         (WI.LogContentView.prototype._filterMessageElements): Deal with message source bar buttons.
3443
3444         * UserInterface/Views/SettingsTabContentView.js:
3445         (WI.SettingsTabContentView.prototype._createGeneralSettingsView): Create and initialize menus
3446             for each log channel.
3447
3448 2017-10-24  Joseph Pecoraro  <pecoraro@apple.com>
3449
3450         Uncaught Exception: TypeError: null is not an object (evaluating 'this.treeOutline.isXMLMimeType')
3451         https://bugs.webkit.org/show_bug.cgi?id=178745
3452
3453         Reviewed by Brian Burg.
3454
3455         * UserInterface/Views/DOMTreeUpdater.js:
3456         (WI.DOMTreeUpdater.prototype._updateModifiedNodes):
3457         An earlier tree element update might have caused this other tree element's
3458         waiting to be updated to actually be removed. So just skip past them.
3459
3460 2017-10-24  Fujii Hironori  <Hironori.Fujii@sony.com>
3461
3462         [GTK] Web Inspector: Add Recording.svg
3463         https://bugs.webkit.org/show_bug.cgi?id=175045
3464
3465         Reviewed by Brian Burg.
3466
3467         * UserInterface/Images/gtk/Recording.svg: Added.
3468
3469 2017-10-24  Devin Rousso  <webkit@devinrousso.com>
3470
3471         Web Inspector: allow ShaderProgram to be shown in CanvasContentView
3472         https://bugs.webkit.org/show_bug.cgi?id=178714
3473
3474         Reviewed by Brian Burg.
3475
3476         * UserInterface/Views/CanvasDetailsSidebarPanel.js:
3477         (WI.CanvasDetailsSidebarPanel.prototype.inspect):
3478         Allow ShaderProgram to show the related Canvas information.
3479
3480         * UserInterface/Views/CanvasTabContentView.js:
3481         (WI.CanvasTabContentView.prototype.canShowRepresentedObject):
3482         (WI.CanvasTabContentView.prototype.showRepresentedObject):
3483         (WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange):
3484         If a ShaderProgram is selected in the path component, display a ShaderProgramContentView.
3485
3486 2017-10-24  Devin Rousso  <webkit@devinrousso.com>
3487
3488         Web Inspector: remove canvases from Resources and experimental setting/UI
3489         https://bugs.webkit.org/show_bug.cgi?id=178711
3490
3491         Reviewed by Brian Burg.
3492
3493         * UserInterface/Base/Main.js:
3494         (WI.tabContentViewClassForRepresentedObject):
3495         * UserInterface/Base/Setting.js:
3496         * UserInterface/Controllers/CanvasManager.js:
3497         (WI.CanvasManager.prototype.canvasAdded):
3498         (WI.CanvasManager.prototype.canvasRemoved):
3499         * UserInterface/Models/Canvas.js:
3500         * UserInterface/Models/Frame.js:
3501         (WI.Frame):
3502         (WI.Frame.prototype.get extraScriptCollection):
3503         (WI.Frame.prototype.commitProvisionalLoad):
3504         (WI.Frame.prototype.get canvasCollection): Deleted.
3505         * UserInterface/Views/CanvasTabContentView.js:
3506         (WI.CanvasTabContentView.isTabAllowed):
3507         * UserInterface/Views/FrameTreeElement.js:
3508         (WI.FrameTreeElement):
3509         (WI.FrameTreeElement.prototype.onattach):
3510         (WI.FrameTreeElement.prototype.ondetach):
3511         (WI.FrameTreeElement.prototype.onpopulate):
3512         (WI.FrameTreeElement.prototype._styleSheetAdded):
3513         (WI.FrameTreeElement.prototype._canvasWasAdded): Deleted.
3514         (WI.FrameTreeElement.prototype._canvasWasRemoved): Deleted.
3515         * UserInterface/Views/ResourceSidebarPanel.js:
3516         (WI.ResourceSidebarPanel):
3517         (WI.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
3518         (WI.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
3519         (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange):
3520         * UserInterface/Views/ResourcesTabContentView.js:
3521         (WI.ResourcesTabContentView):
3522         (WI.ResourcesTabContentView.prototype.canShowRepresentedObject):
3523         * UserInterface/Views/SettingsTabContentView.js:
3524         (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
3525
3526 2017-10-24  Devin Rousso  <webkit@devinrousso.com>
3527
3528         Web Inspector: Show recordings in CanvasTabContentView
3529         https://bugs.webkit.org/show_bug.cgi?id=177606
3530         <rdar://problem/34715819>
3531
3532         Reviewed by Brian Burg.
3533
3534         Original patch by Matt Baker <mattbaker@apple.com>.
3535
3536         This patch folds canvas recordings into the new Canvas tab, which now
3537         supports showing both CanvasCollections and Recordings.
3538
3539         When viewing recordings, a back button is shown at the start of the
3540         navigation bar, allowing the user to return to the overview. It has been
3541         styled with a back arrow, to make its function as clear as possible.
3542         Like other navigation path components, the item for the recording can
3543         clicked to select another recording taken from the same canvas.
3544
3545         The recording action scrubber has been moved from the content browser's
3546         navigation bar to a more prominent location in the recording content view.
3547         Selecting a frame tree element in the navigation sidebar no longer selects
3548         the last action for that frame. This was changed to prevent the scrubber
3549         position from behaving non-monotonically when selecting actions in sequential
3550         order.
3551
3552         While this patch retains support for importing recordings, the feature
3553         is not polished. Currently it is not possible to return to an imported
3554         recording after leaving closing the view. In the future we may want to
3555         consider including a navigation sidebar panel for the overview, which
3556         could list canvas recordings (and eventually shaders).
3557
3558         * .eslintrc:
3559         Drive-by: remove duplicate key.
3560
3561         * Localizations/en.lproj/localizedStrings.js:
3562         * UserInterface/Base/Main.js:
3563         (WI.contentLoaded):
3564         (WI.tabContentViewClassForRepresentedObject):
3565         * UserInterface/Main.html:
3566         * UserInterface/Views/RecordingTabContentView.js: Removed.
3567         Remove RecordingTabContentView.
3568
3569         * UserInterface/Images/Recording.svg:
3570         New recording icon, used for tree elements and canvas preview UI.
3571
3572         * UserInterface/Models/Recording.js:
3573         (WI.Recording):
3574         (WI.Recording.prototype.get visualActionIndexes):
3575         Visual action indexes should be computed by the recording.
3576
3577         * UserInterface/Views/CanvasContentView.js:
3578         (WI.CanvasContentView):
3579         (WI.CanvasContentView.prototype.refresh):
3580         (WI.CanvasContentView.prototype.initialLayout):
3581         (WI.CanvasContentView.prototype.attached):
3582         (WI.CanvasContentView.prototype._recordingStopped):
3583         (WI.CanvasContentView.prototype._handleRecordingSelectElementChange):
3584         New UI for showing CanvasContentView as a CollectionView item. Includes
3585         recordings button and select for choosing a recording to view.
3586
3587         * UserInterface/Views/CanvasOverviewContentView.css:
3588         (.content-view.canvas-overview .content-view.canvas > header):
3589         Switch to 13px, which is more frequently used.
3590
3591         (.content-view.canvas-overview .content-view.canvas > header .subtitle::before):
3592         Switch to literal em dash. Surrounding spaces were ignored when using
3593         the backslash-escaped character.
3594
3595         (.content-view.canvas-overview .content-view.canvas:not(:hover, .is-recording, .selected) > header > .navigation-bar):
3596         (.content-view.canvas-overview .content-view.canvas > footer > .recordings):
3597         (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
3598         (.content-view.canvas-overview .content-view.canvas > footer > .recordings > select):
3599         (.content-view.canvas-overview .content-view.canvas > footer .recordings > select:focus):
3600         (.content-view.canvas-overview .content-view.canvas > footer > .flexible-space):
3601         (.popover-content > .tree-outline .item.recording > .icon):
3602         (.popover-content > .tree-outline .item.recording:hover):
3603         (.popover-content > .tree-outline .item.recording:hover > .icon):
3604         (.content-view.canvas-overview .content-view.canvas:not(:hover, .is-recording) > header > .navigation-bar): Deleted.
3605         (.content-view.canvas-overview .content-view.canvas > footer): Deleted.
3606         New styles for the recording picker.
3607
3608         * UserInterface/Views/CanvasOverviewContentView.js:
3609         (WI.CanvasOverviewContentView):
3610         (WI.CanvasOverviewContentView.prototype.get selectionPathComponents):
3611         (WI.CanvasOverviewContentView.prototype.contentViewAdded):
3612         (WI.CanvasOverviewContentView.prototype.contentViewRemoved):
3613         (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange):
3614         (WI.CanvasOverviewContentView.prototype._selectedPathComponentChanged): Deleted.
3615         (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange.createCanvasPathComponent): Deleted.
3616         Canvas tree elements are now managed by CanvasTabContentView, which is
3617         now responsible for maintaining the tree of canvas objects. For now the
3618         tree holds canvases and recordings, but will eventually include shader programs.
3619
3620         * UserInterface/Views/CanvasTabContentView.css:
3621         (.content-view.tab.canvas .navigation-bar > .item .recording > .icon):
3622         (.content-view.tab.canvas .navigation-bar > .item > .canvas-overview > .icon): Deleted.
3623         Add styles for recording path components.
3624
3625         * UserInterface/Views/CanvasTabContentView.js:
3626         (WI.CanvasTabContentView):
3627         (WI.CanvasTabContentView.prototype.treeElementForRepresentedObject):
3628         (WI.CanvasTabContentView.prototype.canShowRepresentedObject):
3629         (WI.CanvasTabContentView.prototype.showRepresentedObject):
3630         (WI.CanvasTabContentView.prototype.shown):
3631         (WI.CanvasTabContentView.prototype.restoreStateFromCookie):
3632         (WI.CanvasTabContentView.prototype.attached):
3633         (WI.CanvasTabContentView.prototype.detached):
3634         (WI.CanvasTabContentView.prototype._canvasAdded):
3635         (WI.CanvasTabContentView.prototype._canvasRemoved):
3636         (WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange):
3637         (WI.CanvasTabContentView.prototype._recordingStopped):
3638         (WI.CanvasTabContentView.prototype._navigationSidebarImport):
3639         (WI.CanvasTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged):
3640         (WI.CanvasTabContentView.prototype._recordingAdded):
3641         (WI.CanvasTabContentView.prototype._recordingActionIndexChanged):
3642         (WI.CanvasTabContentView.prototype._updateActionIndex):
3643         (WI.CanvasTabContentView.prototype.restoreFromCookie): Deleted.
3644         (WI.CanvasTabContentView.prototype._overviewPathComponentClicked): Deleted.
3645
3646         * UserInterface/Views/ContentView.js:
3647         (WI.ContentView.createFromRepresentedObject):
3648
3649         * UserInterface/Views/RecordingActionTreeElement.css:
3650         (body:not(.window-inactive, .window-docked-inactive) .tree-outline:matches(:focus, .force-focus) .item.action.selected > .titles .parameter.swizzled,):
3651         (body:not(.window-inactive, .window-docked-inactive) :matches(:focus, .force-focus) .item.action.selected > .titles .parameter.swizzled,): Deleted.
3652
3653         * UserInterface/Views/RecordingContentView.css:
3654         (.content-view:not(.tab).recording):
3655         (.content-view:not(.tab).recording > header):
3656         (.content-view:not(.tab).recording > header > .slider-container):
3657         (.content-view:not(.tab).recording > header > .slider-container > input[type=range]):
3658         (.content-view:not(.tab).recording > header > .slider-container > input[type=range]::-webkit-slider-runnable-track):
3659         (.content-view:not(.tab).recording > header > .slider-container > input[type=range]::-webkit-slider-thumb):
3660         (.content-view:not(.tab).recording > .preview-container):
3661
3662         * UserInterface/Views/RecordingContentView.js:
3663         (WI.RecordingContentView):
3664         (WI.RecordingContentView.prototype.updateActionIndex):
3665         (WI.RecordingContentView.prototype.initialLayout):
3666         (WI.RecordingContentView.prototype.async._generateContentCanvas2D):
3667         (WI.RecordingContentView.prototype._updateSliderValue):
3668         (WI.RecordingContentView.prototype._sliderChanged):
3669         (WI.RecordingContentView.prototype.get supplementalRepresentedObjects): Deleted.
3670
3671         * UserInterface/Views/RecordingNavigationSidebarPanel.js:
3672         (WI.RecordingNavigationSidebarPanel.prototype.set recording):
3673         (WI.RecordingNavigationSidebarPanel.prototype.updateActionIndex):
3674
3675         * UserInterface/Views/ResourceIcons.css:
3676         (.canvas .icon):
3677         (.canvas.canvas-2d .icon): Deleted.
3678         (.canvas:matches(.webgl, .webgl2, .webgpu) .icon): Deleted.
3679
3680 2017-10-24  Ross Kirsling  <ross.kirsling@sony.com>
3681
3682         Web Inspector: Layer mutations should be purely based on layerId, not based on nodeId
3683         https://bugs.webkit.org/show_bug.cgi?id=178554
3684
3685         Reviewed by Devin Rousso.
3686
3687         * UserInterface/Controllers/LayerTreeManager.js:
3688         (WI.LayerTreeManager.prototype.layerTreeMutations):
3689         Looking for special cases involving nodeIds is incorrect, as nodeIds need not be unique in the layer list (such
3690         as when an element and a pseudo-element thereof each give rise to a layer). A layer object marked "preserved" in
3691         this way shares no data with its predecessor, meaning that no consumer can act upon this so-called preservation.
3692         A preserved layer should be nothing more or less than a recycled layerId (the thing that *is* unique).
3693
3694 2017-10-23  Nikita Vasilyev  <nvasilyev@apple.com>
3695
3696         Web Inspector: Styles Redesign: Inline widgets don't hide when starting editing by tabbing from property name
3697         https://bugs.webkit.org/show_bug.cgi?id=178638
3698
3699         Reviewed by Joseph Pecoraro.
3700
3701         * UserInterface/Views/SpreadsheetStyleProperty.js:
3702         (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
3703         Blur event on the property name text field caused WI.SpreadsheetStyleProperty.prototype._renderValue,
3704         which displayed inline swatches. Display inline swatches only after blur event on the property value.
3705
3706 2017-10-23  Joseph Pecoraro  <pecoraro@apple.com>
3707
3708         Web Inspector: Please support HAR Export for network traffic
3709         https://bugs.webkit.org/show_bug.cgi?id=146692
3710         <rdar://problem/7463672>
3711
3712         Reviewed by Brian Burg.
3713
3714         * UserInterface/Main.html:
3715         * UserInterface/Test.html:
3716         New resources.
3717
3718         * UserInterface/Base/Platform.js:
3719         Include a build number as well.
3720         
3721         * UserInterface/Base/URLUtilities.js:
3722         (parseLocationQueryParameters): Deleted.
3723         Remove unused function.
3724
3725         * UserInterface/Controllers/FrameResourceManager.js:
3726         (WI.FrameResourceManager.prototype.frameDidNavigate):
3727         (WI.FrameResourceManager.prototype.resourceRequestWillBeSent):
3728         (WI.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
3729         (WI.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
3730         (WI.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
3731         Pass along a walltime.
3732
3733         * UserInterface/Protocol/NetworkObserver.js:
3734         (WI.NetworkObserver.prototype.requestWillBeSent):
3735         Pass along a walltime. This new parameter shifts old parameters.
3736
3737         * UserInterface/Controllers/HARBuilder.js: Added.
3738         (WI.HARBuilder.async.buildArchive):
3739         (WI.HARBuilder.creator):
3740         (WI.HARBuilder.pages):
3741         (WI.HARBuilder.pageTimings):
3742         (WI.HARBuilder.entry):
3743         (WI.HARBuilder.request):
3744         (WI.HARBuilder.response):
3745         (WI.HARBuilder.cookies):
3746         (WI.HARBuilder.headers):
3747         (WI.HARBuilder.content):
3748         (WI.HARBuilder.postData):
3749         (WI.HARBuilder.cache):
3750         (WI.HARBuilder.timings):
3751         (WI.HARBuilder.ipAddress):
3752         (WI.HARBuilder.date):
3753         (WI.HARBuilder.fetchType):
3754         HAR construction and helpers.
3755
3756         * UserInterface/Models/Cookie.js:
3757         (WI.Cookie.prototype.expirationDate):
3758         * UserInterface/Models/Resource.js:
3759         (WI.Resource.prototype.get queryStringParameters):
3760         (WI.Resource.prototype.get requestFormParameters):
3761         (WI.Resource.prototype.get requestSentWalltime):
3762         (WI.Resource.prototype.get requestSentDate):
3763         (WI.Resource.prototype.hasRequestFormParameters):
3764         Helpers for HAR generation and sub-sets of data.
3765
3766         * UserInterface/Models/SourceCode.js:
3767         (WI.SourceCode.prototype._processContent):
3768         Capture the raw, unmodified, base64 encoded flag and content. This ends
3769         up getting used by HAR generation and is otherwise lost.
3770
3771         * UserInterface/Test/TestHarness.js:
3772         (TestHarness.prototype.json):
3773         Helper for just logging JSON data with a filter. This defaults to
3774         a reasonable 2 space indent for JSON logs in our test output.
3775
3776         * UserInterface/Views/DOMTreeContentView.js:
3777         (WI.DOMTreeContentView.prototype.get saveData):
3778         (WI.DOMTreeContentView.get saveData.saveHandler): Deleted.
3779         Drive-by simplify while looking at other save handlers.
3780
3781         * UserInterface/Views/NetworkTableContentView.js:
3782         (WI.NetworkTableContentView.prototype.get supportsSave):
3783         (WI.NetworkTableContentView.prototype.get saveData):
3784         (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
3785         (WI.NetworkTableContentView.prototype._HARResources):
3786         (WI.NetworkTableContentView.prototype._exportHAR):
3787         Provide a context menu and save keyboard handler to export a HAR.
3788         This matches other browsers.
3789
3790         * UserInterface/Views/ResourceClusterContentView.js:
3791         (WI.ResourceClusterContentView.prototype._canShowRequestContentView):
3792         Use code that is now available in Resource.
3793
3794 2017-10-20  Matt Baker  <mattbaker@apple.com>
3795
3796         Web Inspector: scrolling the editor while debugging shouldn't trigger popovers
3797         https://bugs.webkit.org/show_bug.cgi?id=178325
3798
3799         Reviewed by Devin Rousso.
3800
3801         Ignore the next "mousemove" event immediately following a "mousewheel",
3802         when determining the hovered item for purposes of triggering a popover.
3803
3804         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
3805         (WI.CodeMirrorTokenTrackingController):
3806         (WI.CodeMirrorTokenTrackingController.prototype._startTracking):
3807         (WI.CodeMirrorTokenTrackingController.prototype._stopTracking):
3808         (WI.CodeMirrorTokenTrackingController.prototype.handleEvent):
3809         (WI.CodeMirrorTokenTrackingController.prototype._mouseMovedOverEditor):
3810
3811 2017-10-20  Joseph Pecoraro  <pecoraro@apple.com>
3812
3813         Web Inspector: preview content view for MIME type application/json should be a collapsible tree outline
3814         https://bugs.webkit.org/show_bug.cgi?id=158938
3815         <rdar://problem/26891128>
3816
3817         Reviewed by Brian Burg.
3818
3819         * Localizations/en.lproj/localizedStrings.js:
3820         * UserInterface/Main.html:
3821         New files and strings.
3822
3823         * UserInterface/Views/JSONResourceContentView.css: Added.
3824         (.content-view.resource.json):
3825         (.content-view.resource.json .object-tree .prototype-property):
3826         Some padding and scrolling for the JSON content view.
3827
3828         * UserInterface/Views/JSONResourceContentView.js: Added.
3829         (WI.JSONResourceContentView):
3830         (WI.JSONResourceContentView.customContentViewDisplayName):
3831         (WI.JSONResourceContentView.prototype.contentAvailable):
3832         (WI.JSONResourceContentView.prototype.closed):
3833         JSON view evaluates the JSON content on the page and shows an ObjectTree
3834         for the resulting object.
3835
3836         * UserInterface/Views/ResourceClusterContentView.js:
3837         (WI.ResourceClusterContentView):
3838         (WI.ResourceClusterContentView.prototype.get customResponseContentView):
3839         (WI.ResourceClusterContentView.prototype.get selectionPathComponents):
3840         (WI.ResourceClusterContentView.prototype.restoreFromCookie):
3841         (WI.ResourceClusterContentView.prototype.showResponse):
3842         (WI.ResourceClusterContentView.prototype._canShowRequestContentView):
3843         (WI.ResourceClusterContentView.prototype._canShowCustomResponseContentView):
3844         (WI.ResourceClusterContentView.prototype._pathComponentForContentView):
3845         (WI.ResourceClusterContentView.prototype._identifierForContentView):
3846         (WI.ResourceClusterContentView.prototype._showContentViewForIdentifier):
3847         (WI.ResourceClusterContentView.prototype._resourceTypeDidChange):
3848         (WI.ResourceClusterContentView.prototype._resourceLoadingDidFinish):
3849         (WI.ResourceClusterContentView.prototype._tryEnableCustomResponseContentView):
3850         (WI.ResourceClusterContentView.prototype._customContentViewConstructorForResource):
3851         Allow a custom content view to be used for a resource based on the response.
3852         Currently the only custom content view is the JSON content view.
3853
3854 2017-10-20  Joseph Pecoraro  <pecoraro@apple.com>
3855
3856         Web Inspector: Network Tab - Turn on the new tab by default, remove the legacy network tab
3857         https://bugs.webkit.org/show_bug.cgi?id=178559
3858         <rdar://problem/34985503>
3859
3860         Reviewed by Matt Baker.
3861
3862         * Localizations/en.lproj/localizedStrings.js:
3863         * UserInterface/Base/Main.js:
3864         (WI.contentLoaded):
3865         * UserInterface/Base/Setting.js:
3866         * UserInterface/Main.html:
3867         * UserInterface/Views/LegacyNetworkSidebarPanel.css: Removed.
3868         * UserInterface/Views/LegacyNetworkSidebarPanel.js: Removed.
3869         * UserInterface/Views/LegacyNetworkTabContentView.js: Removed.
3870         * UserInterface/Views/NetworkGridContentView.css: Removed.
3871         * UserInterface/Views/NetworkGridContentView.js: Removed.
3872         * UserInterface/Views/TabBrowser.js:
3873         (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
3874         Remove LegacyNetwork tab, its NetworkGridContentView, and associated content.
3875
3876         * UserInterface/Views/NetworkTabContentView.js:
3877         (WI.NetworkTabContentView.isTabAllowed):
3878         Simplify now that this is the only Network tab.
3879
3880         *&