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