[GTK] Web Inspector: Add new GTK+ icons for Search icon of Quick Open dialog
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2017-05-15  Fujii Hironori  <Hironori.Fujii@sony.com>
2
3         [GTK] Web Inspector: Add new GTK+ icons for Search icon of Quick Open dialog
4         https://bugs.webkit.org/show_bug.cgi?id=172110
5
6         Reviewed by Michael Catanzaro.
7
8         Add a free icon for the Web Inspector in GTK+.
9
10         * UserInterface/Images/gtk/Search.svg: Added.
11
12 2017-05-15  Fujii Hironori  <Hironori.Fujii@sony.com>
13
14         [GTK] Web Inspector: Add new GTK+ icons for Worker Scripts / Web Sockets
15         https://bugs.webkit.org/show_bug.cgi?id=164138
16
17         Reviewed by Michael Catanzaro.
18
19         Add more free icons for the Web Inspector in GTK+.
20
21         * UserInterface/Images/gtk/WorkerScript.png: Added.
22         * UserInterface/Images/gtk/WorkerScript@2x.png: Added.
23         * UserInterface/Images/gtk/WorkerScriptLarge.png: Added.
24         * UserInterface/Images/gtk/WorkerScriptLarge@2x.png: Added.
25         * UserInterface/Views/ResourceIcons.css:
26         (.script.worker-icon .icon):
27         (.large .script.worker-icon .icon):
28         (body:matches(.mac-platform, .windows-platform) .script.worker-icon .icon): Deleted.
29         (body:matches(.mac-platform, .windows-platform) .large .script.worker-icon .icon): Deleted.
30
31 2017-05-11  Nikita Vasilyev  <nvasilyev@apple.com>
32
33         Web Inspector: RTL: "Elements > Styles - Rules" rule and media query headers should be left aligned
34         https://bugs.webkit.org/show_bug.cgi?id=171954
35         <rdar://problem/31961976>
36
37         Reviewed by Matt Baker.
38
39         * UserInterface/Views/CSSStyleDeclarationSection.css:
40         (.style-declaration-section > .header):
41         (.style-declaration-section.locked > .header > .locked-icon):
42         (.style-declaration-section > .header > .icon):
43         (.style-declaration-section > .header > textarea):
44         (.style-declaration-section.invalid-selector > .header > .icon):
45         (body[dir=ltr] .style-declaration-section > .header): Deleted.
46         (body[dir=rtl] .style-declaration-section > .header): Deleted.
47         (body[dir=ltr] .style-declaration-section.locked > .header > .locked-icon): Deleted.
48         (body[dir=rtl] .style-declaration-section.locked > .header > .locked-icon): Deleted.
49         (body[dir=ltr] .style-declaration-section > .header > .icon): Deleted.
50         (body[dir=rtl] .style-declaration-section > .header > .icon): Deleted.
51         (body[dir=ltr] .style-declaration-section > .header > textarea): Deleted.
52         (body[dir=rtl] .style-declaration-section > .header > textarea): Deleted.
53         Remove RTL rules.
54
55         * UserInterface/Views/CSSStyleDeclarationSection.js:
56         (WebInspector.CSSStyleDeclarationSection):
57         Set dir="ltr" so selector's textareas work correctly.
58
59         * UserInterface/Views/RulesStyleDetailsPanel.css:
60         (.sidebar > .panel.details.css-style .rules):
61
62 2017-05-11  Matt Baker  <mattbaker@apple.com>
63
64         Web Inspector: Error trying to delete DOM breakpoints from the Debugger tab
65         https://bugs.webkit.org/show_bug.cgi?id=171970
66         <rdar://problem/32129262>
67
68         Reviewed by Brian Burg.
69
70         In the Debugger sidebar, DOM breakpoints can be cleared from a DOM node
71         in two ways: by using the DOM node tree element's context menu, or by
72         pressing the delete key while the element is selected. Each method used
73         a different code path, and the latter had an error which caused it to fail.
74
75         Add a `removeDOMBreakpointsForNode` method to DOMDebuggerManager to make
76         the operation convenient, and call it from both event handlers.
77
78         * UserInterface/Controllers/DOMBreakpointTreeController.js:
79         (WebInspector.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
80         Use convenience method.
81
82         * UserInterface/Controllers/DOMDebuggerManager.js:
83         (WebInspector.DOMDebuggerManager.prototype.removeDOMBreakpointsForNode):
84         Helper function for removing all of a node's breakpoints.
85
86         * UserInterface/Views/DOMNodeTreeElement.js:
87         (WebInspector.DOMNodeTreeElement.prototype.ondelete):
88         Use convenience method.
89
90 2017-05-11  Fujii Hironori  <Hironori.Fujii@sony.com>
91
92         [GTK] Web Inspector: Add new GTK+ icons for resources in large sizes (32px @ 1x/2x)
93         https://bugs.webkit.org/show_bug.cgi?id=155802
94         <rdar://problem/25320686>
95
96         Reviewed by Carlos Garcia Campos.
97
98         Add more free icons for the Web Inspector in GTK+.
99
100         * UserInterface/Images/gtk/ClippingCSSLarge.png: Added.
101         * UserInterface/Images/gtk/ClippingCSSLarge@2x.png: Added.
102         * UserInterface/Images/gtk/ClippingGenericLarge.png: Added.
103         * UserInterface/Images/gtk/ClippingGenericLarge@2x.png: Added.
104         * UserInterface/Images/gtk/ClippingJSLarge.png: Added.
105         * UserInterface/Images/gtk/ClippingJSLarge@2x.png: Added.
106         * UserInterface/Images/gtk/DocumentCSSLarge.png: Added.
107         * UserInterface/Images/gtk/DocumentCSSLarge@2x.png: Added.
108         * UserInterface/Images/gtk/DocumentFontLarge.png: Added.
109         * UserInterface/Images/gtk/DocumentFontLarge@2x.png: Added.
110         * UserInterface/Images/gtk/DocumentGenericLarge.png: Added.
111         * UserInterface/Images/gtk/DocumentGenericLarge@2x.png: Added.
112         * UserInterface/Images/gtk/DocumentImageLarge.png: Added.
113         * UserInterface/Images/gtk/DocumentImageLarge@2x.png: Added.
114         * UserInterface/Images/gtk/DocumentJSLarge.png: Added.
115         * UserInterface/Images/gtk/DocumentJSLarge@2x.png: Added.
116         * UserInterface/Images/gtk/DocumentMarkupLarge.png: Added.
117         * UserInterface/Images/gtk/DocumentMarkupLarge@2x.png: Added.
118
119 2017-05-10  Brian Burg  <bburg@apple.com>
120
121         Web Inspector: RTL: in Timelines > JavaScript & Events, digits for timer and animation frame number are not localized
122         https://bugs.webkit.org/show_bug.cgi?id=171818
123
124         Reviewed by Joseph Pecoraro.
125
126         These numbers need to be formatted with %d, not %s.
127
128         * Localizations/en.lproj/localizedStrings.js:
129         * UserInterface/Models/ScriptTimelineRecord.js:
130         (WebInspector.ScriptTimelineRecord.EventType.displayName):
131
132 2017-05-10  Brian Burg  <bburg@apple.com>
133
134         Web Inspector: remove dead code for switching Toolbar display options
135         https://bugs.webkit.org/show_bug.cgi?id=170738
136
137         Reviewed by Joseph Pecoraro.
138
139         * Localizations/en.lproj/localizedStrings.js:
140         * UserInterface/Base/Main.js:
141         (WebInspector.contentLoaded):
142         * UserInterface/Views/ButtonToolbarItem.css:
143         (.toolbar .item.button > .glyph):
144         (.toolbar .item.button > .label):
145         (.toolbar.icon-and-label-vertical .item.button): Deleted.
146         (.toolbar.icon-and-label-horizontal .item.button): Deleted.
147         (.toolbar.small-size .item.button > .glyph): Deleted.
148         (.toolbar.label-only .item.button > .glyph): Deleted.
149         (.toolbar.label-only .item.activate.button.activated > .label): Deleted.
150         (.toolbar.icon-and-label-horizontal .item.button > .label): Deleted.
151         (.toolbar.icon-only .item.button > .label): Deleted.
152         * UserInterface/Views/ControlToolbarItem.css:
153         (.toolbar .item.control):
154         (.toolbar:matches(.icon-and-label-horizontal, .icon-only) .item.control): Deleted.
155         * UserInterface/Views/DashboardContainerView.css:
156         (.toolbar .dashboard-container):
157         (.toolbar.icon-and-label-vertical:matches(.small-size, .normal-size) .dashboard-container): Deleted.
158         (.toolbar.label-only .dashboard-container,): Deleted.
159         (.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container): Deleted.
160         (.toolbar.label-only .dashboard-container .advance-arrow): Deleted.
161         (body[dir=ltr] .toolbar.label-only .dashboard-container .advance-arrow): Deleted.
162         (body[dir=rtl] .toolbar.label-only .dashboard-container .advance-arrow): Deleted.
163         * UserInterface/Views/DefaultDashboardView.css:
164         (.toolbar .dashboard.default > .item):
165         (.toolbar.label-only .dashboard.default > .item,): Deleted.
166         (.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard.default > .item): Deleted.
167         * UserInterface/Views/ReplayDashboardView.css:
168         (.toolbar .dashboard.replay .item.button > .glyph):
169         (.toolbar.label-only .dashboard.replay .item.button > .glyph): Deleted.
170         * UserInterface/Views/Toolbar.css:
171         (.toolbar .control-section):
172         (.toolbar:matches(.icon-and-label-horizontal.small-size, .icon-only.small-size, .label-only) .control-section): Deleted.
173         * UserInterface/Views/Toolbar.js:
174         (WebInspector.Toolbar):
175         (WebInspector.Toolbar.prototype.layout):
176         (WebInspector.Toolbar.prototype.get displayMode): Deleted.
177         (WebInspector.Toolbar.prototype.set displayMode): Deleted.
178         (WebInspector.Toolbar.prototype.get sizeMode): Deleted.
179         (WebInspector.Toolbar.prototype.set sizeMode): Deleted.
180         (WebInspector.Toolbar.prototype._handleContextMenuEvent): Deleted.
181         (WebInspector.Toolbar.prototype._changeDisplayMode): Deleted.
182         (WebInspector.Toolbar.prototype._toggleSmallIcons): Deleted.
183
184 2017-05-10  Ross Kirsling  <ross.kirsling@sony.com>
185
186         Web Inspector: Copy to clipboard fails via InspectorFrontendHostStub
187         https://bugs.webkit.org/show_bug.cgi?id=171907
188
189         Reviewed by Joseph Pecoraro.
190
191         * UserInterface/Base/InspectorFrontendHostStub.js:
192         (WebInspector.InspectorFrontendHostStub.prototype.copyText):
193         Actually make a text selection before attempting to copy to clipboard.
194
195 2017-05-09  Joseph Pecoraro  <pecoraro@apple.com>
196
197         Web Inspector: Provide resource load error reason text in details sidebar
198         https://bugs.webkit.org/show_bug.cgi?id=171901
199         <rdar://problem/29850995>
200
201         Reviewed by Brian Burg.
202
203         * Localizations/en.lproj/localizedStrings.js:
204         * UserInterface/Controllers/FrameResourceManager.js:
205         (WebInspector.FrameResourceManager.prototype.resourceRequestDidFailLoading):
206         * UserInterface/Models/Resource.js:
207         (WebInspector.Resource):
208         (WebInspector.Resource.prototype.get failureReasonText):
209         (WebInspector.Resource.prototype.markAsFailed):
210         * UserInterface/Protocol/NetworkObserver.js:
211         (WebInspector.NetworkObserver.prototype.loadingFailed):
212         Include the error text we got from the backend. In most cases this should
213         be a localized error description.
214
215         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
216         (WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
217         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshErrorReason):
218         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
219         Include an Error field alongside the status code section when there was an error.
220
221 2017-05-09  Fujii Hironori  <Hironori.Fujii@sony.com>
222
223         [GTK][Win] Web Inspector: Cann't open "Quick Open" dialog by pressing Ctrl+Shift+O
224         https://bugs.webkit.org/show_bug.cgi?id=171798
225
226         Reviewed by Michael Catanzaro.
227
228         PC can't input the shortcut keys Command+Shift+O and Command+P.
229
230         * UserInterface/Base/Main.js:
231         (WebInspector.contentLoaded): Use CommandOrControl instead of Command.
232
233 2017-05-09  Brian Burg  <bburg@apple.com>
234
235         Web Inspector: Assertion failed: Cannot select item with unexpected parent bar. (at NavigationBar.js:132)
236         https://bugs.webkit.org/show_bug.cgi?id=171885
237
238         Reviewed by Matt Baker.
239
240         This new assertion revealed a real misuse of the NavigationBar API.
241
242         * UserInterface/Views/NavigationBar.js:
243         (WebInspector.NavigationBar.prototype.set selectedNavigationItem):
244         Improve this to be an assertion so it can be paused at using the debugger.
245
246         * UserInterface/Views/TimelineTabContentView.js:
247         (WebInspector.TimelineTabContentView.prototype._changeViewMode):
248         We need to set a NavigationItem as the selected item, not its identifier.
249         Look up the corresponding item for the identifier that we received (the view mode).
250
251 2017-05-08  Brian Burg  <bburg@apple.com>
252
253         Web Inspector: RTL: box model labels have bad alignment
254         https://bugs.webkit.org/show_bug.cgi?id=171817
255
256         Reviewed by Joseph Pecoraro.
257
258         * UserInterface/Views/BoxModelDetailsSectionRow.css:
259         (.details-section .row.box-model .label):
260         (body[dir=ltr] .details-section .row.box-model .label):
261         (body[dir=rtl] .details-section .row.box-model .label):
262         We can't just use a mirrored leading margin because all the
263         text here is center-aligned. Just hardcode a reasonable value.
264
265 2017-05-08  Joseph Pecoraro  <pecoraro@apple.com>
266
267         Web Inspector: Request/Response toggles not working
268         https://bugs.webkit.org/show_bug.cgi?id=171833
269         <rdar://problem/31341637>
270
271         Reviewed by Brian Burg.
272
273         * UserInterface/Views/HierarchicalPathNavigationItem.js:
274         (WebInspector.HierarchicalPathNavigationItem.set components.let.componentsEqual):
275         (WebInspector.HierarchicalPathNavigationItem.prototype.set components):
276         If the new components being set were shallowly equal, then they wouldn't
277         actually be updated even if ultimately they are different. In this case
278         the Path Components with values "request" / "response" would not update
279         between different resources because the path components had equivalent
280         simple values. Provide a different discriminator (comparisonData) which
281         can be an object so these path components compare as necessarily different.
282
283         * UserInterface/Views/HeapSnapshotClusterContentView.js:
284         (WebInspector.HeapSnapshotClusterContentView.createPathComponent):
285         (WebInspector.HeapSnapshotClusterContentView):
286         * UserInterface/Views/ResourceClusterContentView.js:
287         (WebInspector.ResourceClusterContentView.createPathComponent):
288         (WebInspector.ResourceClusterContentView):
289         (WebInspector.ResourceClusterContentView.prototype._resourceTypeDidChange):
290         * UserInterface/Views/SVGImageResourceClusterContentView.js:
291         (WebInspector.SVGImageResourceClusterContentView):
292         * UserInterface/Views/ScriptClusterTimelineView.js:
293         (WebInspector.ScriptClusterTimelineView.createPathComponent):
294         (WebInspector.ScriptClusterTimelineView):
295         Provide comparisonData for path components cases that would need it.
296
297 2017-05-08  Chris Dumez  <cdumez@apple.com>
298
299         Drop non-standard Element.scrollByLines() / scrollByPages()
300         https://bugs.webkit.org/show_bug.cgi?id=171820
301
302         Reviewed by Simon Fraser.
303
304         Drop non-standard Element.scrollByLines() / scrollByPages() from
305         WebInspector code.
306
307         * UserInterface/Models/NativeFunctionParameters.js:
308
309 2017-05-08  Matt Baker  <mattbaker@apple.com>
310
311         Web Inspector: Make it easy to dynamically show/hide a SettingsView
312         https://bugs.webkit.org/show_bug.cgi?id=171765
313         <rdar://problem/32031280>
314
315         Reviewed by Brian Burg.
316
317         This patch adds SettingsTabContentView.prototype.setSettingsViewVisible,
318         for dynamically showing/hiding a child view (and its NavigationBar item).
319         The following new behavior is relevant when more that one child SettingsView
320         exist in the Settings tab:
321          - Hiding the selected view will cause a new view to become selected.
322            The previous visible view is selected, if it exists. Otherwise the
323            next visible view is used.
324          - Showing a view when no views are selected cause the view to be selected.
325
326         As the Settings tab currently has only one child view, the behavior above
327         was tested by adding a handful of vanilla SettingsView objects to the tab
328         and toggling their visibility.
329
330         * UserInterface/Views/NavigationBar.js:
331         Simplify overloaded parameter `navigationItemOrIdentifierOrIndex`, which
332         is used in a few places and is always an instance of NavigationItem.
333
334         (WebInspector.NavigationBar):
335         (WebInspector.NavigationBar.prototype.removeNavigationItem):
336         (WebInspector.NavigationBar.prototype.get selectedNavigationItem):
337         (WebInspector.NavigationBar.prototype.set selectedNavigationItem):
338         (WebInspector.NavigationBar.prototype.findNavigationItem):
339         Lookup a navigation item by its identifier.
340         (WebInspector.NavigationBar.prototype._findNavigationItem): Deleted.
341         Replaced overloaded private method with new public method.
342
343         * UserInterface/Views/NavigationItem.js:
344         Cleanup.
345         (WebInspector.NavigationItem):
346         (WebInspector.NavigationItem.prototype.get identifier):
347         (WebInspector.NavigationItem.prototype.get element):
348         (WebInspector.NavigationItem.prototype.get minimumWidth):
349         (WebInspector.NavigationItem.prototype.get parentNavigationBar):
350
351         * UserInterface/Views/SettingsTabContentView.css:
352         Use `visibility: hidden` instead of `display: none` when hiding the
353         NavigationBar, so that the selected view's top position stays the same.
354
355         (.content-view.settings):
356         (.content-view.settings .navigation-bar.invisible):
357
358         * UserInterface/Views/SettingsTabContentView.js:
359         (WebInspector.SettingsTabContentView):
360         Switch to an array of SettingsViews instead of a map. Fast lookup isn't
361         a concern due to the small number of items, and having indices simplifies
362         traversing the previous/next items in `setSettingsViewVisible`.
363
364         (WebInspector.SettingsTabContentView.prototype.set selectedSettingsView):
365         Rename `page` to `settingsView`.
366         (WebInspector.SettingsTabContentView.prototype.addSettingsView):
367         (WebInspector.SettingsTabContentView.prototype.setSettingsViewVisible):
368         Shows/hides the specified view. Hiding the selected SettingsView will
369         cause another visible view to become selected, if one exists.
370
371         (WebInspector.SettingsTabContentView.prototype._updateNavigationBarVisibility):
372         Helper for updating navigation bar visibility after making a change
373         to the navigation items.
374
375         (WebInspector.SettingsTabContentView.prototype._navigationItemSelected):
376
377 2017-05-08  Myles C. Maxfield  <mmaxfield@apple.com>
378
379         Unprefix unicode-bidi CSS values
380         https://bugs.webkit.org/show_bug.cgi?id=171761
381
382         Reviewed by Simon Fraser.
383
384         * UserInterface/Models/CSSKeywordCompletions.js:
385
386 2017-05-08  Fujii Hironori  <Hironori.Fujii@sony.com>
387
388         [GTK] Web Inspector: Add new GTK+ icon for timeline recording stopwatch
389         https://bugs.webkit.org/show_bug.cgi?id=154088
390
391         Reviewed by Carlos Garcia Campos.
392
393         Add a free icon and remove some unused ones for the Web Inspector
394         in GTK+.
395
396         * UserInterface/Images/gtk/Stopwatch.png: Removed.
397         * UserInterface/Images/gtk/Stopwatch.svg: Added.
398         * UserInterface/Images/gtk/Stopwatch@2x.png: Removed.
399         * UserInterface/Views/TimelineIcons.css:
400         (body:not(.mac-platform, .windows-platform) .stopwatch-icon .icon): Deleted.
401
402 2017-05-05  Nikita Vasilyev  <nvasilyev@apple.com>
403
404         REGRESSION (r212998): Web Inspector: bad spacing of go-to arrow for HTTP POST request data
405         https://bugs.webkit.org/show_bug.cgi?id=171674
406
407         Reviewed by Matt Baker.
408
409         * UserInterface/Views/DetailsSection.css:
410         (body[dir=ltr] .details-section > .content > .group > .row.simple > .value .go-to-arrow):
411         (body[dir=rtl] .details-section > .content > .group > .row.simple > .value .go-to-arrow):
412         Swap margin-left and margin-right. This regressed when RTL support was added.
413
414 2017-05-03  Devin Rousso  <webkit@devinrousso.com>
415
416         REGRESSION (r215630): Web Inspector: Option-Click on URL in Styles sidebar does not work
417         https://bugs.webkit.org/show_bug.cgi?id=171569
418
419         Reviewed by Joseph Pecoraro.
420
421         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
422         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
423         Add missing `frame` parameter to `WebInspector.openURL`.
424
425 2017-05-03  Nikita Vasilyev  <nvasilyev@apple.com>
426
427         Uncaught Exception: Can't make a ContentView for an unknown representedObject of type: IndexedDatabase
428         https://bugs.webkit.org/show_bug.cgi?id=167473
429         <rdar://problem/30249715>
430
431         Reviewed by Matt Baker.
432
433         When an indexed database is selected in the Storage navigation sidebar, show its host, security origin, and version.
434
435         Previously, selecting an indexed database didn't change the content view. It could lead to a misleading state
436         when an indexed database is selected in the sidebar, but the content view showed previously selected item such as
437         Cookies or Local Storage.
438
439         * UserInterface/Main.html:
440         * UserInterface/Views/ContentView.css:
441         (.content-view .details-section):
442         (.content-view .details-section > .content):
443         (.content-view .details-section > .content > .group > .row.simple > .label):
444         (.content-view .details-section:last-child):
445         * UserInterface/Views/ContentView.js:
446         (WebInspector.ContentView.createFromRepresentedObject):
447         (WebInspector.ContentView.isViewable):
448         * UserInterface/Views/IndexedDatabaseContentView.css: Added.
449         (.indexed-database.content-view):
450         (.indexed-database.content-view .indexed-database-details):
451         (.indexed-database.content-view .details-section > .header):
452         * UserInterface/Views/IndexedDatabaseContentView.js: Added.
453         (WebInspector.IndexedDatabaseContentView):
454         * UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js:
455         (WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.inspect):
456         Don't show the details sidebar for IndexedDB top level item since it has the same content as the content view.
457
458         * UserInterface/Views/StorageSidebarPanel.js:
459         (WebInspector.StorageSidebarPanel._treeSelectionDidChange):
460         * UserInterface/Views/StorageTabContentView.js:
461         (WebInspector.StorageTabContentView.prototype.canShowRepresentedObject):
462         (WebInspector.StorageTabContentView):
463
464 2017-05-03  Joseph Pecoraro  <pecoraro@apple.com>
465
466         Web Inspector: 404 Image Load does not appear as a failure in Web Inspector
467         https://bugs.webkit.org/show_bug.cgi?id=171587
468         <rdar://problem/13222846>
469
470         Reviewed by Matt Baker.
471
472         * UserInterface/Models/Resource.js:
473         (WebInspector.Resource.prototype.createObjectURL):
474         This may return null if the data is not a Blob. This can happen if we
475         loaded non-base64Encoded text content for an Image. Such as a 404 response.
476
477         (WebInspector.Resource.prototype.hadLoadingError):
478         Consistent way to check for any kind of loading error.
479
480         (WebInspector.Resource.prototype.getImageSize):
481         Handle failure to create an object URL.
482
483         * UserInterface/Views/FontResourceContentView.js:
484         (WebInspector.FontResourceContentView.prototype.contentAvailable):
485         * UserInterface/Views/ImageResourceContentView.js:
486         (WebInspector.ImageResourceContentView.prototype.contentAvailable):
487         Handle failure to create an object URL.
488 :
489         * UserInterface/Views/ResourceContentView.js:
490         (WebInspector.ResourceContentView):
491         (WebInspector.ResourceContentView.prototype.showGenericErrorMessage):
492         (WebInspector.ResourceContentView.prototype._protocolError): Deleted.
493         Provide a way for subclasses to show a generic resource loading error.
494
495         * UserInterface/Views/ResourceTimelineDataGridNode.js:
496         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
497         * UserInterface/Views/ResourceTreeElement.js:
498         (WebInspector.ResourceTreeElement.prototype._updateStatus):
499         Use the consistent helper for denoting loading errors.
500
501 2017-05-02  Fujii Hironori  <Hironori.Fujii@sony.com>
502
503         [GTK] Web Inspector: Remove GTK+ icon FontVariantSmallCaps.svg
504         https://bugs.webkit.org/show_bug.cgi?id=171542
505
506         Reviewed by Carlos Garcia Campos.
507
508         This image is not used and Apple's one was removed in Bug 148720.
509
510         * UserInterface/Images/gtk/FontVariantSmallCaps.svg: Removed.
511
512 2017-05-02  Fujii Hironori  <Hironori.Fujii@sony.com>
513
514         [GTK] Web Inspector: Remove GTK+ icons AnimationPlayStatePaused.svg and AnimationPlayStateRunning.svg
515         https://bugs.webkit.org/show_bug.cgi?id=171540
516
517         Reviewed by Carlos Garcia Campos.
518
519         These images aren't used since r204152 (Bug 160566). Instead,
520         Plus13.svg and Minus.svg are used.
521
522         * UserInterface/Images/gtk/BreakpointActionAdd.svg: Removed.
523         * UserInterface/Images/gtk/BreakpointActionRemove.svg: Removed.
524
525 2017-04-30  Chris Dumez  <cdumez@apple.com>
526
527         Drop support for legacy ClientRect / ClientRectList
528         https://bugs.webkit.org/show_bug.cgi?id=171418
529
530         Reviewed by Sam Weinig.
531
532         Drop ClientRectList-related code.
533
534         * UserInterface/Models/NativeFunctionParameters.js:
535
536 2017-04-27  Fujii Hironori  <Hironori.Fujii@sony.com>
537
538         [GTK] Web Inspector: Add new GTK+ icons for different Script Timeline Views (Events and Call Trees)
539         https://bugs.webkit.org/show_bug.cgi?id=155077
540
541         Reviewed by Joseph Pecoraro.
542
543         * UserInterface/Images/gtk/CallTrees.svg: Added.
544         * UserInterface/Images/gtk/Events.svg: Added.
545         * UserInterface/Views/PathComponentIcons.css:
546         (body:not(.mac-platform, .windows-platform) .heap-snapshot-record .icon,):
547         (body:not(.mac-platform, .windows-platform) .events-icon .icon,): Deleted.
548
549 2017-04-27  Nikita Vasilyev  <nvasilyev@apple.com>
550
551         Web Inspector: Remove unused ToggleControlToolbarItem.js
552         https://bugs.webkit.org/show_bug.cgi?id=171401
553
554         Reviewed by Joseph Pecoraro.
555
556         * UserInterface/Main.html:
557         * UserInterface/Views/ToggleControlToolbarItem.js: Removed.
558
559 2017-04-27  Brian Burg  <bburg@apple.com>
560
561         Web Inspector: RTL: inherit system layout direction by default
562         https://bugs.webkit.org/show_bug.cgi?id=171402
563         <rdar://problem/30753626>
564
565         Reviewed by Joseph Pecoraro.
566
567         Web Inspector's layout direction should follow the system layout direction
568         by default now that most RTL bugs seem to be fixed. We are ready for more
569         feedback.
570
571         * UserInterface/Base/Main.js:
572         * UserInterface/Base/Setting.js:
573         Rename the existing "layout-direction" setting so that the new default
574         value is set properly even for people who have overridden the layout
575         direction while the setting was exposed to everyone.
576
577         * UserInterface/Views/GeneralSettingsView.js:
578         (WebInspector.GeneralSettingsView.prototype.initialLayout):
579         (WebInspector.GeneralSettingsView.prototype.layout):
580         (WebInspector.GeneralSettingsView):
581         Make the layout direction override setting only visible when DebugUI
582         is turned on. This remains only for engineers to quickly check layout bugs.
583
584         * UserInterface/Views/SettingsView.js:
585         (WebInspector.SettingsView.prototype.addGroupWithCustomSetting):
586         (WebInspector.SettingsView.prototype.addCustomSetting): Deleted.
587         Refactor the convenience method to return both the group and the
588         custom setting. This allows us to toggle .hidden on the entire
589         row for the Layout Direction setting (label and editor).
590
591         * Localizations/en.lproj/localizedStrings.js:
592         Unlocalize the setting strings since they are only shown in engineering builds now.
593
594 2017-04-27  Brian Burg  <bburg@apple.com>
595
596         Web Inspector: RTL: fix alignment of "truncated call stack" message
597         https://bugs.webkit.org/show_bug.cgi?id=170477
598
599         Reviewed by Devin Rousso.
600
601         * UserInterface/Views/ThreadTreeElement.css:
602         (.tree-outline > .item.thread + ol > .item.truncated-call-frames):
603         (body[dir=ltr] .tree-outline > .item.thread + ol > .item.truncated-call-frames):
604         (body[dir=rtl] .tree-outline > .item.thread + ol > .item.truncated-call-frames):
605         (.tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
606         (body[dir=ltr] .tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
607         (body[dir=rtl] .tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
608
609 2017-04-27  Brian Burg  <bburg@apple.com>
610
611         Web Inspector: RTL: layout issues in Open Resource Dialog
612         https://bugs.webkit.org/show_bug.cgi?id=170551
613
614         Reviewed by Matt Baker.
615
616         We need to flip the cancel and search icons, and flip padding
617         in the tree outline that contains search results.
618
619         I am still not happy with the title/subtitle ordering
620         (i.e., the domain vs the resource name), but this issue will
621         be solved primarily in the navigation sidebar first and then
622         adjusted for Open Resource Dialog if those changes are not
623         sufficient.
624
625         * UserInterface/Views/OpenResourceDialog.css:
626         (.open-resource-dialog > .field):
627         (body[dir=ltr] .open-resource-dialog > .field):
628         (body[dir=rtl] .open-resource-dialog > .field):
629         (.open-resource-dialog > .field::before):
630         (body[dir=ltr] .open-resource-dialog > .field::before):
631         (body[dir=rtl] .open-resource-dialog > .field::before):
632         (.open-resource-dialog > .field > input):
633         (body[dir=ltr] .open-resource-dialog > .field > input):
634         (body[dir=rtl] .open-resource-dialog > .field > input):
635         (.open-resource-dialog > .field > img):
636         (body[dir=ltr] .open-resource-dialog > .field > img):
637         (body[dir=rtl] .open-resource-dialog > .field > img):
638         (.open-resource-dialog > .tree-outline .item):
639         (body[dir=ltr] .open-resource-dialog > .tree-outline .item):
640         (body[dir=rtl] .open-resource-dialog > .tree-outline .item):
641
642 2017-04-27  Brian Burg  <bburg@apple.com>
643
644         Web Inspector: fix tooltip wording for Reload button
645         https://bugs.webkit.org/show_bug.cgi?id=171073
646         <rdar://problem/31378524>
647
648         Reviewed by Joseph Pecoraro.
649
650         * Localizations/en.lproj/localizedStrings.js:
651         * UserInterface/Base/Main.js:
652         (WebInspector.contentLoaded):
653
654 2017-04-27  Fujii Hironori  <Hironori.Fujii@sony.com>
655
656         [GTK] Web Inspector: Add new GTK+ icons for instrument icons
657         https://bugs.webkit.org/show_bug.cgi?id=153892
658         <rdar://problem/24510460>
659
660         Reviewed by Joseph Pecoraro.
661
662         Add more free icons from art-libre symbolic and removed some
663         unused ones for the Web Inspector in GTK+.
664
665         * UserInterface/Images/gtk/Colors.png: Removed.
666         * UserInterface/Images/gtk/Colors@2x.png: Removed.
667         * UserInterface/Images/gtk/ColorsLarge.png: Removed.
668         * UserInterface/Images/gtk/ColorsLarge@2x.png: Removed.
669         * UserInterface/Images/gtk/Frames.png: Removed.
670         * UserInterface/Images/gtk/Frames@2x.png: Removed.
671         * UserInterface/Images/gtk/HeapAllocationsInstrument.svg: Added.
672         * UserInterface/Images/gtk/LayoutInstrument.svg: Added.
673         * UserInterface/Images/gtk/MemoryInstrument.svg: Added.
674         * UserInterface/Images/gtk/Network.png: Removed.
675         * UserInterface/Images/gtk/Network@2x.png: Removed.
676         * UserInterface/Images/gtk/NetworkInstrument.svg: Added.
677         * UserInterface/Images/gtk/NetworkLarge.png: Removed.
678         * UserInterface/Images/gtk/NetworkLarge@2x.png: Removed.
679         * UserInterface/Images/gtk/RenderingFramesInstrument.svg: Added.
680         * UserInterface/Images/gtk/Script.png: Removed.
681         * UserInterface/Images/gtk/Script@2x.png: Removed.
682         * UserInterface/Images/gtk/ScriptLarge.png: Removed.
683         * UserInterface/Images/gtk/ScriptLarge@2x.png: Removed.
684         * UserInterface/Images/gtk/ScriptsInstrument.svg: Added.
685         * UserInterface/Views/TimelineIcons.css:
686         (body:not(.mac-platform, .windows-platform) .network-icon .icon): Deleted.
687         (body:not(.mac-platform, .windows-platform) .network-icon.large .icon): Deleted.
688         (body:not(.mac-platform, .windows-platform) .layout-icon .icon): Deleted.
689         (body:not(.mac-platform, .windows-platform) .layout-icon.large .icon): Deleted.
690         (body:not(.mac-platform, .windows-platform) .script-icon .icon): Deleted.
691         (body:not(.mac-platform, .windows-platform) .script-icon.large .icon): Deleted.
692         (body:not(.mac-platform, .windows-platform) .rendering-frame-icon .icon): Deleted.
693         (body:not(.mac-platform, .windows-platform) .memory-icon .icon): Deleted.
694         (body:not(.mac-platform, .windows-platform) .heap-allocations-icon .icon): Deleted.
695
696 2017-04-27  Fujii Hironori  <Hironori.Fujii@sony.com>
697
698         [GTK] Web Inspector: gtk/NavigationItemCurleyBraces.svg is licensed under NonCommercial CC
699         https://bugs.webkit.org/show_bug.cgi?id=170902
700
701         Reviewed by Michael Catanzaro.
702
703         * UserInterface/Images/gtk/NavigationItemCurleyBraces.svg:
704         Replaced with new one created by me.
705
706 2017-04-27  Fujii Hironori  <Hironori.Fujii@sony.com>
707
708         [GTK] Web Inspector: some SVG images are specified 'currentColor' incorrectly
709         https://bugs.webkit.org/show_bug.cgi?id=170977
710
711         Reviewed by Michael Catanzaro.
712
713         The keyword 'currentColor' is specifed manually in Bug 150602.
714         But, some SVG images are specified incorrectly.
715
716         * UserInterface/Images/gtk/NavigationItemTypes.svg: Do not stroke
717         with currentColor, but fill.
718         * UserInterface/Images/gtk/UpDownArrows.svg: Ditto.
719
720 2017-04-27  Carlos Garcia Campos  <cgarcia@igalia.com>
721
722         [GTK] Remote inspector should support inspecting targets with previous version of backend commands
723         https://bugs.webkit.org/show_bug.cgi?id=171267
724
725         Reviewed by Michael Catanzaro.
726
727         Allow to use data URLs for script-src.
728
729         * UserInterface/Main.html:
730
731 2017-04-25  Nikita Vasilyev  <nvasilyev@apple.com>
732
733         REGRESSION (r209882): Web Inspector: Command-G does not work in the console
734         https://bugs.webkit.org/show_bug.cgi?id=170555
735         <rdar://problem/31481247>
736
737         Reviewed by Brian Burg.
738
739         Command-G didn't work in the console when the console content view was in focus. It only
740         worked when the search input field was focused.
741
742         * UserInterface/Views/LogContentView.js:
743         (WebInspector.LogContentView.prototype.findBannerRevealPreviousResult):
744         (WebInspector.LogContentView.prototype.highlightPreviousSearchMatch): Added.
745         (WebInspector.LogContentView.prototype.findBannerRevealNextResult):
746         (WebInspector.LogContentView.prototype.highlightNextSearchMatch): Added.
747         Re-introduce highlightPreviousSearchMatch and highlightNextSearchMatch methods that were
748         removed in r209882.
749
750 2017-04-25  Joseph Pecoraro  <pecoraro@apple.com>
751
752         Web Inspector: Network Tab - Sorting by Priority Column hides all rows in the datagrid (uncaught exception)
753         https://bugs.webkit.org/show_bug.cgi?id=171312
754         <rdar://problem/31828554>
755
756         Reviewed by Brian Burg.
757
758         * UserInterface/Models/Resource.js:
759         (WebInspector.Resource.comparePriority):
760         Provide a helper for compariting NetworkPriority enum values.
761
762         * UserInterface/Views/NetworkGridContentView.js:
763         (WebInspector.NetworkGridContentView):
764         (WebInspector.NetworkGridContentView.prototype.dataGridSortComparator):
765         * UserInterface/Views/NetworkTimelineView.js:
766         (WebInspector.NetworkTimelineView.prototype.dataGridSortComparator):
767         Custom sort handler for priority.
768
769 2017-04-25  Nikita Vasilyev  <nvasilyev@apple.com>
770
771         REGRESSION (r214863): Web Inspector: Uncaught Exception when losing focus from a selector field
772         https://bugs.webkit.org/show_bug.cgi?id=171254
773         <rdar://problem/31813959>
774
775         Reviewed by Joseph Pecoraro.
776
777         The event.relatedTarget of a blur event contains the element where focus moved to.
778         In some cases this can be null, such as if the user leaves the application window.
779         For example Command+Tab to switch to another application.
780
781         * UserInterface/Views/CSSStyleDeclarationSection.js:
782         (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
783
784 2017-04-25  Nikita Vasilyev  <nvasilyev@apple.com>
785
786         Web Inspector: Open the new bug page in the new tab
787         https://bugs.webkit.org/show_bug.cgi?id=171253
788
789         Reviewed by Joseph Pecoraro.
790
791         * UserInterface/Debug/UncaughtExceptionReporter.js:
792         (createErrorSheet):
793
794 2017-04-25  Joseph Pecoraro  <pecoraro@apple.com>
795
796         Web Inspector: "Space" localized string is not loaded in combined and minified builds
797         https://bugs.webkit.org/show_bug.cgi?id=171283
798         <rdar://problem/30871371>
799
800         Reviewed by Brian Burg.
801
802         In combined and minified builds, the document.write() to load the
803         localized strings script doesn't happen before the KeyboardShortcut
804         global code in Main.js evaluates, so there is no UIString because
805         window.localizedStrings hasn't populated yet. Since this is the only
806         instance, populate the display UIString lazily and provide warnings
807         in minified builds if this happens.
808
809         * UserInterface/Base/LoadLocalizedStrings.js:
810         (WebInspector.UIString):
811         Provide a warning if a UIString was attempted before the strings have loaded.
812
813         * UserInterface/Base/Main.js:
814         (WebInspector.loaded):
815         For this rare instance, populate the display name of the string when we are
816         sure strings have loaded.
817
818         * UserInterface/Models/KeyboardShortcut.js:
819         Revert the UIString here, but note that it will be populated later.
820
821         * UserInterface/Models/Resource.js:
822         (WebInspector.Resource.prototype.setCachedResponseBodySize):
823         * UserInterface/Views/DOMTreeElement.js:
824         (WebInspector.DOMTreeElement.prototype._statusImageContextmenu):
825         Address console.asserts not ending in semicolon warnings produced during
826         optimized builds. Without semicolons they are not stripped.
827
828 2017-04-25  Fujii Hironori  <Hironori.Fujii@sony.com>
829
830         Web Inspector: TypeError:​ sourceCodeLocation.populateLiveDisplayLocationTooltip is not a function
831         https://bugs.webkit.org/show_bug.cgi?id=171259
832
833         Reviewed by Joseph Pecoraro.
834
835         The first argument of WebInspector.createSourceCodeLocationLink
836         should be SourceCodeLocation type.
837
838         * UserInterface/Views/TimelineDataGridNode.js:
839         (WebInspector.TimelineDataGridNode.prototype.createCellContent):
840         Pass 'callFrame.sourceCodeLocation' instead of 'value' to the
841         first argument.
842
843 2017-04-24  Matt Baker  <mattbaker@apple.com>
844
845         Web Inspector: DOM/XHR breakpoint sections should be collapsed by default
846         https://bugs.webkit.org/show_bug.cgi?id=170931
847
848         Reviewed by Brian Burg.
849
850         Set the default collapsed parameter for DOM / XHR Breakpoints sections,
851         and auto-expand the DOM Breakpoints when a breakpoint is added.
852
853         * UserInterface/Views/DebuggerSidebarPanel.js:
854         (WebInspector.DebuggerSidebarPanel):
855         (WebInspector.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved):
856
857 2017-04-21  Devin Rousso  <webkit@devinrousso.com>
858
859         Web Inspector: Add titles to Network grid items for easier reading when text overflows
860         https://bugs.webkit.org/show_bug.cgi?id=170792
861
862         Reviewed by Brian Burg.
863
864         * UserInterface/Views/NetworkGridContentView.js:
865         (WebInspector.NetworkGridContentView):
866         * UserInterface/Views/ResourceTimelineDataGridNode.js:
867         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
868         (WebInspector.ResourceTimelineDataGridNode.prototype._cachedCellContent):
869         Do not add a title if the text is an em-dash, as that title will not convey any information.
870
871 2017-04-21  Devin Rousso  <dcrousso+webkit@gmail.com>
872
873         Web Inspector: Don't show the Search tab if it's open and matches the representedObject
874         https://bugs.webkit.org/show_bug.cgi?id=168709
875
876         Reviewed by Brian Burg.
877
878         * UserInterface/Base/Main.js:
879         (WebInspector.handlePossibleLinkClick):
880         (WebInspector.openURL):
881         (WebInspector.showSourceCode):
882         (WebInspector.showOriginalUnformattedSourceCodeLocation):
883         (WebInspector.showOriginalOrFormattedSourceCodeLocation):
884         (WebInspector.showOriginalOrFormattedSourceCodeTextRange):
885         (WebInspector._frameWasAdded):
886         (WebInspector.createSourceCodeLocationLink):
887         (WebInspector.linkifyLocation):
888         (WebInspector.linkifyElement):
889         Add `options` parameter to provide greater customization.  Also fix some style issues.
890
891         * UserInterface/Views/NetworkGridContentView.js:
892         (WebInspector.NetworkGridContentView.prototype.hasRepresentedObject): Deleted.
893         * UserInterface/Views/NetworkSidebarPanel.js:
894         (WebInspector.NetworkSidebarPanel.prototype.hasRepresentedObject): Deleted.
895         * UserInterface/Views/NetworkTabContentView.js:
896         (WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject):
897         * UserInterface/Views/SearchTabContentView.js:
898         (WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
899         Ensure that the Search tab can only display resources that it has entries for in its view.
900         Also rework the way in which this is determined.
901
902         * UserInterface/Controllers/BreakpointPopoverController.js:
903         (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems):
904         * UserInterface/Protocol/InspectorFrontendAPI.js:
905         (InspectorFrontendAPI.showMainResourceForFrame):
906         * UserInterface/Views/CSSStyleDeclarationSection.js:
907         (WebInspector.CSSStyleDeclarationSection.prototype.refresh):
908         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
909         (WebInspector.CSSStyleDeclarationTextEditor.tokenTrackingControllerHighlightedRangeWasClicked.showRangeInSourceCode):
910         (WebInspector.CSSStyleDeclarationTextEditor.tokenTrackingControllerHighlightedRangeWasClicked):
911         * UserInterface/Views/ComputedStyleDetailsPanel.js:
912         (WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty):
913         * UserInterface/Views/ConsoleMessageView.js:
914         (WebInspector.ConsoleMessageView.prototype._linkifyLocation):
915         * UserInterface/Views/DOMDetailsSidebarPanel.js:
916         (WebInspector.DOMDetailsSidebarPanel.prototype._mouseWasClicked):
917         * UserInterface/Views/DOMTreeContentView.js:
918         (WebInspector.DOMTreeContentView.prototype._mouseWasClicked.followLink):
919         * UserInterface/Views/DOMTreeElement.js:
920         (WebInspector.DOMTreeElement.prototype._showCustomElementDefinition):
921         * UserInterface/Views/DebuggerDashboardView.js:
922         (WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
923         * UserInterface/Views/DebuggerSidebarPanel.js:
924         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
925         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonGotoArrow):
926         * UserInterface/Views/ErrorObjectView.js:
927         (WebInspector.ErrorObjectView.makeSourceLinkWithPrefix):
928         * UserInterface/Views/EventListenerSectionGroup.js:
929         (WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
930         * UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
931         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populatePreview):
932         (WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPathRow):
933         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
934         (WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
935         (WebInspector.ObjectTreeBaseTreeElement):
936         * UserInterface/Views/ProbeSetDetailsSection.js:
937         (WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement):
938         * UserInterface/Views/ProfileDataGridNode.js:
939         (WebInspector.ProfileDataGridNode.prototype._displayContent):
940         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
941         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRelatedResourcesSection):
942         (WebInspector.ResourceDetailsSidebarPanel.prototype._goToRequestDataClicked):
943         * UserInterface/Views/ResourceSidebarPanel.js:
944         (WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
945         * UserInterface/Views/ResourceTimelineDataGridNode.js:
946         (WebInspector.ResourceTimelineDataGridNode.prototype._dataGridNodeGoToArrowClicked):
947         * UserInterface/Views/RulesStyleDetailsPanel.js:
948         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
949         * UserInterface/Views/SearchSidebarPanel.js:
950         (WebInspector.SearchSidebarPanel.prototype._treeElementDoubleClick):
951         * UserInterface/Views/SourceCodeTextEditor.js:
952         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
953         * UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
954         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype._createNameCellContent):
955         * UserInterface/Views/TimelineDataGrid.js:
956         (WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):
957         * UserInterface/Views/TimelineDataGridNode.js:
958         (WebInspector.TimelineDataGridNode.prototype.createCellContent):
959         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
960         (WebInspector.VisualStyleSelectorTreeItem.prototype.populateContextMenu):
961         Ensure that the Search tab is never shown from links generated by these functions.
962         Also do the same for the Network tab in some cases.
963
964         * UserInterface/Views/NetworkTimelineView.js:
965         (WebInspector.NetworkTimelineView.prototype.canShowContentViewForTreeElement): Deleted.
966         (WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement): Deleted.
967         Drive-by cleanup: remove dead code.
968
969 2017-04-20  Matt Baker  <mattbaker@apple.com>
970
971         Web Inspector: Add regular expression support to XHR breakpoints
972         https://bugs.webkit.org/show_bug.cgi?id=170099
973         <rdar://problem/31558082>
974
975         Reviewed by Joseph Pecoraro.
976
977         * Localizations/en.lproj/localizedStrings.js:
978         New strings for the Add XHR Breakpoint popover.
979
980         * UserInterface/Controllers/DOMDebuggerManager.js:
981         (WebInspector.DOMDebuggerManager):
982         (WebInspector.DOMDebuggerManager.prototype.addXHRBreakpoint):
983         Update for new XHRBreakpoint constructor.
984         (WebInspector.DOMDebuggerManager.prototype._updateXHRBreakpoint):
985         Set `isRegex` flag.
986
987         * UserInterface/Main.html:
988         New files for CodeMirror mode and breakpoint popover.
989
990         * UserInterface/Models/XHRBreakpoint.js:
991         Breakpoint can be of type Text or RegularExpression.
992         (WebInspector.XHRBreakpoint):
993         (WebInspector.XHRBreakpoint.prototype.get type):
994         (WebInspector.XHRBreakpoint.prototype.get serializableInfo):
995
996         * UserInterface/Views/CodeMirrorRegexMode.css: Added.
997         (.cm-s-default .cm-regex-character-set):
998         (.cm-s-default .cm-regex-character-set-negate):
999         (.cm-s-default :matches(.cm-regex-escape, .cm-regex-escape-2, .cm-regex-escape-3)):
1000         (.cm-s-default :matches(.cm-regex-group, .cm-regex-lookahead)):
1001         (.cm-s-default .cm-regex-quantifier):
1002         (.cm-s-default :matches(.cm-regex-literal, .cm-regex-special, .cm-regex-backreference)):
1003         Colors for regular expression syntax highlighting. The regex mode emits
1004         more class names than we have separate colors for, allowing for further
1005         customization in the future.
1006
1007         * UserInterface/Views/CodeMirrorRegexMode.js: Added.
1008         (characterSetTokenizer):
1009         (consumeEscapeSequence):
1010         (tokenBase):
1011         New CodeMirror mode for highlighting "text/x-regex" content.
1012
1013         * UserInterface/Views/DebuggerSidebarPanel.js:
1014         Use new popover type for creating XHR breakpoints.
1015         (WebInspector.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked):
1016         (WebInspector.DebuggerSidebarPanel.prototype.willDismissPopover):
1017         (WebInspector.DebuggerSidebarPanel):
1018
1019         * UserInterface/Views/XHRBreakpointPopover.css: Added.
1020         (.popover .xhr-breakpoint-content):
1021         (.popover .xhr-breakpoint-content > .editor-wrapper):
1022         (.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
1023         (body[dir=ltr] .popover .xhr-breakpoint-content > .editor-wrapper > .editor):
1024         (body[dir=rtl] .popover .xhr-breakpoint-content > .editor-wrapper > .editor):
1025         (.popover .xhr-breakpoint-content > .editor-wrapper > .editor > .CodeMirror):
1026         (.popover .xhr-breakpoint-content > .editor-wrapper > .editor > .CodeMirror-scroll):
1027         Styles for new popover.
1028
1029         * UserInterface/Views/XHRBreakpointPopover.js: Added.
1030         New popover class. Includes a picker for selecting breakpoint type
1031         (Text or RegularExpression), and has an improved popover caption. Input
1032         field style and placeholder text changes based on the breakpoint type.
1033
1034         (WebInspector.XHRBreakpointPopover):
1035         (WebInspector.XHRBreakpointPopover.prototype.get result):
1036         (WebInspector.XHRBreakpointPopover.prototype.get type):
1037         (WebInspector.XHRBreakpointPopover.prototype.get value):
1038         (WebInspector.XHRBreakpointPopover.prototype.show.addOption):
1039         (WebInspector.XHRBreakpointPopover.prototype.show):
1040         (WebInspector.XHRBreakpointPopover.prototype._createEditor):
1041         (WebInspector.XHRBreakpointPopover.prototype._updateEditor):
1042         (WebInspector.XHRBreakpointPopover.prototype._presentOverTargetElement):
1043
1044         * UserInterface/Views/XHRBreakpointTreeElement.js:
1045         (WebInspector.XHRBreakpointTreeElement):
1046         Differentiate breakpoint type by enclosing subtitle in either double quotes
1047         or regex-literal delimiters, depending on the type of breakpoint.
1048
1049 2017-04-19  Nikita Vasilyev  <nvasilyev@apple.com>
1050
1051         REGRESSION (r209882): Web Inspector: Console's filter bar has text search field, but the next/previous buttons don't do anything
1052         https://bugs.webkit.org/show_bug.cgi?id=170556
1053         <rdar://problem/31481755>
1054
1055         Reviewed by Matt Baker.
1056
1057         * UserInterface/Views/LogContentView.js:
1058         (WebInspector.LogContentView.prototype.performSearch):
1059         Update numberOfResults setter, which sets "disabled" attribute to false when numberOfResults > 0.
1060
1061 2017-04-18  Matt Baker  <mattbaker@apple.com>
1062
1063         Web Inspector: XHR breakpoints shouldn't be cleared from the sidebar on reload
1064         https://bugs.webkit.org/show_bug.cgi?id=170930
1065
1066         Reviewed by Joseph Pecoraro.
1067
1068         XHR breakpoints aren't associated with the main resource, and shouldn't
1069         be cleared from the manager or sidebar UI When the main resource changes.
1070
1071         * UserInterface/Controllers/DOMDebuggerManager.js:
1072         (WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
1073         * UserInterface/Controllers/XHRBreakpointTreeController.js:
1074         (WebInspector.XHRBreakpointTreeController):
1075         (WebInspector.XHRBreakpointTreeController.prototype._mainResourceDidChange): Deleted.
1076
1077 2017-04-17  Joseph Pecoraro  <pecoraro@apple.com>
1078
1079         Web Inspector: Network columns don't get saved when Web Inspector is closed
1080         https://bugs.webkit.org/show_bug.cgi?id=170373
1081         <rdar://problem/31386336>
1082
1083         Reviewed by Matt Baker.
1084
1085         * UserInterface/Views/DataGrid.js:
1086         (WebInspector.DataGrid.prototype.setColumnVisible):
1087         (WebInspector.DataGrid.prototype._contextMenuInHeader):
1088         The context menu was often passing `undefined` as the visible value
1089         which would cause the setting to not be saved appropriately. Ensure
1090         we always get an explicit boolean.
1091
1092 2017-04-17  Nikita Vasilyev  <nvasilyev@apple.com>
1093
1094         Web Inspector: Use `text-align: start` for DataGrid headers
1095         https://bugs.webkit.org/show_bug.cgi?id=170871
1096
1097         Reviewed by Matt Baker.
1098
1099         `text-align: start` didn't work for th elements.
1100         It was fixed in <webkit.org/b/141417>.
1101
1102         * UserInterface/Views/DataGrid.css:
1103         (.data-grid th):
1104         (body[dir=ltr] .data-grid th): Deleted.
1105         (body[dir=rtl] .data-grid th): Deleted.
1106
1107 2017-04-17  Joseph Pecoraro  <pecoraro@apple.com>
1108
1109         Web Inspector: Doesn't show size of compressed content correctly
1110         https://bugs.webkit.org/show_bug.cgi?id=155112
1111         <rdar://problem/25006728>
1112
1113         Reviewed by Alex Christensen and Timothy Hatcher.
1114
1115         * UserInterface/Controllers/FrameResourceManager.js:
1116         (WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
1117         Set an exact size.
1118
1119         * UserInterface/Models/Resource.js:
1120         (WebInspector.Resource):
1121         (WebInspector.Resource.prototype.get requestHeadersTransferSize):
1122         (WebInspector.Resource.prototype.get requestBodyTransferSize):
1123         (WebInspector.Resource.prototype.get responseHeadersTransferSize):
1124         (WebInspector.Resource.prototype.get responseBodyTransferSize):
1125         (WebInspector.Resource.prototype.get cachedResponseBodySize):
1126         (WebInspector.Resource.prototype.get size):
1127         (WebInspector.Resource.prototype.get networkEncodedSize):
1128         (WebInspector.Resource.prototype.get networkDecodedSize):
1129         (WebInspector.Resource.prototype.get networkTotalTransferSize):
1130         (WebInspector.Resource.prototype.get estimatedNetworkEncodedSize):
1131         (WebInspector.Resource.prototype.get estimatedTotalTransferSize):
1132         (WebInspector.Resource.prototype.get compressed):
1133         (WebInspector.Resource.prototype.updateForResponse):
1134         (WebInspector.Resource.prototype.updateWithMetrics):
1135         (WebInspector.Resource.prototype.setCachedResponseBodySize):
1136         (WebInspector.Resource.prototype.increaseSize):
1137         (WebInspector.Resource.prototype.increaseTransferSize):
1138         (WebInspector.Resource.prototype.get encodedSize): Deleted.
1139         (WebInspector.Resource.prototype.get transferSize): Deleted.
1140         Be more explicit with size getters.
1141
1142         (WebInspector.Resource.prototype.updateWithMetrics):
1143         If we receive the size metrics, update the specific metric values.
1144
1145         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
1146         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshCompressed):
1147         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshDecodedSize):
1148         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshTransferSize):
1149         * UserInterface/Views/ResourceTimelineDataGridNode.js:
1150         (WebInspector.ResourceTimelineDataGridNode.prototype.get data):
1151         Show exact values if we have them, otherwise fall back to the calculated
1152         values during loading.
1153
1154 2017-04-17  Jon Davis  <jond@apple.com>
1155
1156         Web Inspector: new icon for Disable Caches button in Network Tab
1157         https://bugs.webkit.org/show_bug.cgi?id=170196
1158
1159         Reviewed by Joseph Pecoraro.
1160
1161         * UserInterface/Images/IgnoreCaches.svg: Added.
1162         Added new art for the Disable Caches button. 
1163
1164         * UserInterface/Images/gtk/IgnoreCaches.svg: Added.
1165         Used GTK's StepOver.svg for fallback art for GTK.
1166         
1167         * UserInterface/Images/NavigationItemClear.svg:
1168         Improved artwork for Clear Console button icon to match the weight and 
1169         style of the Disable Caches button icon.
1170         
1171         * UserInterface/Views/NetworkGridContentView.js:
1172         (WebInspector.NetworkGridContentView):
1173         
1174 2017-04-17  Matt Baker  <mattbaker@apple.com>
1175
1176         Web Inspector: Enabled state of "All Requests" XHR breakpoint not restored correctly
1177         https://bugs.webkit.org/show_bug.cgi?id=170916
1178
1179         Reviewed by Joseph Pecoraro.
1180
1181         * UserInterface/Controllers/DOMDebuggerManager.js:
1182         (WebInspector.DOMDebuggerManager):
1183         Set breakpoint with backend agent, if enabled.
1184
1185 2017-04-17  Matt Baker  <mattbaker@apple.com>
1186
1187         Web Inspector: Show pause reason for "All Requests" XHR breakpoint
1188         https://bugs.webkit.org/show_bug.cgi?id=170895
1189
1190         Reviewed by Joseph Pecoraro.
1191
1192         * Localizations/en.lproj/localizedStrings.js:
1193         Add generic pause reason text: "Requesting: <url>".
1194
1195         * UserInterface/Controllers/DOMDebuggerManager.js:
1196         (WebInspector.DOMDebuggerManager.prototype.xhrBreakpointForURL):
1197         Relocated helper method from the sidebar.
1198
1199         * UserInterface/Views/DebuggerSidebarPanel.js:
1200         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
1201         Add an XHR breakpoint tree element when pause data contains a breakpoint
1202         URL, otherwise just add a generic text row.
1203
1204 2017-04-17  Matt Baker  <mattbaker@apple.com>
1205
1206         Web Inspector: XHR breakpoints restored from settings do not appear in the sidebar
1207         https://bugs.webkit.org/show_bug.cgi?id=170890
1208
1209         Reviewed by Joseph Pecoraro.
1210
1211         Need to check for existing breakpoints when XHRBreakpointTreeController
1212         is constructed, instead of just listening for added breakpoints.
1213
1214         * UserInterface/Controllers/XHRBreakpointTreeController.js:
1215         (WebInspector.XHRBreakpointTreeController):
1216         (WebInspector.XHRBreakpointTreeController.prototype._xhrBreakpointAdded):
1217         (WebInspector.XHRBreakpointTreeController.prototype._addTreeElement):
1218
1219 2017-04-14  Nikita Vasilyev  <nvasilyev@apple.com>
1220
1221         Web Inspector: WebSockets: messages with non-latin letters are displayed incorrectly
1222         https://bugs.webkit.org/show_bug.cgi?id=170760
1223
1224         Reviewed by Joseph Pecoraro.
1225
1226         Add payloadLength property, which is used to display size. When payloadLength is unavailable,
1227         it is calculated from payloadData by Web Inspector frontend.
1228
1229         This fixes <webkit.org/b/170609> Web Inspector: WebSockets: Transferred size is incorrect.
1230
1231         * UserInterface/Controllers/FrameResourceManager.js:
1232         (WebInspector.FrameResourceManager.prototype._webSocketFrameReceivedOrSent):
1233         * UserInterface/Models/WebSocketResource.js:
1234         (WebInspector.WebSocketResource.prototype.addFrame):
1235
1236 2017-04-13  Devin Rousso  <webkit@devinrousso.com>
1237
1238         Web Inspector: Implement autocompletion for CSS variables
1239         https://bugs.webkit.org/show_bug.cgi?id=154441
1240
1241         Reviewed by Joseph Pecoraro.
1242
1243         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1244         (WebInspector.CSSStyleDeclarationTextEditor.prototype.completionControllerCompletionsNeeded):
1245         Add CSS variables to the list of matching completions based on those defined in the current
1246         node's computed style.
1247
1248 2017-04-13  Ross Kirsling  <ross.kirsling@sony.com>
1249
1250         Web Inspector: No context menu available via ENABLE_INSPECTOR_SERVER
1251         https://bugs.webkit.org/show_bug.cgi?id=170705
1252
1253         Reviewed by Joseph Pecoraro.
1254
1255         Reintroduce old SoftContextMenu class (removed in r157278) and apply various fixes:
1256         - Remove legacy globals and prototype extensions.
1257         - Align JS/CSS style with current front-end code.
1258         - Update UI and fix UX to replicate the macOS native context menu.
1259
1260         * Scripts/copy-user-interface-resources.pl:
1261         Add copyright line for Sony Interactive Entertainment.
1262         
1263         * UserInterface/Base/InspectorFrontendHostStub.js:
1264         (WebInspector.InspectorFrontendHostStub.prototype.showContextMenu):
1265         Use SoftContextMenu.
1266         
1267         * UserInterface/Main.html:
1268         Include SoftContextMenu.
1269
1270         * UserInterface/Views/SoftContextMenu.css: Added.
1271         (.soft-context-menu-glass-pane):
1272         (.soft-context-menu):
1273         (.soft-context-menu > .item):
1274         (.soft-context-menu > .item.disabled):
1275         (.soft-context-menu > .item.highlighted):
1276         (.soft-context-menu > .item > .checkmark):
1277         (.soft-context-menu > .item > .label):
1278         (.soft-context-menu > .item > .submenu-arrow):
1279         (.soft-context-menu > .separator):
1280         (.soft-context-menu > .separator > .line):
1281
1282         * UserInterface/Views/SoftContextMenu.js: Added.
1283         (WebInspector.SoftContextMenu):
1284         (WebInspector.SoftContextMenu.prototype.show):
1285         (WebInspector.SoftContextMenu.prototype._consumeEvent):
1286         (WebInspector.SoftContextMenu.prototype._parentGlassPaneElement):
1287         (WebInspector.SoftContextMenu.prototype._createMenuItem):
1288         (WebInspector.SoftContextMenu.prototype._createSeparator):
1289         (WebInspector.SoftContextMenu.prototype._repositionMenuOnScreen):
1290         (WebInspector.SoftContextMenu.prototype._showSubMenu):
1291         (WebInspector.SoftContextMenu.prototype._hideSubMenu):
1292         (WebInspector.SoftContextMenu.prototype._menuItemContextMenu):
1293         (WebInspector.SoftContextMenu.prototype._menuItemMouseDown):
1294         (WebInspector.SoftContextMenu.prototype._menuItemMouseUp):
1295         (WebInspector.SoftContextMenu.prototype._menuItemMouseOver):
1296         (WebInspector.SoftContextMenu.prototype._menuItemMouseOut):
1297         (WebInspector.SoftContextMenu.prototype._menuKeyDown):
1298         (WebInspector.SoftContextMenu.prototype._glassPaneMouseDown):
1299         (WebInspector.SoftContextMenu.prototype._focus):
1300         (WebInspector.SoftContextMenu.prototype._triggerAction):
1301         (WebInspector.SoftContextMenu.prototype._highlightMenuItem):
1302         (WebInspector.SoftContextMenu.prototype._highlightPrevious):
1303         (WebInspector.SoftContextMenu.prototype._highlightNext):
1304         (WebInspector.SoftContextMenu.prototype._discardMenu):
1305         (WebInspector.SoftContextMenu.prototype._discardSubMenus):
1306
1307 2017-04-13  Brian Burg  <bburg@apple.com>
1308
1309         Web Inspector: RTL: goto arrow is floated to the wrong side
1310         https://bugs.webkit.org/show_bug.cgi?id=170816
1311
1312         Reviewed by Matt Baker.
1313
1314         Float it to the other side if necessary.
1315
1316         * UserInterface/Views/Main.css:
1317         (.go-to-link):
1318         (body[dir=ltr] .go-to-link:not(.dont-float)):
1319         (body[dir=rtl] .go-to-link:not(.dont-float)):
1320
1321 2017-04-12  Dan Bernstein  <mitz@apple.com>
1322
1323         [Mac] Future-proof .xcconfig files
1324         https://bugs.webkit.org/show_bug.cgi?id=170802
1325
1326         Reviewed by Tim Horton.
1327
1328         * Configurations/Base.xcconfig:
1329         * Configurations/DebugRelease.xcconfig:
1330         * Configurations/Version.xcconfig:
1331
1332 2017-04-11  Matt Baker  <mattbaker@apple.com>
1333
1334         Web Inspector: checkboxes in Settings screen use inappropriate layout
1335         https://bugs.webkit.org/show_bug.cgi?id=166993
1336         <rdar://problem/30002272>
1337
1338         Reviewed by Devin Rousso.
1339
1340         * Localizations/en.lproj/localizedStrings.js:
1341         New checkbox setting strings.
1342
1343         * UserInterface/Main.html:
1344         New settings view classes.
1345
1346         * UserInterface/Views/GeneralSettingsView.js: Added.
1347         (WebInspector.GeneralSettingsView):
1348         (WebInspector.GeneralSettingsView.prototype.initialLayout):
1349         Move settings UI creation from SettingsTabContentView.
1350
1351         * UserInterface/Views/SettingEditor.js: Added.
1352         Basic setting editor UI for the following input types: checkbox,
1353         number, and select. In the future it may be useful to include
1354         additional types, such as radio buttons.
1355
1356         (WebInspector.SettingEditor):
1357         (WebInspector.SettingEditor.createForSetting):
1358         (WebInspector.SettingEditor.prototype.get element):
1359         (WebInspector.SettingEditor.prototype.get type):
1360         (WebInspector.SettingEditor.prototype.get label):
1361         (WebInspector.SettingEditor.prototype.get value):
1362         (WebInspector.SettingEditor.prototype.set value):
1363         (WebInspector.SettingEditor.prototype._createEditorElement):
1364
1365         * UserInterface/Views/SettingsGroup.js: Added.
1366         A container holding editors for one or more WebInspector.Settings.
1367         Every editor belongs to a group. SettingsView provides convenience
1368         methods for adding settings and groups, so create instances directly
1369         shouldn't normally be necessary.
1370
1371         (WebInspector.SettingsGroup):
1372         (WebInspector.SettingsGroup.prototype.get element):
1373         (WebInspector.SettingsGroup.prototype.addSetting):
1374         (WebInspector.SettingsGroup.prototype.addCustomSetting):
1375
1376         * UserInterface/Views/SettingsTabContentView.css:
1377         Refactored styles to more closely match Xcode settings UI.
1378         Eliminated redundant use of "setting" from CSS class names.
1379
1380         (.content-view.settings):
1381         (.content-view.settings .navigation-bar .item.radio.button.text-only):
1382         (.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
1383         (.content-view.settings > .settings-view > .separator):
1384         (.content-view.settings > .settings-view > .container):
1385         (.content-view.settings > .settings-view > .container > .title):
1386         (body[dir=ltr] .content-view.settings > .settings-view > .container > .title):
1387         (body[dir=rtl] .content-view.settings > .settings-view > .container > .title):
1388         (.content-view.settings > .settings-view > .container > .editor-group):
1389         (.content-view.settings > .settings-view > .container > .editor-group > .editor input):
1390         (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
1391         (body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
1392         (body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
1393         (.content-view.settings > .settings-view > .container > .editor-group > .editor select):
1394         (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
1395         (body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
1396         (body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
1397         (.content-view.settings > .header): Deleted.
1398         (.content-view.settings > .separator): Deleted.
1399         (.content-view.settings > .setting-container): Deleted.
1400         (.content-view.settings > .setting-container.combined): Deleted.
1401         (.content-view.settings > .setting-container > .setting-name): Deleted.
1402         (body[dir=ltr] .content-view.settings > .setting-container > .setting-name): Deleted.
1403         (body[dir=rtl] .content-view.settings > .setting-container > .setting-name): Deleted.
1404         (.content-view.settings > .setting-container > .setting-value-controller): Deleted.
1405         (.content-view.settings > .setting-container > .setting-value-controller input): Deleted.
1406         (.content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]): Deleted.
1407         (body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]): Deleted.
1408         (body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]): Deleted.
1409         (.content-view.settings > .setting-container > .setting-value-controller select): Deleted.
1410         (.content-view.settings > .setting-container > .setting-value-controller input[type="number"]): Deleted.
1411         (body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]): Deleted.
1412         (body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]): Deleted.
1413
1414         * UserInterface/Views/SettingsTabContentView.js:
1415         To better organize the growing number of settings, multiple settings views
1416         are now supported, with a navigation bar for switching between them. For
1417         now there is a single "General" setting view, and and the navigation bar
1418         is hidden. Adding a second view will cause the bar to be shown.
1419
1420         (WebInspector.SettingsTabContentView):
1421         (WebInspector.SettingsTabContentView.prototype.get type):
1422         (WebInspector.SettingsTabContentView.prototype.get selectedSettingsView):
1423         (WebInspector.SettingsTabContentView.prototype.set selectedSettingsView):
1424         (WebInspector.SettingsTabContentView.prototype.addSettingsView):
1425         (WebInspector.SettingsTabContentView.prototype._navigationItemSelected):
1426         (WebInspector.SettingsTabContentView.prototype.layout): Deleted.
1427         No longer needed.
1428
1429         * UserInterface/Views/SettingsView.js: Added.
1430         Base class for displaying editing UI for a collection of related
1431         WebInspector.Setting objects.
1432
1433         (WebInspector.SettingsView):
1434         (WebInspector.SettingsView.prototype.get identifier):
1435         (WebInspector.SettingsView.prototype.get displayName):
1436         A string suitable for display in a NavigationBar showing a list of
1437         SettingsViews (e.g. "General", "Text Editing", "Fonts & Colors", etc).
1438
1439         (WebInspector.SettingsView.prototype.addSetting):
1440         Add UI for a setting, consisting of a title, an editor appropriate for
1441         the setting's value type, and optional label and formatting options.
1442         For example:
1443
1444             addSetting("Setting 1:", new WebInspector.Setting(…, true), "Item one")
1445             addSetting("Setting 2:", new WebInspector.Setting(…, 1), "units")
1446
1447         will create a checkbox and number input field:
1448
1449             Setting 1: [x] Item one
1450             Setting 2: [  1] units
1451
1452         (WebInspector.SettingsView.prototype.addCustomSetting):
1453         Add UI for a specific editor type, with optional formatting options.
1454         A setting can be updated in response to changes in the editor's value.
1455
1456         (WebInspector.SettingsView.prototype.addGroup):
1457         Add a group, for listing multiple settings under one title. For example:
1458
1459            group = addGroup("Title:")
1460            group.addSetting(new WebInspector.Setting(…, true), "Item one")
1461            group.addSetting(new WebInspector.Setting(…, false), "Item two")
1462
1463         will create two checkboxes under the same title:
1464
1465            Title: [x] Item one
1466                   [ ] Item two
1467
1468         (WebInspector.SettingsView.prototype.addSeparator):
1469         Add vertical space between two settings or groups.
1470
1471 2017-04-10  Nikita Vasilyev  <nvasilyev@apple.com>
1472
1473         Web Inspector: WebSockets: Don't clip data in the data grid
1474         https://bugs.webkit.org/show_bug.cgi?id=170559
1475
1476         Reviewed by Timothy Hatcher.
1477
1478         Long lines without spaces should be broken down into several lines instead of being ellipsized.
1479
1480         * UserInterface/Views/WebSocketContentView.css:
1481         (.web-socket.content-view > .data-grid td.data-column,):
1482
1483 2017-04-10  Nikita Vasilyev  <nvasilyev@apple.com>
1484
1485         Web Inspector: Placeholder text is clipped in the 'Enter Class Name' field at the bottom of Rules style sidebar in some localizations
1486         https://bugs.webkit.org/show_bug.cgi?id=167641
1487         <rdar://problem/26541953>
1488
1489         Reviewed by Joseph Pecoraro.
1490
1491         Make the "Enter Class Name" text field span the entire width of the Styles sidebar.
1492
1493         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
1494         (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class):
1495         (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
1496         (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > input[type="checkbox"]): Deleted.
1497         (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .add-class-icon): Deleted.
1498         (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class.active > .add-class-icon,): Deleted.
1499         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
1500         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.initialLayout):
1501         Remove the checkbox, which didn't do anything, and the plus icon. Make the "Enter Class Name" text field visible by default.
1502
1503 2017-04-10  Jon Lee  <jonlee@apple.com>
1504
1505         Update localizable strings to "full screen" from "fullscreen"
1506         https://bugs.webkit.org/show_bug.cgi?id=170675
1507         rdar://problem/28207034
1508
1509         Reviewed by Antoine Quint.
1510
1511         * UserInterface/Models/ScriptTimelineRecord.js:
1512         (WebInspector.ScriptTimelineRecord.EventType.displayName): For localizable strings, it should consistently be
1513         "full screen" instead of "fullscreen".
1514
1515 2017-04-09  Devin Rousso  <webkit@devinrousso.com>
1516
1517         Web Inspector: tabbing in Styles sidebar is broken when additional ":" and ";" are in the property value
1518         https://bugs.webkit.org/show_bug.cgi?id=170184
1519
1520         Reviewed by Matt Baker.
1521
1522         New tests:
1523         - inspector/unit-tests/text-utilities.html
1524
1525         * UserInterface/Base/TextUtilities.js: Added.
1526         (WebInspector.rangeForNextCSSNameOrValue):
1527         Consolidate logic for finding the next range to highlight in a CSS string given a starting index.
1528
1529         * UserInterface/Main.html:
1530         * UserInterface/Test.html:
1531         Include TextUtilities.
1532
1533         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1534         (WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue):
1535         (WebInspector.CSSStyleDeclarationTextEditor.prototype._rangeForNextNameOrValue):
1536         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
1537         Utilize TextUtilities for range-finding logic.
1538
1539 2017-04-08  Simon Fraser  <simon.fraser@apple.com>
1540
1541         Unprefix CSS cursor values grab and grabbing
1542         https://bugs.webkit.org/show_bug.cgi?id=170543
1543
1544         Reviewed by Jon Lee.
1545
1546         Sort the cursor autosuggestions to match the order in the spec, and add the unprefixed
1547         grab and grabbing values.
1548
1549         * UserInterface/Models/CSSKeywordCompletions.js:
1550
1551 2017-04-07  Matt Baker  <mattbaker@apple.com>
1552
1553         Web Inspector: DOM/XHR breakpoint tree elements shouldn't persist their represented objects
1554         https://bugs.webkit.org/show_bug.cgi?id=170611
1555         <rdar://problem/31506161>
1556
1557         Reviewed by Joseph Pecoraro.
1558
1559         Prevent tree elements for DOM and XHR breakpoints from persisting their
1560         represented objects.
1561
1562         * UserInterface/Views/ContentView.js:
1563         (WebInspector.ContentView.createFromRepresentedObject):
1564         * UserInterface/Views/NavigationSidebarPanel.js:
1565         (WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
1566
1567 2017-04-06  Joseph Pecoraro  <pecoraro@apple.com>
1568
1569         Web Inspector: Source Map Resources should show up in the Debugger Sources list
1570         https://bugs.webkit.org/show_bug.cgi?id=170581
1571         <rdar://problem/31269140>
1572
1573         Reviewed by Matt Baker.
1574
1575         * UserInterface/Views/DebuggerSidebarPanel.js:
1576         (WebInspector.DebuggerSidebarPanel):
1577         Include SourceMapResources in the DebuggerSidebar's Sources tree outline.
1578
1579 2017-04-06  Joseph Pecoraro  <pecoraro@apple.com>
1580
1581         Web Inspector: Show all headers in the Request Headers section of the Resource details sidebar
1582         https://bugs.webkit.org/show_bug.cgi?id=16531
1583         <rdar://problem/5712895>
1584
1585         Reviewed by Timothy Hatcher.
1586
1587         * UserInterface/Models/Resource.js:
1588         (WebInspector.Resource.prototype.updateWithMetrics):
1589         Update request headers if provided in metrics.
1590
1591 2017-04-06  Matt Baker  <mattbaker@apple.com>
1592
1593         Web Inspector: Reorder Debugger tab sidebar panels: Scope Chain, Resource, Probes
1594         https://bugs.webkit.org/show_bug.cgi?id=170418
1595         <rdar://problem/31410771>
1596
1597         Reviewed by Timothy Hatcher.
1598
1599         Maintain the sidebar panel order defined by TabContentView when adding
1600         and removing panels.
1601
1602         * UserInterface/Views/ContentBrowserTabContentView.js:
1603         (WebInspector.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels):
1604         Insert sidebar panel based on the panel order defined by TabContentView.
1605
1606         * UserInterface/Views/DebuggerTabContentView.js:
1607         (WebInspector.DebuggerTabContentView):
1608
1609         * UserInterface/Views/Sidebar.js:
1610         (WebInspector.Sidebar.prototype.addSidebarPanel):
1611         Implemented as an insert at the end.
1612         (WebInspector.Sidebar.prototype.insertSidebarPanel):
1613         Allow inserting into the sidebar panel collection.
1614         (WebInspector.Sidebar.prototype.removeSidebarPanel):
1615         Remove unused return value.
1616
1617 2017-04-05  Matt Baker  <mattbaker@apple.com>
1618
1619         Web Inspector: Probe values not showing in sidebar
1620         https://bugs.webkit.org/show_bug.cgi?id=170143
1621
1622         Reviewed by Joseph Pecoraro.
1623
1624         Force the DataGrid to refresh its layout after adding a probe sample.
1625
1626         * UserInterface/Views/ProbeSetDataGrid.css:
1627         (.details-section.probe-set .data-grid tr.data-updated):
1628         (.details-section.probe-set .data-grid > tr.data-updated): Deleted.
1629         Drive-by fix: selector didn't match any rows.
1630
1631         * UserInterface/Views/ProbeSetDataGrid.js:
1632         (WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame):
1633
1634 2017-04-05  Matt Baker  <mattbaker@apple.com>
1635
1636         Web Inspector: XHR breakpoints should be global
1637         https://bugs.webkit.org/show_bug.cgi?id=170033
1638
1639         Reviewed by Joseph Pecoraro.
1640
1641         * Localizations/en.lproj/localizedStrings.js:
1642         Shorten XHR breakpoint tree element "URL contains:" title to "URL".
1643
1644         * UserInterface/Controllers/DOMDebuggerManager.js:
1645         Change storage of XHR breakpoints from a map to a simple array.
1646         (WebInspector.DOMDebuggerManager):
1647         (WebInspector.DOMDebuggerManager.prototype.get xhrBreakpoints):
1648         (WebInspector.DOMDebuggerManager.prototype.addXHRBreakpoint):
1649         Dispatch the "breakpoint added" event immediately after adding the
1650         breakpoint, rather than waiting for it to resolve.
1651
1652         (WebInspector.DOMDebuggerManager.prototype.removeXHRBreakpoint):
1653         (WebInspector.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
1654         (WebInspector.DOMDebuggerManager.prototype._resolveXHRBreakpoint):
1655         (WebInspector.DOMDebuggerManager.prototype._saveXHRBreakpoints):
1656         (WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
1657
1658         * UserInterface/Models/XHRBreakpoint.js:
1659         An XHR breakpoint should not be associated with a particular document.
1660         (WebInspector.XHRBreakpoint):
1661         (WebInspector.XHRBreakpoint.prototype.get serializableInfo):
1662         (WebInspector.XHRBreakpoint.prototype.saveIdentityToCookie):
1663         (WebInspector.XHRBreakpoint.prototype.get documentURL): Deleted.
1664
1665         * UserInterface/Views/DebuggerSidebarPanel.css:
1666         Use default emdash-separated title/subtitle style instead of the
1667         custom "URL contains:" labeling.
1668
1669         (.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle):
1670         (.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle:before): Deleted.
1671         (body[dir=ltr] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
1672         (body[dir=rtl] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
1673
1674         * UserInterface/Views/DebuggerSidebarPanel.js:
1675         (WebInspector.DebuggerSidebarPanel.prototype.willDismissPopover):
1676         (WebInspector.DebuggerSidebarPanel):
1677
1678         * UserInterface/Views/XHRBreakpointTreeElement.js:
1679         (WebInspector.XHRBreakpointTreeElement):
1680
1681 2017-04-04  Brian Burg  <bburg@apple.com>
1682
1683         Web Inspector: RTL: layout issues in Type Profiler popovers
1684         https://bugs.webkit.org/show_bug.cgi?id=170467
1685
1686         Reviewed by Timothy Hatcher.
1687
1688         Flip some margins and padding. Remove the -1px leading margin for
1689         the prototype disclosure button, as it is unnecessary and looks
1690         (more) wrong when in RTL.
1691
1692         * UserInterface/Views/TypeTreeElement.css:
1693         (.item.type-tree-element > .disclosure-button):
1694         (.item.type-tree-element.prototype):
1695         (body[dir=ltr] .item.type-tree-element.prototype):
1696         (body[dir=rtl] .item.type-tree-element.prototype):
1697         * UserInterface/Views/TypeTreeView.css:
1698         (.tree-outline.type):
1699         (body[dir=ltr] .tree-outline.type):
1700         (body[dir=rtl] .tree-outline.type):
1701         (.tree-outline.type li .empty-message):
1702         (body[dir=ltr] .tree-outline.type li .empty-message):
1703         (body[dir=rtl] .tree-outline.type li .empty-message):
1704
1705 2017-04-04  Joseph Pecoraro  <pecoraro@apple.com>
1706
1707         Web Inspector: Include more Network information in Resource Details Sidebar
1708         https://bugs.webkit.org/show_bug.cgi?id=170470
1709
1710         Reviewed by Brian Burg.
1711
1712         * Localizations/en.lproj/localizedStrings.js:
1713         Updated localized strings.
1714
1715         * UserInterface/Models/Resource.js:
1716         (WebInspector.Resource.displayNameForProtocol):
1717         (WebInspector.Resource.displayNameForPriority):
1718         Aggregate all display name helpers here.
1719
1720         * UserInterface/Views/DetailsSectionSimpleRow.js:
1721         (WebInspector.DetailsSectionSimpleRow.prototype.get tooltip):
1722         (WebInspector.DetailsSectionSimpleRow.prototype.set tooltip):
1723         Allow setting a tooltip on the value.
1724
1725         * UserInterface/Views/NetworkGridContentView.css:
1726         (.cache-type):
1727         Cache type shows up in multiple places. Simplify the CSS to apply anywhere.
1728
1729         * UserInterface/Views/NetworkGridContentView.js:
1730         (WebInspector.NetworkGridContentView):
1731         * UserInterface/Views/NetworkTimelineView.js:
1732         (WebInspector.NetworkTimelineView):
1733         Updated column names.
1734
1735         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
1736         (WebInspector.ResourceDetailsSidebarPanel):
1737         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
1738         (WebInspector.ResourceDetailsSidebarPanel.prototype._cachedRowValue):
1739         Include more detail information in the sidebar.
1740
1741         * UserInterface/Views/ResourceTimelineDataGridNode.js:
1742         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
1743         (WebInspector.ResourceTimelineDataGridNode.prototype._displayNameForPriority): Deleted.
1744         Use shared code for display names.
1745
1746 2017-04-04  Brian Burg  <bburg@apple.com>
1747
1748         Web Inspector: RTL: fix alignment of close button shown while docked
1749         https://bugs.webkit.org/show_bug.cgi?id=170472
1750
1751         Reviewed by Matt Baker.
1752
1753         * UserInterface/Views/Toolbar.css:
1754         (.toolbar .control-section):
1755         (body[dir=ltr] .toolbar .control-section):
1756         (body[dir=rtl] .toolbar .control-section):
1757
1758 2017-04-04  Brian Burg  <bburg@apple.com>
1759
1760         Web Inspector: RTL: layout issues in debugger dashboard, arrows are on wrong side
1761         https://bugs.webkit.org/show_bug.cgi?id=170425
1762
1763         Reviewed by Devin Rousso.
1764
1765         We need to move the up/down dashboard arrows to the trailing side for RTL.
1766         Clean up some messy spacing rules so that the source location does not
1767         overlap the arrows or get too close to the function icon.
1768
1769         * UserInterface/Views/DashboardContainerView.css:
1770         (.toolbar .dashboard):
1771         (body[dir=ltr] .toolbar .dashboard):
1772         (body[dir=rtl] .toolbar .dashboard):
1773         (.dashboard-container .advance-arrow):
1774         (body[dir=ltr] .dashboard-container .advance-arrow):
1775         (body[dir=rtl] .dashboard-container .advance-arrow):
1776         (.toolbar.label-only .dashboard-container .advance-arrow):
1777         (body[dir=ltr] .toolbar.label-only .dashboard-container .advance-arrow):
1778         (body[dir=rtl] .toolbar.label-only .dashboard-container .advance-arrow):
1779         * UserInterface/Views/DebuggerDashboardView.css:
1780         (.toolbar .dashboard.debugger):
1781         (body[dir=ltr] .toolbar .dashboard.debugger):
1782         (body[dir=rtl] .toolbar .dashboard.debugger):
1783         (.dashboard.debugger .navigation-bar):
1784         (body[dir=ltr] .dashboard.debugger .navigation-bar):
1785         (body[dir=rtl] .dashboard.debugger .navigation-bar):
1786         (.dashboard.debugger > .location):
1787         (.dashboard.debugger > .location > :first-child):
1788         (body[dir=ltr] .dashboard.debugger > .location > :last-child):
1789         (body[dir=rtl] .dashboard.debugger > .location > :last-child):
1790         (.dashboard.debugger > .location .function-icon):
1791         (body[dir=ltr] .dashboard.debugger > .location .function-icon):
1792         (body[dir=rtl] .dashboard.debugger > .location .function-icon):
1793         (.dashboard.debugger > .location .go-to-link):
1794
1795 2017-04-03  Brian Burg  <bburg@apple.com>
1796
1797         Web Inspector: RTL: results in Search navigation sidebar have misplaced highlights
1798         https://bugs.webkit.org/show_bug.cgi?id=170292
1799
1800         Reviewed by Timothy Hatcher.
1801
1802         * UserInterface/Models/SourceCodeSearchMatchObject.js:
1803         (WebInspector.SourceCodeSearchMatchObject.prototype.get className):
1804         * UserInterface/Views/SearchIcons.css:
1805         (.source-code-match .icon):
1806         (.source-code-match-icon .icon): Deleted.
1807         Remove -icon suffix from the class name since the class is attached to a result
1808         and is not specific to the icon displayed within the result <li>.
1809
1810         * UserInterface/Views/SearchResultTreeElement.js:
1811         (WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
1812         Flip the leading and trailing context in RTL so that the highlight is not overflowed
1813         to the left when too much context is included on the right side. Less context must be
1814         used in RTL because we must not overflow to the right, as it may hide the result. And,
1815         we don't know the exact starting character either as it may be overflowed to the right
1816         as the user resizes the expanded sidebar larger or smaller. So show less context to
1817         be conservative about never overflowing the highlighted result string.
1818
1819         * UserInterface/Views/SearchSidebarPanel.css:
1820         (.sidebar > .panel.navigation.search .item.source-code-match .title):
1821         When in RTL, show source code matches as LTR with text-align to right.
1822
1823 2017-04-03  Devin Rousso  <webkit@devinrousso.com>
1824
1825         Web Inspector: clicking on the body of a CSS rule after editing the selector causes the section to disappear
1826         https://bugs.webkit.org/show_bug.cgi?id=169803
1827
1828         Reviewed by Timothy Hatcher.
1829
1830         * UserInterface/Views/CSSStyleDeclarationSection.js:
1831         (WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown):
1832         (WebInspector.CSSStyleDeclarationSection.prototype._handleBlur):
1833         Keep the section marked as `_editorActive` if the action taken would still place focus
1834         within the section (selector or properties).  Doing so will prevent it from being removed.
1835
1836 2017-04-03  Brian Burg  <bburg@apple.com>
1837
1838         Web Inspector: RTL: hierarchical path component labels should guess directionality based on content
1839         https://bugs.webkit.org/show_bug.cgi?id=170298
1840
1841         Reviewed by Timothy Hatcher.
1842
1843         * UserInterface/Views/HierarchicalPathComponent.js:
1844         (WebInspector.HierarchicalPathComponent):
1845         Use dir="auto" since this will properly set 'unicode-bidi:isolate' for form elements too.
1846         This is applied to the title label and to the <select> for the path component.
1847
1848 2017-04-03  Matt Baker  <mattbaker@apple.com>
1849
1850         Web Inspector: Show additional pause reason details for DOM "subtree modified" breakpoint
1851         https://bugs.webkit.org/show_bug.cgi?id=169479
1852
1853         Reviewed by Timothy Hatcher.
1854
1855         * Localizations/en.lproj/localizedStrings.js:
1856         New Pause Reason UI strings.
1857
1858         * UserInterface/Views/DebuggerSidebarPanel.js:
1859         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
1860         Include a link for the target node when breaking for subtree modifications.
1861         This is either the parent of a node being inserted, or a node that is
1862         being removed.
1863
1864 2017-04-03  Devin Rousso  <webkit@devinrousso.com>
1865
1866         Web Inspector: showing the Find banner doesn't immediately focus it
1867         https://bugs.webkit.org/show_bug.cgi?id=169804
1868
1869         Reviewed by Matt Baker.
1870
1871         * UserInterface/Base/Main.js:
1872         (WebInspector._focusChanged):
1873         Slightly change the logic from <https://webkit.org/b/168119> (r213689) to not prevent a new
1874         selection if the focus change target is an element from WebInspector.startEditing.
1875
1876 2017-04-03  Nikita Vasilyev  <nvasilyev@apple.com>
1877
1878         Web Inspector: WebSockets: Don't store binary frames in memory since they are never shown
1879         https://bugs.webkit.org/show_bug.cgi?id=169649
1880         <rdar://problem/31053069>
1881
1882         Reviewed by Brian Burg.
1883
1884         * UserInterface/Models/WebSocketResource.js:
1885         (WebInspector.WebSocketResource.prototype.addFrame):
1886
1887 2017-04-03  Devin Rousso  <webkit@devinrousso.com>
1888
1889         Web Inspector: Preference for Auto Showing Scope Chain sidebar on pause
1890         https://bugs.webkit.org/show_bug.cgi?id=149487
1891
1892         Reviewed by Timothy Hatcher.
1893
1894         * Localizations/en.lproj/localizedStrings.js:
1895
1896         * UserInterface/Base/Setting.js:
1897         * UserInterface/Views/SettingsTabContentView.js:
1898         (WebInspector.SettingsTabContentView.prototype.layout):
1899         Add WebInspector.Setting for showing Scope Chain on pause.
1900
1901         * UserInterface/Base/Main.js:
1902         (WebInspector.showDebuggerTab):
1903         (WebInspector._debuggerDidPause):
1904         * UserInterface/Views/SourceCodeTextEditor.js:
1905         (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
1906         Modify parameters to use a dictionary of options instead of just a single value.  In doing
1907         so, add support for a value that will show the Scope Chain sidebar.
1908
1909         * UserInterface/Views/SettingsTabContentView.css:
1910         (.content-view.settings):
1911         (.content-view.settings > .header):
1912         Drive-by: add padding to bottom of Settings tab so that additional scroll space is mirrored.
1913
1914 2017-04-03  Brian Burg  <bburg@apple.com>
1915
1916         Web Inspector: RTL: layout issues in call frame tree elements and async call stacks
1917         https://bugs.webkit.org/show_bug.cgi?id=170419
1918
1919         Reviewed by Matt Baker.
1920
1921         * UserInterface/Views/CallFrameTreeElement.css:
1922         (.tree-outline .item.call-frame .status):
1923         (body[dir=ltr] .tree-outline .item.call-frame .status):
1924         (body[dir=rtl] .tree-outline .item.call-frame .status):
1925         Flip the current call frame indicator and make sure it sticks to the leading edge.
1926
1927         (.tree-outline .item.call-frame.async-boundary):
1928         (body[dir=ltr] .tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary):
1929         (body[dir=rtl] .tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary):
1930         (.tree-outline .item.call-frame.async-boundary .icon):
1931         (body[dir=ltr] .tree-outline .item.call-frame.async-boundary .icon):
1932         (body[dir=rtl] .tree-outline .item.call-frame.async-boundary .icon):
1933         Flip the icon's padding.
1934
1935         (.tree-outline .item.call-frame.async-boundary::after):
1936         (body[dir=ltr] .tree-outline .item.call-frame.async-boundary::after):
1937         (body[dir=rtl] .tree-outline .item.call-frame.async-boundary::after):
1938         (.tree-outline .item.call-frame.async-boundary::before):
1939         (body[dir=ltr] .tree-outline .item.call-frame.async-boundary::before):
1940         (body[dir=rtl] .tree-outline .item.call-frame.async-boundary::before):
1941         (.tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary): Deleted.
1942         Fix the leading and trailing horizontal rules so they have correct spacing.
1943
1944         * UserInterface/Views/CallFrameView.css:
1945         (.call-frame .icon): Remove redundant property.
1946
1947         * UserInterface/Views/DebuggerSidebarPanel.css:
1948         (.sidebar > .panel.navigation.debugger .tree-outline.single-thread):
1949         (body[dir=ltr] .sidebar > .panel.navigation.debugger .tree-outline.single-thread):
1950         (body[dir=rtl] .sidebar > .panel.navigation.debugger .tree-outline.single-thread):
1951         Fix the leading unindent for call tree frame elements.
1952
1953 2017-04-03  Matt Baker  <mattbaker@apple.com>
1954
1955         Web Inspector: Elements tab: show indicators for hidden DOM breakpoints
1956         https://bugs.webkit.org/show_bug.cgi?id=168761
1957
1958         Reviewed by Timothy Hatcher.
1959
1960         * Localizations/en.lproj/localizedStrings.js:
1961         New DOM breakpoint content menu item.
1962
1963         * UserInterface/Views/DOMTreeContentView.css:
1964         (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.subtree):
1965         (.content-view.dom-tree .tree-outline.dom li.expanded .status-image.breakpoint.subtree):
1966         New styles for collapsed breakpoint marker.
1967
1968         * UserInterface/Views/DOMTreeElement.js:
1969         (WebInspector.DOMTreeElement):
1970         (WebInspector.DOMTreeElement.prototype.set breakpointStatus):
1971         If the status change indicates the only breakpoint was added or removed,
1972         update subtree breakpoint counts on the element's parent chain.
1973
1974         (WebInspector.DOMTreeElement.prototype.revealAndHighlight):
1975         Reveal the tree element, and add a highlighted line animation
1976         identical to the one used used by TextEditor.
1977
1978         (WebInspector.DOMTreeElement.prototype.subtreeBreakpointCountDidChange):
1979         (WebInspector.DOMTreeElement.prototype.updateSelectionArea):
1980         Selection area should be updated when animating the element highlight.
1981         (WebInspector.DOMTreeElement.prototype.onreveal):
1982         Animate highlight if needed.
1983         (WebInspector.DOMTreeElement.prototype._updateBreakpointStatus):
1984         (WebInspector.DOMTreeElement.prototype._statusImageClicked):
1985         Do nothing when clicking the collapsed breakpoint marker.
1986         (WebInspector.DOMTreeElement.prototype._statusImageContextmenu):
1987         Add "Reveal Breakpoint" menu item. Reveals the first descendant
1988         with at least one breakpoint.
1989
1990         (WebInspector.DOMTreeElement.prototype._highlightAnimationEnd):
1991
1992         * UserInterface/Views/DOMTreeOutline.css:
1993         (@keyframes dom-tree-outline-highlight-fadeout):
1994         (.highlight .selection-area):
1995         Styles for highlight fade animation.
1996
1997         * UserInterface/Views/TreeElement.js:
1998         (WebInspector.TreeElement.prototype.selfOrDescendant):
1999         * UserInterface/Views/TreeOutline.js:
2000         (WebInspector.TreeOutline.prototype.selfOrDescendant):
2001         Find a node matching a predicate.
2002
2003 2017-04-03  Matt Baker  <mattbaker@apple.com>
2004
2005         Web Inspector: DetailsSection should hide header "options" when collapsed
2006         https://bugs.webkit.org/show_bug.cgi?id=170029
2007
2008         Reviewed by Timothy Hatcher.
2009
2010         * UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
2011         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
2012         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners.collapsed > .header > .filter): Deleted.
2013         DetailsSection is responsible for hiding options when collapsed.
2014
2015         * UserInterface/Views/DebuggerSidebarPanel.css:
2016         (.sidebar > .panel.navigation.debugger .details-section.paused-reason.collapsed > .header > .options):
2017
2018         * UserInterface/Views/DetailsSection.css:
2019         (body[dir=ltr] .details-section > .header > .options,):
2020         (body[dir=ltr] .details-section > .header::before,):
2021         (.details-section.collapsed  > .header > .options):
2022         (body[dir=ltr] .details-section > .header > :matches(label, .node-link, .go-to-arrow),): Deleted.
2023         (.details-section.collapsed  > .header > label): Deleted.
2024         Removed unnecessary rules. The "options" class covers these cases.
2025
2026         * UserInterface/Views/DetailsSection.js:
2027         (WebInspector.DetailsSection.prototype.get titleElement):
2028         (WebInspector.DetailsSection.prototype.set titleElement):
2029         Added title element customization so that the hack used by ProbeSetDetailsSection
2030         to get a link into the title can be removed. Yuck!
2031
2032         * UserInterface/Views/ProbeSetDetailsSection.js:
2033         (WebInspector.ProbeSetDetailsSection):
2034         (WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement):
2035         Use the new DetailsSection title element setter.
2036
2037         * UserInterface/Views/VisualStyleDetailsPanel.css:
2038         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .options):
2039         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .visual-style-section-clear): Deleted.
2040         (.sidebar > .panel.details.css-style .visual > .details-section .details-section.collapsed > .header > .visual-style-section-clear,): Deleted.
2041         Remove the "visual-style-section-clear" class, as it's no longer needed.
2042
2043         * UserInterface/Views/VisualStyleDetailsPanel.js:
2044         (WebInspector.VisualStyleDetailsPanel.prototype._generateSection.createOptionsElement):
2045         (WebInspector.VisualStyleDetailsPanel.prototype._generateSection):
2046
2047 2017-04-03  Joseph Pecoraro  <pecoraro@apple.com>
2048
2049         Web Inspector: "Space" is not localizable in Timelines record button tooltips
2050         https://bugs.webkit.org/show_bug.cgi?id=170420
2051         <rdar://problem/30871371>
2052
2053         Reviewed by Timothy Hatcher.
2054
2055         * UserInterface/Base/LoadLocalizedStrings.js:
2056         (WebInspector.unlocalizedString):
2057         (WebInspector.UIString):
2058         * UserInterface/Base/Main.js:
2059         Move UIString / unlocalizedString to LoadLocalizedString.js.
2060         They may be needed before Main.js has introduced it.
2061
2062         * UserInterface/Test/Test.js:
2063         Provide a default implementaiton of unlocalizedString.
2064
2065         * Localizations/en.lproj/localizedStrings.js:
2066         * UserInterface/Models/KeyboardShortcut.js:
2067         Most keys use a symbol to represent the key. "Space" was the one
2068         exception, so use a localized string.
2069
2070 2017-04-03  Joseph Pecoraro  <pecoraro@apple.com>
2071
2072         Web Inspector: Tooltip for close tab button should match Safari
2073         https://bugs.webkit.org/show_bug.cgi?id=170417
2074         <rdar://problem/31378423>
2075
2076         Reviewed by Matt Baker.
2077
2078         * Localizations/en.lproj/localizedStrings.js:
2079         * UserInterface/Views/GeneralTabBarItem.js:
2080         (WebInspector.GeneralTabBarItem):
2081         Updated tooltip to match Safari's most descriptive tooltip.
2082
2083 2017-04-03  Devin Rousso  <webkit@devinrousso.com>
2084
2085         REGRESSION (r214354): Web Inspector: WebSocket connection icon obscures close content view icon
2086         https://bugs.webkit.org/show_bug.cgi?id=170104
2087
2088         Reviewed by Joseph Pecoraro.
2089
2090         * UserInterface/Views/ResourceTreeElement.css:
2091         (.item.resource.resource-type-websocket .status > .ready-state):
2092         (.item.resource.resource-type-websocket:not(.selected) .status .ready-state.open):
2093         (.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .ready-state.open):
2094         (body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .ready-state.open):
2095         (.item.resource.resource-type-websocket:not(.selected) .status .ready-state.connecting):
2096         (.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .ready-state.connecting):
2097         (body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .ready-state.connecting):
2098         (.item.resource.resource-type-websocket .status > div): Deleted.
2099         (.item.resource.resource-type-websocket:not(.selected) .status .open): Deleted.
2100         (.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .open): Deleted.
2101         (body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .open): Deleted.
2102         (.item.resource.resource-type-websocket:not(.selected) .status .connecting): Deleted.
2103         (.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .connecting): Deleted.
2104         (body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .connecting): Deleted.
2105
2106         * UserInterface/Views/WebSocketResourceTreeElement.js:
2107         (WebInspector.WebSocketResourceTreeElement.prototype._updateConnectionStatus):
2108         Apply an additional CSS class to the connection indicator element so that the styles can be
2109         applied more specifically to just that element.
2110
2111 2017-04-01  Jon Lee  <jonlee@apple.com>
2112
2113         Add missing text styles
2114         https://bugs.webkit.org/show_bug.cgi?id=170295
2115         rdar://problem/30219503
2116
2117         Reviewed by Dean Jackson.
2118
2119         * UserInterface/Models/CSSKeywordCompletions.js: Update keyword completions
2120
2121 2017-04-01  Dan Bernstein  <mitz@apple.com>
2122
2123         Localizable strings files are out of date
2124         https://bugs.webkit.org/show_bug.cgi?id=170383
2125
2126         Reviewed by Tim Horton.
2127
2128         Ran update-webkit-localizable-strings.
2129
2130         * Localizations/en.lproj/localizedStrings.js:
2131
2132 2017-03-30  Matt Baker  <mattbaker@apple.com>
2133
2134         Web Inspector: Styles sidebar warning icon appears inside property value text
2135         https://bugs.webkit.org/show_bug.cgi?id=170281
2136
2137         Reviewed by Timothy Hatcher.
2138
2139         Style rule warning icon should always come before the property name,
2140         regardless of which property part (name/value) the error is for. This
2141         information is conveyed by the red strikethrough, which is applied to
2142         the property name, value, or both.
2143
2144         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2145
2146 2017-03-29  Nikita Vasilyev  <nvasilyev@apple.com>
2147
2148         Web Inspector: WebSockets: Messages log should remain being scrolled to the bottom when a new message is added
2149         https://bugs.webkit.org/show_bug.cgi?id=170090
2150
2151         Reviewed by Matt Baker.
2152
2153         Adding many Web Socket messages quickly can create a performance bottleneck. Batch addition of DataGrid nodes
2154         using requestAnimationFrame, and scroll to the bottom of the DataGrid at most once per a batch update.
2155
2156         * UserInterface/Views/WebSocketContentView.js:
2157         (WebInspector.WebSocketContentView):
2158         (WebInspector.WebSocketContentView.prototype.shown):
2159         (WebInspector.WebSocketContentView.prototype.hidden):
2160         (WebInspector.WebSocketContentView.prototype._updateFramesSoon):
2161         Batch WebSocketContentView DOM modifications using requestAnimationFrame.
2162
2163         (WebInspector.WebSocketContentView.prototype._updateFrames):
2164         (WebInspector.WebSocketContentView.prototype._addFrame):
2165         (WebInspector.WebSocketContentView.prototype.addFrame): Deleted.
2166         Make addFrame method private since it isn't used anywhere outside of this class.
2167
2168         (WebInspector.WebSocketContentView.prototype._updateState): Deleted.
2169         Make _updateState a part of _updateFramesSoon.
2170
2171 2017-03-29  Sam Brodkin  <isam@apple.com>
2172
2173         Web Inspector: Network tab content view is blank after reload
2174         https://bugs.webkit.org/show_bug.cgi?id=168029
2175
2176         Reviewed by Brian Burg.
2177
2178         * UserInterface/Views/NetworkSidebarPanel.js:
2179         (WebInspector.NetworkSidebarPanel.prototype._networkTimelineReset):
2180         showDefaultContentView() which shows networkGridView in the contentView was not being called
2181         when the NetworkSidebarPanel was not visible. Removing the if statement always shows the
2182         networkGridView which fixes the bug. This wouldn't be easy to regression test.
2183
2184 2017-03-28  Brian Burg  <bburg@apple.com>
2185
2186         Web Inspector: RTL: keyboard shortcuts with directionality need to be flipped (forward/back, etc)
2187         https://bugs.webkit.org/show_bug.cgi?id=165761
2188
2189         Reviewed by Matt Baker.
2190
2191         Original patch by Devin Rousso.
2192
2193         * UserInterface/Views/ContentBrowser.js:
2194         (WebInspector.ContentBrowser):
2195         * UserInterface/Views/TabBrowser.js:
2196         (WebInspector.TabBrowser):
2197         Flip the functionality of keyboard shortcuts when in RTL so that the action of
2198         pressing the left or right arrows/curly braces matches what happens when the
2199         corresponding left or right buttons are clicked.
2200
2201         * UserInterface/Views/DataGrid.js:
2202         (WebInspector.DataGrid.prototype._keyDown):
2203         * UserInterface/Views/LogContentView.js:
2204         (WebInspector.LogContentView.prototype._keyDown):
2205         * UserInterface/Views/TreeOutline.js:
2206         (WebInspector.TreeOutline.prototype._treeKeyDown):
2207         Flip the Left and Right keyboard shortcuts to expand/collapse the selected item when in RTL.
2208
2209 2017-03-28  Brian Burg  <bburg@apple.com>
2210
2211         Web Inspector: Add "Disable Caches" option that only applies to the inspected page while Web Inspector is open
2212         https://bugs.webkit.org/show_bug.cgi?id=169865
2213         <rdar://problem/31250573>
2214
2215         Reviewed by Joseph Pecoraro.
2216
2217         Hook up a button in the Network tab to WebCore::Page's resourceCachingDisabled flag.
2218         If it is active, resource loads are subject to a cache policy that never uses a cached response.
2219
2220         * Localizations/en.lproj/localizedStrings.js:
2221         Add localized strings.
2222
2223         * UserInterface/Base/Main.js:
2224         (WebInspector.loaded):
2225         Add a setting for whether to disable resource caching and inform the backend
2226         of our preference. If someone changes the setting, tell the backend again.
2227
2228         * UserInterface/Views/NetworkGridContentView.js:
2229         (WebInspector.NetworkGridContentView):
2230         (WebInspector.NetworkGridContentView.prototype.get navigationItems):
2231         (WebInspector.NetworkGridContentView.prototype._resourceCachingDisabledSettingChanged):
2232         (WebInspector.NetworkGridContentView.prototype._toggleDisableResourceCache):
2233         Add a new activatable navigation item that toggles disableResourceCaching for the inspected page.
2234
2235         * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
2236         * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
2237         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
2238         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
2239         * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
2240         * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
2241         * Versions/Inspector-iOS-10.0.json:
2242         * Versions/Inspector-iOS-10.3.json:
2243         * Versions/Inspector-iOS-7.0.json:
2244         * Versions/Inspector-iOS-8.0.json:
2245         * Versions/Inspector-iOS-9.0.json:
2246         * Versions/Inspector-iOS-9.3.json:
2247         Update legacy backend commands to remove the old/broken Network.setCacheDisabled command.
2248
2249 2017-03-28  Joseph Pecoraro  <pecoraro@apple.com>
2250
2251         Web Inspector: Inspecting a Main Resource that is JS/JSON does not format / syntax highlight it properly
2252         https://bugs.webkit.org/show_bug.cgi?id=166862
2253         <rdar://problem/29835977>
2254
2255         Reviewed by Brian Burg.
2256
2257         * UserInterface/Models/Resource.js:
2258         (WebInspector.Resource.prototype.get syntheticMIMEType):
2259         Don't override the mime type for Document resources. They should always
2260         have a mime type and we should use whatever it is.
2261
2262 2017-03-28  Joseph Pecoraro  <pecoraro@apple.com>
2263
2264         Web Inspector: Unable to Format JSON Request Data
2265         https://bugs.webkit.org/show_bug.cgi?id=170189
2266
2267         Reviewed by Matt Baker.
2268
2269         * UserInterface/Views/TextEditor.js:
2270         (WebInspector.TextEditor.prototype._startWorkerPrettyPrint):
2271         When we are viewing request data we are looking at a TextResourceContentView
2272         which has a TextEditor without a delegate. In these cases we can just assume
2273         a JavaScript Program. In the majority of cases this will typically be JSON
2274         data, and either Program or Module will highlight and format as expected.
2275
2276 2017-03-27  Devin Rousso  <webkit@devinrousso.com>
2277
2278         Web Inspector: Option-clicking the close tab button should close all other tabs
2279         https://bugs.webkit.org/show_bug.cgi?id=169046
2280
2281         Reviewed by Matt Baker.
2282
2283         * UserInterface/Views/TabBar.js:
2284         (WebInspector.TabBar.prototype._handleClick):
2285
2286 2017-03-27  Devin Rousso  <webkit@devinrousso.com>
2287
2288         Web Inspector: The inspector sidebar has weird sub-column sizing issues
2289         https://bugs.webkit.org/show_bug.cgi?id=161966
2290
2291         Reviewed by Joseph Pecoraro.
2292
2293         * UserInterface/Views/Sidebar.js:
2294         (WebInspector.Sidebar.prototype.resizerDragEnded):
2295         (WebInspector.Sidebar.prototype._recalculateWidth):
2296         Ensure that the selected sidebar panel is notified of the size change (sizeDidChange) when
2297         the resizer drag ends.
2298
2299         * UserInterface/Views/DetailsSectionDataGridRow.js:
2300         (WebInspector.DetailsSectionDataGridRow.prototype.sizeDidChange):
2301         * UserInterface/Views/ProbeSetDetailsSection.js:
2302         (WebInspector.ProbeSetDetailsSection.prototype.sizeDidChange):
2303         Add/update the sizeDidChange protected function.
2304
2305         * UserInterface/Views/ComputedStyleDetailsPanel.js:
2306         (WebInspector.ComputedStyleDetailsPanel.prototype.initialLayout):
2307         (WebInspector.ComputedStyleDetailsPanel.prototype.sizeDidChange):
2308         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2309         (WebInspector.DOMNodeDetailsSidebarPanel.prototype.sizeDidChange):
2310         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
2311         (WebInspector.LayerTreeDetailsSidebarPanel.prototype.sizeDidChange):
2312         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
2313         (WebInspector.ResourceDetailsSidebarPanel.prototype.sizeDidChange):
2314         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
2315         (WebInspector.ProbeDetailsSidebarPanel.prototype.sizeDidChange):
2316         Update the contained DataGrid elements whenever the sidebar size changes so that the resizer
2317         elements are positioned correctly.
2318
2319         * UserInterface/Views/View.js:
2320         (WebInspector.View.prototype.updateLayoutIfNeeded):
2321         * UserInterface/Views/TimelineOverview.js:
2322         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
2323         * UserInterface/Views/TimelineRuler.js:
2324         (WebInspector.TimelineRuler.prototype.updateLayoutIfNeeded):
2325         Ensure the layoutReason is also propagated.
2326
2327 2017-03-27  Joseph Pecoraro  <pecoraro@apple.com>
2328
2329         Web Inspector: Resource Details Sidebar displays previous image metrics when viewing resource where content load failed
2330         https://bugs.webkit.org/show_bug.cgi?id=170065
2331         <rdar://problem/27081591>
2332
2333         Reviewed by Matt Baker.
2334
2335         * UserInterface/Models/Resource.js:
2336         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
2337         (WebInspector.Resource.prototype.getImageSize.requestContentFailure):
2338         (WebInspector.Resource.prototype.getImageSize):
2339         If the requestContent failed, return a null image size.
2340
2341         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
2342         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection.hideImageSection):
2343         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
2344         If the callback is called with a null size, hide the image size section.
2345
2346 2017-03-24  Brian Burg  <bburg@apple.com>
2347
2348         Web Inspector: RTL: number scripts are used inconsistently throughout the UI
2349         https://bugs.webkit.org/show_bug.cgi?id=168290
2350
2351         Reviewed by Joseph Pecoraro.
2352
2353         Original patch by Devin Rousso.
2354
2355         * Localizations/en.lproj/localizedStrings.js: Add new string for FPS bars.
2356         * UserInterface/Base/Utilities.js:
2357         (value.d):
2358         (value):
2359         Localize %d formatted values by default. If that's not desired, then you need to stringify
2360         the number outside of String.format and Number.abbreviate and pass it as %s instead.
2361         Also add a global variable for zwsp (zero-width space) and use it in DataGridNode.
2362
2363         * UserInterface/Views/ConsoleMessageView.js:
2364         (WebInspector.ConsoleMessageView.prototype._renderRepeatCount): Abbreviate the repeat count,
2365         and cause it to be localized.
2366
2367         * UserInterface/Views/DataGridNode.js:
2368         (WebInspector.DataGridNode.prototype.createCellContent):
2369         If we don't know anything about a cell's data other than that it's a number,
2370         run the number through toLocaleString().
2371
2372         * UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
2373         Don't localize @%d tags for snapshot objects since this is not done elsewhere in the UI.
2374
2375         * UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js: Localize integer version number.
2376         (WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.layout):
2377
2378         * UserInterface/Views/MemoryTimelineView.js:
2379         (WebInspector.MemoryTimelineView.prototype._updateMaxComparisonLegend): Use Number.percentageString().
2380
2381         * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
2382         (WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition):
2383         (WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers):
2384         Localize "%d fps" markers.
2385
2386         * UserInterface/Views/TimelineOverview.js:
2387         (WebInspector.TimelineOverview.prototype._viewModeDidChange):
2388         Localize frame label numbers.
2389
2390 2017-03-24  Nikita Vasilyev  <nvasilyev@apple.com>
2391
2392         Web Inspector: Adding a WebSocket message may change the currently selected resource
2393         https://bugs.webkit.org/show_bug.cgi?id=170036
2394         <rdar://problem/31231463>
2395
2396         Reviewed by Joseph Pecoraro.
2397
2398         Calling increaseSize on a resource may cause a WebInspector.TimelineDataGrid#TimelineDataGrid#_refreshDirtyDataGridNodes call.
2399         Make sure _refreshDirtyDataGridNodes preserves selection of a treeElement.
2400
2401         * UserInterface/Views/TimelineDataGrid.js:
2402         (WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
2403         Re-attaching treeElement causes it to lose selection. Select it again after re-attaching.
2404
2405 2017-03-24  Devin Rousso  <webkit@devinrousso.com>
2406
2407         Web Inspector: add context menu item to log content of WebSocket frame
2408         https://bugs.webkit.org/show_bug.cgi?id=169945
2409
2410         Reviewed by Joseph Pecoraro.
2411
2412         * Localizations/en.lproj/localizedStrings.js:
2413
2414         * UserInterface/Views/WebSocketContentView.js:
2415         (WebInspector.WebSocketContentView):
2416         (WebInspector.WebSocketContentView.prototype.addFrame):
2417         (WebInspector.WebSocketContentView.prototype._addRow):
2418         Rework the way CSS classes are applied so the isOutgoing and isText flags can also be passed
2419         to the WebSocketDataGridNode.  This is necessary because a non-text frame shouldn't be able
2420         to be logged to the console.
2421
2422         * UserInterface/Views/WebSocketDataGridNode.js:
2423         (WebInspector.WebSocketDataGridNode.prototype.appendContextMenuItems):
2424
2425 2017-03-24  Devin Rousso  <webkit@devinrousso.com>
2426
2427         Web Inspector: allow users to click links in inline/user-agent styles
2428         https://bugs.webkit.org/show_bug.cgi?id=170054
2429
2430         Reviewed by Joseph Pecoraro.
2431
2432         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2433         (WebInspector.CSSStyleDeclarationTextEditor.prototype.set style):
2434         (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateJumpToSymbolTrackingMode):
2435         (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
2436         (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
2437         Always enable the token tracking controller, but only act on hovered/clicked token if it is
2438         a link or the owner style declaration has a source code location (for jumping to the Resource).
2439
2440 2017-03-24  Devin Rousso  <webkit@devinrousso.com>
2441
2442         Web Inspector: Indicate whether a WebSocket connection is open or close
2443         https://bugs.webkit.org/show_bug.cgi?id=168948
2444
2445         Reviewed by Joseph Pecoraro.
2446
2447         * Localizations/en.lproj/localizedStrings.js:
2448         * UserInterface/Main.html:
2449         Added WebSocketResourceTreeElement.js and SpanningDataGridNode.js.
2450
2451         * UserInterface/Views/WebSocketContentView.js:
2452         (WebInspector.WebSocketContentView):
2453         (WebInspector.WebSocketContentView.prototype.shown):
2454         (WebInspector.WebSocketContentView.prototype.hidden):
2455         (WebInspector.WebSocketContentView.prototype._updateState):
2456         Listen to changes in the readyState and add a SpanningDataGridNode when the current state
2457         becomes Closed.
2458
2459         * UserInterface/Views/WebSocketResourceTreeElement.js: Added.
2460         (WebInspector.WebSocketResourceTreeElement.prototype.onattach):
2461         (WebInspector.WebSocketResourceTreeElement.prototype.ondetach):
2462         (WebInspector.WebSocketResourceTreeElement.prototype._updateConnectionStatus):
2463         Listen to changes in the readyState and add/remove the status element depending on the
2464         current state:
2465          - Closed: show no status indicator
2466          - Connecting: show a small circle with a yellow color
2467          - Open: show a small circle with a green color
2468
2469         * UserInterface/Views/ResourceTreeElement.css:
2470         (.item.resource.resource-type-websocket .status > div):
2471         (.item.resource.resource-type-websocket:not(.selected) .status .open):
2472         (.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .open):
2473         (body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .open):
2474         (.item.resource.resource-type-websocket:not(.selected) .status .connecting):
2475         (.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .connecting):
2476         (body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .connecting):
2477
2478         * UserInterface/Views/FrameTreeElement.js:
2479         (WebInspector.FrameTreeElement):
2480         Use WebSocketResourceTreeElement as the constructor for WebSocket resources.
2481
2482         * UserInterface/Views/SpanningDataGridNode.js: Added.
2483         (WebInspector.SpanningDataGridNode.prototype.createCells):
2484         Creates a single cell that spans all the columns (via CSS colspan) of the parent DataGrid.
2485
2486         * UserInterface/Views/DataGrid.css:
2487         (.data-grid td.spanning):
2488         Center content of spanning nodes and prevent user interaction.
2489
2490         * UserInterface/Views/DataGridNode.js:
2491         (WebInspector.DataGridNode.prototype.createCell):
2492         Add additional checks so that a DataGridNode can be created with a column identifier that is
2493         not in the DataGrid.  This is used by SpanningGridDataNode, as it shouldn't match one single
2494         column in the DataGrid since it spans them all.
2495
2496         * UserInterface/Views/GeneralTreeElement.js:
2497         (WebInspector.GeneralTreeElement.prototype.ondetach):
2498         * UserInterface/Views/BreakpointTreeElement.js:
2499         (WebInspector.BreakpointTreeElement.prototype.ondetach):
2500         * UserInterface/Views/DOMBreakpointTreeElement.js:
2501         (WebInspector.DOMBreakpointTreeElement.prototype.ondetach):
2502         * UserInterface/Views/XHRBreakpointTreeElement.js:
2503         (WebInspector.XHRBreakpointTreeElement.prototype.ondetach):
2504         Add ondetach function (with super calls) for future use.
2505
2506 2017-03-23  Joseph Pecoraro  <pecoraro@apple.com>
2507
2508         Web Inspector: Cache type is not styled correctly in Timelines tab
2509         https://bugs.webkit.org/show_bug.cgi?id=170032
2510
2511         Reviewed by Matt Baker.
2512
2513         * UserInterface/Views/NetworkGridContentView.css:
2514         (.content-view:matches(.network, .network-grid) > .data-grid .cache-type):
2515         (.content-view:matches(.network, .network-grid) > .data-grid:matches(:focus, .force-focus) tr.selected .cache-type):
2516         (.content-view.network-grid > .data-grid .cache-type): Deleted.
2517         (.content-view.network-grid > .data-grid:matches(:focus, .force-focus) tr.selected .cache-type): Deleted.
2518         The different network grids have different class names. Handle both.
2519
2520 2017-03-23  Nikita Vasilyev  <nvasilyev@apple.com>
2521
2522         Web Inspector: Editing local storage keys/values starts with truncated strings
2523         https://bugs.webkit.org/show_bug.cgi?id=169896
2524
2525         Reviewed by Brian Burg.
2526
2527         * UserInterface/Views/DataGrid.css:
2528         (.data-grid td.editing > div):
2529         * UserInterface/Views/DataGrid.js:
2530         (WebInspector.DataGrid.prototype._editingCancelled):
2531         div.cell-content is removed because the <td> itself is contenteditable (using -webkit-user-modify:read-write-plaintext-only),
2532         not the inner div.cell-content. Re-create div.cell-content after commiting (by pressing Enter) or canceling (by pressing Esc)
2533         since it may get removed while editing.
2534
2535 2017-03-22  Matt Baker  <mattbaker@apple.com>
2536
2537         Web Inspector: Clicking DOM breakpoint marker should enable/disable breakpoints
2538         https://bugs.webkit.org/show_bug.cgi?id=169856
2539         <rdar://problem/31133090>
2540
2541         Reviewed by Joseph Pecoraro.
2542
2543         Clicking DOM breakpoint marker should enable/disable breakpoints,
2544         matching the behavior of the marker's context menu:
2545
2546         - If one or more breakpoints are disabled, click enables all
2547         - If all breakpoints are enabled, click disables all
2548
2549         * UserInterface/Views/DOMTreeElement.js:
2550         (WebInspector.DOMTreeElement.prototype._updateBreakpointStatus):
2551         (WebInspector.DOMTreeElement.prototype._statusImageClicked):
2552
2553 2017-03-20  Devin Rousso  <webkit@devinrousso.com>
2554
2555         Web Inspector: RTL: minor layout issues in Breakpoint Editor popover
2556         https://bugs.webkit.org/show_bug.cgi?id=169765
2557
2558         Reviewed by Brian Burg.
2559
2560         * UserInterface/Controllers/BreakpointPopoverController.js:
2561         (WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
2562         Fix typo.
2563
2564         * UserInterface/Views/BreakpointActionView.css:
2565         (body[dir=ltr] .breakpoint-action-button-container):
2566         (body[dir=rtl] .breakpoint-action-button-container):
2567         (:matches(.breakpoint-action-append-button, .breakpoint-action-remove-button)):
2568         (body[dir=ltr] :matches(.breakpoint-action-append-button, .breakpoint-action-remove-button)):
2569         (body[dir=rtl] :matches(.breakpoint-action-append-button, .breakpoint-action-remove-button)):
2570         (.breakpoint-action-block-body > .description):
2571         (body[dir=ltr] .breakpoint-action-block-body > .description):
2572         (body[dir=rtl] .breakpoint-action-block-body > .description):
2573         (.breakpoint-action-block-body > input):
2574         (.breakpoint-action-button-container): Deleted.
2575         (.breakpoint-action-append-button, .breakpoint-action-remove-button): Deleted.
2576
2577         * UserInterface/Views/BreakpointActionView.js:
2578         (WebInspector.BreakpointActionView.prototype._updateBody):
2579         Manually apply `dir="ltr"` to the description element to force proper rendering.
2580
2581         * UserInterface/Views/BreakpointPopoverController.css:
2582         (.popover .edit-breakpoint-popover-content):
2583         (.popover .edit-breakpoint-popover-content > table > tr > th):
2584         (#edit-breakpoint-popover-ignore):
2585         (body[dir=ltr] :matches(#edit-breakpoint-popover-ignore, #edit-breakpoint-popover-auto-continue)):
2586         (body[dir=rtl] :matches(#edit-breakpoint-popover-ignore, #edit-breakpoint-popover-auto-continue)):
2587         (#edit-breakpoint-popoover-auto-continue): Deleted.
2588
2589 2017-03-20  Nikita Vasilyev  <nvasilyev@apple.com>
2590
2591         Web Inspector: Icon next to "An error occurred..." message changes size when Inspector window is resized
2592         https://bugs.webkit.org/show_bug.cgi?id=169901
2593
2594         Reviewed by Brian Burg.
2595
2596         * UserInterface/Views/Main.css:
2597         (.message-text-view.error::before):
2598
2599 2017-03-20  Nikita Vasilyev  <nvasilyev@apple.com>
2600
2601         Web Inspector: Clicking on Clear Network Items icon throws an exception if timing popover is visible
2602         https://bugs.webkit.org/show_bug.cgi?id=169852
2603         <rdar://problem/31132652>
2604
2605         Reviewed by Joseph Pecoraro.
2606
2607         * UserInterface/Views/ResourceTimelineDataGridNode.js:
2608         (WebInspector.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar):
2609         (WebInspector.ResourceTimelineDataGridNode):
2610
2611 2017-03-20  Nikita Vasilyev  <nvasilyev@apple.com>
2612
2613         REGRESSION (r187873): Web Inspector: When resizing, prevent DataGrid columns from collapsing entirely
2614         https://bugs.webkit.org/show_bug.cgi?id=169899
2615
2616         Reviewed by Joseph Pecoraro.
2617
2618         * UserInterface/Views/DataGrid.js:
2619         (WebInspector.DataGrid.prototype.resizerDragging):
2620         leftMinimum and rightMaximum variables were always NaN because this.ColumnResizePadding is undefined.
2621
2622 2017-03-20  Matt Baker  <mattbaker@apple.com>
2623
2624         Web Inspector: Pseudo-class markers overlap DOM breakpoints and disclosure triangle
2625         https://bugs.webkit.org/show_bug.cgi?id=169850
2626         <rdar://problem/31132335>
2627
2628         Reviewed by Joseph Pecoraro.
2629
2630         DOMTreeContentView should always have at least 7px of gutter space to
2631         accomodate pseudo-class markers. When DOM breakpoints are visible the
2632         gutter size is increased so breakpoints and markers do not overlap.
2633
2634         * UserInterface/Views/DOMTreeContentView.css:
2635         (.content-view.dom-tree .tree-outline.dom):
2636         (.content-view.dom-tree.show-gutter .tree-outline.dom):
2637         (body[dir=ltr] .content-view.dom-tree .tree-outline.dom):
2638         (body[dir=rtl] .content-view.dom-tree .tree-outline.dom):
2639         (body[dir=ltr] .content-view.dom-tree.show-gutter .tree-outline.dom): Deleted.
2640         (body[dir=rtl] .content-view.dom-tree.show-gutter .tree-outline.dom): Deleted.
2641
2642         * UserInterface/Views/DOMTreeOutline.css:
2643         (.content-view.dom-tree.show-gutter .tree-outline.dom):
2644         Change pseudo-class marker indent when showing DOM breakpoint gutter.
2645         (body[dir=ltr] .tree-outline.dom li.pseudo-class-enabled > .selection-area::before):
2646         Drive-by fix: copy paste error.
2647
2648 2017-03-19  Matt Baker  <mattbaker@apple.com>
2649
2650         Web Inspector: REGRESSION (r212910): Active call frame status icon has incorrect left margin
2651         https://bugs.webkit.org/show_bug.cgi?id=169862
2652
2653         Reviewed by Brian Burg.
2654
2655         * UserInterface/Views/CallFrameTreeElement.css:
2656         (.tree-outline .item.call-frame .status):
2657         (body[dir=ltr] .tree-outline .item.call-frame .status):
2658         (body[dir=rtl] .tree-outline .item.call-frame .status):
2659
2660 2017-03-18  Devin Rousso  <webkit@devinrousso.com>
2661
2662         Web Inspector: Empty attribute added to a DOM tree outline element should not add whitespace within the tag
2663         https://bugs.webkit.org/show_bug.cgi?id=139623
2664
2665         Reviewed by Brian Burg.
2666
2667         * UserInterface/Views/DOMTreeElement.js:
2668         (WebInspector.DOMTreeElement.prototype._attributeEditingCommitted):
2669         If the `newText` after editing has no content, remove the element for that attribute.
2670
2671 2017-03-18  Devin Rousso  <webkit@devinrousso.com>
2672
2673         Web Inspector: add keyboard shortcut to clear timeline records
2674         https://bugs.webkit.org/show_bug.cgi?id=132485
2675
2676         Reviewed by Brian Burg.
2677
2678         * Localizations/en.lproj/localizedStrings.js:
2679         * UserInterface/Views/TimelineRecordingContentView.js:
2680         (WebInspector.TimelineRecordingContentView):
2681         (WebInspector.TimelineRecordingContentView.prototype.handleClearShortcut):
2682
2683 2017-03-17  Devin Rousso  <webkit@devinrousso.com>
2684
2685         Web Inspector: wrong filename when saving resource from ResourceImageContentView
2686         https://bugs.webkit.org/show_bug.cgi?id=54454
2687
2688         Reviewed by Joseph Pecoraro.
2689
2690         * UserInterface/Views/ResourceContentView.js:
2691         (WebInspector.ResourceContentView.prototype.get supportsSave):
2692         (WebInspector.ResourceContentView.prototype.get saveData):
2693         * UserInterface/Views/TextResourceContentView.js:
2694         (WebInspector.TextResourceContentView.prototype.get supportsSave): Deleted.
2695         Add save data getter to the parent class, so that both Images and Fonts can be saved.
2696
2697         * UserInterface/Views/Resource.js:
2698         (WebInspector.Resource.prototype.canRequestContent):
2699         Drive-by: remove unused function.
2700
2701 2017-03-16  Devin Rousso  <webkit@devinrousso.com>
2702
2703         Web Inspector: memory category timelines would look better with ruler tick-aligned guides
2704         https://bugs.webkit.org/show_bug.cgi?id=158100
2705
2706         Reviewed by Joseph Pecoraro.
2707
2708         * UserInterface/Views/MemoryTimelineView.css:
2709         (.timeline-view.memory > .content > .details):
2710         (.timeline-view.memory > .content > .details > .timeline-ruler):
2711         (body[dir=ltr] .timeline-view.memory > .content > .details > .timeline-ruler):
2712         (body[dir=rtl] .timeline-view.memory > .content > .details > .timeline-ruler):
2713         Make the TimelineRuler absolutely positioned so it can use the full height of the view,
2714         providing enough space for the markers to be visible.
2715
2716 2017-03-16  Devin Rousso  <webkit@devinrousso.com>
2717
2718         Web Inspector: Console Evaluation links in the Console should not show normally
2719         https://bugs.webkit.org/show_bug.cgi?id=157483
2720
2721         Reviewed by Matt Baker.
2722
2723         * UserInterface/Models/CallFrame.js:
2724         (WebInspector.CallFrame):
2725         (WebInspector.CallFrame.prototype.get isConsoleEvaluation):
2726         (WebInspector.CallFrame.fromDebuggerPayload):
2727         (WebInspector.CallFrame.fromPayload):
2728         Move console evaluation check to the constructor for consistency.
2729
2730         * UserInterface/Views/ConsoleMessageView.js:
2731         (WebInspector.ConsoleMessageView.prototype._appendLocationLink):
2732         * UserInterface/Views/StackTraceView.js:
2733         (WebInspector.StackTraceView):
2734         Only add CallFrameView elements if the corresponding CallFame is not a console evaluation.
2735
2736 2017-03-16  Matt Baker  <mattbaker@apple.com>
2737
2738         Web Inspector: REGRESSION (r213691): Saving DOM breakpoints broken after refactoring
2739         https://bugs.webkit.org/show_bug.cgi?id=169779
2740
2741         Reviewed by Joseph Pecoraro.
2742
2743         Use correct method: _saveBreakpoints -> _saveDOMBreakpoints.
2744
2745         * UserInterface/Controllers/DOMDebuggerManager.js:
2746         (WebInspector.DOMDebuggerManager.prototype.addDOMBreakpoint):
2747         Remove check before saving to be consistent with similar code in
2748         DebuggerManager and DOMDebuggerManager.
2749
2750 2017-03-16  Devin Rousso  <webkit@devinrousso.com>
2751
2752         Web Inspector: add "Save Selected" context menu item to Console
2753         https://bugs.webkit.org/show_bug.cgi?id=151837
2754
2755         Reviewed by Joseph Pecoraro.
2756
2757         * Localizations/en.lproj/localizedStrings.js:
2758         * UserInterface/Base/Main.js:
2759         (WebInspector.saveDataToFile):
2760         Allow data to be saved without a provided URL.  It will default to localized "Untitled".
2761
2762         * UserInterface/Views/LogContentView.js:
2763         (WebInspector.LogContentView.prototype._handleContextMenuEvent):
2764
2765 2017-03-16  Devin Rousso  <webkit@devinrousso.com>
2766
2767         Web Inspector: RTL: selected frame indicator is not positioned correctly
2768         https://bugs.webkit.org/show_bug.cgi?id=169763
2769
2770         Reviewed by Matt Baker.
2771
2772         * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
2773         (WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateFrameMarker):
2774         (WebInspector.RenderingFrameTimelineOverviewGraph.prototype._mouseClicked):
2775         Treat the current mouse position (event.pageX) as a negative value when in RTL, meaning that
2776         the delta movement from the starting position is flipped.
2777
2778         * UserInterface/Views/TimelineRuler.css:
2779         (body[dir=ltr] .timeline-ruler > .header > .divider,):
2780         (body[dir=rtl] .timeline-ruler > .header > .divider,):
2781         (.timeline-ruler > .header > .divider):
2782         (.timeline-ruler > .header > .divider > .label):
2783         (body[dir=ltr] .timeline-ruler > .header > .divider > .label):
2784         (body[dir=rtl] .timeline-ruler > .header > .divider > .label):
2785         (.timeline-ruler > .markers > .divider):
2786         (.timeline-ruler > .markers > .marker):
2787         (body[dir=ltr] .timeline-ruler > .markers > .marker):
2788         (body[dir=rtl] .timeline-ruler > .markers > .marker):
2789         (.timeline-ruler > .markers > .marker::before):
2790         (body[dir=ltr] .timeline-ruler > .markers > .marker::before):
2791         (body[dir=rtl] .timeline-ruler > .markers > .marker::before):
2792         (body[dir=ltr] .timeline-ruler > .markers > .marker.current-time):
2793         (body[dir=rtl] .timeline-ruler > .markers > .marker.current-time):
2794         (.timeline-ruler > .markers > .marker.current-time::before):
2795         (.timeline-ruler > .markers > .marker.current-time): Deleted.
2796
2797         (.timeline-ruler > .selection-handle):
2798         (body[dir=ltr] .timeline-ruler > .selection-handle.left):
2799         (body[dir=rtl] .timeline-ruler > .selection-handle.left):
2800         (body[dir=ltr] .timeline-ruler > .selection-handle.right):
2801         (body[dir=rtl] .timeline-ruler > .selection-handle.right):
2802         Drive-by: add CSS variable for clarity.
2803
2804 2017-03-16  Devin Rousso  <webkit@devinrousso.com>
2805
2806         Web Inspector: RTL: filter mode icon in Debugger sidebar is misaligned
2807         https://bugs.webkit.org/show_bug.cgi?id=169766
2808
2809         Reviewed by Matt Baker.
2810
2811         * UserInterface/Views/FilterBar.css:
2812         (.filter-bar > .navigation-bar > .item):
2813         (body[dir=ltr] .filter-bar > .navigation-bar > .item):
2814         (body[dir=rtl] .filter-bar > .navigation-bar > .item):
2815
2816 2017-03-16  Matt Baker  <mattbaker@apple.com>
2817
2818         Web Inspector: Refactoring: remove DebuggerTreeElement class
2819         https://bugs.webkit.org/show_bug.cgi?id=169697
2820
2821         Reviewed by Devin Rousso.
2822
2823         Remove unnecessary class DebuggerTreeElement from TreeElement class hierarchy.
2824         The `sourceCodeLocation` property on IssueMessage and Breakpoint (the debugger
2825         objects) can be tested for generically using TreeElement.prototype.representedObject.
2826
2827         * UserInterface/Main.html:
2828         Remove file.
2829
2830         * UserInterface/Views/BreakpointTreeElement.js:
2831         * UserInterface/Views/IssueTreeElement.js:
2832         Change base class to GeneralTreeElement.
2833
2834         * UserInterface/Views/DebuggerSidebarPanel.js:
2835         (WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint):
2836         (WebInspector.DebuggerSidebarPanel.prototype._compareTreeElements):
2837         (WebInspector.DebuggerSidebarPanel.prototype._addIssue):
2838         (WebInspector.DebuggerSidebarPanel.prototype._compareDebuggerTreeElements): Deleted.
2839         Renamed to just "_compareTreeElements".
2840
2841         * UserInterface/Views/DebuggerTreeElement.js: Removed.
2842
2843 2017-03-16  Devin Rousso  <webkit@devinrousso.com>
2844
2845         Web Inspector: RTL: goto arrow for source locations is pointing wrong way in Timeline data grids
2846         https://bugs.webkit.org/show_bug.cgi?id=169764
2847
2848         Reviewed by Matt Baker.
2849
2850         * UserInterface/Views/DataGrid.css:
2851         (body[dir=rtl] .data-grid td .go-to-arrow):
2852
2853 2017-03-16  Brian Burg  <bburg@apple.com>
2854
2855         Web Inspector: RTL: add FindBanner support for RTL layout
2856         https://bugs.webkit.org/show_bug.cgi?id=168723
2857
2858         Reviewed by Timothy Hatcher.
2859
2860         Due to the large number of CSS tricks used by this widget, adding RTL
2861         support involves changing a large number of rules. The important parts:
2862
2863         - Use '.segmented.{previous,next}-result' instead of '.segmented.
2864         {left,right}', this makes the style rules way less confusing for RTL.
2865
2866         - Flip icons so icons look like "< >" but actions are reversed.
2867
2868         - Get rid of the weird expanding button divider. This is impossible
2869         to mirror with the existing adjacent sibling combinator, and it does
2870         not match the system appearance. Just replace the mini-divider with a
2871         full divider and remove related dynamic rules that trigger on :active.
2872
2873         - Always keep the button divider between next/previous on the rightmost
2874         button, to avoid subtle differences between LTR and RTL.
2875
2876         - Fix some mistakes where we weren't using --border-color and also
2877         didn't adjust the handcoded border color for the inactive window case.
2878
2879         * UserInterface/Views/FindBanner.css:
2880         (.find-banner):
2881         (body[dir=ltr] .find-banner > :first-child,):
2882         (body[dir=ltr] .find-banner > :last-child,):
2883         (.find-banner > input[type="search"]):
2884         (body[dir=ltr] .find-banner > input[type="search"]):
2885         (body[dir=rtl] .find-banner > input[type="search"]):
2886         (.find-banner > button:active:not(:disabled)):
2887         (.find-banner > button.segmented):
2888         (.find-banner > button.segmented.previous-result):
2889         (body[dir=ltr] .find-banner > button.segmented.previous-result):
2890         (body[dir=rtl] .find-banner > button.segmented.previous-result):
2891         (body[dir=ltr] .find-banner > button.segmented.previous-result > .glyph):
2892         (body[dir=rtl] .find-banner > button.segmented.previous-result > .glyph):
2893         (body[dir=ltr] .find-banner > button.segmented.previous-result:active:not(:disabled) > .glyph):
2894         (body[dir=rtl] .find-banner > button.segmented.previous-result:active:not(:disabled) > .glyph):
2895         (.find-banner > button.segmented.next-result):
2896         (body[dir=ltr] .find-banner > button.segmented.next-result):
2897         (body[dir=rtl] .find-banner > button.segmented.next-result):
2898         (body[dir=ltr] .find-banner > button.segmented.next-result > .glyph):
2899         (body[dir=rtl] .find-banner > button.segmented.next-result > .glyph):
2900         (body[dir=ltr] .find-banner > button.segmented.next-result:active:not(:disabled) > .glyph):
2901         (body[dir=rtl] .find-banner > button.segmented.next-result:active:not(:disabled) > .glyph):
2902         (.find-banner.console-find-banner > input[type="search"]):
2903         (body[dir=ltr] .find-banner.console-find-banner > input[type="search"]):
2904         (body[dir=rtl] .find-banner.console-find-banner > input[type="search"]):
2905         (body[dir=ltr] .find-banner.console-find-banner > input[type="search"]::-webkit-textfield-decoration-container):
2906         (body[dir=rtl] .find-banner.console-find-banner > input[type="search"]::-webkit-textfield-decoration-container):
2907         (.find-banner > :first-child): Deleted.
2908         (.find-banner > :last-child): Deleted.
2909         (.find-banner > button.segmented.left): Deleted.
2910         (.find-banner > button:not(:active).segmented.right:before): Deleted.
2911         (.find-banner > button.segmented.left:active + button.segmented.right,): Deleted.
2912         (.find-banner > button.segmented.left:active + button.segmented.right:before): Deleted.
2913         (.find-banner > button.segmented.left > .glyph): Deleted.
2914         (.find-banner > button.segmented.left:active:not(:disabled) > .glyph): Deleted.
2915         (.find-banner > button.segmented.right): Deleted.
2916         (.find-banner > button.segmented.right > .glyph): Deleted.
2917         (.find-banner > button.segmented.right:active:not(:disabled) > .glyph): Deleted.
2918         (.find-banner.console-find-banner > input[type="search"]::-webkit-textfield-decoration-container): Deleted.
2919
2920         * UserInterface/Views/FindBanner.js:
2921         (WebInspector.FindBanner):
2922         Change left and right to logical names for the buttons, and inline
2923         some style classes with single uses.
2924
2925 2017-03-15  Devin Rousso  <webkit@devinrousso.com>
2926
2927         Web Inspector: Selecting text in the console does not do what I expect
2928         https://bugs.webkit.org/show_bug.cgi?id=169570
2929
2930         Reviewed by Matt Baker.
2931
2932         * UserInterface/Views/ConsoleMessageView.css:
2933         (.console-message-text > span > :matches(.console-message-enclosed, .console-message-preview, .console-message-preview-divider)):
2934         (.console-message .console-message-location):
2935         (.console-message-location.call-frame):
2936         Prevent text selection on anything other than the message text.  The other information that
2937         is not selectable can still be copied by selecting the message itself and copying.
2938
2939 2017-03-15  Nikita Vasilyev  <nvasilyev@apple.com>
2940
2941         Web Inspector: WebSockets: Update Arrow Up icon to fit in with the rest of our iconography
2942         https://bugs.webkit.org/show_bug.cgi?id=169696
2943         <rdar://problem/31073748>
2944
2945         Reviewed by Matt Baker.
2946
2947         * UserInterface/Images/ArrowUp.svg:
2948         * UserInterface/Images/gtk/ArrowUp.svg:
2949
2950 2017-03-15  Devin Rousso  <webkit@devinrousso.com>
2951
2952         Web Inspector: Add icons for SVG Image cluster path components
2953         https://bugs.webkit.org/show_bug.cgi?id=169687
2954
2955         Reviewed by Joseph Pecoraro.
2956
2957         * UserInterface/Images/Image.svg: Added.
2958         * UserInterface/Images/Source.svg: Added.
2959         * UserInterface/Images/gtk/Image.svg: Added.
2960         * UserInterface/Images/gtk/Source.svg: Added.
2961
2962         * UserInterface/Views/PathComponentIcons.css:
2963         (.image-icon .icon):
2964         (.source-icon .icon):
2965
2966         * UserInterface/Views/SVGImageResourceClusterContentView.js:
2967         (WebInspector.SVGImageResourceClusterContentView):
2968
2969 2017-03-15  Devin Rousso  <webkit@devinrousso.com>
2970
2971         Web Inspector: RTL: flip Memory timelines
2972         https://bugs.webkit.org/show_bug.cgi?id=169694
2973
2974         Reviewed by Brian Burg.
2975
2976         * UserInterface/Views/MemoryCategoryView.css:
2977         (body[dir=rtl] .memory-category-view > .graph):
2978
2979 2017-03-15  Joseph Pecoraro  <pecoraro@apple.com>
2980
2981         JSContext Inspector: NetworkAgent may be unavailable
2982         https://bugs.webkit.org/show_bug.cgi?id=169691
2983
2984         Reviewed by Brian Burg.
2985
2986         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
2987         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
2988         Check that NetworkAgent even exists. An augmented JSContext may have Resources
2989         without having a NetworkAgent.
2990
2991 2017-03-15  Nikita Vasilyev  <nvasilyev@apple.com>
2992
2993         REGRESSION (r213622): Web Inspector: DataGrid headers should NOT be centered
2994         https://bugs.webkit.org/show_bug.cgi?id=169645
2995         <rdar://problem/31051520>
2996
2997         Reviewed by Matt Baker.
2998
2999         * UserInterface/Views/DataGrid.css:
3000         (.data-grid th):
3001         (body[dir=ltr] .data-grid th):
3002         (body[dir=rtl] .data-grid th):
3003
3004 2017-03-15  Devin Rousso  <webkit@devinrousso.com>
3005
3006         Web Inspector: SVG image content view should toggle between image and source
3007         https://bugs.webkit.org/show_bug.cgi?id=16079
3008
3009         Reviewed by Joseph Pecoraro.
3010
3011         * Localizations/en.lproj/localizedStrings.js:
3012         * UserInterface/Main.html:
3013
3014         * UserInterface/Views/ResourceClusterContentView.js:
3015         (WebInspector.ResourceClusterContentView.prototype.get responseContentView):
3016         Show the SVG cluster content view if the MIME type matches an SVG file.
3017
3018         * UserInterface/Views/SVGImageResourceClusterContentView.js: Added.
3019         (WebInspector.SVGImageResourceClusterContentView):
3020         (WebInspector.SVGImageResourceClusterContentView.prototype.get resource):
3021         (WebInspector.SVGImageResourceClusterContentView.prototype.get selectionPathComponents):
3022         (WebInspector.SVGImageResourceClusterContentView.prototype.shown):
3023         (WebInspector.SVGImageResourceClusterContentView.prototype.closed):
3024         (WebInspector.SVGImageResourceClusterContentView.prototype.saveToCookie):
3025         (WebInspector.SVGImageResourceClusterContentView.prototype.restoreFromCookie):
3026         (WebInspector.SVGImageResourceClusterContentView.prototype._pathComponentForContentView):
3027         (WebInspector.SVGImageResourceClusterContentView.prototype._identifierForContentView):
3028         (WebInspector.SVGImageResourceClusterContentView.prototype._showContentViewForIdentifier):
3029         (WebInspector.SVGImageResourceClusterContentView.prototype._pathComponentSelected):
3030
3031 2017-03-15  Devin Rousso  <webkit@devinrousso.com>
3032
3033         Web Inspector: RTL: add support for Timeline ruler selections/movement
3034         https://bugs.webkit.org/show_bug.cgi?id=169588
3035
3036         Reviewed by Matt Baker.
3037
3038         * UserInterface/Views/TimelineOverview.css:
3039         (body[dir=ltr] .timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.right):
3040         (body[dir=rtl] .timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.left):
3041         (body[dir=ltr] .timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.right):
3042         (body[dir=rtl] .timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.left):
3043         (.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.right): Deleted.
3044         (.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.right): Deleted.
3045         Fixes alignment of selection handles when in Frames view.
3046
3047         * UserInterface/Views/TimelineOverview.js:
3048         (WebInspector.TimelineOverview.prototype._handleScrollEvent):
3049         Support horizontal scrolling in timelines by treating the current scroll value as negative
3050         when in RTL, flipping the scroll direction.
3051
3052         * UserInterface/Views/TimelineRuler.css:
3053         (body[dir=ltr] .timeline-ruler > .selection-handle.left):
3054         (body[dir=rtl] .timeline-ruler > .selection-handle.left):
3055         (body[dir=ltr] .timeline-ruler > .selection-handle.right):
3056         (body[dir=rtl] .timeline-ruler > .selection-handle.right):
3057         (body[dir=ltr] .timeline-ruler > .shaded-area.left):
3058         (body[dir=rtl] .timeline-ruler > .shaded-area.left):
3059         (body[dir=ltr] .timeline-ruler > .shaded-area.right):
3060         (body[dir=rtl] .timeline-ruler > .shaded-area.right):
3061         (.timeline-ruler > .selection-handle.left): Deleted.
3062         (.timeline-ruler > .selection-handle.right): Deleted.
3063         (.timeline-ruler > .shaded-area.left): Deleted.
3064         (.timeline-ruler > .shaded-area.right): Deleted.
3065         Flip the position alignment of the selection handles and shaded areas when in RTL.
3066
3067         * UserInterface/Views/TimelineRuler.js:
3068         (WebInspector.TimelineRuler.prototype._handleMouseDown):
3069         (WebInspector.TimelineRuler.prototype._handleMouseMove):
3070         (WebInspector.TimelineRuler.prototype._handleMouseUp):
3071         (WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown):
3072         (WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
3073         Treat the current mouse position (event.pageX) as a negative value when in RTL, meaning that
3074         the delta movement from the starting position is flipped.
3075
3076 2017-03-15  Joseph Pecoraro  <pecoraro@apple.com>
3077
3078         Web Inspector: REGRESSION: Elements Tab > Node Details Sidebar > Properties Section is spammed with TypeErrors
3079         https://bugs.webkit.org/show_bug.cgi?id=153911
3080         <rdar://problem/24520098>
3081
3082         Reviewed by Devin Rousso.
3083
3084         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
3085         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved.inspectedPage_node_collectPrototypes):
3086         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved):
3087         Update due to naming conventions for code that evalutes in the inspected page.
3088
3089         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.fillSection):
3090         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties):
3091         Create a more complete ObjectTreeView for the different sections.
3092
3093         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
3094         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
3095         PureAPI behaves the same as ClassAPI and just shows own properties.
3096
3097         * UserInterface/Views/ObjectTreeView.js:
3098         (WebInspector.ObjectTreeView.prototype.showOnlyProperties):
3099         In only properties mode don't show the Prototype expander at the end.
3100
3101         (WebInspector.ObjectTreeView.prototype.setPrototypeNameOverride):
3102         Allow a prototype name override at the top level. This will allow clients
3103         to specify that the object at the top level is a Prototype object, so that
3104         ObjectTreePropertyTreeElements can infer the right NativeFunctionParameter
3105         information knowing that those properties are on a particular prototype.
3106
3107         (WebInspector.ObjectTreeView.prototype.update):
3108         For the PureAPI use getOwnProperties instead of getDisplayableProperties.
3109         This avoids the special handling we have for DOM native properties which
3110         we bubble up to the top as value descriptors even though they are actually
3111         accessor descriptors on prototypes.
3112
3113         (WebInspector.ObjectTreeView.prototype._updateProperties):
3114         Pass the prototype name override onward for object properties.
3115
3116 2017-03-14  Joseph Pecoraro  <pecoraro@apple.com>
3117
3118         Web Inspector: Exception when fetching computed styles can break future updates of section
3119         https://bugs.webkit.org/show_bug.cgi?id=169638
3120         <rdar://problem/30588688>
3121
3122         Reviewed by Devin Rousso.
3123
3124         * UserInterface/Models/DOMNodeStyles.js:
3125         (WebInspector.DOMNodeStyles.prototype.refresh.wrap):
3126         (WebInspector.DOMNodeStyles.prototype.refresh):
3127         Gracefully handle exceptions. If an exception did happen we
3128         would be unable to update these in the future.
3129
3130 2017-03-14  Devin Rousso  <webkit@devinrousso.com>
3131
3132         Web Inspector: RTL: add support for Memory timeline
3133         https://bugs.webkit.org/show_bug.cgi?id=169584
3134
3135         Reviewed by Brian Burg.
3136
3137         * UserInterface/Views/MemoryCategoryView.css:
3138         (.memory-category-view > .details):
3139         (body[dir=ltr] .memory-category-view > .details):
3140         (body[dir=rtl] .memory-category-view > .details):
3141
3142         * UserInterface/Views/MemoryTimelineOverviewGraph.css:
3143         (.timeline-overview-graph.memory > .legend):
3144         (body[dir=ltr] .timeline-overview-graph.memory > .legend):
3145         (body[dir=rtl] .timeline-overview-graph.memory > .legend):
3146         (.timeline-overview-graph.memory .memory-pressure-event):
3147         (body[dir=ltr] .timeline-overview-graph.memory .memory-pressure-event):
3148         (body[dir=rtl] .timeline-overview-graph.memory .memory-pressure-event):
3149
3150         * UserInterface/Views/MemoryTimelineOverviewGraph.js:
3151         (WebInspector.MemoryTimelineOverviewGraph.prototype.layout):
3152         Rework the calculation for the marker offset to use "right" in RTL.
3153
3154         * UserInterface/Views/MemoryTimelineView.css:
3155         (.timeline-view.memory > .content > .details > .timeline-ruler):
3156         (body[dir=ltr] .timeline-view.memory > .content > .details > .timeline-ruler):
3157         (body[dir=rtl] .timeline-view.memory > .content > .details > .timeline-ruler):
3158         (.timeline-view.memory > .content > .overview > .divider):
3159         (body[dir=ltr] .timeline-view.memory > .content > .overview > .divider):
3160         (body[dir=rtl] .timeline-view.memory > .content > .overview > .divider):
3161         (.timeline-view.memory .legend):
3162         (body[dir=ltr] .timeline-view.memory .legend):
3163         (body[dir=rtl] .timeline-view.memory .legend):
3164         (.timeline-view.memory .legend > .row):
3165         (.timeline-view.memory .legend > .row > .swatch):
3166         (body[dir=ltr] .timeline-view.memory .legend > .row > .swatch):
3167         (body[dir=rtl] .timeline-view.memory .legend > .row > .swatch):
3168         (body[dir=ltr] .timeline-view.memory .legend > .row > :matches(.label, .size)):
3169         (body[dir=rtl] .timeline-view.memory .legend > .row > :matches(.label, .size)):
3170         (.timeline-view.memory .legend > .row > .label):
3171         (.timeline-view.memory .legend > .row > .size):
3172
3173 2017-03-14  Devin Rousso  <webkit@devinrousso.com>
3174
3175         Web Inspector: RTL: add support for Timeline graphs
3176         https://bugs.webkit.org/show_bug.cgi?id=169585
3177
3178         Reviewed by Brian Burg.
3179
3180         * UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
3181         (WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout):
3182         Rework the calculation for the icon offset to use "right" in RTL.
3183
3184         * UserInterface/Views/MemoryTimelineOverviewGraph.css:
3185         (body[dir=rtl] .timeline-overview-graph.memory > .stacked-line-chart):
3186         Flip the chart when in RTL.
3187
3188         * UserInterface/Views/TimelineRecordBar.css:
3189         (.timeline-record-bar):
3190         (body[dir=ltr] .timeline-record-bar > .segment.inactive):
3191         (body[dir=rtl] .timeline-record-bar > .segment.inactive):
3192         (body[dir=ltr] .timeline-record-bar.unfinished > .segment):
3193         (body[dir=rtl] .timeline-record-bar.unfinished > .segment):
3194         (body[dir=ltr] .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
3195         (body[dir=rtl] .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
3196         (body[dir=ltr] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
3197         (body[dir=rtl] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
3198         (.timeline-record-bar > .segment.inactive,): Deleted.
3199         (.timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
3200         (:matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
3201
3202         * UserInterface/Views/TimelineRecordBar.js:
3203         (WebInspector.TimelineRecordBar.prototype.refresh):
3204         Apply the position updates to "right" in RTL.
3205
3206         * UserInterface/Views/TimelineRecordFrame.js:
3207         (WebInspector.TimelineRecordFrame.prototype.refresh):
3208         Apply the position updates to "right" in RTL.
3209
3210         * UserInterface/Views/TimelineRuler.js:
3211         (WebInspector.TimelineRuler.prototype.layout):
3212         (WebInspector.TimelineRuler.prototype._updatePositionOfElement):
3213         (WebInspector.TimelineRuler.prototype._updateMarkers):
3214         (WebInspector.TimelineRuler.prototype._updateSelection):
3215         Apply the position updates to "right" in RTL.
3216
3217 2017-03-14  Devin Rousso  <webkit@devinrousso.com>
3218
3219         Web Inspector: RTL: add support for DataGrid disclosure arrows and indentation
3220         https://bugs.webkit.org/show_bug.cgi?id=169582
3221
3222         Reviewed by Brian Burg.
3223
3224         * UserInterface/Views/DataGrid.css:
3225         (body[dir=rtl] .data-grid tr.parent td.disclosure::before):
3226         Flip the image in RTL.
3227
3228         * UserInterface/Views/DataGrid.js:
3229         (WebInspector.DataGrid.prototype._updateScrollbarPadding):
3230         Rework the padding calculation for the scrollbar offset to use "right" in RTL.
3231
3232         * UserInterface/Views/DataGridNode.js:
3233         (WebInspector.DataGridNode.prototype.get indentPadding):
3234         (WebInspector.DataGridNode.prototype.createCell):
3235         Rework the padding calculation for indenting (as a child) to use "right" in RTL.
3236
3237         (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
3238         Calculate the position of the ::before triangle based on the layout direction.
3239
3240         (WebInspector.DataGridNode.prototype.get leftPadding): Deleted.
3241
3242 2017-03-14  Devin Rousso  <webkit@devinrousso.com>
3243
3244         Web Inspector: RTL: add support for TimelineOverview sidebar and container layout
3245         https://bugs.webkit.org/show_bug.cgi?id=169583
3246
3247         Reviewed by Brian Burg.
3248
3249         * UserInterface/Views/TimelineOverview.css:
3250         (body[dir=ltr] .timeline-overview > :matches(.navigation-bar.timelines, .tree-outline.timelines)):
3251         (body[dir=rtl] .timeline-overview > :matches(.navigation-bar.timelines, .tree-outline.timelines)):
3252         (body[dir=ltr] .timeline-overview:not(.frames) > :matches(.scroll-container, .timeline-ruler, .graphs-container)):
3253         (body[dir=rtl] .timeline-overview:not(.frames) > :matches(.scroll-container, .timeline-ruler, .graphs-container)):
3254         (.timeline-overview > .navigation-bar.timelines):
3255         (.timeline-overview > .tree-outline.timelines):
3256         (.timeline-overview > .scroll-container):
3257         (.timeline-overview > .timeline-ruler):
3258         (.timeline-overview > .graphs-container):
3259         (.timeline-overview > .scroll-container > .scroll-width-sizer):
3260         (body[dir=ltr] .timeline-overview > .scroll-container > .scroll-width-sizer):
3261         (body[dir=rtl] .timeline-overview > .scroll-container > .scroll-width-sizer):
3262         (.timeline-overview.frames > .graphs-container): Deleted.
3263
3264 2017-03-14  Joseph Pecoraro  <pecoraro@apple.com>
3265
3266         Web Inspector: More accurate Resource Timing data in Web Inspector
3267         https://bugs.webkit.org/show_bug.cgi?id=169577
3268
3269         Reviewed by Youenn Fablet.
3270
3271         * UserInterface/Models/ResourceTimingData.js:
3272         (WebInspector.ResourceTimingData.prototype.get requestStart):
3273         (WebInspector.ResourceTimingData.prototype.get responseStart):
3274         Fallback to the startTime if available instead of using the
3275         inaccurate WebContentProcess gathered timestamps.
3276
3277         (WebInspector.ResourceTimingData.prototype.markResponseEndTime):
3278         Verify responseEnd compared to other times we may have.
3279
3280 2017-03-14  Devin Rousso  <webkit@devinrousso.com>
3281
3282         Web Inspector: Remove unnecessary assert for Number.percentageString
3283         https://bugs.webkit.org/show_bug.cgi?id=169589
3284
3285         Reviewed by Matt Baker.
3286
3287         * UserInterface/Base/Utilities.js:
3288         (Number.percentageString):
3289
3290 2017-03-14  Devin Rousso  <webkit@devinrousso.com>
3291
3292         Web Inspector: allow the user to copy locked CSS selectors in Style - Rules
3293         https://bugs.webkit.org/show_bug.cgi?id=169587
3294
3295         Reviewed by Matt Baker.
3296
3297         * UserInterface/Views/CSSStyleDeclarationSection.css:
3298         (.style-declaration-section:matches(.locked, .selector-locked) > .header > .selector):
3299
3300 2017-03-13  Nikita Vasilyev  <nvasilyev@apple.com>
3301
3302         Web Inspector: WebSockets: color of outgoing message icon should match text color
3303         https://bugs.webkit.org/show_bug.cgi?id=169512
3304         <rdar://problem/30994284>
3305
3306         Reviewed by Devin Rousso.
3307
3308         Include SVG icon as an inline SVG element to make currentColor work.
3309
3310         * Localizations/en.lproj/localizedStrings.js:
3311         * UserInterface/Main.html:
3312         * UserInterface/Views/WebSocketContentView.css:
3313         (.web-socket.content-view .outgoing .icon): Deleted.
3314         * UserInterface/Views/WebSocketContentView.js:
3315         (WebInspector.WebSocketContentView):
3316         (WebInspector.WebSocketContentView.prototype.addFrame):
3317         (WebInspector.WebSocketContentView.prototype._addRow):
3318         (WebInspector.WebSocketContentView.prototype._timeStringFromTimestamp): Deleted.
3319         * UserInterface/Views/WebSocketDataGridNode.js: Added.
3320         (WebInspector.WebSocketDataGridNode.prototype.createCellContent):
3321         (WebInspector.WebSocketDataGridNode.prototype._timeStringFromTimestamp):
3322         (WebInspector.WebSocketDataGridNode):
3323
3324 2017-03-13  Devin Rousso  <webkit@devinrousso.com>
3325
3326         Web Inspector: Event Listeners detail section is unhelpful, default should show listeners by element rather than by event
3327         https://bugs.webkit.org/show_bug.cgi?id=167077
3328
3329         Reviewed by Joseph Pecoraro.
3330
3331         * Localizations/en.lproj/localizedStrings.js:
3332         * UserInterface/Main.html:
3333         * UserInterface/Views/EventListenerSection.js: Removed.
3334
3335         * UserInterface/Models/DOMNode.js:
3336         (WebInspector.DOMNode.prototype.eventListeners): Renamed to getEventListeners.
3337
3338         * UserInterface/Views/DOMNodeDetailsSidebarPanel.css: Added.
3339         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
3340         (body[dir=ltr] .sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
3341         (body[dir=rtl] .sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
3342         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):
3343         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:active):
3344         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners.collapsed > .header > .filter):
3345         (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter > select):
3346
3347         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
3348         (WebInspector.DOMNodeDetailsSidebarPanel.createOption):
3349         (WebInspector.DOMNodeDetailsSidebarPanel):
3350         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.createEventListenerSection):
3351         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByEvent):
3352         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode):
3353         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.eventListenersCallback):
3354         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners):
3355         Add a filter to the Event Listeners section that changes the way in which event listeners
3356         are grouped.  Currently supports two methods:
3357          - Group by Event
3358          - Group by Node
3359
3360         * UserInterface/Views/EventListenerSectionGroup.js:
3361         (WebInspector.EventListenerSectionGroup):
3362         Add ability to display the event type.
3363
3364         * UserInterface/Views/DetailsSection.css:
3365         (.details-section):
3366         Drive-by fix: CSS variable was named incorrectly.
3367
3368 2017-03-13  Devin Rousso  <webkit@devinrousso.com>
3369
3370         Web Inspector: Event Listeners section is missing 'once', 'passive' event listener flags
3371         https://bugs.webkit.org/show_bug.cgi?id=167080
3372
3373         Reviewed by Joseph Pecoraro.
3374
3375         * Localizations/en.lproj/localizedStrings.js:
3376         * UserInterface/Views/EventListenerSectionGroup.js:
3377         (WebInspector.EventListenerSectionGroup):
3378         (WebInspector.EventListenerSectionGroup.prototype._type): Deleted.
3379
3380 2017-03-11  Matt Baker  <mattbaker@apple.com>
3381
3382         Web Inspector: Add "goto arrow" to DOMNodeTreeElements in the Debugger tab
3383         https://bugs.webkit.org/show_bug.cgi?id=168752
3384
3385         Reviewed by Devin Rousso.
3386
3387         * UserInterface/Base/DOMUtilities.js:
3388         (WebInspector.linkifyNodeReference):
3389         (WebInspector.linkifyNodeReferenceElement):
3390         Expose linkifying an existing element.
3391
3392         * UserInterface/Views/DOMNodeTreeElement.js:
3393         (WebInspector.DOMNodeTreeElement):
3394         (WebInspector.DOMNodeTreeElement.prototype.populateContextMenu):
3395         Add "Reveal in DOM Tree" context menu item.
3396
3397         * UserInterface/Views/DebuggerSidebarPanel.css:
3398         (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node:not(:hover, .selected) .status .go-to-arrow):
3399         Hide the go-to arrow unless hovering or selected.
3400
3401 2017-03-11  Matt Baker  <mattbaker@apple.com>
3402
3403         Web Inspector: RTL: fix broken font content view
3404         https://bugs.webkit.org/show_bug.cgi?id=169513
3405
3406         Reviewed by Brian Burg.
3407
3408         Add RTL support to the Font content view.
3409
3410         * UserInterface/Views/FontResourceContentView.css:
3411         (.content-view.resource.font .preview > .line > .metric):
3412         (body[dir=ltr] .content-view.resource.font .preview > .line > .metric):
3413         (body[dir=rtl] .content-view.resource.font .preview > .line > .metric):
3414         Compensate for the flipped z-order of the content and metric elements in
3415         RTL by pushing metrics below the content.
3416
3417 2017-03-10  Matt Baker  <mattbaker@apple.com>
3418
3419         Web Inspector: Only show "Break on..." menu if backend supports DOM breakpoints
3420         https://bugs.webkit.org/show_bug.cgi?id=169488
3421
3422         Reviewed by Joseph Pecoraro.
3423
3424         * UserInterface/Controllers/DOMBreakpointTreeController.js:
3425         (WebInspector.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
3426         Added assert to catch future cases where UI is being added when
3427         backend support doesn't exist.
3428
3429         * UserInterface/Views/DOMTreeElement.js:
3430         (WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
3431         Check for backend support.
3432
3433 2017-03-10  Devin Rousso  <dcrousso+webkit@gmail.com>
3434
3435         Web Inspector: popover with compositing reasons in Layers sidebar has hard to read layout
3436         https://bugs.webkit.org/show_bug.cgi?id=167081
3437
3438         Reviewed by Brian Burg.
3439
3440         * UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
3441         (.layer-tree-popover):
3442         (.layer-tree-popover p):
3443         (.layer-tree-popover ul):
3444         (body[dir=ltr] .layer-tree-popover ul):
3445         (body[dir=rtl] .layer-tree-popover ul):
3446         Show `list-item-style` and make the <p> element stand out more (larger and bold).
3447
3448 2017-03-10  Devin Rousso  <dcrousso+webkit@gmail.com>
3449
3450         Web Inspector: in Resources tab navigation bar, can't save the same file from context menu item more than once
3451         https://bugs.webkit.org/show_bug.cgi?id=165665
3452
3453         Reviewed by Brian Burg.
3454
3455         * UserInterface/Views/ContextMenuUtilities.js:
3456         (WebInspector.appendContextMenuItemsForSourceCode):
3457         Force the "Save As" dialog to appear when saving, as otherwise subsequent clicks on "Save"
3458         in the context menu will just override the previously saved file.
3459
3460 2017-03-10  Devin Rousso  <dcrousso+webkit@gmail.com>
3461
3462         Web Inspector: REGRESSION(r213149): scope bar items in elements sidebar have wrong padding/margin
3463         https://bugs.webkit.org/show_bug.cgi?id=169204
3464
3465         Reviewed by Brian Burg.
3466
3467         * UserInterface/Views/Sidebar.css:
3468         (.sidebar > .navigation-bar):
3469         Replace `align-content` with `align-items`, as the former causes the child elements to fill
3470         as much vertical space as possible instead of only using the space necessary for its content.
3471
3472         * UserInterface/Views/ScopeRadioButtonNavigationItem.css:
3473         (.scope-radio-button-navigation-item > .arrows):
3474         Drive-by fix: ensure that the up/down arrows are not clickable, which would prevent the
3475         <select> from showing.
3476
3477 2017-03-09  Matt Baker  <mattbaker@apple.com>
3478
3479         Web Inspector: Add XHR breakpoints UI
3480         https://bugs.webkit.org/show_bug.cgi?id=168763
3481         <rdar://problem/30952439>
3482
3483         Reviewed by Joseph Pecoraro.
3484
3485         * Localizations/en.lproj/localizedStrings.js:
3486         New UI strings.
3487
3488         * UserInterface/Controllers/DOMDebuggerManager.js:
3489         Plumbing for XHR breakpoints. Like DOM breakpoints, they are tracked
3490         per-page. Unlike DOM breakpoints, they have no separate "resolved"
3491         state, and are simply added/removed as the main frame changes.
3492
3493         (WebInspector.DOMDebuggerManager):
3494         (WebInspector.DOMDebuggerManager.prototype.get allRequestsBreakpoint):
3495         (WebInspector.DOMDebuggerManager.prototype.get xhrBreakpoints):
3496         (WebInspector.DOMDebuggerManager.prototype.isBreakpointRemovable):
3497         (WebInspector.DOMDebuggerManager.prototype.removeDOMBreakpoint):
3498         (WebInspector.DOMDebuggerManager.prototype.addXHRBreakpoint):
3499         (WebInspector.DOMDebuggerManager.prototype.removeXHRBreakpoint):
3500         (WebInspector.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
3501         (WebInspector.DOMDebuggerManager.prototype._detachXHRBreakpoint):
3502         (WebInspector.DOMDebuggerManager.prototype._updateXHRBreakpoint.breakpointUpdated):
3503         (WebInspector.DOMDebuggerManager.prototype._updateXHRBreakpoint):
3504         (WebInspector.DOMDebuggerManager.prototype._resolveXHRBreakpoint):
3505         (WebInspector.DOMDebuggerManager.prototype._saveXHRBreakpoints):
3506         (WebInspector.DOMDebuggerManager.prototype._domBreakpointDisabledStateDidChange):
3507         (WebInspector.DOMDebuggerManager.prototype._xhrBreakpointDisabledStateDidChange):
3508         (WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
3509         (WebInspector.DOMDebuggerManager.prototype._saveBreakpoints): Deleted.
3510         Renamed `saveDOMBreakpoints`.
3511
3512         * UserInterface/Controllers/DebuggerManager.js:
3513         (WebInspector.DebuggerManager.prototype._pauseReasonFromPayload):
3514         Plumbing for XHR breakpoint pause reason.
3515
3516         * UserInterface/Controllers/XHRBreakpointTreeController.js: Added.
3517         Creates the "All Requests" breakpoint, handles DOMDebuggerManager messages,
3518         and updates an associated tree outline as XHR breakpoints are added and removed.
3519
3520         (WebInspector.XHRBreakpointTreeController):
3521         (WebInspector.XHRBreakpointTreeController.prototype.revealAndSelect):
3522         (WebInspector.XHRBreakpointTreeController.prototype.disconnect):
3523         (WebInspector.XHRBreakpointTreeController.prototype._xhrBreakpointAdded):
3524         (WebInspector.XHRBreakpointTreeController.prototype._xhrBreakpointRemoved):
3525         (WebInspector.XHRBreakpointTreeController.prototype._mainResourceDidChange):
3526         (WebInspector.XHRBreakpointTreeController.prototype._reset):
3527
3528         * UserInterface/Main.html:
3529         New files.
3530
3531         * UserInterface/Models/XHRBreakpoint.js: Added.
3532         New model class. XHR breakpoints have an associated URL, which is matched
3533         against the request URL when deciding whether to break. An empty URL matches
3534         all XMLHttpRequests.
3535
3536         (WebInspector.XHRBreakpoint):
3537         (WebInspector.XHRBreakpoint.prototype.get documentURL):
3538         (WebInspector.XHRBreakpoint.prototype.get url):
3539         (WebInspector.XHRBreakpoint.prototype.get disabled):
3540         (WebInspector.XHRBreakpoint.prototype.set disabled):
3541         (WebInspector.XHRBreakpoint.prototype.get serializableInfo):
3542         (WebInspector.XHRBreakpoint.prototype.saveIdentityToCookie):
3543
3544         * UserInterface/Test.html:
3545         New files.
3546
3547         * UserInterface/Views/ContentView.js:
3548         (WebInspector.ContentView.createFromRepresentedObject):
3549         Plumbing for new represented object type, to prevent runtime assertion.
3550
3551         * UserInterface/Views/DOMBreakpointTreeElement.js:
3552         (WebInspector.DOMBreakpointTreeElement):
3553         Reuse BreakpointTreeElement styles.
3554
3555         * UserInterface/Views/DebuggerSidebarPanel.js:
3556         (WebInspector.DebuggerSidebarPanel):
3557         (WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie):
3558         (WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
3559         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
3560         (WebInspector.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked):
3561         (WebInspector.DebuggerSidebarPanel.prototype.willDismissPopover):
3562
3563         * UserInterface/Views/InputPopover.css: Added.
3564         (.popover .input-popover-content):
3565         (.popover .input-popover-content > .editor):
3566         (.popover .input-popover-content > .editor > .CodeMirror):
3567         (.popover .input-popover-content > .editor > .CodeMirror-scroll):
3568
3569         * UserInterface/Views/InputPopover.js: Added.
3570         New general purpose popover class. Style and structure lifted from
3571         the Popover implementation used by the Probe Expressions UI. A follow-up
3572         has been filed to switch that UI over to this new class:
3573         https://bugs.webkit.org/show_bug.cgi?id=169428.
3574
3575         (WebInspector.InputPopover):
3576         (WebInspector.InputPopover.prototype.get value):
3577         (WebInspector.InputPopover.prototype.get result):
3578         (WebInspector.InputPopover.prototype.show):
3579         (WebInspector.InputPopover.prototype._presentOverTargetElement):
3580
3581         * UserInterface/Views/XHRBreakpointTreeElement.js: Added.
3582         Tree element class for XHR breakpoints. Behaves identically to
3583         script and DOM breakpoint tree elements.
3584
3585         (WebInspector.XHRBreakpointTreeElement):
3586         Reuse BreakpointTreeElement styles.
3587         (WebInspector.XHRBreakpointTreeElement.prototype.onattach):
3588         (WebInspector.XHRBreakpointTreeElement.prototype.ondetach):
3589         (WebInspector.XHRBreakpointTreeElement.prototype.ondelete):
3590         (WebInspector.XHRBreakpointTreeElement.prototype.onenter):
3591         (WebInspector.XHRBreakpointTreeElement.prototype.onspace):
3592         (WebInspector.XHRBreakpointTreeElement.prototype.populateContextMenu):
3593         (WebInspector.XHRBreakpointTreeElement.prototype._statusImageElementClicked):
3594         (WebInspector.XHRBreakpointTreeElement.prototype._statusImageElementFocused):
3595         (WebInspector.XHRBreakpointTreeElement.prototype._statusImageElementMouseDown):
3596         (WebInspector.XHRBreakpointTreeElement.prototype._toggleBreakpoint):
3597         (WebInspector.XHRBreakpointTreeElement.prototype._updateStatus):
3598
3599 2017-03-09  Matt Baker  <mattbaker@apple.com>
3600
3601         REGRESSION (r196271): Web Inspector: DOM element loses focus/active selection after committing an inline attribute editor in DOMTreeOutline
3602         https://bugs.webkit.org/show_bug.cgi?id=168119
3603         <rdar://problem/30466013>
3604
3605         Reviewed by Brian Burg.
3606
3607         Fix a regression caused by http://trac.webkit.org/changeset/196271, which
3608         updated WebInspector.isEventTargetAnEditableField to detect the editing
3609         scenarios used by DOMTreeElement and DataGrid. This subtly changed the
3610         behavior of WebInspector._focusChanged, which expected all editable fields
3611         to be backed by a CodeMirror instance.
3612
3613         * UserInterface/Base/Main.js:
3614
3615 2017-03-09  Joseph Pecoraro  <pecoraro@apple.com>
3616
3617         Web Inspector: Show HTTP protocol version and other Network Load Metrics (IP Address, Priority, Connection ID)
3618         https://bugs.webkit.org/show_bug.cgi?id=29687
3619         <rdar://problem/19281586>
3620
3621         Reviewed by Matt Baker and Brian Burg.
3622
3623         These columns are available in the Network DataGrids, but are
3624         initially hidden. They can be shown by right clicking on the
3625         table header and showing these columns. We are going to rework
3626         the default list of visible columns later.
3627
3628         * Localizations/en.lproj/localizedStrings.js:
3629         New localized strings for data grid headers and Low/Medium/High.
3630
3631         * UserInterface/Controllers/FrameResourceManager.js:
3632         (WebInspector.FrameResourceManager.prototype.resourceRequestDidFinishLoading):
3633         * UserInterface/Protocol/NetworkObserver.js:
3634         (WebInspector.NetworkObserver.prototype.loadingFinished):
3635         Pass metrics on to the Resource.
3636
3637         * UserInterface/Models/Resource.js:
3638         (WebInspector.Resource):
3639         (WebInspector.Resource.displayNameForType):
3640         (WebInspector.Resource.responseSourceFromPayload):
3641         (WebInspector.Resource.networkPriorityFromPayload):
3642         (WebInspector.Resource.connectionIdentifierFromPayload):
3643         (WebInspector.Resource.prototype.get protocol):
3644         (WebInspector.Resource.prototype.get priority):
3645         (WebInspector.Resource.prototype.get remoteAddress):
3646         (WebInspector.Resource.prototype.get connectionIdentifier):
3647         (WebInspector.Resource.prototype.updateWithMetrics):
3648         Include metrics accessors and default values.
3649
3650         * UserInterface/Views/NetworkGridContentView.js:
3651         (WebInspector.NetworkGridContentView):
3652         * UserInterface/Views/NetworkTimelineView.js:
3653         (WebInspector.NetworkTimelineView):
3654         Add metrics columns if the backend may be sending them.
3655
3656         * UserInterface/Views/ResourceTimelineDataGridNode.js:
3657         (WebInspector.ResourceTimelineDataGridNode.prototype.get data):
3658         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
3659         (WebInspector.ResourceTimelineDataGridNode.prototype._displayNameForPriority):
3660         (WebInspector.ResourceTimelineDataGridNode.prototype._cachedCellContent):
3661         Display strings for new columns.
3662
3663         * UserInterface/Views/TimelineDataGridNode.js:
3664         * UserInterface/Views/TimelineRecordBar.js:
3665         (WebInspector.TimelineRecordBar.prototype.refresh):
3666         Avoid assertions if Graph column is unavailable.
3667
3668         * UserInterface/Views/DataGrid.js:
3669         (WebInspector.DataGrid):
3670         (WebInspector.DataGrid.prototype.createSettings):
3671         (WebInspector.DataGrid.prototype.setColumnVisible):
3672         Better support for restoring user preference of initially
3673         hidden columns which the user may have shown.
3674
3675         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
3676         (WebInspector.ResourceDetailsSidebarPanel):
3677         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
3678         Show the Protocol and Priority in the Resources sidebar.
3679
3680 2017-03-09  Nikita Vasilyev  <nvasilyev@apple.com>
3681
3682         Web Inspector: Show individual messages in the content pane for a WebSocket
3683         https://bugs.webkit.org/show_bug.cgi?id=169011
3684
3685         Reviewed by Joseph Pecoraro.
3686
3687         When selecting a Web Socket in Network panel or Resources, display a table
3688         of all messages that have been sent and received.
3689
3690         * Localizations/en.lproj/localizedStrings.js:
3691         * UserInterface/Controllers/FrameResourceManager.js:
3692         (WebInspector.FrameResourceManager.prototype.webSocketWillSendHandshakeRequest):
3693         Add a walltime parameter.
3694
3695         (WebInspector.FrameResourceManager.prototype._webSocketFrameReceivedOrSent):
3696         Fix a bug: masked messages are outgoing, not incoming.
3697
3698         * UserInterface/Images/ArrowUp.svg: Added.
3699         * UserInterface/Images/gtk/ArrowUp.svg: Added.
3700         Add an icon for outgoing messages.
3701
3702         * UserInterface/Main.html:
3703         * UserInterface/Models/WebSocketResource.js:
3704         (WebInspector.WebSocketResource):
3705         (WebInspector.WebSocketResource.prototype.get walltime):
3706         (WebInspector.WebSocketResource.prototype.addFrame):
3707         (WebInspector.WebSocketResource.prototype._walltimeForWebSocketTimestamp):
3708         * UserInterface/Protocol/NetworkObserver.js:
3709         (WebInspector.NetworkObserver.prototype.webSocketWillSendHandshakeRequest):
3710         (WebInspector.NetworkObserver.prototype.webSocketFrameSent):
3711         (WebInspector.NetworkObserver.prototype.webSocketFrameError):
3712         (WebInspector.NetworkObserver):
3713         * UserInterface/Views/NetworkSidebarPanel.js:
3714         (WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
3715         * UserInterface/Views/ResourceClusterContentView.js:
3716         (WebInspector.ResourceClusterContentView.prototype.get responseContentView):
3717         * UserInterface/Views/WebSocketContentView.css: Added.
3718         (.web-socket.content-view > .data-grid):
3719         (.web-socket.content-view > .data-grid table.data):
3720         (.web-socket.content-view > .data-grid td.data-column,):
3721         (body[dir=ltr] .web-socket.content-view > .data-grid .data-column > div):
3722         (body[dir=rtl] .web-socket.content-view > .data-grid .data-column > div):
3723         (.web-socket.content-view .icon):
3724         (body[dir=ltr] .web-socket.content-view .icon):
3725         (body[dir=rtl] .web-socket.content-view .icon):
3726         (.web-socket.content-view .outgoing .icon):
3727         (.web-socket.content-view .data-grid.variable-height-rows table.data tr:nth-child(odd)):
3728         (.web-socket.content-view .data-grid table.data tr.revealed):
3729         (.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
3730         (.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):
3731
3732         * UserInterface/Views/WebSocketContentView.js: Added.
3733         (WebInspector.WebSocketContentView):
3734         Only show Time column when walltime is available.
3735
3736         (WebInspector.WebSocketContentView.textForOpcode):
3737         (WebInspector.WebSocketContentView.prototype.shown):
3738         (WebInspector.WebSocketContentView.prototype.hidden):
3739         (WebInspector.WebSocketContentView.prototype.addFrame):
3740         (WebInspector.WebSocketContentView.prototype._updateFrames):
3741         Only render frames that haven't been rendered yet.
3742
3743         (WebInspector.WebSocketContentView.prototype._addRow):
3744         (WebInspector.WebSocketContentView.prototype._timeStringFromTimestamp):
3745
3746 2017-03-09  Matt Baker  <mattbaker@apple.com>
3747
3748         Web Inspector: DOMTreeManager dispatches DocumentUpdated twice when the document is cleared
3749         https://bugs.webkit.org/show_bug.cgi?id=168984
3750
3751         Reviewed by Timothy Hatcher.
3752
3753         * UserInterface/Controllers/DOMTreeManager.js:
3754         (WebInspector.DOMTreeManager.prototype._setDocument):
3755         Compare old and new document values before dispatching message.
3756
3757 2017-03-09  Devin Rousso  <dcrousso+webkit@gmail.com>
3758
3759         Web Inspector: Add settings for controlling Styles sidebar intelligence
3760         https://bugs.webkit.org/show_bug.cgi?id=169181
3761
3762         Reviewed by Timothy Hatcher.
3763
3764         * Localizations/en.lproj/localizedStrings.js:
3765         * UserInterface/Base/Setting.js:
3766         Add three new settings:
3767          - stylesShowInlineWarnings
3768          - stylesInsertNewline
3769          - stylesSelectOnFirstClick
3770
3771         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
3772         (WebInspector.CSSStyleDeclarationTextEditor):
3773         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown):
3774         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
3775         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.update):
3776         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
3777
3778         * UserInterface/Views/SettingsTabContentView.css:
3779         (.content-view.settings > .separator): Added.
3780         (.content-view.settings > .setting-container):
3781         (.content-view.settings > .setting-container.combined):
3782
3783         * UserInterface/Views/SettingsTabContentView.js:
3784         (WebInspector.SettingsTabContentView.prototype.layout.createContainer):
3785         (WebInspector.SettingsTabContentView.prototype.layout.createSeparator): Added.
3786         (WebInspector.SettingsTabContentView.prototype.layout):
3787
3788 2017-03-08  Matt Baker  <mattbaker@apple.com>
3789
3790         Web Inspector: Add DOM breakpoints UI for node/subtree modification events
3791         https://bugs.webkit.org/show_bug.cgi?id=168101
3792
3793         Reviewed by Joseph Pecoraro.
3794
3795         * Localizations/en.lproj/localizedStrings.js:
3796         New UI strings.
3797
3798         * UserInterface/Base/Main.js:
3799         (WebInspector.loaded):
3800         Add new manager.
3801
3802         * UserInterface/Controllers/DOMBreakpointTreeController.js: Added.
3803         Handles messages from DOMDebuggerManager, and updates an associated
3804         tree outline as DOM breakpoints are added and removed.
3805         (WebInspector.DOMBreakpointTreeController):
3806         (WebInspector.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
3807         (WebInspector.DOMBreakpointTreeController.prototype.disconnect):
3808         (WebInspector.DOMBreakpointTreeController.prototype._addBreakpointTreeElement):
3809         (WebInspector.DOMBreakpointTreeController.prototype._removeBreakpointTreeElement):
3810         (WebInspector.DOMBreakpointTreeController.prototype._domBreakpointAdded):
3811         (WebInspector.DOMBreakpointTreeController.prototype._domBreakpointRemoved):
3812         (WebInspector.DOMBreakpointTreeController.prototype._domBreakpointResolvedStateDidChange):
3813         (WebInspector.DOMBreakpointTreeController.prototype._mainResourceDidChange):
3814
3815         * UserInterface/Controllers/DOMDebuggerManager.js: Added.
3816         New frontend manager for the DOMDebugger domain. A DOM breakpoint is
3817         described by a location (URL and node path) and type. The manager keeps
3818         all known DOM breakpoints in memory, and considers a breakpoint to be
3819         "resolved" once its location is pushed to the frontend.
3820
3821         Breakpoints located within a child frame are still associated with the
3822         main frame. Whenever a the main resource of a child frame changes, all
3823         unresolved breakpoints associated with the main frame are speculatively
3824         resolved.
3825
3826         (WebInspector.DOMDebuggerManager):
3827         (WebInspector.DOMDebuggerManager.prototype.get supported):
3828         (WebInspector.DOMDebuggerManager.prototype.get domBreakpoints):
3829         (WebInspector.DOMDebuggerManager.prototype.domBreakpointsForNode):
3830         (WebInspector.DOMDebuggerManager.prototype.addDOMBreakpoint):
3831         (WebInspector.DOMDebuggerManager.prototype.removeDOMBreakpoint):
3832         (WebInspector.DOMDebuggerManager.prototype._detachDOMBreakpoint):
3833         (WebInspector.DOMDebuggerManager.prototype._detachBreakpointsForFrame):
3834         (WebInspector.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
3835         (WebInspector.DOMDebuggerManager.prototype._resolveDOMBreakpoint):
3836         (WebInspector.DOMDebuggerManager.prototype._updateDOMBreakpoint):
3837         (WebInspector.DOMDebuggerManager.prototype._saveBreakpoints):
3838         (WebInspector.DOMDebuggerManager.prototype._domBreakpointDisabledStateDidChange):
3839         (WebInspector.DOMDebuggerManager.prototype._childFrameWasRemoved):
3840         (WebInspector.DOMDebuggerManager.prototype._mainFrameDidChange):
3841         (WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
3842         (WebInspector.DOMDebuggerManager.prototype._nodeInserted):
3843         (WebInspector.DOMDebuggerManager.prototype._nodeRemoved):
3844
3845         * UserInterface/Controllers/DebuggerManager.js:
3846         (WebInspector.DebuggerManager.prototype._pauseReasonFromPayload):
3847         Plumbing for DOM breakpoint pause reason.
3848
3849         * UserInterface/Images/DOMBreakpoint.svg: Added.
3850         New art. Visually very similar to a script breakpoint, with some