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