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