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