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