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