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