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