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