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