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