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