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