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