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