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