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