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