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