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