Web Inspector: delete key should work on multi-values visual sidebar grid sections
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2015-08-17  Devin Rousso  <drousso@apple.com>
2
3         Web Inspector: delete key should work on multi-values visual sidebar grid sections
4         https://bugs.webkit.org/show_bug.cgi?id=148110
5
6         Reviewed by Timothy Hatcher.
7
8         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
9         (WebInspector.VisualStyleCommaSeparatedKeywordEditor):
10         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._listElementKeyDown):
11         If the backspace/delete key is pressed when focus is within the list element, delete
12         the selected list item if it is not currently being edited (if it has an editor).
13
14         * UserInterface/Views/VisualStyleFontFamilyTreeElement.js:
15         (WebInspector.VisualStyleFontFamilyTreeElement.prototype.get currentlyEditing):
16
17 2015-08-17  Devin Rousso  <drousso@apple.com>
18
19         Web Inspector: web fonts or unknown fonts show up as Times in visual sidebar
20         https://bugs.webkit.org/show_bug.cgi?id=148103
21
22         Reviewed by Timothy Hatcher.
23
24         * UserInterface/Views/VisualStyleFontFamilyTreeElement.js:
25         (WebInspector.VisualStyleFontFamilyTreeElement.prototype.updateMainTitle):
26         Fonts now fall back to sans-serif and -apple-system if they do not exist.
27
28 2015-08-17  Myles C. Maxfield  <mmaxfield@apple.com>
29
30         Implement IntegerHasher
31         https://bugs.webkit.org/show_bug.cgi?id=147866
32
33         Reviewed by Darin Adler and Anders Carlsson.
34
35         Update comment.
36
37         * UserInterface/Base/Utilities.js:
38
39 2015-08-17  Brian Burg  <bburg@apple.com>
40
41         Web Inspector: InspectorTest should be a subclass of TestHarness
42         https://bugs.webkit.org/show_bug.cgi?id=148079
43
44         Reviewed by Timothy Hatcher.
45
46         Extract the frontend test harness into a subclass. Delete some code that
47         is now redundant. Sprinkle some ES6 syntax where possible.
48
49         Rewrite the code that redirects the Inspector page's console messages to
50         the test page, since it didn't appear to work any more.
51
52         * UserInterface/Test.html:
53         * UserInterface/Test/FrontendTestHarness.js: Added.
54         (FrontendTestHarness):
55         (FrontendTestHarness.prototype.completeTest):
56         (FrontendTestHarness.prototype.addResult):
57         (FrontendTestHarness.prototype.debugLog):
58         (FrontendTestHarness.prototype.evaluateInPage):
59         (FrontendTestHarness.prototype.expectNoError):
60         (FrontendTestHarness.prototype.testPageDidLoad):
61         (FrontendTestHarness.prototype.reloadPage):
62         (FrontendTestHarness.prototype.redirectConsoleToTestOutput.createProxyConsoleHandler):
63         (FrontendTestHarness.prototype.redirectConsoleToTestOutput):
64         (FrontendTestHarness.prototype.reportUncaughtException):
65         (FrontendTestHarness.prototype._resendResults):
66         * UserInterface/Test/Test.js:
67         (InspectorTest.EventDispatcher.prototype.dispatchEvent): Deleted.
68         (InspectorTest.EventDispatcher): Deleted.
69         (InspectorTest.log): Deleted.
70         (InspectorTest.assert): Deleted.
71         (InspectorTest.expectThat): Deleted.
72         (InspectorTest.debugLog): Deleted.
73         (InspectorTest.expectNoError): Deleted.
74         (InspectorTest.completeTest): Deleted.
75         (InspectorTest.evaluateInPage): Deleted.
76         (InspectorTest.addResult): Deleted.
77         (InspectorTest._resendResults): Deleted.
78         (InspectorTest.testPageDidLoad): Deleted.
79         (InspectorTest.reloadPage): Deleted.
80         (InspectorTest.reportUncaughtException): Deleted.
81
82 2015-08-17  Saam barati  <sbarati@apple.com>
83
84         Web Inspector: Type profiler return types aren't showing up
85         https://bugs.webkit.org/show_bug.cgi?id=147348
86
87         Reviewed by Brian Burg.
88
89         Bug #145995 changed the starting offset of a function to 
90         be the open parenthesis of the function's parameter list.
91         This broke the type profiler's text offset based protocol with JSC.
92         The text offset used in the protocol is now the first letter of the 
93         function/get/set/method name.  So "f" in "function a() {}", "s" in "set foo(){}", etc.
94
95         * UserInterface/Models/ScriptSyntaxTree.js:
96         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
97         (WebInspector.ScriptSyntaxTree.functionReturnDivot):
98
99 2015-08-17  Brian Burg  <bburg@apple.com>
100
101         Web Inspector: REGRESSION: spurious console.assert inside ResourceContentView._contentAvailable
102         https://bugs.webkit.org/show_bug.cgi?id=147886
103
104         Reviewed by Joseph Pecoraro.
105
106         * UserInterface/Views/ResourceContentView.js:
107         (WebInspector.ResourceContentView.prototype._hasContent): Fix the style class name.
108
109 2015-08-17  Brian Burg  <bburg@apple.com>
110
111         Web Inspector: split TestStub.js into multiple files and modernize it
112         https://bugs.webkit.org/show_bug.cgi?id=148077
113
114         Reviewed by Timothy Hatcher.
115  
116         Since we want to share files between the two harnesses, split some of the parts
117         into different files so not everything has to be included at once.
118
119         Rename InjectedTestHarness to just TestHarness. Update some code to use
120         ES6 features where appropriate. Put test classes into Test/ directory.
121
122         * UserInterface/Base/TestStub.js: Removed.
123         * UserInterface/Test.html:
124         * UserInterface/Test/InspectorProtocol.js: Added.
125         (InspectorProtocol.sendCommand):
126         (InspectorProtocol.awaitCommand):
127         (InspectorProtocol.awaitEvent.):
128         (InspectorProtocol.awaitEvent):
129         (InspectorProtocol.addEventListener):
130         (InspectorProtocol.sendMessage):
131         (InspectorProtocol.checkForError):
132         (InspectorProtocol.dispatchMessageFromBackend):
133         * UserInterface/Test/ProtocolTestHarness.js: Added.
134         (ProtocolTestHarness.prototype.completeTest):
135         (ProtocolTestHarness.prototype.addResult):
136         (ProtocolTestHarness.prototype.debugLog):
137         (ProtocolTestHarness.prototype.evaluateInPage):
138         (ProtocolTestHarness):
139         * UserInterface/Test/Test.js: Renamed from Source/WebInspectorUI/UserInterface/Base/Test.js.
140         (WebInspector.loaded):
141         (WebInspector.contentLoaded):
142         (WebInspector.UIString):
143         (WebInspector.updateDockedState):
144         (WebInspector.updateDockingAvailability):
145         (InspectorTest.EventDispatcher.prototype.dispatchEvent):
146         (InspectorTest.EventDispatcher):
147         (InspectorTest.log):
148         (InspectorTest.assert):
149         (InspectorTest.expectThat):
150         (InspectorTest.debugLog):
151         (InspectorTest.expectNoError):
152         (InspectorTest.completeTest):
153         (InspectorTest.evaluateInPage):
154         (InspectorTest.addResult):
155         (InspectorTest._resendResults):
156         (InspectorTest.testPageDidLoad):
157         (InspectorTest.reloadPage):
158         (InspectorTest.reportUncaughtException):
159         * UserInterface/Test/TestHarness.js: Added.
160         (TestHarness):
161         (TestHarness.prototype.completeTest):
162         (TestHarness.prototype.addResult):
163         (TestHarness.prototype.debugLog):
164         (TestHarness.prototype.evaluateInPage):
165         (TestHarness.prototype.createAsyncSuite):
166         (TestHarness.prototype.createSyncSuite):
167         (TestHarness.prototype.get logCount):
168         (TestHarness.prototype.log):
169         (TestHarness.prototype.assert):
170         (TestHarness.prototype.expectThat):
171         * UserInterface/Test/TestStub.js: Added.
172         * UserInterface/Test/TestSuite.js: Added.
173         (TestSuite):
174         (TestSuite.prototype.runTestCasesAndFinish):
175         (TestSuite.prototype.runTestCases):
176         (TestSuite.prototype.get passCount):
177         (TestSuite.prototype.get skipCount):
178         (TestSuite.prototype.addTestCase):
179         (AsyncTestSuite.prototype.runTestCasesAndFinish.finish):
180         (AsyncTestSuite.prototype.runTestCasesAndFinish):
181         (AsyncTestSuite.prototype.runTestCases):
182         (AsyncTestSuite):
183         (SyncTestSuite.prototype.runTestCasesAndFinish):
184         (SyncTestSuite.prototype.runTestCases):
185         (SyncTestSuite):
186         * UserInterface/TestStub.html:
187
188 2015-08-17  Brian Burg  <bburg@apple.com>
189
190         Web Inspector: load ProtocolTestStub from the WebInspectorUI bundle
191         https://bugs.webkit.org/show_bug.cgi?id=147955
192
193         Reviewed by Timothy Hatcher.
194
195         Move ProtocolTestStub.{html,js} into the actual WebInspectorUI project.
196
197         * UserInterface/Base/TestStub.js: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.js.
198         * UserInterface/TestStub.html: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.html.
199
200 2015-08-17  Simon Fraser  <simon.fraser@apple.com>
201
202         will-change should sometimes trigger compositing
203         https://bugs.webkit.org/show_bug.cgi?id=148072
204
205         Reviewed by Tim Horton.
206         
207         Have the web inspector show a correct compositing reason for will-change.
208         This could be improved to indicate which specific value in will-change triggered
209         the compositing.
210
211         * Localizations/en.lproj/localizedStrings.js:
212         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
213         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
214         (WebInspector.LayerTreeDetailsSidebarPanel):
215
216 2015-08-14  Matt Baker  <mattbaker@apple.com>
217
218         Web Inspector: NavigationBar.updateLayoutSoon should use requestAnimationFrame
219         https://bugs.webkit.org/show_bug.cgi?id=148010
220
221         Reviewed by Brian Burg.
222
223         NavigationBar.updateLayoutSoon now uses requestAnimationFrame instead of setTimeout.
224
225         * UserInterface/Views/NavigationBar.js:
226         (WebInspector.NavigationBar):
227         (WebInspector.NavigationBar.prototype.updateLayoutSoon.update):
228         (WebInspector.NavigationBar.prototype.updateLayoutSoon):
229         (WebInspector.NavigationBar.prototype.updateLayout):
230
231 2015-08-14  Devin Rousso  <drousso@apple.com>
232
233         Web Inspector: Add VisualStyleDetailsPanel
234         https://bugs.webkit.org/show_bug.cgi?id=147570
235
236         Reviewed by Timothy Hatcher.
237
238         Added VisualStyleDetailsPanel and inclusions to forthcoming classes
239         that will be used in this visual sidebar panel.
240
241         * Localizations/en.lproj/localizedStrings.js:
242         * UserInterface/Main.html:
243         Added files for all new classes used in the VisualStyleDetailsPanel.
244
245         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
246         (WebInspector.CSSStyleDetailsSidebarPanel):
247         * UserInterface/Views/DetailsSection.js:
248         (WebInspector.DetailsSection):
249         (WebInspector.DetailsSection.prototype.set collapsed):
250         (WebInspector.DetailsSection.prototype.get expandedByUser):
251         (WebInspector.DetailsSection.prototype._headerElementClicked):
252         Track whether or not the expanded state was caused by the user.
253
254         * UserInterface/Views/VisualStyleDetailsPanel.css: Added.
255         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header):
256         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .visual-style-section-clear):
257         (.sidebar > .panel.details.css-style .visual > .details-section .details-section:not(.modified) > .header > .visual-style-section-clear):
258         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > span):
259         (.sidebar > .panel.details.css-style .visual > .details-section .details-section.modified > .header > span::after):
260         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content):
261         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row):
262         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row:last-child):
263         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row.visual-style-separated-row):
264         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container > .visual-style-property-title):
265         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container:not(.layout-reversed):last-child):
266         (.sidebar > .panel.details.css-style .visual.disabled > .details-section:not(.visual-style-selector-section)):
267         (.sidebar > .panel.details.css-style .visual.disabled > .details-section:not(.visual-style-selector-section) input):
268
269         * UserInterface/Views/VisualStyleDetailsPanel.js: Added.
270         (WebInspector.VisualStyleDetailsPanel):
271         (WebInspector.VisualStyleDetailsPanel.prototype.refresh):
272         (WebInspector.VisualStyleDetailsPanel.prototype._generateSection.replaceDashWithCapital):
273         (WebInspector.VisualStyleDetailsPanel.prototype._generateSection.createOptionsElement):
274         (WebInspector.VisualStyleDetailsPanel.prototype._generateSection):
275         (WebInspector.VisualStyleDetailsPanel.prototype._prepareForChange):
276         (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
277         (WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
278         (WebInspector.VisualStyleDetailsPanel.prototype._updateAutocompleteCompatiblePropertyEditor):
279         (WebInspector.VisualStyleDetailsPanel.prototype._sectionModified):
280         (WebInspector.VisualStyleDetailsPanel.prototype._clearModifiedSection):
281         (WebInspector.VisualStyleDetailsPanel.prototype.get _initialTextList):
282         (WebInspector.VisualStyleDetailsPanel.prototype._initialPropertyTextModified):
283         (WebInspector.VisualStyleDetailsPanel.prototype._populateSection):
284         (WebInspector.VisualStyleDetailsPanel.prototype._populateDisplaySection):
285         (WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
286         (WebInspector.VisualStyleDetailsPanel.prototype._populatePositionSection):
287         (WebInspector.VisualStyleDetailsPanel.prototype._populateFloatSection):
288         (WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseover):
289         (WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseout):
290         (WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners):
291         (WebInspector.VisualStyleDetailsPanel.prototype._populateDimensionsSection):
292         (WebInspector.VisualStyleDetailsPanel.prototype._populateMarginSection):
293         (WebInspector.VisualStyleDetailsPanel.prototype._populatePaddingSection):
294         (WebInspector.VisualStyleDetailsPanel.prototype._populateFlexboxSection):
295         (WebInspector.VisualStyleDetailsPanel.prototype._populateTextStyleSection):
296         (WebInspector.VisualStyleDetailsPanel.prototype._populateFontSection):
297         (WebInspector.VisualStyleDetailsPanel.prototype._populateTextSpacingSection):
298         (WebInspector.VisualStyleDetailsPanel.prototype._populateTextShadowSection):
299         (WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
300         (WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
301         (WebInspector.VisualStyleDetailsPanel.prototype._populateOutlineSection):
302         (WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.noRemainingTreeItems):
303         (WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.selectedBoxShadowItemValueChanged):
304         (WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.boxShadowItemSelected):
305         (WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection):
306         (WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.noRemainingTreeItems):
307         (WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.selectedtransitionItemValueChanged):
308         (WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.transitionItemSelected):
309         (WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection):
310
311 2015-08-14  Devin Rousso  <drousso@apple.com>
312
313         Web Inspector: Highlight DOM node attribute changes in parallel, not sequentially
314         https://bugs.webkit.org/show_bug.cgi?id=148019
315
316         Reviewed by Brian Burg.
317
318         * UserInterface/Views/DOMTreeElement.js:
319         (WebInspector.DOMTreeElement.prototype._markNodeChanged):
320         (WebInspector.DOMTreeElement.prototype._nodeChangedAnimationEnd):
321         Now removes the animated element from the updated list once the animation ends.
322
323 2015-08-14  Matt Baker  <mattbaker@apple.com>
324
325         Web Inspector: Long delay when row selection changes in timeline data grids
326         https://bugs.webkit.org/show_bug.cgi?id=148005
327
328         Reviewed by Brian Burg.
329
330         Selecting a tree element in the Timelines sidebar generates multiple
331         WebInspector.ContentView.SelectionPathComponentsDidChange events, each of which
332         causes NavigationBar to update its layout (which is extremely expensive).
333
334         * UserInterface/Views/ContentBrowser.js:
335         (WebInspector.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
336         Call updateLayoutSoon instead of updateLayout to coalesce layout requests.
337
338         * UserInterface/Views/TimelineRecordingContentView.js:
339         (WebInspector.TimelineRecordingContentView.prototype._recordSelected):
340         When the selected record changes in the overview graph, make sure the record's tree element
341         isn't already selected. Reselecting the tree element results in an extra NavigationBar layout.
342
343 2015-08-14  Matt Baker  <mattbaker@apple.com>
344
345         Web Inspector: REGRESSION (r188396): Rendering Frames timeline ruler dividers are off by 1px
346         https://bugs.webkit.org/show_bug.cgi?id=148040
347
348         Reviewed by Brian Burg.
349
350         * UserInterface/Views/TimelineOverview.css:
351         (.timeline-overview.frames > .timeline-ruler > .markers > .divider):
352         (.timeline-overview.frames > .timeline-ruler > .header > .divider): Deleted.
353         All ruler dividers should be translated by the same amount.
354
355 2015-08-14  Devin Rousso  <drousso@apple.com>
356
357         Web Inspector: Style changes to Visual sidebar editors
358         https://bugs.webkit.org/show_bug.cgi?id=148021
359
360         Reviewed by Brian Burg.
361
362         Various style fixes and feature enhancements in some of the Visual style property editors.
363
364         * UserInterface/Views/VisualStyleColorPicker.css:
365         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
366         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):
367         (.visual-style-property-container.input-color-picker.multiple > .visual-style-property-value-container > .visual-style-multiple-property-placeholder):
368
369         * UserInterface/Views/VisualStyleKeywordCheckbox.css:
370         (.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input):
371         (.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::before):
372         (.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > input): Deleted.
373         (.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > div): Deleted.
374         Replaced the SVG image before the checkbox with a :before pseudo-element with content.
375
376         * UserInterface/Views/VisualStyleKeywordCheckbox.js:
377         (WebInspector.VisualStyleKeywordCheckbox):
378         Removed the SVG image before the checkbox.
379
380         * UserInterface/Views/VisualStyleKeywordPicker.js:
381         (WebInspector.VisualStyleKeywordPicker.prototype.get value):
382         (WebInspector.VisualStyleKeywordPicker.prototype.set value):
383         (WebInspector.VisualStyleKeywordPicker.prototype.set placeholder):
384         (WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
385         (WebInspector.VisualStyleKeywordPicker.prototype._getValue):
386         (WebInspector.VisualStyleKeywordPicker.prototype._setValue):
387         (WebInspector.VisualStyleKeywordPicker.prototype._generateSynthesizedValue):
388         (WebInspector.VisualStyleKeywordPicker.prototype._handleKeywordChanged):
389         Due to a current bug (https://webkit.org/b/147064), you cannot extend ES6 getters/setters.  In order to work
390         around this, a member function was added that performs the same action as the getter/setter, but can be extended.
391
392         * UserInterface/Views/VisualStylePropertyEditorLink.css:
393         (.visual-style-property-editor-link.linked > .visual-style-property-editor-link-border):
394         (.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon):
395
396         * UserInterface/Views/VisualStyleRelativeNumberSlider.js:
397         (WebInspector.VisualStyleRelativeNumberSlider):
398         (WebInspector.VisualStyleRelativeNumberSlider.prototype._resetSlider):
399         (WebInspector.VisualStyleRelativeNumberSlider.prototype._sliderChanged):
400
401         * UserInterface/Views/VisualStyleSelectorTreeItem.css:
402         (.item.visual-style-selector-item > input[type="checkbox"]):
403         (.item.visual-style-selector-item.selected > input[type="checkbox"]::before):
404         (.item.visual-style-selector-item.modified > .icon):
405         (.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title:focus):
406
407         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
408         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
409         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
410         Added another context menu item to show the source location for the selected rule.
411
412 2015-08-14  Devin Rousso  <drousso@apple.com>
413
414         Web Inspector: Add visual editors for CSS properties
415         https://bugs.webkit.org/show_bug.cgi?id=147576
416
417         Added parent class for property editors in the Visual style
418         details panel in the CSS sidebar.
419
420         Reviewed by Timothy Hatcher.
421
422         * UserInterface/Views/VisualStylePropertyCombiner.js: Added.
423         (WebInspector.VisualStylePropertyCombiner):
424         (WebInspector.VisualStylePropertyCombiner.prototype.get style):
425         (WebInspector.VisualStylePropertyCombiner.prototype.get synthesizedValue):
426         (WebInspector.VisualStylePropertyCombiner.prototype.modifyPropertyText):
427         (WebInspector.VisualStylePropertyCombiner.prototype.update):
428         (WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateCompatibleEditor):
429         (WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText):
430         (WebInspector.VisualStylePropertyCombiner.prototype.propertyMissing):
431         (WebInspector.VisualStylePropertyCombiner.prototype.resetEditorValues):
432         (WebInspector.VisualStylePropertyCombiner.prototype._markEditors):
433         (WebInspector.VisualStylePropertyCombiner.prototype._handlePropertyEditorValueChanged):
434
435         * UserInterface/Views/VisualStylePropertyEditor.css: Added.
436         (.visual-style-property-container):
437         (.visual-style-property-container > .visual-style-property-title):
438         (.visual-style-property-container > .visual-style-property-title > .property-reference-info):
439         (.visual-style-property-container.disabled > .visual-style-property-title > :not(.property-reference-info)):
440         (.visual-style-property-container > .visual-style-property-value-container):
441         (.visual-style-property-container.disabled > .visual-style-property-value-container):
442         (.visual-style-property-container > .visual-style-property-value-container select):
443         (.visual-style-property-container > .visual-style-property-value-container input):
444         (.visual-style-property-container.disabled > .visual-style-property-value-container input):
445         (.visual-style-property-container.layout-reversed > .visual-style-property-title):
446         (.visual-style-property-container > .visual-style-property-value-container > .visual-style-special-property-placeholder):
447         (.visual-style-property-info-popover):
448         (.visual-style-property-info-popover > h3):
449
450         * UserInterface/Views/VisualStylePropertyEditor.js: Added.
451         (WebInspector.VisualStylePropertyEditor.canonicalizeValues):
452         (WebInspector.VisualStylePropertyEditor):
453         (WebInspector.VisualStylePropertyEditor.prototype.get element):
454         (WebInspector.VisualStylePropertyEditor.prototype.get style):
455         (WebInspector.VisualStylePropertyEditor.prototype.get value):
456         (WebInspector.VisualStylePropertyEditor.prototype.set value):
457         (WebInspector.VisualStylePropertyEditor.prototype.get units):
458         (WebInspector.VisualStylePropertyEditor.prototype.set units):
459         (WebInspector.VisualStylePropertyEditor.prototype.get placeholder):
460         (WebInspector.VisualStylePropertyEditor.prototype.set placeholder):
461         (WebInspector.VisualStylePropertyEditor.prototype.get synthesizedValue):
462         (WebInspector.VisualStylePropertyEditor.prototype.set suppressStyleTextUpdate):
463         (WebInspector.VisualStylePropertyEditor.prototype.set masterProperty):
464         (WebInspector.VisualStylePropertyEditor.prototype.get masterProperty):
465         (WebInspector.VisualStylePropertyEditor.prototype.set optionalProperty):
466         (WebInspector.VisualStylePropertyEditor.prototype.get optionalProperty):
467         (WebInspector.VisualStylePropertyEditor.prototype.set colorProperty):
468         (WebInspector.VisualStylePropertyEditor.prototype.get colorProperty):
469         (WebInspector.VisualStylePropertyEditor.prototype.get propertyReferenceName):
470         (WebInspector.VisualStylePropertyEditor.prototype.set propertyReferenceName):
471         (WebInspector.VisualStylePropertyEditor.prototype.set disabled):
472         (WebInspector.VisualStylePropertyEditor.prototype.get disabled):
473         (WebInspector.VisualStylePropertyEditor.prototype.update):
474         (WebInspector.VisualStylePropertyEditor.prototype.updateEditorValues):
475         (WebInspector.VisualStylePropertyEditor.prototype.resetEditorValues):
476         (WebInspector.VisualStylePropertyEditor.prototype.modifyPropertyText):
477         (WebInspector.VisualStylePropertyEditor.prototype.getValuesFromText):
478         (WebInspector.VisualStylePropertyEditor.prototype.propertyMissing):
479         (WebInspector.VisualStylePropertyEditor.prototype.valueIsCompatible):
480         (WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedKeyword):
481         (WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedUnit):
482         (WebInspector.VisualStylePropertyEditor.prototype.get contentElement):
483         (WebInspector.VisualStylePropertyEditor.prototype.get specialPropertyPlaceholderElement):
484         (WebInspector.VisualStylePropertyEditor.prototype.parseValue):
485         (WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedKeyword):
486         (WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedUnit):
487         (WebInspector.VisualStylePropertyEditor.prototype._canonicalizedKeywordForKey):
488         (WebInspector.VisualStylePropertyEditor.prototype._keyForKeyword):
489         (WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
490         (WebInspector.VisualStylePropertyEditor.prototype._replaceShorthandPropertyWithLonghandProperties):
491         (WebInspector.VisualStylePropertyEditor.prototype._titleElementPrepareForClick):
492         (WebInspector.VisualStylePropertyEditor.prototype._titleElementMouseOver):
493         (WebInspector.VisualStylePropertyEditor.prototype._titleElementMouseOut):
494         (WebInspector.VisualStylePropertyEditor.prototype._titleElementClick):
495         (WebInspector.VisualStylePropertyEditor.prototype._hasMultipleConflictingValues):
496         (WebInspector.VisualStylePropertyEditor.prototype._showPropertyInfoPopover):
497         (WebInspector.VisualStylePropertyEditor.prototype._toggleTabbingOfSelectableElements):
498
499         * UserInterface/Views/VisualStyleTabbedPropertiesRow.css: Added.
500         (.visual-style-tabbed-properties-row ~ :not(.visible)):
501         (.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container):
502         (.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button):
503         (.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button.selected):
504         (.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button:not(.selected):hover):
505
506         * UserInterface/Views/VisualStyleTabbedPropertiesRow.js: Added.
507         (WebInspector.VisualStyleTabbedPropertiesRow):
508         (WebInspector.VisualStyleTabbedPropertiesRow.prototype._handleButtonClicked):
509
510 2015-08-14  Devin Rousso  <drousso@apple.com>
511
512         Web Inspector: Add Visual editors for CSS properties with comma separated values
513         https://bugs.webkit.org/show_bug.cgi?id=147578
514
515         Reviewed by Timothy Hatcher.
516
517         Displays comma separated CSS property values as a tree outline list.
518
519         * UserInterface/Images/Minus.svg: Added.
520         * UserInterface/Views/TreeOutline.js:
521         (WebInspector.TreeOutline.prototype.get selectedTreeElementIndex):
522         (WebInspector.TreeOutline):
523
524         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css: Added.
525         (.visual-style-property-container.comma-separated-keyword-editor):
526         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container):
527         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list):
528         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item):
529         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item:nth-child(odd)):
530         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.selected):
531         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > :matches(button, img)):
532         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles):
533         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item.selected:not(.editor-hidden) > .titles > *):
534         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item > .visual-style-comma-separated-keyword-item-editor):
535         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item.editor-hidden > .visual-style-comma-separated-keyword-item-editor):
536         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle):
537         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item:not(.no-value) > .titles > .subtitle):
538         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-controls):
539         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-controls > div):
540         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-controls > .visual-style-remove-comma-separated-keyword):
541
542         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js: Added.
543         (WebInspector.VisualStyleCommaSeparatedKeywordEditor):
544         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set selectedTreeElementValue):
545         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.get value):
546         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
547         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.get synthesizedValue):
548         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeElementSelected):
549         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeItemIsEmpty):
550         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._addEmptyCommaSeparatedKeyword):
551         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._removeSelectedCommaSeparatedKeyword):
552         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._removeEmptyCommaSeparatedKeywords):
553         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._addCommaSeparatedKeyword):
554         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._removeCommaSeparatedKeyword):
555         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._createNewTreeElement):
556
557         * UserInterface/Views/VisualStyleFontFamilyListEditor.js: Added.
558         (WebInspector.VisualStyleFontFamilyListEditor):
559         (WebInspector.VisualStyleFontFamilyListEditor.prototype.visualStyleCompletionsControllerCustomizeCompletionElement):
560         (WebInspector.VisualStyleFontFamilyListEditor.prototype.get hasCompletions):
561         (WebInspector.VisualStyleFontFamilyListEditor.prototype.set completions):
562         (WebInspector.VisualStyleFontFamilyListEditor.prototype._modifyCommaSeparatedKeyword):
563         (WebInspector.VisualStyleFontFamilyListEditor.prototype._addCommaSeparatedKeyword):
564         (WebInspector.VisualStyleFontFamilyListEditor.prototype._addEmptyCommaSeparatedKeyword):
565         (WebInspector.VisualStyleFontFamilyListEditor.prototype._completionClicked):
566         (WebInspector.VisualStyleFontFamilyListEditor.prototype._treeElementKeyDown):
567         (WebInspector.VisualStyleFontFamilyListEditor.prototype._treeElementKeywordChanged):
568         (WebInspector.VisualStyleFontFamilyListEditor.prototype._hideCompletions):
569         (WebInspector.VisualStyleFontFamilyListEditor.prototype._createNewTreeElement):
570
571         * UserInterface/Views/VisualStyleFontFamilyTreeElement.js: Added.
572         (WebInspector.VisualStyleFontFamilyTreeElement):
573         (WebInspector.VisualStyleFontFamilyTreeElement.prototype.editorBounds):
574         (WebInspector.VisualStyleFontFamilyTreeElement.prototype.updateMainTitle):
575         (WebInspector.VisualStyleFontFamilyTreeElement.prototype.showKeywordEditor):
576         (WebInspector.VisualStyleFontFamilyTreeElement.prototype.hideKeywordEditor):
577         (WebInspector.VisualStyleFontFamilyTreeElement.prototype.get keywordEditorHidden):
578         (WebInspector.VisualStyleFontFamilyTreeElement.prototype.onattach):
579         (WebInspector.VisualStyleFontFamilyTreeElement.prototype.ondeselect):
580         (WebInspector.VisualStyleFontFamilyTreeElement.prototype._keywordEditorKeyDown):
581         (WebInspector.VisualStyleFontFamilyTreeElement.prototype._keywordEditorKeyUp):
582         (WebInspector.VisualStyleFontFamilyTreeElement.prototype._keywordEditorBlurred):
583
584 2015-08-14  Devin Rousso  <drousso@apple.com>
585
586         Web Inspector: Add autocomplete controller for Visual property editors
587         https://bugs.webkit.org/show_bug.cgi?id=147579
588
589         Reviewed by Timothy Hatcher.
590
591         * UserInterface/Controllers/VisualStyleCompletionsController.js: Added.
592         (WebInspector.VisualStyleCompletionsController):
593         Takes in a CSSCompletions and displays a list of suggestions based on a given prefix in a popover.
594         (WebInspector.VisualStyleCompletionsController.prototype.get visible):
595         (WebInspector.VisualStyleCompletionsController.prototype.get hasCompletions):
596         (WebInspector.VisualStyleCompletionsController.prototype.get currentCompletion):
597         (WebInspector.VisualStyleCompletionsController.prototype.set completions):
598         (WebInspector.VisualStyleCompletionsController.prototype.completionSuggestionsViewCustomizeCompletionElement):
599         (WebInspector.VisualStyleCompletionsController.prototype.previous):
600         (WebInspector.VisualStyleCompletionsController.prototype.next):
601         (WebInspector.VisualStyleCompletionsController.prototype.update):
602         (WebInspector.VisualStyleCompletionsController.prototype.show):
603         (WebInspector.VisualStyleCompletionsController.prototype.hide):
604
605         * UserInterface/Models/CSSKeywordCompletions.js:
606         (WebInspector.CSSKeywordCompletions.forProperty):
607         Make sure that the cssNameCompletions exist before trying to add them.
608
609         * UserInterface/Views/CompletionSuggestionsView.js:
610         (WebInspector.CompletionSuggestionsView.prototype.update):
611         Allow the delegate to modify the newly created completion suggestion item.
612
613 2015-08-14  Devin Rousso  <drousso@apple.com>
614
615         Web Inspector: Add a visual editor for timing functions
616         https://bugs.webkit.org/show_bug.cgi?id=148022
617
618         Reviewed by Timothy Hatcher.
619
620         Uses the existing bezier editor and the Visual keyword picker to make an editor for timing functions.
621
622         * UserInterface/Views/VisualStyleTimingEditor.css: Added.
623         (.visual-style-property-container.timing-editor > .visual-style-property-value-container):
624         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .keyword-picker-select):
625         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor):
626         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:hover):
627         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:active):
628
629         * UserInterface/Views/VisualStyleTimingEditor.js: Added.
630         (WebInspector.VisualStyleTimingEditor):
631         (WebInspector.VisualStyleTimingEditor.prototype.parseValue):
632         (WebInspector.VisualStyleTimingEditor.prototype.get bezierValue):
633         (WebInspector.VisualStyleTimingEditor.prototype.set bezierValue):
634         (WebInspector.VisualStyleTimingEditor.prototype._getValue):
635         (WebInspector.VisualStyleTimingEditor.prototype._setValue):
636         (WebInspector.VisualStyleTimingEditor.prototype._generateSynthesizedValue):
637         (WebInspector.VisualStyleTimingEditor.prototype._bezierMarkerClicked):
638         (WebInspector.VisualStyleTimingEditor.prototype._handleKeywordChanged):
639
640 2015-08-13  Nikita Vasilyev  <nvasilyev@apple.com>
641
642         Web Inspector: Can't resize split console when window is too narrow
643         https://bugs.webkit.org/show_bug.cgi?id=147924
644
645         Make some items inside of the navigation bar click-through to incsease
646         the draggable area.
647
648         Reviewed by Timothy Hatcher.
649
650         * UserInterface/Views/Main.css:
651         (#split-content-browser > .navigation-bar > :matches(.hierarchical-path, .log-search-bar, .log-scope-bar)):
652         (#split-content-browser > .navigation-bar > :matches(.log-search-bar, .log-scope-bar) > :matches(li, input)):
653
654 2015-08-13  Devin Rousso  <drousso@apple.com>
655
656         Web Inspector: Flash DOM node attribute on change
657         https://bugs.webkit.org/show_bug.cgi?id=147973
658
659         Reviewed by Timothy Hatcher.
660
661         Whenever an attribute on a DOM node changes, flash the attribute value.
662         If that value doesn't exist, flash the attribute name instead.
663
664         * UserInterface/Views/DOMTreeElement.js:
665         (WebInspector.DOMTreeElement):
666         (WebInspector.DOMTreeElement.prototype.nodeChanged):
667         (WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
668         If the node has been marked with a general change, mark the attribute element for animation.
669         (WebInspector.DOMTreeElement.prototype._markNodeChanged.animationEnd):
670         (WebInspector.DOMTreeElement.prototype._markNodeChanged):
671         Adds a class to the given element that applies a simple background flash animation.
672         (WebInspector.DOMTreeElement.prototype._fireDidChange):
673         Add the animation class once all building of the represented DOM object for that node is done.
674
675         * UserInterface/Views/DOMTreeOutline.css:
676         (@keyframes node-state-changed):
677         Applies a semi-transparent background that fades to default.
678         (.node-state-changed):
679
680         * UserInterface/Views/DOMTreeUpdater.js:
681         (WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
682         Now passes along the name of the modified attribute.
683         (WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
684         If the modified node object has an attribute member, mark the node as being generally changed.
685
686 2015-08-13  Devin Rousso  <drousso@apple.com>
687
688         REGRESSION (r184000): Web Inspector: Stripped whitespace after editing CSS in Styles sidebar
689         https://bugs.webkit.org/show_bug.cgi?id=145679
690
691         Reviewed by Timothy Hatcher.
692
693         The formatter will now calculate the number of beginning spaces before the first line in a rule
694         and duplicate them in front of every other line.  If there is no new line at the beginning or are
695         no spaces, assume 4 spaces and a new line for each property.
696         Also cleaned up the code for _resetContent a bit.
697
698         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
699         (WebInspector.CSSStyleDeclarationTextEditor):
700         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.set get this):
701         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.get this):
702         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
703         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):
704
705 2015-08-13  Matt Baker  <mattbaker@apple.com>
706
707         Web Inspector: Skip rendering frame records without children
708         https://bugs.webkit.org/show_bug.cgi?id=147993
709
710         Reviewed by Reviewed by Joseph Pecoraro.
711
712         This became an issue for frames which include an IndexedDB "success" event. This caused the
713         payload to pass the "has children" test, but resulted in model objects with no child records.
714
715         * UserInterface/Controllers/TimelineManager.js:
716         (WebInspector.TimelineManager.prototype.eventRecorded):
717         Fixed record type check and moved rendering frame index assignment.
718
719         * UserInterface/Models/RenderingFrameTimelineRecord.js:
720         (WebInspector.RenderingFrameTimelineRecord):
721         (WebInspector.RenderingFrameTimelineRecord.prototype.setupFrameIndex):
722         Frame index is now set externally, and can only be set once.
723
724         * UserInterface/Views/RenderingFrameTimelineView.js:
725         (WebInspector.RenderingFrameTimelineView.prototype._renderingFrameTimelineRecordAdded):
726         Added assertion.
727
728 2015-08-13  Joseph Pecoraro  <pecoraro@apple.com>
729
730         Web Inspector: Watch Expressions
731         https://bugs.webkit.org/show_bug.cgi?id=147904
732
733         Reviewed by Brian Burg.
734
735         * UserInterface/Protocol/RemoteObject.js:
736         (WebInspector.RemoteObject):
737         A RemoteObject's description string is optional, but we always
738         assume it exists and is a string, so default to the empty string.
739
740         * UserInterface/Controllers/RuntimeManager.js:
741         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow.evalCallback):
742         Include the object group in the DidEvaluate event.
743
744         (WebInspector.RemoteObject.fakeRemoteObject):
745         (WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
746         (WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties.get return):
747         (WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties):
748         (WebInspector.RemoteObject.prototype._isFakeObject):
749         (WebInspector.RemoteObject.prototype._getPropertyDescriptors):
750         (WebInspector.RemoteObject.prototype._deprecatedGetProperties):
751         Support a fake RemoteObject. We use this fake RemoteObject to
752         back a ObjectTreeView where we add custom Properties which are of the form
753         "Expressions => RemoteObject" instead of "Object Property => RemoteObject".
754         Ensure a fake remote object is not used in unexpected ways.
755
756         * UserInterface/Views/Popover.js:
757         (WebInspector.Popover.prototype.update):
758         Default a popover update to animate, but allow not animating.
759
760         (WebInspector.Popover.prototype.handleEvent):
761         Vend a class that other content can use so that the Popover won't
762         dismiss if content with that class is scrolled. For example, a
763         completions list may be showing over a popover, if that scrolls
764         it should not dismiss the popover.
765
766         * UserInterface/Views/CompletionSuggestionsView.js:
767         (WebInspector.CompletionSuggestionsView):
768         Adopt the Popover ignore class so a popover won't dismiss if the
769         completion suggestions view is scrolled.
770
771         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
772         (WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement.get return):
773         (WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement):
774         Allow modifying the context menu on an ObjectTreeView by looking for a delegate
775         on the TreeOutline.
776
777         * UserInterface/Views/ScopeChainDetailsSidebarPanel.css: Added.
778         (.details-section.watch-expressions .options > *):
779         (.details-section.watch-expressions .options > *:active):
780         (.details-section.watch-expressions .options > .watch-expression-add):
781         (.details-section.watch-expressions .options > .watch-expression-clear):
782         (.details-section.watch-expressions .options > .watch-expression-refresh):
783         (.popover .watch-expression):
784         (.watch-expression-editor):
785         (.watch-expression-editor > .CodeMirror):
786         (.watch-expression-editor > .CodeMirror-scroll):
787         Styles for the new Watch Expressions section, buttons, popover, and editor.
788
789         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
790         (WebInspector.ScopeChainDetailsSidebarPanel):
791         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.inspect):
792         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
793         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
794         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
795         Because we update the UI after a delay, to allow ObjectTreeView's to asynchronously
796         expand and fetch their list of properties, we convert updating the watch expression
797         and call frame sections asynchronously and return a promise. This lets us visually
798         update the UI after both sections have updated.
799
800         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpression):
801         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._removeWatchExpression):
802         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressions):
803         Modify the saved list of watch expressions.
804
805         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.presentPopoverOverTargetElement):
806         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.this._codeMirror.addKeyMap):
807         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
808         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.willDismissPopover):
809         Handle presenting and dismissing the add watch expression popover.
810
811         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._refreshAllWatchExpressionsButtonClicked):
812         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressionsButtonClicked):
813         Other button handlers.
814
815         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._mainResourceDidChange):
816         Refresh the sidebar on navigation, as the watch expressions may change value (`location.href`).
817
818         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeElementAddContextMenuItems):
819         Add our own context menu items to watch expression ObjectTreeView tree elements to
820         allow removing a watch expression.
821
822         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._propertyPathIdentifierForTreeElement):
823         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeAddHandler):
824         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler):
825         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler):
826         Convert code to use `let`.
827
828         * Localizations/en.lproj/localizedStrings.js:
829         * UserInterface/Main.html:
830         Misc. changes.
831
832 2015-08-13  Joseph Pecoraro  <pecoraro@apple.com>
833
834         Web Inspector: A {Map, WeakMap, Set, WeakSet} object contains itself will hang the console
835         https://bugs.webkit.org/show_bug.cgi?id=147966
836
837         Reviewed by Timothy Hatcher.
838
839         * UserInterface/Views/ObjectPreviewView.js:
840         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
841         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
842         For empty overflow previews, don't show ", ..." if we didn't show any
843         values; just show "..." in these cases.
844
845 2015-08-13  Matt Baker  <mattbaker@apple.com>
846
847         Web Inspector: Hide child rows for filtered tasks in the Rendering Frames data grid
848         https://bugs.webkit.org/show_bug.cgi?id=147960
849
850         Reviewed by Timothy Hatcher.
851
852         * UserInterface/Models/RenderingFrameTimelineRecord.js:
853         (WebInspector.RenderingFrameTimelineRecord.taskTypeForTimelineRecord):
854         New static method for mapping TimelineRecords to rendering frame tasks.
855         (WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask):
856         Refactored to use taskTypeForTimelineRecord.
857
858         * UserInterface/Views/TimelineSidebarPanel.js:
859         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
860         Task filtering is applied to children of the frame record only. Parent frame
861         record is hidden by default, and visible by virtue of having unfiltered children.
862
863 2015-08-13  Matt Baker  <mattbaker@apple.com>
864
865         Web Inspector: Clearing frames timeline doesn't remove current time marker
866         https://bugs.webkit.org/show_bug.cgi?id=147650
867
868         Reviewed by Timothy Hatcher.
869
870         The rendering frames timeline offsets all markers by 1px to align them on frame
871         boundaries, which causes the current time marker to be visible even with left: 0px.
872         We can exclude the current time marker without it being noticable during recording.
873
874         * UserInterface/Views/TimelineOverview.css:
875
876 2015-08-13  Nikita Vasilyev  <nvasilyev@apple.com>
877
878         REGRESSION (r188325): Web Inspector: Fix vertical spacing in CodeMirror
879         https://bugs.webkit.org/show_bug.cgi?id=147971
880
881         r188325 inceased line-height by 2px. Remove top and bottom 1px padding
882         to compensate for line-height changes.
883
884         In the feature we may highlight the backgroud of text tokens (e.g. for the
885         heatmap profiler) so we would want to get rid of the gaps between the lines
886         (caused by the paddind) regardless of this regression.
887
888         Reviewed by Timothy Hatcher.
889
890         * UserInterface/Views/CodeMirrorOverrides.css:
891         (.CodeMirror pre):
892
893 2015-08-12  Joseph Pecoraro  <pecoraro@apple.com>
894
895         Web Inspector: Sometimes CSS resources don't update after editing via Styles panel
896         https://bugs.webkit.org/show_bug.cgi?id=143244
897
898         Reviewed by Timothy Hatcher.
899
900         * UserInterface/Models/SourceCode.js:
901         (WebInspector.SourceCode.prototype._processContent):
902         This code is brittle and we should move off of putting the
903         possibly stale content in the Promise result.
904
905         * UserInterface/Views/ResourceContentView.js:
906         (WebInspector.ResourceContentView.prototype._contentAvailable):
907         * UserInterface/Views/SourceCodeTextEditor.js:
908         (WebInspector.SourceCodeTextEditor.prototype._contentAvailable):
909         * UserInterface/Models/Script.js:
910         (WebInspector.Script.prototype.requestScriptSyntaxTree):
911         Use the current source code's content.
912
913 2015-08-12  Joseph Pecoraro  <pecoraro@apple.com>
914
915         Web Inspector: Fix Poor Class Names
916         https://bugs.webkit.org/show_bug.cgi?id=147958
917
918         Reviewed by Timothy Hatcher.
919
920         * UserInterface/Views/ClusterContentView.js:
921         * UserInterface/Views/ResourceContentView.js:
922
923 2015-08-12  Devin Rousso  <drousso@apple.com>
924
925         Web Inspector: Opening the Elements tab without a selected sidebar panel causes a crash
926         https://bugs.webkit.org/show_bug.cgi?id=147965
927
928         Reviewed by Timothy Hatcher.
929
930         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
931         (WebInspector.CSSStyleDetailsSidebarPanel):
932         If the saved setting for the selectedPanel does not exist, default to the rules panel.
933
934         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
935         Only save the new navigationItem info if the selectedPanel exists.
936
937 2015-08-12  Matt Baker  <mattbaker@apple.com>
938
939         Web Inspector: Remove clamp and adopt Number.constrain
940         https://bugs.webkit.org/show_bug.cgi?id=147952
941
942         Reviewed by Timothy Hatcher.
943
944         * UserInterface/Base/Utilities.js:
945         Removed clamp function.
946
947         * UserInterface/Views/BezierEditor.js:
948         (WebInspector.BezierEditor.prototype._updateControlPointsForMouseEvent):
949         * UserInterface/Views/ProfileNodeDataGridNode.js:
950         (WebInspector.ProfileNodeDataGridNode.prototype.updateRangeTimes):
951         * UserInterface/Views/ScriptTimelineDataGridNode.js:
952         (WebInspector.ScriptTimelineDataGridNode.prototype.updateRangeTimes):
953         * UserInterface/Views/TimelineRuler.js:
954         (WebInspector.TimelineRuler.prototype._updateSelection):
955         Replaced instances of clamp with Number.constrain.
956
957 2015-08-12  Joseph Pecoraro  <pecoraro@apple.com>
958
959         Web Inspector: DOM Node should have context menu to scroll it into view on the inspected page
960         https://bugs.webkit.org/show_bug.cgi?id=147913
961
962         Reviewed by Timothy Hatcher.
963
964         * Localizations/en.lproj/localizedStrings.js:
965         * UserInterface/Views/DOMTreeElement.js:
966         (WebInspector.DOMTreeElement.prototype._updateChildren.set continue):
967         (WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
968         Add a context menu item to scroll into view for element nodes.
969
970         (WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode.scrollIntoView):
971         (WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode):
972         (WebInspector.DOMTreeElement.prototype._scrollIntoView):
973         Call scrollIntoViewIfNeeded on the real Node.
974
975         * UserInterface/Views/DOMTreeOutline.js:
976         (WebInspector.DOMTreeOutline.prototype.populateContextMenu):
977         Remove unused parameter.
978
979         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
980         (WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
981         Add context menu for Nodes in ObjectTrees.
982
983 2015-08-12  Dan Bernstein  <mitz@apple.com>
984
985         Removed the executable bit from non-executable source.
986
987         * UserInterface/External/CodeMirror/LICENSE: Removed property svn:executable.
988         * UserInterface/External/CodeMirror/clojure.js: Removed property svn:executable.
989         * UserInterface/External/CodeMirror/closebrackets.js: Removed property svn:executable.
990         * UserInterface/External/CodeMirror/codemirror.css: Removed property svn:executable.
991         * UserInterface/External/CodeMirror/codemirror.js: Removed property svn:executable.
992         * UserInterface/External/CodeMirror/coffeescript.js: Removed property svn:executable.
993         * UserInterface/External/CodeMirror/comment.js: Removed property svn:executable.
994         * UserInterface/External/CodeMirror/css.js: Removed property svn:executable.
995         * UserInterface/External/CodeMirror/htmlmixed.js: Removed property svn:executable.
996         * UserInterface/External/CodeMirror/javascript.js: Removed property svn:executable.
997         * UserInterface/External/CodeMirror/livescript.js: Removed property svn:executable.
998         * UserInterface/External/CodeMirror/matchbrackets.js: Removed property svn:executable.
999         * UserInterface/External/CodeMirror/overlay.js: Removed property svn:executable.
1000         * UserInterface/External/CodeMirror/placeholder.js: Removed property svn:executable.
1001         * UserInterface/External/CodeMirror/runmode.js: Removed property svn:executable.
1002         * UserInterface/External/CodeMirror/sass.js: Removed property svn:executable.
1003         * UserInterface/External/CodeMirror/searchcursor.js: Removed property svn:executable.
1004         * UserInterface/External/CodeMirror/sql.js: Removed property svn:executable.
1005         * UserInterface/External/CodeMirror/xml.js: Removed property svn:executable.
1006
1007 2015-08-11  Matt Baker  <mattbaker@apple.com>
1008
1009         Web Inspector: TimelineView data not cleared when recording is reset
1010         https://bugs.webkit.org/show_bug.cgi?id=147916
1011
1012         Reviewed by Timothy Hatcher.
1013
1014         Each derived timeline view maintains a separate array of timeline records. These weren't
1015         cleared on reset, so switching to a timeline view after clearing the recording caused
1016         the view to populate its tree outline.
1017
1018         * UserInterface/Views/LayoutTimelineView.js:
1019         (WebInspector.LayoutTimelineView.set columns):
1020         (WebInspector.LayoutTimelineView):
1021         * UserInterface/Views/NetworkTimelineView.js:
1022         (WebInspector.NetworkTimelineView.set columns):
1023         (WebInspector.NetworkTimelineView):
1024         * UserInterface/Views/OverviewTimelineView.js:
1025         (WebInspector.OverviewTimelineView.prototype.reset):
1026         (WebInspector.OverviewTimelineView.prototype._processPendingRepresentedObjects):
1027         * UserInterface/Views/RenderingFrameTimelineView.js:
1028         (WebInspector.RenderingFrameTimelineView.prototype.reset):
1029         * UserInterface/Views/ScriptTimelineView.js:
1030         (WebInspector.ScriptTimelineView.prototype.reset):
1031
1032 2015-08-11  Matt Baker  <mattbaker@apple.com>
1033
1034         Web Inspector: Dragging a timeline ruler handle when both handles clamped is broken
1035         https://bugs.webkit.org/show_bug.cgi?id=147912
1036
1037         Reviewed by Timothy Hatcher.
1038
1039         When clamped handles overlap, the handle nearest in time to the ruler's edge should be visible and
1040         clickable, and the other should be hidden. This change ensures that clicking and dragging a ruler
1041         handle to modify a selection outside the visible area works correctly.
1042
1043         * UserInterface/Views/TimelineOverview.css:
1044         (.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.right):
1045         Style adjustment for rendering frames, which offsets the right handle by 5px instead of 4px.
1046         (.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.right):
1047         Style adjustment for rendering frames, which offsets the right shaded area by 1px.
1048         (.timeline-overview.frames > .timeline-ruler > .selection-handle.right): Deleted.
1049         (.timeline-overview.frames > .timeline-ruler > .shaded-area.right): Deleted.
1050
1051         * UserInterface/Views/TimelineRuler.css:
1052         (.timeline-ruler.both-handles-clamped > .selection-handle):
1053         Updated handle style when both are clamped.
1054         (.timeline-ruler > .selection-handle.clamped.hidden):
1055         Hide the clamped handle that is beneath the other clamped handle.
1056
1057         * UserInterface/Views/TimelineRuler.js:
1058         (WebInspector.TimelineRuler.prototype._updateSelection):
1059
1060
1061 2015-08-11  Devin Rousso  <drousso@apple.com>
1062
1063         Web Inspector: Disabling attribute styles should not be possible
1064         https://bugs.webkit.org/show_bug.cgi?id=147922
1065
1066         Reviewed by Timothy Hatcher.
1067
1068         * UserInterface/Views/CSSStyleDeclarationSection.js:
1069         (WebInspector.CSSStyleDeclarationSection):
1070         Increases the specificity of the if statement that adds rule disable state toggling to the icon.
1071
1072 2015-08-11  Devin Rousso  <drousso@apple.com>
1073
1074         Web Inspector: Update to CodeMirror 5.5 or later
1075         https://bugs.webkit.org/show_bug.cgi?id=147109
1076
1077         Reviewed by Timothy Hatcher.
1078
1079         Updated CodeMirror to version 5.5, as well as the extension files for CodeMirror
1080         that are currently used in WebInspector.
1081
1082         * Localizations/en.lproj/localizedStrings.js:
1083         * Tools/PrettyPrinting/FormatterDebug.js:
1084         Added WebInspector namespace for formatters.
1085
1086         * Tools/PrettyPrinting/index.html:
1087         Added WebInspector namespace for formatters.
1088
1089         * UserInterface/External/CodeMirror/LICENSE:
1090         * UserInterface/External/CodeMirror/clojure.js:
1091         * UserInterface/External/CodeMirror/closebrackets.js:
1092         * UserInterface/External/CodeMirror/codemirror.css:
1093         * UserInterface/External/CodeMirror/codemirror.js:
1094         * UserInterface/External/CodeMirror/coffeescript.js:
1095         * UserInterface/External/CodeMirror/comment.js:
1096         * UserInterface/External/CodeMirror/css.js:
1097         * UserInterface/External/CodeMirror/htmlmixed.js:
1098         * UserInterface/External/CodeMirror/javascript.js:
1099         * UserInterface/External/CodeMirror/livescript.js:
1100         * UserInterface/External/CodeMirror/matchbrackets.js:
1101         * UserInterface/External/CodeMirror/overlay.js:
1102         * UserInterface/External/CodeMirror/sass.js:
1103         * UserInterface/External/CodeMirror/searchcursor.js:
1104         * UserInterface/External/CodeMirror/sql.js:
1105         * UserInterface/External/CodeMirror/xml.js:
1106         * UserInterface/Views/CodeMirrorFormatters.js:
1107         Now uses the new token in CodeMirror for media query parenthesis.
1108
1109         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1110         (.css-style-text-editor > .CodeMirror pre):
1111         Removed the additional vertical padding.
1112
1113         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1114         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown):
1115         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
1116         Clicking on the end of a line in a style will now correctly insert a new line.
1117
1118         * UserInterface/Views/ComputedStyleDetailsPanel.css:
1119         (.details-section > .content > .group > .row .CodeMirror-code pre .go-to-arrow):
1120         The go-to arrow now has the proper dimensions.
1121
1122         * UserInterface/Views/HoverMenu.css:
1123         (.hover-menu > img):
1124         * UserInterface/Views/SourceCodeTextEditor.css:
1125         (.hover-menu.color > img):
1126
1127 2015-08-11  Matt Baker  <mattbaker@apple.com>
1128
1129         Web Inspector: Add the ability to filter out tasks in the Rendering Frames timeline
1130         https://bugs.webkit.org/show_bug.cgi?id=147389
1131
1132         Reviewed by Timothy Hatcher.
1133
1134         Added filtering by task type to the Rendering Frames timeline view. Legend item checkboxes
1135         in the timeline sidebar toggle filtering for the corresponding task. The "Other" category
1136         cannot be filtered, since all rendering frame records include some "other" time in addition to
1137         child records from at least one additional task type.
1138
1139         A row is filtered (hidden) from the data grid when the corresponding rendering frame has no
1140         unfiltered child records.
1141
1142         * UserInterface/Base/Main.js:
1143         (WebInspector._windowFocused):
1144         (WebInspector._windowBlurred):
1145         Added inactive style for docked window.
1146
1147         * UserInterface/Views/ChartDetailsSectionRow.css:
1148         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > .color-key):
1149         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label):
1150         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > input[type=checkbox]):
1151         (body.window-inactive .details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > input[type=checkbox]):
1152         (.details-section > .content > .group > .row.chart > .defs-only):
1153         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label > .color-swatch): Deleted.
1154         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label): Deleted.
1155         Switched to label elements, added checkbox styles, and updated color swatch style for non-checkbox items.
1156
1157         * UserInterface/Views/ChartDetailsSectionRow.js:
1158         (WebInspector.ChartDetailsSectionRow):
1159         Added svg filter container and style sheet element.
1160         (WebInspector.ChartDetailsSectionRow.prototype.set data):
1161         (WebInspector.ChartDetailsSectionRow.prototype._createLegend.createGammaPrimitive):
1162         (WebInspector.ChartDetailsSectionRow.prototype._createLegend.createCheckboxFilterElement):
1163         Helper function to create an svg:filter to blend legend key color over the native checkbox element.
1164         Filter assumes grayscale input, and each checkbox requires a separate filter.
1165         (WebInspector.ChartDetailsSectionRow.prototype._createLegend):
1166         Creates legend items, svg filters, and checkbox style sheet.
1167         (WebInspector.ChartDetailsSectionRow.prototype._legendItemCheckboxValueChanged):
1168         Repackage and forward checkbox changed event.
1169         (WebInspector.ChartDetailsSectionRow.prototype._createLegendItem): Deleted.
1170         Logic moved to WebInspector.ChartDetailsSectionRow.prototype._createLegend.
1171
1172         * UserInterface/Views/TimelineSidebarPanel.js:
1173         Added set of rendering frame task types against which tree elements can be filtered.
1174         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
1175         If filter is not empty, check ancestor rendering frame record for unfiltered data.
1176         (WebInspector.TimelineSidebarPanel.prototype._frameSelectionLegendItemChecked):
1177         Update task filter in response when legend items are checked/unchecked.
1178
1179 2015-08-11  Brent Fulgham  <bfulgham@apple.com>
1180
1181         [Win] Switch Windows build to Visual Studio 2015
1182         https://bugs.webkit.org/show_bug.cgi?id=147887
1183         <rdar://problem/22235098>
1184
1185         Reviewed by Alex Christensen.
1186
1187         Update Visual Studio project file settings to use the current Visual
1188         Studio and compiler. Continue targeting binaries to run on our minimum
1189         supported configuration of Windows 7.
1190
1191         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1192
1193 2015-08-11  Brian Burg  <bburg@apple.com>
1194
1195         Web Inspector: Agent commands do not actually return a promise when expected
1196         https://bugs.webkit.org/show_bug.cgi?id=138665
1197
1198         Reviewed by Timothy Hatcher.
1199
1200         This patch unifies the handling of different invocation and dispatch modes in the
1201         InspectorBackend protocol system. Command responses are dispatched to a provided
1202         callback function; if no function was provided, then the command returns a promise.
1203
1204         Rather than awkwardly converting between promises and callbacks at invocation and
1205         response dispatch time, the backend now stores the callback or promise thunks and
1206         knows how to invoke each when the response comes. This mirrors how response handling
1207         works in ProtocolTestStub.js. InspectorBackend includes more machinery to support Agent
1208         objects and various debug flags.
1209
1210         Performanace impact is expected to be negligible, because there are relatively
1211         few commands issued by the inspector frontend and returned promises are short-lived.
1212
1213         Remove all uses of Command.prototype.promise, since it is no longer necessary.
1214
1215         * UserInterface/Base/Test.js:
1216         (InspectorTest.reloadPage):
1217         * UserInterface/Controllers/ReplayManager.js:
1218         (WebInspector.ReplayManager.prototype.getSession.get var):
1219         (WebInspector.ReplayManager.getSegment.get var):
1220         * UserInterface/Models/ReplaySession.js:
1221         (WebInspector.ReplaySession.prototype.segmentsChanged):
1222         * UserInterface/Models/Resource.js:
1223         (WebInspector.Resource.prototype.requestContentFromBackend):
1224         * UserInterface/Models/Script.js:
1225         (WebInspector.Script.prototype.requestContentFromBackend):
1226         * UserInterface/Models/SourceMapResource.js:
1227         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
1228         * UserInterface/Protocol/InspectorBackend.js:
1229         (InspectorBackendClass):
1230         (InspectorBackendClass.prototype.dispatch):
1231         (InspectorBackendClass.prototype.runAfterPendingDispatches):
1232         (InspectorBackendClass.prototype._sendCommandToBackendWithCallback.set this):
1233         (InspectorBackendClass.set this):
1234         (InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
1235         (InspectorBackendClass.prototype._dispatchResponseToCallback):
1236         (InspectorBackendClass.prototype._dispatchResponseToPromise):
1237         (InspectorBackendClass.prototype._flushPendingScripts):
1238         (InspectorBackend.Command.prototype.invoke):
1239         (InspectorBackend.Command.prototype._invokeWithArguments):
1240         (InspectorBackendClass.prototype._willSendMessageToBackend.set return): Deleted.
1241         (InspectorBackendClass._dispatchCallback.get if): Deleted.
1242         (InspectorBackendClass.prototype._willSendMessageToBackend): Deleted.
1243         (InspectorBackendClass.prototype._invokeCommand): Deleted.
1244         (.callable): Deleted.
1245         (InspectorBackend.Command.create): Deleted.
1246         (InspectorBackend.Command.prototype.promise): Deleted.
1247
1248 2015-08-11  Devin Rousso  <drousso@apple.com>
1249
1250         Web Inspector: Hovering over an element in the Elements tab should highlight the whole line
1251         https://bugs.webkit.org/show_bug.cgi?id=147855
1252
1253         Reviewed by Brian Burg.
1254
1255         * UserInterface/Views/DOMTreeOutline.css:
1256         (.dom-tree-outline li.hovered:not(.selected) .selection):
1257         Removed the horizontal positioning and border radius.
1258
1259 2015-08-10  Devin Rousso  <drousso@apple.com>
1260
1261         Web Inspector: Add numerical input and slider based Visual editors for CSS properties
1262         https://bugs.webkit.org/show_bug.cgi?id=147712
1263
1264         Reviewed by Brian Burg.
1265
1266         Added editors for CSS properties with numerical values for use in the Visual style
1267         details panel in the CSS sidebar, in the form of a combined select and input or an
1268         input range.  Also added optional visual linkages to sync values between multiple
1269         editors of this type.
1270
1271         * UserInterface/Images/VisualStylePropertyLinked.svg: Added.
1272         * UserInterface/Images/VisualStylePropertyUnlinked.svg: Added.
1273
1274         * UserInterface/Views/VisualStyleNumberInputBox.css: Added.
1275         (.visual-style-property-container > .visual-style-property-value-container.focused > .focus-ring):
1276         (.visual-style-property-container > .visual-style-property-value-container > .number-input-keyword-select):
1277         (.visual-style-property-container > .visual-style-property-value-container > .number-input-container):
1278         (.visual-style-property-container > .visual-style-property-value-container:not(.number-input-editable) > .number-input-container):
1279         (.visual-style-property-container > .visual-style-property-value-container > .number-input-container > .number-input-value):
1280         (.visual-style-property-container > .visual-style-property-value-container > .number-input-container > span):
1281
1282         * UserInterface/Views/VisualStyleNumberInputBox.js: Added.
1283         (WebInspector.VisualStyleNumberInputBox):
1284         (WebInspector.VisualStyleNumberInputBox.prototype.get value):
1285         (WebInspector.VisualStyleNumberInputBox.prototype.set value):
1286         (WebInspector.VisualStyleNumberInputBox.prototype.get units):
1287         (WebInspector.VisualStyleNumberInputBox.prototype.set units):
1288         (WebInspector.VisualStyleNumberInputBox.prototype.get placeholder):
1289         (WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
1290         (WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
1291         (WebInspector.VisualStyleNumberInputBox.prototype.get numberInputEditable):
1292         (WebInspector.VisualStyleNumberInputBox.prototype.updateValueFromText):
1293         (WebInspector.VisualStyleNumberInputBox.prototype.parseValue):
1294         (WebInspector.VisualStyleNumberInputBox.prototype._keywordChanged):
1295         (WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown.shiftValue):
1296         (WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown):
1297         (WebInspector.VisualStyleNumberInputBox.prototype._numberInputChanged):
1298         (WebInspector.VisualStyleNumberInputBox.prototype._keywordSelectMouseDown):
1299         (WebInspector.VisualStyleNumberInputBox.prototype._createValueOptions):
1300         (WebInspector.VisualStyleNumberInputBox.prototype._createUnitOptions):
1301         (WebInspector.VisualStyleNumberInputBox.prototype._addAdvancedUnits):
1302         (WebInspector.VisualStyleNumberInputBox.prototype._removeAdvancedUnits):
1303         (WebInspector.VisualStyleNumberInputBox.prototype._focusContentElement):
1304         (WebInspector.VisualStyleNumberInputBox.prototype._blurContentElement):
1305         (WebInspector.VisualStyleNumberInputBox.prototype._toggleTabbingOfSelectableElements):
1306
1307         * UserInterface/Views/VisualStylePropertyEditorLink.css: Added.
1308         (.visual-style-property-editor-link):
1309         (.visual-style-property-editor-link.disabled):
1310         (.visual-style-property-editor-link.link-all):
1311         (.visual-style-property-editor-link.link-all.linked):
1312         (.visual-style-property-editor-link > .visual-style-property-editor-link-border):
1313         (.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-icon:hover + .visual-style-property-editor-link-border.right):
1314         (.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.left):
1315         (.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.right):
1316         (.visual-style-property-editor-link.linked > .visual-style-property-editor-link-border):
1317         (.visual-style-property-editor-link > .visual-style-property-editor-link-border.left):
1318         (.visual-style-property-editor-link > .visual-style-property-editor-link-border.right):
1319         (.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-border):
1320         (.visual-style-property-editor-link:not(.link-all).linked > .visual-style-property-editor-link-border):
1321         (.visual-style-property-editor-link > .visual-style-property-editor-link-icon):
1322         (.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon):
1323         (.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .filled):
1324         (.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .stroked):
1325         (.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-icon):
1326         (.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-icon):
1327
1328         * UserInterface/Views/VisualStylePropertyEditorLink.js: Added.
1329         (WebInspector.VisualStylePropertyEditorLink):
1330         (WebInspector.VisualStylePropertyEditorLink.prototype.get element):
1331         (WebInspector.VisualStylePropertyEditorLink.prototype.set disabled):
1332         (WebInspector.VisualStylePropertyEditorLink.prototype._linkedPropertyValueChanged):
1333         (WebInspector.VisualStylePropertyEditorLink.prototype._updateLinkedEditors):
1334         (WebInspector.VisualStylePropertyEditorLink.prototype._iconMouseover):
1335         (WebInspector.VisualStylePropertyEditorLink.prototype._iconMouseout):
1336         (WebInspector.VisualStylePropertyEditorLink.prototype._iconClicked):
1337
1338         * UserInterface/Views/VisualStyleRelativeNumberSlider.css: Added.
1339         (.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-title):
1340         (.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-value-container):
1341         (.visual-style-property-container.number-input-box.relative-number-slider.disabled > .relative-slider):
1342         (.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-value-container.no-values.no-units):
1343         (.visual-style-property-container.number-input-box.relative-number-slider > .relative-slider):
1344
1345         * UserInterface/Views/VisualStyleRelativeNumberSlider.js: Added.
1346         (WebInspector.VisualStyleRelativeNumberSlider):
1347         (WebInspector.VisualStyleRelativeNumberSlider.prototype.set scale):
1348         (WebInspector.VisualStyleRelativeNumberSlider.prototype.updateEditorValues):
1349         (WebInspector.VisualStyleRelativeNumberSlider.prototype._resetSlider):
1350         (WebInspector.VisualStyleRelativeNumberSlider.prototype._sliderChanged):
1351         (WebInspector.VisualStyleRelativeNumberSlider.prototype._numberInputChanged):
1352
1353 2015-08-10  Devin Rousso  <drousso@apple.com>
1354
1355         Web Inspector: Add different types of non-numerical Visual editors for CSS properties
1356         https://bugs.webkit.org/show_bug.cgi?id=147711
1357
1358         Added editors for keyword based CSS properties for use in the Visual style
1359         details panel in the CSS sidebar.  Also added images for keyword values that
1360         are simple enough to be conveyed in an image.
1361
1362         Reviewed by Brian Burg.
1363
1364         * UserInterface/Images/ClearBoth.svg: Added.
1365         * UserInterface/Images/ClearLeft.svg: Added.
1366         * UserInterface/Images/ClearRight.svg: Added.
1367         * UserInterface/Images/FloatLeft.svg: Added.
1368         * UserInterface/Images/FloatRight.svg: Added.
1369         * UserInterface/Images/FontStyleItalic.svg: Added.
1370         * UserInterface/Images/FontStyleNormal.svg: Added.
1371         * UserInterface/Images/FontVariantSmallCaps.svg: Added.
1372         * UserInterface/Images/TextAlignCenter.svg: Added.
1373         * UserInterface/Images/TextAlignJustify.svg: Added.
1374         * UserInterface/Images/TextAlignLeft.svg: Added.
1375         * UserInterface/Images/TextAlignRight.svg: Added.
1376         * UserInterface/Images/TextDecorationLineThrough.svg: Added.
1377         * UserInterface/Images/TextDecorationOverline.svg: Added.
1378         * UserInterface/Images/TextDecorationUnderline.svg: Added.
1379         * UserInterface/Images/TextTransformCapitalize.svg: Added.
1380         * UserInterface/Images/TextTransformLowercase.svg: Added.
1381         * UserInterface/Images/TextTransformUppercase.svg: Added.
1382         * UserInterface/Images/VisualStyleNone.svg: Added.
1383         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1384         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
1385         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
1386         Changed color swatch title.
1387
1388         * UserInterface/Views/Slider.js:
1389         (WebInspector.Slider):
1390         (WebInspector.Slider.prototype.set value):
1391         (WebInspector.Slider.prototype.set knobX):
1392         (WebInspector.Slider.prototype.get maxX):
1393         If the given value is below 0, reset it to 0.
1394         (WebInspector.Slider.prototype._handleMousedown):
1395         (WebInspector.Slider.prototype._handleMousemove):
1396         (WebInspector.Slider.prototype.get _maxX): Deleted.
1397
1398         * UserInterface/Views/VisualStyleColorPicker.css: Added.
1399         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container):
1400         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .visual-style-special-property-placeholder):
1401         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
1402         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:hover):
1403         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:active):
1404         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch > span):
1405         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):
1406         (.visual-style-property-container.input-color-picker.multiple > .visual-style-property-value-container > .visual-style-multiple-property-placeholder):
1407
1408         * UserInterface/Views/VisualStyleColorPicker.js: Added.
1409         (WebInspector.VisualStyleColorPicker):
1410         (WebInspector.VisualStyleColorPicker.prototype.get value):
1411         (WebInspector.VisualStyleColorPicker.prototype.set value):
1412         (WebInspector.VisualStyleColorPicker.prototype.get placeholder):
1413         (WebInspector.VisualStyleColorPicker.prototype.set placeholder):
1414         (WebInspector.VisualStyleColorPicker.prototype.get synthesizedValue):
1415         (WebInspector.VisualStyleColorPicker.prototype.get hasCompletions):
1416         (WebInspector.VisualStyleColorPicker.prototype.set completions):
1417         (WebInspector.VisualStyleColorPicker.prototype._updateColorSwatch):
1418         (WebInspector.VisualStyleColorPicker.prototype._colorSwatchClicked):
1419         (WebInspector.VisualStyleColorPicker.prototype._colorPickerColorDidChange):
1420         (WebInspector.VisualStyleColorPicker.prototype._completionClicked):
1421         (WebInspector.VisualStyleColorPicker.prototype._textInputKeyDown):
1422         (WebInspector.VisualStyleColorPicker.prototype._textInputKeyUp):
1423         (WebInspector.VisualStyleColorPicker.prototype._showCompletionsIfAble):
1424         (WebInspector.VisualStyleColorPicker.prototype._hideCompletions):
1425         (WebInspector.VisualStyleColorPicker.prototype._toggleTabbingOfSelectableElements):
1426
1427         * UserInterface/Views/VisualStyleKeywordCheckbox.css: Added.
1428         (.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container):
1429         (.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > input):
1430         (.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > div):
1431
1432         * UserInterface/Views/VisualStyleKeywordCheckbox.js: Added.
1433         (WebInspector.VisualStyleKeywordCheckbox):
1434         (WebInspector.VisualStyleKeywordCheckbox.prototype.get value):
1435         (WebInspector.VisualStyleKeywordCheckbox.prototype.set value):
1436         (WebInspector.VisualStyleKeywordCheckbox.prototype.get synthesizedValue):
1437         (WebInspector.VisualStyleKeywordCheckbox.prototype._toggleTabbingOfSelectableElements):
1438
1439         * UserInterface/Views/VisualStyleKeywordIconList.css: Added.
1440         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container):
1441         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container):
1442         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon):
1443         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:first-child):
1444         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:last-child):
1445         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected)):
1446         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
1447         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .stroked):
1448         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .filled):
1449         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected) + .keyword-icon):
1450         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon > div):
1451         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:not(.selected) > div):
1452
1453         * UserInterface/Views/VisualStyleKeywordIconList.js: Added.
1454         (WebInspector.VisualStyleKeywordIconList.dashToCapital):
1455         (WebInspector.VisualStyleKeywordIconList.createListItem):
1456         (WebInspector.VisualStyleKeywordIconList):
1457         (WebInspector.VisualStyleKeywordIconList.prototype.get value):
1458         (WebInspector.VisualStyleKeywordIconList.prototype.set value):
1459         (WebInspector.VisualStyleKeywordIconList.prototype.get synthesizedValue):
1460         (WebInspector.VisualStyleKeywordIconList.prototype._handleKeywordChanged):
1461
1462         * UserInterface/Views/VisualStyleKeywordPicker.js: Added.
1463         (WebInspector.VisualStyleKeywordPicker):
1464         (WebInspector.VisualStyleKeywordPicker.prototype.get value):
1465         (WebInspector.VisualStyleKeywordPicker.prototype.set value):
1466         (WebInspector.VisualStyleKeywordPicker.prototype.set placeholder):
1467         (WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
1468         (WebInspector.VisualStyleKeywordPicker.prototype.updateEditorValues):
1469         (WebInspector.VisualStyleKeywordPicker.prototype._handleKeywordChanged):
1470         (WebInspector.VisualStyleKeywordPicker.prototype._keywordSelectMouseDown):
1471         (WebInspector.VisualStyleKeywordPicker.prototype._addValues):
1472         (WebInspector.VisualStyleKeywordPicker.prototype._addAdvancedValues):
1473         (WebInspector.VisualStyleKeywordPicker.prototype._removeAdvancedValues):
1474         (WebInspector.VisualStyleKeywordPicker.prototype._toggleTabbingOfSelectableElements):
1475
1476         * UserInterface/Views/VisualStylePropertyNameInput.js: Added.
1477         (WebInspector.VisualStylePropertyNameInput):
1478         (WebInspector.VisualStylePropertyNameInput.prototype.get value):
1479         (WebInspector.VisualStylePropertyNameInput.prototype.set value):
1480         (WebInspector.VisualStylePropertyNameInput.prototype.get synthesizedValue):
1481         (WebInspector.VisualStylePropertyNameInput.prototype.get hasCompletions):
1482         (WebInspector.VisualStylePropertyNameInput.prototype.set completions):
1483         (WebInspector.VisualStylePropertyNameInput.prototype._completionClicked):
1484         (WebInspector.VisualStylePropertyNameInput.prototype._inputKeyDown):
1485         (WebInspector.VisualStylePropertyNameInput.prototype._inputKeyUp):
1486         (WebInspector.VisualStylePropertyNameInput.prototype._hideCompletions):
1487         (WebInspector.VisualStylePropertyNameInput.prototype._toggleTabbingOfSelectableElements):
1488
1489         * UserInterface/Views/VisualStyleURLInput.js: Added.
1490         (WebInspector.VisualStyleURLInput):
1491         (WebInspector.VisualStyleURLInput.prototype.set get value):
1492         (WebInspector.VisualStyleURLInput.prototype.parseValue):
1493
1494         * UserInterface/Views/VisualStyleUnitSlider.css: Added.
1495         (.visual-style-property-container.unit-slider > .visual-style-property-value-container > .slider):
1496         (.visual-style-property-container.unit-slider > .visual-style-property-value-container > .slider > img):
1497         (.visual-style-property-container.unit-slider.opacity > .visual-style-property-value-container > .slider):
1498
1499         * UserInterface/Views/VisualStyleUnitSlider.js: Added.
1500         (WebInspector.VisualStyleUnitSlider):
1501         (WebInspector.VisualStyleUnitSlider.prototype.set value):
1502         (WebInspector.VisualStyleUnitSlider.prototype.get value):
1503         (WebInspector.VisualStyleUnitSlider.prototype.get synthesizedValue):
1504         (WebInspector.VisualStyleUnitSlider.prototype.sliderValueDidChange):
1505
1506 2015-08-10  Devin Rousso  <drousso@apple.com>
1507
1508         Web Inspector: Add VisualStyleSelectorSection
1509         https://bugs.webkit.org/show_bug.cgi?id=147572
1510
1511         Reviewed by Brian Burg.
1512
1513         Adds a section to the new Visual style sidebar panel that contains the list of
1514         styles for the currently selected node.
1515
1516         * UserInterface/Models/CSSRule.js:
1517         (WebInspector.CSSRule.prototype.get mediaText):
1518         Returns a string containing the list of media queries.
1519
1520         * UserInterface/Models/CSSStyleDeclaration.js:
1521         (WebInspector.CSSStyleDeclaration):
1522         (WebInspector.CSSStyleDeclaration.prototype.set text):
1523         (WebInspector.CSSStyleDeclaration.prototype.get modified):
1524         (WebInspector.CSSStyleDeclaration.prototype.resetText):
1525         (WebInspector.CSSStyleDeclaration.prototype.generateCSSRuleString):
1526         Generates a formatted string of the style text.
1527
1528         * UserInterface/Views/CSSStyleDeclarationSection.js:
1529         (WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):
1530         (WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Deleted.
1531
1532         * UserInterface/Views/VisualStyleSelectorSection.css: Added.
1533         (.details-section.visual-style-selector-section > .header):
1534         (.details-section.visual-style-selector-section:not(.collapsed) > .header):
1535         (@media (-webkit-min-device-pixel-ratio: 2)):
1536         (.details-section.visual-style-selector-section > .header > .current-selector):
1537         (.visual-style-selector-section.details-section:not(.collapsed) > .header > .current-selector):
1538         (.details-section.visual-style-selector-section > .header > .current-selector > .icon):
1539         (.details-section.visual-style-selector-section > .header > .current-selector > span):
1540         (.details-section.visual-style-selector-section > .header > .controls):
1541         (.details-section.visual-style-selector-section.collapsed > .header > .controls):
1542         (.details-section.visual-style-selector-section > .header > .controls > .visual-style-selector-section-add-rule):
1543         (.details-section.visual-style-selector-section > .content > .selectors):
1544         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list):
1545         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .visual-style-selector-item:nth-child(odd)):
1546         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
1547         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .icon):
1548         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > :matches(.disclosure-button, .icon)):
1549         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles > .title):
1550         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider ~ .visual-style-selector-item:nth-child(even)):
1551         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider ~ .visual-style-selector-item:nth-child(odd)):
1552
1553         * UserInterface/Views/VisualStyleSelectorSection.js: Added.
1554         (WebInspector.VisualStyleSelectorSection):
1555         (WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
1556         (WebInspector.VisualStyleSelectorSection.prototype.update.uniqueOrderedRules):
1557         (WebInspector.VisualStyleSelectorSection.prototype.update.insertAllMatchingPseudoRules):
1558         (WebInspector.VisualStyleSelectorSection.prototype.update):
1559         (WebInspector.VisualStyleSelectorSection.prototype.currentStyle):
1560         (WebInspector.VisualStyleSelectorSection.prototype._selectorChanged):
1561         (WebInspector.VisualStyleSelectorSection.prototype._styleTextReset):
1562         (WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
1563         (WebInspector.VisualStyleSelectorSection.prototype._treeElementCheckboxToggled):
1564         (WebInspector.VisualStyleSelectorSection.prototype._handleMouseOver):
1565         (WebInspector.VisualStyleSelectorSection.prototype._handleMouseOut):
1566
1567         * UserInterface/Views/VisualStyleSelectorTreeItem.css:
1568         (.item.visual-style-selector-item):
1569         (.item.visual-style-selector-item.selected):
1570         (.item.visual-style-selector-item > .disclosure-button):
1571         (.item.visual-style-selector-item > input[type="checkbox"]):
1572         (.item.visual-style-selector-item > .icon):
1573         (.item.visual-style-selector-item.modified > .icon):
1574         (.item.visual-style-selector-item.selector-invalid > .icon):
1575         (.item.visual-style-selector-item.selector-invalid > .titles > .title):
1576         (.item.visual-style-selector-item.selector-invalid > .titles > .title::before):
1577         (.item.visual-style-selector-item > .titles):
1578         (.item.visual-style-selector-item:not(.dom-element-icon) > .titles > .title):
1579         (.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title):
1580         (.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title:focus):
1581         (.item.visual-style-selector-item > .titles > .subtitle::before):
1582         (.item.visual-style-selector-item > .titles > .subtitle):
1583
1584         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1585         (WebInspector.VisualStyleSelectorTreeItem):
1586         (WebInspector.VisualStyleSelectorTreeItem.prototype.get iconClassName):
1587         (WebInspector.VisualStyleSelectorTreeItem.prototype.get selectorText):
1588         (WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
1589         (WebInspector.VisualStyleSelectorTreeItem.prototype.ondeselect):
1590         (WebInspector.VisualStyleSelectorTreeItem.prototype._highlightNodesWithSelector):
1591         (WebInspector.VisualStyleSelectorTreeItem.prototype._hideDOMNodeHighlight):
1592         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
1593         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleCheckboxChanged):
1594         (WebInspector.VisualStyleSelectorTreeItem.prototype._updateCheckboxTitle):
1595         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
1596         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleKeyDown):
1597         (WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
1598         (WebInspector.VisualStyleSelectorTreeItem.prototype._styleTextModified):
1599         (WebInspector.VisualStyleSelectorTreeItem.prototype._selectorChanged):
1600
1601 2015-08-10  Joseph Pecoraro  <pecoraro@apple.com>
1602
1603         Web Inspector: TDZ in ProbeSetDataGrid construction
1604         https://bugs.webkit.org/show_bug.cgi?id=147834
1605
1606         Reviewed by Timothy Hatcher.
1607
1608         * UserInterface/Views/ProbeSetDataGrid.js:
1609         (WebInspector.ProbeSetDataGrid):
1610         Do not use "this" before calling super.
1611
1612 2015-08-08  Devin Rousso  <drousso@apple.com>
1613
1614         Web Inspector: Timeline ruler handle tooltip shows wrong value when handles overlap
1615         https://bugs.webkit.org/show_bug.cgi?id=147652
1616
1617         Reviewed by Timothy Hatcher.
1618
1619         * UserInterface/Views/TimelineRuler.js:
1620         (WebInspector.TimelineRuler.prototype._updateSelection):
1621         Now changes the title depending on whether the selection start/end is clamped.
1622
1623 2015-08-08  Devin Rousso  <drousso@apple.com>
1624
1625         Web Inspector: Don't show "No Filter Results" when timeline is empty
1626         https://bugs.webkit.org/show_bug.cgi?id=147662
1627
1628         Reviewed by Timothy Hatcher.
1629
1630         * UserInterface/Views/TimelineView.js:
1631         (WebInspector.TimelineView.prototype.reset):
1632         Now hides the empty content placeholder on timeline clear.
1633
1634 2015-08-07  Devin Rousso  <drousso@apple.com>
1635
1636         Web Inspector: Decrease the padding of each rule in the Rules sidebar to allow more content to show
1637         https://bugs.webkit.org/show_bug.cgi?id=147360
1638
1639         Reviewed by Timothy Hatcher.
1640
1641         Generally tightened the padding around each section in the rules panel, as well as the
1642         content inside each section. Also moved the new rule button to be next to the filter bar.
1643
1644         * UserInterface/Views/CSSStyleDeclarationSection.css:
1645         (.style-declaration-section):
1646         (.style-declaration-section.last-in-group):
1647         (.style-declaration-section.last-in-group + .style-declaration-section): Deleted.
1648         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1649         (.css-style-text-editor):
1650         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
1651         (.sidebar > .panel.details.css-style > .content > .pseudo-classes):
1652         (.sidebar > .panel.details.css-style > .content + .options-container):
1653         (.sidebar > .panel.details.css-style > .content:not(.supports-new-rule, .has-filter-bar) + .options-container):
1654         (.sidebar > .panel.details.css-style > .content + .options-container > .new-rule):
1655         (.sidebar > .panel.details.css-style > .content + .options-container > .filter-bar):
1656         (.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .options-container > .filter-bar):
1657         (.sidebar > .panel.details.css-style > .content.has-filter-bar + .filter-bar): Deleted.
1658         (.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .filter-bar): Deleted.
1659         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
1660         (WebInspector.CSSStyleDetailsSidebarPanel):
1661         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
1662         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._newRuleButtonClicked):
1663         * UserInterface/Views/RulesStyleDetailsPanel.css:
1664         (.sidebar > .panel.details.css-style .rules .label):
1665         * UserInterface/Views/RulesStyleDetailsPanel.js:
1666         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
1667         (WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
1668         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton): Deleted.
1669         (WebInspector.RulesStyleDetailsPanel.prototype.refresh): Deleted.
1670         (WebInspector.RulesStyleDetailsPanel.prototype._newRuleClicked): Deleted.
1671
1672 2015-08-07  Devin Rousso  <drousso@apple.com>
1673
1674         Web Inspector: Don't include zero-width space into a copied text from the console
1675         https://bugs.webkit.org/show_bug.cgi?id=147767
1676
1677         Reviewed by Timothy Hatcher.
1678
1679         Now removes work break characters in generated javascript text when copying
1680         to the clipboard.  Also replaced var with let in the modified functions.
1681
1682         * UserInterface/Views/ConsoleCommandView.js:
1683         (WebInspector.ConsoleCommandView.prototype.toClipboardString):
1684         (WebInspector.ConsoleCommandView):
1685         * UserInterface/Views/ConsoleMessageView.js:
1686         (WebInspector.ConsoleMessageView.prototype.toClipboardString):
1687
1688 2015-08-07  Nikita Vasilyev  <nvasilyev@apple.com>
1689
1690         Web Inspector: Simplify OS-specific CSS class names
1691         https://bugs.webkit.org/show_bug.cgi?id=147794
1692
1693         Replace "body:not(.el-capitan)" with ".legacy-mac".
1694         Replace "body.el-capitan" with ".latest-mac".
1695
1696         Reviewed by Timothy Hatcher.
1697
1698         * UserInterface/Base/Main.js:
1699         (WebInspector.contentLoaded):
1700         * UserInterface/Views/Toolbar.css:
1701         (body.legacy-mac .toolbar .dashboard-container):
1702         (body.legacy-mac .toolbar .search-bar > input[type="search"]):
1703         (body.legacy-mac .toolbar .search-bar > input[type="search"]:focus):
1704         (body.legacy-mac .toolbar .item.button:active):
1705         (body.window-inactive.legacy-mac .toolbar .dashboard-container):
1706         (body.latest-mac .toolbar .dashboard-container):
1707         (body.latest-mac .toolbar .search-bar > input[type="search"]):
1708         (body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
1709         (@media (-webkit-min-device-pixel-ratio: 2)):
1710         (body.latest-mac .toolbar .item.button:active):
1711         (body.latest-mac.window-inactive .toolbar .dashboard-container):
1712         (body:not(.el-capitan) .toolbar .dashboard-container): Deleted.
1713         (body:not(.el-capitan) .toolbar .search-bar > input[type="search"]): Deleted.
1714         (body:not(.el-capitan) .toolbar .search-bar > input[type="search"]:focus): Deleted.
1715         (body:not(.el-capitan) .toolbar .item.button:active): Deleted.
1716         (body.window-inactive:not(.el-capitan) .toolbar .dashboard-container): Deleted.
1717         (body.el-capitan .toolbar .dashboard-container): Deleted.
1718         (body.el-capitan .toolbar .search-bar > input[type="search"]): Deleted.
1719         (body.el-capitan .toolbar .search-bar > input[type="search"]:focus): Deleted.
1720         (body.el-capitan .toolbar .item.button:active): Deleted.
1721         (body.el-capitan.window-inactive .toolbar .dashboard-container): Deleted.
1722
1723 2015-08-07  Devin Rousso  <drousso@apple.com>
1724
1725         Web Inspector: Option+Up/Down arrow keys should increment/decrement numbers in HTML and SVG attributes
1726         https://bugs.webkit.org/show_bug.cgi?id=147317
1727
1728         Reviewed by Timothy Hatcher.
1729
1730         If the value under the cursor in an HTML element attribute is a number, pressing alt and
1731         up/down will increment/decrement the number value and apply that change to the element.
1732
1733         * UserInterface/Views/BoxModelDetailsSectionRow.js:
1734         (WebInspector.BoxModelDetailsSectionRow.prototype._alteredFloatNumber):
1735         (WebInspector.BoxModelDetailsSectionRow.prototype._handleKeyDown):
1736         * UserInterface/Views/DOMTreeElement.js:
1737         (WebInspector.DOMTreeElement.prototype._startEditingAttribute):
1738         (WebInspector.DOMTreeElement.prototype._attributeEditingCommitted):
1739         (WebInspector.DOMTreeElement.prototype._attributeNumberEditingCommitted):
1740         * UserInterface/Views/EditingSupport.js:
1741         (WebInspector.EditingConfig.prototype.setNumberCommitHandler):
1742         (WebInspector.startEditing.defaultFinishHandler):
1743         (WebInspector.startEditing.handleEditingResult):
1744
1745 2015-08-05  Devin Rousso  <drousso@apple.com>
1746
1747         Web Inspector: Move the Metrics style sidebar panel into Computed
1748         https://bugs.webkit.org/show_bug.cgi?id=147715
1749
1750         Reviewed by Timothy Hatcher.
1751
1752         Deleted the Metrics sidebar panel and moved its contents into the Computed sidebar panel.
1753         In addition, not hovering over the Metrics section will display the colors of each box.
1754
1755         * UserInterface/Main.html:
1756         * UserInterface/Views/BoxModelDetailsSectionRow.css:
1757         (.details-section .row.box-model :matches(.position, .margin, .border, .padding, .content)):
1758         (.details-section .row.box-model .position):
1759         (.details-section .row.box-model .margin):
1760         (.details-section .row.box-model .border):
1761         (.details-section .row.box-model .padding):
1762         (.details-section .row.box-model :matches(.content span, .top, .right, .bottom, .left)):
1763         (.details-section .row.box-model :matches(.right, .left)):
1764         (.details-section .row.box-model .content): Deleted.
1765         (.details-section .row.box-model .content span): Deleted.
1766         (.details-section .row.box-model .left): Deleted.
1767         (.details-section .row.box-model .right): Deleted.
1768         (.details-section .row.box-model .top): Deleted.
1769         (.details-section .row.box-model .bottom): Deleted.
1770
1771         * UserInterface/Views/BoxModelDetailsSectionRow.js:
1772         (WebInspector.BoxModelDetailsSectionRow.prototype._highlightDOMNode):
1773         If no metric box is hovered, apply a class to the entire section.
1774
1775         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
1776         (WebInspector.CSSStyleDetailsSidebarPanel):
1777         Removed the usage of MetricsStyleDetailsPanel.
1778
1779         * UserInterface/Views/ComputedStyleDetailsPanel.css:
1780         (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):
1781         Give the metrics section in the Computed panel a white background.
1782
1783         * UserInterface/Views/ComputedStyleDetailsPanel.js:
1784         (WebInspector.ComputedStyleDetailsPanel):
1785         (WebInspector.ComputedStyleDetailsPanel.prototype.refresh):
1786         Don't refresh the content unless the change is significant (without this, you cannot edit
1787         metrics values using the arrow keys).
1788
1789         * UserInterface/Views/MetricsStyleDetailsPanel.js: Removed.
1790
1791 2015-08-05  Devin Rousso  <drousso@apple.com>
1792
1793         Web Inspector: Bezier curve visual editor
1794         https://bugs.webkit.org/show_bug.cgi?id=134501
1795
1796         Reviewed by Timothy Hatcher.
1797
1798         Added a visual Cubic Bezier curve editor that is usable in both
1799         the CSS sidebar and the resources panel.
1800
1801         * Localizations/en.lproj/localizedStrings.js:
1802         * UserInterface/Base/DOMUtilities.js:
1803         (createSVGElement):
1804         * UserInterface/Controllers/CodeMirrorBezierEditingController.js:
1805         (WebInspector.CodeMirrorBezierEditingController):
1806         (WebInspector.CodeMirrorBezierEditingController.prototype.get initialValue):
1807         (WebInspector.CodeMirrorBezierEditingController.prototype.get cssClassName):
1808         (WebInspector.CodeMirrorBezierEditingController.prototype.popoverWillPresent):
1809         (WebInspector.CodeMirrorBezierEditingController.prototype.popoverDidPresent):
1810         (WebInspector.CodeMirrorBezierEditingController.prototype._bezierEditorBezierChanged):
1811         * UserInterface/Images/CubicBezier.svg: Added.
1812         * UserInterface/Main.html:
1813         * UserInterface/Models/Geometry.js:
1814         (WebInspector.Point.prototype.distance):
1815         (WebInspector.Point):
1816         (WebInspector.CubicBezier):
1817         (WebInspector.CubicBezier.fromPoints):
1818         (WebInspector.CubicBezier.fromString):
1819         (WebInspector.CubicBezier.prototype.get inPoint):
1820         (WebInspector.CubicBezier.prototype.get outPoint):
1821         (WebInspector.CubicBezier.prototype.copy):
1822         (WebInspector.CubicBezier.prototype.toString):
1823         (WebInspector.CubicBezier.prototype.solve):
1824         (WebInspector.CubicBezier.prototype._sampleCurveX):
1825         (WebInspector.CubicBezier.prototype._sampleCurveY):
1826         (WebInspector.CubicBezier.prototype._sampleCurveDerivativeX):
1827         (WebInspector.CubicBezier.prototype._solveCurveX):
1828         * UserInterface/Models/TextMarker.js:
1829         * UserInterface/Models/UnitBezier.js: Removed.
1830         * UserInterface/Views/BezierEditor.css: Added.
1831         (.bezier-editor):
1832         (.bezier-editor > .bezier-preview):
1833         (.bezier-editor > .bezier-preview > div):
1834         (.bezier-editor > .bezier-preview-timing):
1835         (.bezier-editor > .bezier-preview-timing.animate):
1836         (.bezier-editor > .bezier-container):
1837         (@keyframes bezierPreview):
1838         (.bezier-editor > .bezier-container):
1839         (.bezier-editor > .bezier-container .linear-curve):
1840         (.bezier-editor > .bezier-container .bezier-curve):
1841         (.bezier-editor > .bezier-container .control-line):
1842         (.bezier-editor > .bezier-container .control-handle):
1843         * UserInterface/Views/BezierEditor.js: Added.
1844         (WebInspector.BezierEditor.createControl):
1845         (WebInspector.BezierEditor):
1846         (WebInspector.BezierEditor.prototype.get element):
1847         (WebInspector.BezierEditor.prototype.set bezier):
1848         (WebInspector.BezierEditor.prototype.get bezier):
1849         (WebInspector.BezierEditor.prototype.handleEvent):
1850         (WebInspector.BezierEditor.prototype._handleMousedown):
1851         (WebInspector.BezierEditor.prototype._handleMousemove):
1852         (WebInspector.BezierEditor.prototype._handleMouseup):
1853         (WebInspector.BezierEditor.prototype._updateControlPointsForMouseEvent):
1854         (WebInspector.BezierEditor.prototype._updateValue.round):
1855         (WebInspector.BezierEditor.prototype._updateValue):
1856         (WebInspector.BezierEditor.prototype._updateBezier):
1857         (WebInspector.BezierEditor.prototype._updateControl):
1858         (WebInspector.BezierEditor.prototype._triggerPreviewAnimation):
1859         (WebInspector.BezierEditor.prototype._resetPreviewAnimation):
1860         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1861         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker):
1862         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:hover):
1863         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:active):
1864         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1865         (WebInspector.CSSStyleDeclarationTextEditor.prototype.didDismissPopover):
1866         (WebInspector.CSSStyleDeclarationTextEditor.prototype._contentChanged):
1867         (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
1868         (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers):
1869         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
1870         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
1871         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createBezierEditors.update):
1872         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createBezierEditors):
1873         (WebInspector.CSSStyleDeclarationTextEditor.prototype._commentProperty.update):
1874         (WebInspector.CSSStyleDeclarationTextEditor.prototype._commentProperty):
1875         (WebInspector.CSSStyleDeclarationTextEditor.prototype._uncommentRange.update):
1876         (WebInspector.CSSStyleDeclarationTextEditor.prototype._uncommentRange):
1877         (WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked.updateCodeMirror.update):
1878         (WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked.updateCodeMirror):
1879         (WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked):
1880         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
1881         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):
1882         * UserInterface/Views/CodeMirrorAdditions.js:
1883         * UserInterface/Views/CodeMirrorTextMarkers.js: Added.
1884         (createCodeMirrorTextMarkers):
1885         (createCodeMirrorColorTextMarkers):
1886         (createCodeMirrorGradientTextMarkers):
1887         (createCodeMirrorCubicBezierTextMarkers):
1888         * UserInterface/Views/Popover.js:
1889         (WebInspector.Popover.prototype._animateFrame):
1890         * UserInterface/Views/SourceCodeTextEditor.js:
1891         (WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
1892         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
1893         * UserInterface/Views/TextEditor.js:
1894         (WebInspector.TextEditor.prototype.createColorMarkers):
1895         (WebInspector.TextEditor.prototype.createGradientMarkers):
1896         (WebInspector.TextEditor.prototype.createCubicBezierMarkers):
1897         (WebInspector.TextEditor.prototype.editingControllerForMarker):
1898
1899 2015-08-05  Nikita Vasilyev  <nvasilyev@apple.com>
1900
1901         Web Inspector: Logging error objects should have a better UI
1902         https://bugs.webkit.org/show_bug.cgi?id=143853
1903
1904         Previously, an error object looked like any other object, which wasn't very useful.
1905         Source links couldn't be clicked and stacktraces were unreadable.
1906
1907         Unify console.trace, caught and uncaught exceptions. The following examples use
1908         the same StaceTraceView:
1909         - ({}).x.y
1910         - try { ({}).x.y } catch (e) { console.log(e); }
1911         - console.trace()
1912
1913         Reviewed by Brian Burg.
1914
1915         * UserInterface/Main.html:
1916         * UserInterface/Models/CallFrame.js:
1917         (WebInspector.CallFrame.fromPayload):
1918         (WebInspector.CallFrame):
1919         * UserInterface/Protocol/RemoteObject.js:
1920         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptorsAsObject):
1921         * UserInterface/Test.html:
1922         * UserInterface/Views/CallFrameView.css:
1923         (.call-frame .separator):
1924         (.call-frame .subtitle .source-link): Deleted.
1925         (.call-frame:focus .subtitle .source-link): Deleted.
1926         (.call-frame .subtitle:empty): Deleted.
1927         (.call-frame .subtitle): Deleted.
1928         * UserInterface/Views/CallFrameView.js:
1929         (WebInspector.CallFrameView):
1930         - Start usind CallFrameView in stacktraces.
1931         - Introduce showFunctionName optional argument. In stacktraces anonymous functions
1932         are shown as "(anonymous function)" but in console message location
1933         links (the ones on the right side of a console message) we omit them.
1934         - Dash was a pseudo-element and it couldn't be copied to the clipboard.
1935         Make it an actual HTML element.
1936
1937         * UserInterface/Views/ConsoleMessageView.css:
1938         (.console-message-location.call-frame):
1939         (.console-message-location.call-frame > .title):
1940         (.console-message-location.call-frame > .subtitle > .source-link):
1941         Since .call-frame rules are now used in stacktraces, move console message
1942         specific rules from CallFrameView.css to ConsoleMessageView.css.
1943
1944         * UserInterface/Views/ConsoleMessageView.js:
1945         (WebInspector.ConsoleMessageView.prototype._appendLocationLink):
1946         (WebInspector.ConsoleMessageView.prototype._appendStackTrace):
1947         (WebInspector.ConsoleMessageView.prototype._formatParameter):
1948         (WebInspector.ConsoleMessageView.prototype._formatParameterAsError): Added.
1949         Format errors differently from other objects.
1950
1951         * UserInterface/Views/ErrorObjectView.css: Added.
1952         (.error-object::before):
1953         (.error-object.expanded::before):
1954         (.error-object-link-container):
1955         (.error-object.expanded > .formatted-error > .error-object-link-container):
1956         (.error-object:not(.expanded) .error-object-outline):
1957         (.error-object-outline):
1958         * UserInterface/Views/ErrorObjectView.js: Added.
1959         (WebInspector.ErrorObjectView):
1960         (WebInspector.ErrorObjectView.parseStackTrace):
1961         (WebInspector.ErrorObjectView.makeSourceLinkWithPrefix):
1962         (WebInspector.ErrorObjectView.prototype.get object):
1963         (WebInspector.ErrorObjectView.prototype.get element):
1964         (WebInspector.ErrorObjectView.prototype.get treeOutline):
1965         (WebInspector.ErrorObjectView.prototype.get expanded):
1966         (WebInspector.ErrorObjectView.prototype.update):
1967         (WebInspector.ErrorObjectView.prototype.expand):
1968         (WebInspector.ErrorObjectView.prototype.collapse):
1969         (WebInspector.ErrorObjectView.prototype._handlePreviewOrTitleElementClick):
1970         (WebInspector.ErrorObjectView.prototype._buildStackTrace):
1971         ErrorObjectView is used to log caught exceptions, e.g.:
1972         try { i.dont.exist++ } catch (e) { console.log(e) }
1973
1974         * UserInterface/Views/FormattedValue.js:
1975         (WebInspector.FormattedValue.createElementForError): Added.
1976         Create error preview.
1977
1978         (WebInspector.FormattedValue.createElementForTypesAndValue):
1979         Fix typo.
1980
1981         (WebInspector.FormattedValue.createObjectPreviewOrFormattedValueForRemoteObject):
1982         Format errors differently from other objects.
1983
1984 2015-08-05  Matt Baker  <mattbaker@apple.com>
1985
1986         Web Inspector: REGRESSION (r187634): Script time is missing from the frames timeline
1987         https://bugs.webkit.org/show_bug.cgi?id=147654
1988
1989         Reviewed by Brian Burg.
1990
1991         Use the current stack entry's parent record when pushing a new stack entry, if no
1992         TimelineRecord was generated from the parent record payload.
1993
1994         * UserInterface/Controllers/TimelineManager.js:
1995         (WebInspector.TimelineManager.prototype.eventRecorded):
1996         Don't create a stack entry when record payload children array is empty.
1997
1998 2015-08-05  Matt Baker  <mattbaker@apple.com>
1999
2000         Web Inspector: REGRESSION (r187900): Breakpoint context menu is broken in Debugger tab
2001         https://bugs.webkit.org/show_bug.cgi?id=147699
2002
2003         Reviewed by Timothy Hatcher.
2004
2005         * UserInterface/Views/SourceCodeTextEditor.js:
2006         Skip only the separator and "Reveal in Debugger tab" menu items.
2007
2008 2015-08-05  Brian Burg  <bburg@apple.com>
2009
2010         Web Inspector: use super calls in more places
2011         https://bugs.webkit.org/show_bug.cgi?id=147696
2012
2013         Reviewed by Timothy Hatcher.
2014
2015         A few opportunities for super calls were overlooked when converting to classes.
2016
2017         * UserInterface/Views/BreakpointTreeElement.js:
2018         (WebInspector.BreakpointTreeElement.prototype.onattach):
2019         (WebInspector.BreakpointTreeElement.prototype.ondetach):
2020         * UserInterface/Views/CallFrameTreeElement.js:
2021         (WebInspector.CallFrameTreeElement.prototype.onattach):
2022         (WebInspector.CallFrameTreeElement):
2023         * UserInterface/Views/DebuggerTabContentView.js:
2024         (WebInspector.DebuggerTabContentView.prototype.showDetailsSidebarPanels):
2025         * UserInterface/Views/ProfileNodeTreeElement.js:
2026         (WebInspector.ProfileNodeTreeElement.prototype.onattach):
2027         * UserInterface/Views/SourceCodeTextEditor.js:
2028         (WebInspector.SourceCodeTextEditor.prototype.shown):
2029         (WebInspector.SourceCodeTextEditor.prototype.hidden):
2030         (WebInspector.SourceCodeTextEditor.prototype.canBeFormatted):
2031         * UserInterface/Views/SourceCodeTreeElement.js:
2032         (WebInspector.SourceCodeTreeElement.prototype.onattach):
2033         * UserInterface/Views/TimelineRecordTreeElement.js:
2034         (WebInspector.TimelineRecordTreeElement.prototype.onattach):
2035         (WebInspector.TimelineRecordTreeElement):
2036
2037 2015-08-05  Brian Burg  <bburg@apple.com>
2038
2039         Web Inspector: remove unused Object.deprecatedAddConstructorFunctions
2040         https://bugs.webkit.org/show_bug.cgi?id=147690
2041
2042         Reviewed by Timothy Hatcher.
2043
2044         This is no longer used following the conversion to ES6 classes.
2045
2046         * UserInterface/Base/Object.js:
2047         (WebInspector.Object.deprecatedAddConstructorFunctions): Deleted.
2048
2049 2015-08-05  Brian Burg  <bburg@apple.com>
2050
2051         Web Inspector: Convert miscellaneous view widgets to use ES6 classes
2052         https://bugs.webkit.org/show_bug.cgi?id=147658
2053
2054         Reviewed by Joseph Pecoraro.
2055
2056         Along the way, inline a few style class names.
2057
2058         Elided mechanical changes from the Changelog.
2059
2060         * UserInterface/Base/Test.js:
2061         * UserInterface/Views/CSSStyleDeclarationSection.js:
2062         * UserInterface/Views/ConsolePrompt.js:
2063         * UserInterface/Views/ContentBrowser.js:
2064         * UserInterface/Views/ContentViewContainer.js:
2065         * UserInterface/Views/DOMTreeDataGridNode.js:
2066         * UserInterface/Views/IndeterminateProgressSpinner.js:
2067         * UserInterface/Views/NavigationBar.js:
2068         * UserInterface/Views/ProbeSetDataGridNode.js:
2069         * UserInterface/Views/QuickConsoleNavigationBar.js:
2070         * UserInterface/Views/Toolbar.js:
2071
2072 2015-08-05  Brian Burg  <bburg@apple.com>
2073
2074         Web Inspector: Convert remaining ContentViews to use ES6 classes
2075         https://bugs.webkit.org/show_bug.cgi?id=147534
2076
2077         Reviewed by Joseph Pecoraro.
2078
2079         Along the way, inline a few style class names.
2080
2081         Elided mechanical changes from the Changelog.
2082
2083         * UserInterface/Views/ApplicationCacheFrameContentView.js:
2084         * UserInterface/Views/ClusterContentView.js:
2085         * UserInterface/Views/ConsoleTabContentView.js:
2086         * UserInterface/Views/ContentBrowserTabContentView.js: Rearrange initialization
2087         of the tab's content browser to comply with TDZ rules for using `this`.
2088         * UserInterface/Views/ContentFlowDOMTreeContentView.js:
2089         * UserInterface/Views/ContentView.js:
2090         * UserInterface/Views/ContentViewContainer.js:
2091         * UserInterface/Views/CookieStorageContentView.js:
2092         * UserInterface/Views/DOMStorageContentView.js:
2093         * UserInterface/Views/DOMTreeContentView.js:
2094         * UserInterface/Views/DatabaseContentView.js:
2095         * UserInterface/Views/DatabaseTableContentView.js:
2096         * UserInterface/Views/DebuggerTabContentView.js:
2097         * UserInterface/Views/ElementsTabContentView.js:
2098         * UserInterface/Views/FontResourceContentView.js:
2099         * UserInterface/Views/FrameDOMTreeContentView.js:
2100         * UserInterface/Views/GenericResourceContentView.js:
2101         * UserInterface/Views/ImageResourceContentView.js:
2102         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
2103         * UserInterface/Views/LogContentView.js:
2104         * UserInterface/Views/NetworkGridContentView.js:
2105         * UserInterface/Views/NetworkTabContentView.js:
2106         * UserInterface/Views/NewTabContentView.js:
2107         * UserInterface/Views/ResourceClusterContentView.js:
2108         * UserInterface/Views/ResourceContentView.js:
2109         * UserInterface/Views/ResourcesTabContentView.js:
2110         * UserInterface/Views/ScriptContentView.js:
2111         * UserInterface/Views/SearchTabContentView.js:
2112         * UserInterface/Views/SettingsTabContentView.js:
2113         * UserInterface/Views/StorageTabContentView.js:
2114         * UserInterface/Views/TabContentView.js:
2115         * UserInterface/Views/TextContentView.js:
2116         * UserInterface/Views/TextResourceContentView.js:
2117         * UserInterface/Views/TimelineRecordingContentView.js:
2118
2119 2015-08-05  Devin Rousso  <drousso@apple.com>
2120
2121         Web Inspector: Allow users to duplicate rules in the Rules sidebar panel
2122         https://bugs.webkit.org/show_bug.cgi?id=147361
2123
2124         Reviewed by Timothy Hatcher.
2125
2126         Adds context menu option to non-inherited rules that, when clicked, creates
2127         a new rule with the same selector and no properties, and then focuses it.
2128
2129         * Localizations/en.lproj/localizedStrings.js:
2130         * UserInterface/Models/DOMNodeStyles.js:
2131         (WebInspector.DOMNodeStyles.prototype.addRuleWithSelector.addedRule):
2132         (WebInspector.DOMNodeStyles.prototype.addRuleWithSelector):
2133         * UserInterface/Views/CSSStyleDeclarationSection.js:
2134         (WebInspector.CSSStyleDeclarationSection.prototype.get _currentSelectorText):
2135         (WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):
2136         * UserInterface/Views/RulesStyleDetailsPanel.js:
2137         (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionFocusNextNewInspectorRule):
2138
2139 2015-08-04  Matt Baker  <mattbaker@apple.com>
2140
2141         Web Inspector: Layout & Rendering timeline grid should show TimelineRecord parent/child relationships
2142         https://bugs.webkit.org/show_bug.cgi?id=147468
2143
2144         Reviewed by Brian Burg.
2145
2146         Layout timeline data grid now shows record nesting for Layout and Composite events.
2147
2148         * UserInterface/Controllers/TimelineManager.js:
2149         (WebInspector.TimelineManager.prototype.eventRecorded):
2150         * UserInterface/Models/TimelineRecord.js:
2151         (WebInspector.TimelineRecord.prototype.get parent):
2152         (WebInspector.TimelineRecord.prototype.set parent):
2153         Preserve timeline record parent/child relationship.
2154
2155         * UserInterface/Views/LayoutTimelineView.js:
2156         (WebInspector.LayoutTimelineView):
2157         Style change for disclosure triangle support.
2158         (WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
2159         Only process immediate children of the rendering frame record.
2160
2161 2015-08-04  Devin Rousso  <drousso@apple.com>
2162
2163         Web Inspector: "No Filter Results" overlaps other UI elements when docked Inspector is small
2164         https://bugs.webkit.org/show_bug.cgi?id=147659
2165
2166         Reviewed by Timothy Hatcher.
2167
2168         Hide overflow of empty content label containers in navigation sidebars.
2169
2170         * UserInterface/Views/NavigationSidebarPanel.css:
2171         (.sidebar > .panel.navigation > .empty-content-placeholder):
2172
2173 2015-08-04  Joseph Pecoraro  <pecoraro@apple.com>
2174
2175         Improve some LayoutTests/inspector flakey output for tests with InspectorTest.reloadPage
2176         https://bugs.webkit.org/show_bug.cgi?id=147655
2177
2178         Reviewed by Timothy Hatcher.
2179
2180         * UserInterface/Base/Test.js:
2181         (InspectorTest.reloadPage):
2182         Immediately mark the page as reloading so that any logs that may happen
2183         before the callback for PageAgent.reload wait to be sent after the page
2184         load. What was happening in flakey results was that the logs were
2185         happening before this callback, and therefore getting logged and then
2186         resent after page load and getting relogged.
2187
2188 2015-08-04  Devin Rousso  <drousso@apple.com>
2189
2190         Web Inspector: Existing text after completions do not have their completion style removed once hint is applied
2191         https://bugs.webkit.org/show_bug.cgi?id=147536
2192
2193         Reviewed by Timothy Hatcher.
2194
2195         No longer applies a class to the text after the completion hint.
2196
2197         * UserInterface/Controllers/CodeMirrorCompletionController.css:
2198         (.CodeMirror .CodeMirror-lines .completion-hint):
2199         * UserInterface/Controllers/CodeMirrorCompletionController.js:
2200         (WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint.update):
2201         (WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint):
2202         (WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.clearMarker):
2203         (WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.update):
2204         (WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint):
2205
2206 2015-08-04  Matt Baker  <mattbaker@apple.com>
2207
2208         Web Inspector: Don't show 'Reveal In Debugger Tab' menu item if already in Debugger tab
2209         https://bugs.webkit.org/show_bug.cgi?id=147554
2210
2211         Reviewed by Timothy Hatcher.
2212
2213         Check current tab before appending context menu items.
2214
2215         * UserInterface/Base/Main.js:
2216         (WebInspector.isShowingDebuggerTab):
2217         * UserInterface/Views/SourceCodeTextEditor.js:
2218
2219 2015-08-04  Devin Rousso  <drousso@apple.com>
2220
2221         Web Inspector: buttons in new tab screen lack hover styles
2222         https://bugs.webkit.org/show_bug.cgi?id=145355
2223
2224         Reviewed by Timothy Hatcher.
2225
2226         Added hover brightness filter to new tab buttons.
2227
2228         * UserInterface/Views/NewTabContentView.css:
2229         (.new-tab.tab.content-view > .tab-item:not(.disabled):hover > .box):
2230         (.new-tab.tab.content-view > .tab-item:not(.disabled):active > .box):
2231
2232 2015-08-04  Devin Rousso  <drousso@apple.com>
2233
2234         Web Inspector: Merge the styles sidebar navigation bar into a selectable item in the elements sidebar
2235         https://bugs.webkit.org/show_bug.cgi?id=146878
2236
2237         Reviewed by Timothy Hatcher.
2238
2239         Replaced the default navigationItem of the CSSStyleDetailsSidebarPanel with a
2240         ScopeRadioButtonNavigationItem that will open a select element containing the labels
2241         of each style sidebar when reselected.
2242
2243         * Localizations/en.lproj/localizedStrings.js:
2244         * UserInterface/Main.html:
2245         * UserInterface/Views/ComputedStyleDetailsPanel.js:
2246         (WebInspector.ComputedStyleDetailsPanel):
2247         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
2248         (.sidebar > .panel.details.css-style > .content):
2249         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2250         (WebInspector.CSSStyleDetailsSidebarPanel):
2251         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
2252         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._panelMatchingIdentifier):
2253         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._handleSelectedItemChanged):
2254         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):
2255         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._navigationItemSelected): Deleted.
2256         * UserInterface/Views/DOMDetailsSidebarPanel.js:
2257         (WebInspector.DOMDetailsSidebarPanel):
2258         * UserInterface/Views/DetailsSidebarPanel.js:
2259         (WebInspector.DetailsSidebarPanel):
2260         * UserInterface/Views/MetricsStyleDetailsPanel.js:
2261         (WebInspector.MetricsStyleDetailsPanel):
2262         * UserInterface/Views/NavigationBar.js:
2263         (WebInspector.NavigationBar.prototype._mouseDown):
2264         * UserInterface/Views/RulesStyleDetailsPanel.js:
2265         (WebInspector.RulesStyleDetailsPanel):
2266         * UserInterface/Views/ScopeRadioButtonNavigationItem.css: Added.
2267         * UserInterface/Views/ScopeRadioButtonNavigationItem.js: Added.
2268         * UserInterface/Views/SidebarPanel.js:
2269         (WebInspector.SidebarPanel):
2270         * UserInterface/Views/StyleDetailsPanel.js:
2271         (WebInspector.StyleDetailsPanel):
2272
2273 2015-08-04  Matt Baker  <mattbaker@apple.com>
2274
2275         Web Inspector: timeline overview should visually distinguish selection bounds outside the visible duration
2276         https://bugs.webkit.org/show_bug.cgi?id=132764
2277
2278         Reviewed by Brian Burg.
2279
2280         * UserInterface/Views/TimelineRuler.css:
2281         (.timeline-ruler > .selection-handle.clamped):
2282         Added style for selection handle outside visible range.
2283         * UserInterface/Views/TimelineRuler.js:
2284         (WebInspector.TimelineRuler.prototype._updateSelection):
2285         Toggle style class and add tool tip showing the handle's value when outside the visible range.
2286
2287 2015-08-04  Brian J. Burg  <bburg@apple.com>
2288
2289         Web Inspector: Convert DataGrid and DataGridNode classes to ES6 classes
2290         https://bugs.webkit.org/show_bug.cgi?id=147439
2291
2292         Reviewed by Joseph Pecoraro.
2293
2294         Along the way, inline a few style class names.
2295
2296         Elided mechanical changes from the Changelog.
2297
2298         * UserInterface/Views/DOMTreeDataGrid.js:
2299         * UserInterface/Views/DataGrid.js:
2300         * UserInterface/Views/DatabaseTableContentView.js:
2301         * UserInterface/Views/IndexedDatabaseEntryDataGridNode.js:
2302         * UserInterface/Views/LayerTreeDataGridNode.js:
2303         * UserInterface/Views/LayoutTimelineDataGrid.js:
2304         * UserInterface/Views/LayoutTimelineDataGridNode.js:
2305         * UserInterface/Views/ProbeSetDataGrid.js:
2306         * UserInterface/Views/ProfileNodeDataGridNode.js:
2307         * UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
2308         * UserInterface/Views/ResourceTimelineDataGridNode.js:
2309         * UserInterface/Views/ScriptTimelineDataGrid.js:
2310         * UserInterface/Views/ScriptTimelineDataGridNode.js:
2311         * UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
2312         * UserInterface/Views/TimelineDataGrid.js:
2313         * UserInterface/Views/TimelineDataGridNode.js: Move a function definition out
2314         of an else branch, since this is not allowed in ES6 strict mode.
2315
2316 2015-08-04  Brian J. Burg  <burg@cs.washington.edu>
2317
2318         Web Inspector: console error when clicking AppCache folder tree element
2319         https://bugs.webkit.org/show_bug.cgi?id=130042
2320
2321         Reviewed by Joseph Pecoraro.
2322
2323         * UserInterface/Views/StorageSidebarPanel.js:
2324         (WebInspector.StorageSidebarPanel._treeElementSelected): Don't try to
2325         create a content view for ApplicationCacheManifestTreeElement. We can
2326         only create a content view for AppCache frames.
2327
2328 2015-08-04  Andres Gomez  <agomez@igalia.com>
2329
2330         [GTK] Add gtk icon to remove comma separated values from CSS properties
2331         https://bugs.webkit.org/show_bug.cgi?id=147623
2332
2333         Reviewed by Carlos Garcia Campos.
2334
2335         * UserInterface/Images/gtk/Minus.svg: Added.
2336
2337 2015-08-03  Matt Baker  <mattbaker@apple.com>
2338
2339         Web Inspector: REGRESSION (r187708): Breakpoint dialog script action editing broken
2340         https://bugs.webkit.org/show_bug.cgi?id=147553
2341
2342         Reviewed by Joseph Pecoraro.
2343
2344         Passing a widget to CodeMirror.setBookmark generates a viewportChange event, causing the
2345         BreakpointActionView to update the popup for the breakpoint. The spurious update dismisses
2346         the suggestion list, removes the CodeMirror completion hint, and causes other problems.
2347
2348         Now we ignore viewportChange events unless the viewport size changes. We still want to update
2349         the popup when a carriage return or text wrap modifies the viewport.
2350
2351         * UserInterface/Views/BreakpointActionView.js:
2352         (WebInspector.BreakpointActionView.prototype._updateBody):
2353         Evaluate and Probe actions store the current viewport size.
2354         (WebInspector.BreakpointActionView.prototype._codeMirrorViewportChanged):
2355         Check if viewport size has changed since last event.
2356
2357 2015-08-03  Brian J. Burg  <burg@cs.washington.edu>
2358
2359         Web Inspector: Application cache DataGrid has incorrect column heading styles
2360         https://bugs.webkit.org/show_bug.cgi?id=147531
2361
2362         Reviewed by Joseph Pecoraro.
2363
2364         * UserInterface/Views/ApplicationCacheFrameContentView.js:
2365         (WebInspector.ApplicationCacheFrameContentView): Remove erroneous
2366         "storage-view" class, which is intended for databases, not AppCache.
2367
2368 2015-08-02  Matt Baker  <mattbaker@apple.com>
2369
2370         Web Inspector: Unnamespaced Formatter classes break CSSStyleDeclarationTextEditor
2371         https://bugs.webkit.org/show_bug.cgi?id=147544
2372
2373         Reviewed by Brian Burg.
2374
2375         Added Formatter and FormatterContentBuilder to WebInspector namespace.
2376
2377         * UserInterface/Controllers/Formatter.js:
2378         * UserInterface/Controllers/FormatterContentBuilder.js:
2379         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2380         (WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
2381         * UserInterface/Views/TextEditor.js:
2382         (WebInspector.TextEditor.prototype.prettyPrint.prettyPrintAndUpdateEditor):
2383         (WebInspector.TextEditor.prototype.prettyPrint):
2384
2385 2015-08-02  Matt Baker  <mattbaker@apple.com>
2386
2387         Web Inspector: REGRESSION (r187689): Timeline overview graph layout is broken
2388         https://bugs.webkit.org/show_bug.cgi?id=147539
2389
2390         Reviewed by Brian Burg.
2391
2392         Removed timeline argument being passed to TimelineOverviewGraph constructor.
2393
2394         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
2395         (WebInspector.LayoutTimelineOverviewGraph):
2396         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
2397         (WebInspector.NetworkTimelineOverviewGraph):
2398         * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
2399         (WebInspector.RenderingFrameTimelineOverviewGraph):
2400         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
2401         (WebInspector.ScriptTimelineOverviewGraph):
2402
2403 2015-08-01  Nikita Vasilyev  <nvasilyev@apple.com>
2404
2405         Web Inspector: Replace "unknown-mac" CSS class with "el-capitan"
2406         https://bugs.webkit.org/show_bug.cgi?id=147524
2407
2408         Reviewed by Timothy Hatcher.
2409
2410         * UserInterface/Base/Platform.js:
2411         No need to repeat WebInspector.Platform.version.release for every possible case.
2412
2413         * UserInterface/Views/Toolbar.css:
2414         (body:not(.el-capitan) .toolbar .dashboard-container):
2415         (body:not(.el-capitan) .toolbar .search-bar > input[type="search"]):
2416         (body:not(.el-capitan) .toolbar .search-bar > input[type="search"]:focus):
2417         (body:not(.el-capitan) .toolbar .item.button:active):
2418         (body.window-inactive:not(.el-capitan) .toolbar .dashboard-container):
2419         (body.el-capitan .toolbar .dashboard-container):
2420         (body.el-capitan .toolbar .search-bar > input[type="search"]):
2421         (body.el-capitan .toolbar .search-bar > input[type="search"]:focus):
2422         (@media (-webkit-min-device-pixel-ratio: 2)):
2423         (body.el-capitan .toolbar .item.button:active):
2424         (body.el-capitan.window-inactive .toolbar .dashboard-container):
2425         (body:not(.unknown-mac) .toolbar .dashboard-container): Deleted.
2426         (body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]): Deleted.
2427         (body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]:focus): Deleted.
2428         (body:not(.unknown-mac) .toolbar .item.button:active): Deleted.
2429         (body.window-inactive:not(.unknown-mac) .toolbar .dashboard-container): Deleted.
2430         (body.unknown-mac .toolbar .dashboard-container): Deleted.
2431         (body.unknown-mac .toolbar .search-bar > input[type="search"]): Deleted.
2432         (body.unknown-mac .toolbar .search-bar > input[type="search"]:focus): Deleted.
2433         (body.unknown-mac .toolbar .item.button:active): Deleted.
2434         (body.unknown-mac.window-inactive .toolbar .dashboard-container): Deleted.
2435
2436 2015-07-31  Devin Rousso  <drousso@apple.com>
2437
2438         Web Inspector: inherited CSS rules disappear from Styles sidebar while editing
2439         https://bugs.webkit.org/show_bug.cgi?id=147441
2440
2441         Reviewed by Timothy Hatcher.
2442
2443         If the user edits a style declaration such that it would dissapear mid-edit, prevent
2444         the rules panel from refreshing until that editor is blurred.
2445
2446         * UserInterface/Views/CSSStyleDeclarationSection.js:
2447         (WebInspector.CSSStyleDeclarationSection):
2448         (WebInspector.CSSStyleDeclarationSection.prototype.get editorActive):
2449         (WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector):
2450         (WebInspector.CSSStyleDeclarationSection.prototype._editorContentChanged):
2451         (WebInspector.CSSStyleDeclarationSection.prototype._editorBlurred):
2452         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2453         (WebInspector.CSSStyleDeclarationTextEditor.prototype._editorBlured):
2454         (WebInspector.CSSStyleDeclarationTextEditor.prototype._contentChanged):
2455         * UserInterface/Views/RulesStyleDetailsPanel.js:
2456         (WebInspector.RulesStyleDetailsPanel):
2457         (WebInspector.RulesStyleDetailsPanel.prototype._removeSectionWithActiveEditor):
2458         * UserInterface/Views/StyleDetailsPanel.js:
2459         (WebInspector.StyleDetailsPanel.prototype._refreshPreservingScrollPosition):
2460
2461 2015-07-31  Devin Rousso  <drousso@apple.com>
2462
2463         Web Inspector: Autocomplete: Undo (Cmd+Z) doesn't work as expected
2464         https://bugs.webkit.org/show_bug.cgi?id=147316
2465
2466         Reviewed by Timothy Hatcher.
2467
2468         Instead of replacing the text for a completion, which messes up the undo history, add
2469         a unique marker that contains the remaining text for the current completion.
2470
2471         * UserInterface/Controllers/CodeMirrorCompletionController.js:
2472         (WebInspector.CodeMirrorCompletionController.prototype._createCompletionHintMarker):
2473         (WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint.update):
2474         (WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint):
2475         (WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.update):
2476         (WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint):
2477
2478 2015-07-31  Devin Rousso  <drousso@apple.com>
2479
2480         Web Inspector: Scrolling "jumps" in console
2481         https://bugs.webkit.org/show_bug.cgi?id=147482
2482
2483         Reviewed by Joseph Pecoraro.
2484
2485         Removed focus call on messageElement.
2486
2487         * UserInterface/Views/LogContentView.js:
2488         (WebInspector.LogContentView):
2489         (WebInspector.LogContentView.prototype._mousedown): Deleted.
2490         (WebInspector.LogContentView.prototype._didFocus): Deleted.
2491         (WebInspector.LogContentView.prototype._didBlur): Deleted.
2492
2493 2015-07-31  Joseph Pecoraro  <pecoraro@apple.com>
2494
2495         Web Inspector: Unskip / Unflake inspector tests after r187627
2496         https://bugs.webkit.org/show_bug.cgi?id=147503
2497
2498         Reviewed by Brian Burg.
2499
2500         * UserInterface/Base/Test.js:
2501         (InspectorTest.completeTest):
2502         (InspectorTest.completeTest.signalCompletionToTestPage): Deleted.
2503         (InspectorTest.testPageDidLoad):
2504         Instead of immediately resending results if completeTest was called
2505         during a reload before the load has completed, we just set a flag
2506         to complete the test when the load completes. This consistently
2507         resends the output to the new page for test output.
2508         
2509         (InspectorTest._resendResults):
2510         Delete clear results. If the page had logged anything directly on
2511         the page side (using InspectorTestProxy) this clearMessages would
2512         have deleted those messages and not been able to recreate them.
2513         Clearing messages wasn't really serving a purpose.
2514
2515 2015-07-31  Brian J. Burg  <burg@cs.washington.edu>
2516
2517         Web Inspector: Convert timeline view classes to ES6 classes
2518         https://bugs.webkit.org/show_bug.cgi?id=147381
2519
2520         Reviewed by Joseph Pecoraro.
2521
2522         Along the way, inline a few style class names.
2523
2524         Elided mechanical changes from the Changelog.
2525
2526         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
2527         * UserInterface/Views/LayoutTimelineView.js:
2528         * UserInterface/Views/LinearTimelineOverview.js:
2529         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
2530         * UserInterface/Views/NetworkTimelineView.js:
2531         * UserInterface/Views/OverviewTimelineView.js:
2532         * UserInterface/Views/RenderingFrameTimelineOverview.js:
2533         * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
2534         * UserInterface/Views/RenderingFrameTimelineView.js:
2535         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
2536         * UserInterface/Views/ScriptTimelineView.js:
2537         * UserInterface/Views/TimelineOverview.js:
2538         * UserInterface/Views/TimelineOverviewGraph.js:
2539         * UserInterface/Views/TimelineRecordBar.js:
2540         * UserInterface/Views/TimelineRecordFrame.js:
2541         * UserInterface/Views/TimelineRecordingContentView.js:
2542         * UserInterface/Views/TimelineRuler.js:
2543         * UserInterface/Views/TimelineTabContentView.js:
2544         * UserInterface/Views/TimelineView.js:
2545
2546 2015-07-30  Matt Baker  <mattbaker@apple.com>
2547
2548         Web Inspector: Better share objects generated from timeline events (Records)
2549         https://bugs.webkit.org/show_bug.cgi?id=147029
2550
2551         Reviewed by Brian Burg.
2552
2553         This patch changes the way TimelineManager processes events, preserving the event hierarchy after
2554         converting payloads to TimelineRecord objects by retaining parent-child relationships between records.
2555         This eliminates the need for RenderingFrameTimelineRecord objects to create a separate copy of their child
2556         records, and provides richer data for the Timelines UI.
2557
2558         * UserInterface/Controllers/TimelineManager.js:
2559         (WebInspector.TimelineManager.prototype.eventRecorded):
2560         Track the parent TimelineRecord as child record payloads are unpacked, and create
2561         a hierarchy of TimelineRecords that mirrors the original event payload hierarchy.
2562         (WebInspector.TimelineManager.prototype._processRecord):
2563         RenderingFrameTimelineRecord is now processed like any other event.
2564         (WebInspector.TimelineManager.prototype._processNestedRecords): Deleted.
2565         Reverted back to a single pass over the incoming timeline event payload.
2566
2567         * UserInterface/Models/LayoutTimelineRecord.js:
2568         (WebInspector.LayoutTimelineRecord):
2569         (WebInspector.LayoutTimelineRecord.prototype.get duringComposite): Deleted.
2570         Removed duringComposite property and constructor parameter. No longer needed.
2571
2572         * UserInterface/Models/RenderingFrameTimelineRecord.js:
2573         (WebInspector.RenderingFrameTimelineRecord.prototype.get children): Deleted.
2574         Removed children property. It now exists on the base class TimelineRecord.
2575         Also removed code that was needed to prevent paint time from being added twice.
2576
2577         * UserInterface/Models/ScriptTimelineRecord.js:
2578         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
2579         (WebInspector.ScriptTimelineRecord):
2580         Removed workaround added in:
2581         <https://webkit.org/b/147025> Web Inspector: REGRESSION (r186218) ScriptTimelineRecord attempts to access null property
2582
2583         * UserInterface/Models/TimelineRecord.js:
2584         (WebInspector.TimelineRecord):
2585         (WebInspector.TimelineRecord.prototype.get children):
2586         Added children property.
2587
2588         * UserInterface/Views/RenderingFrameTimelineView.js:
2589         (WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords):
2590         Now that we preserve the frame's child record hierarchy, we process the entire tree,
2591         yielding richer data grid output:
2592
2593            Frame X
2594               Styles Recalculated
2595                  Layout Invalidated
2596               Composite
2597                  Paint
2598                  Paint
2599
2600         Compared to the previous output:
2601
2602            Frame X
2603               Styles Recalculated
2604               Layout Invalidated
2605               Composite
2606               Paint
2607               Paint
2608
2609 2015-07-30  Devin Rousso  <drousso@apple.com>
2610
2611         Web Inspector: Support smart-pasting in the Rules sidebar panel
2612         https://bugs.webkit.org/show_bug.cgi?id=147362
2613
2614         Reviewed by Timothy Hatcher.
2615
2616         When pasting over the selector, if the pasted text matches CSS rule
2617         formatting, replace the selected rule with the selector and text in
2618         the pasted data.
2619
2620         * UserInterface/Models/DOMNodeStyles.js:
2621         (WebInspector.DOMNodeStyles.prototype.changeRule.changeCompleted):
2622         (WebInspector.DOMNodeStyles.prototype.changeRule.styleChanged):
2623         (WebInspector.DOMNodeStyles.prototype.changeRule.changeText):
2624         (WebInspector.DOMNodeStyles.prototype.changeRule.ruleSelectorChanged):
2625         (WebInspector.DOMNodeStyles.prototype.changeRule):
2626         * UserInterface/Views/CSSStyleDeclarationSection.js:
2627         (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste.parseTextForRule):
2628         (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
2629         (WebInspector.CSSStyleDeclarationSection):
2630
2631 2015-07-30  Matt Baker  <mattbaker@apple.com>
2632
2633         Web Inspector: Fix typo in frame duration filtering console.assert message
2634         https://bugs.webkit.org/show_bug.cgi?id=147458
2635
2636         Rubber-stamped by Joseph Pecoraro.
2637
2638         * UserInterface/Views/RenderingFrameTimelineView.js:
2639         (WebInspector.RenderingFrameTimelineView.displayNameForDurationFilter):
2640
2641 2015-07-30  Nikita Vasilyev  <nvasilyev@apple.com>
2642
2643         Web Inspector: Regression: %c is broken for console.group
2644         https://bugs.webkit.org/show_bug.cgi?id=147436
2645
2646         Reviewed by Timothy Hatcher.
2647
2648         * UserInterface/Views/ConsoleMessageView.js:
2649         (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
2650
2651 2015-07-30  Devin Rousso  <drousso@apple.com>
2652
2653         Web Inspector: Add special case for deleting the next character when editing rules in the CSS Sidebar
2654         https://bugs.webkit.org/show_bug.cgi?id=147442
2655
2656         Reviewed by Timothy Hatcher.
2657
2658         If the cursor is on the first position of the first line in a CSS Rule and that line
2659         has no content, delete the line instead of doing nothing.
2660
2661         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2662         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange):
2663
2664 2015-07-29  Nikita Vasilyev  <nvasilyev@apple.com>
2665
2666         Web Inspector: Improve styles of debugger popovers
2667         https://bugs.webkit.org/show_bug.cgi?id=147437
2668
2669         Reviewed by Timothy Hatcher.
2670
2671         Use non-monospace font and improve spacing.
2672
2673         * UserInterface/Views/SourceCodeTextEditor.css:
2674         (.popover .debugger-popover-content > .title):
2675         (.popover .debugger-popover-content > .body):
2676
2677 2015-07-29  Nikita Vasilyev  <nvasilyev@apple.com>
2678
2679         Web Inspector: Border line in the debug popover should be semi-transparent black, not dark yellow
2680         https://bugs.webkit.org/show_bug.cgi?id=147435
2681
2682         Reviewed by Timothy Hatcher.
2683
2684         * UserInterface/Views/SourceCodeTextEditor.css:
2685         (.popover .debugger-popover-content > .body):
2686         (@media (-webkit-min-device-pixel-ratio: 2)): Use hairline borders on retina.
2687
2688 2015-07-29  Nikita Vasilyev  <nvasilyev@apple.com>
2689
2690         Web Inspector: " = $0" text in the Elements panel should anti-aliased
2691         https://bugs.webkit.org/show_bug.cgi?id=147432
2692
2693         Reviewed by Timothy Hatcher.
2694
2695         * UserInterface/Views/DOMTreeOutline.css:
2696         (.dom-tree-outline li.selected > span::after):
2697         (.dom-tree-outline:focus li.selected > span::after):
2698         Decrease the opacity just slightly to make " = $0" more distinct from DOM nodes.
2699
2700 2015-07-29  Matt Baker  <mattbaker@apple.com>
2701
2702         Web Inspector: Allow record filtering by frame duration in Rendering Frames timeline
2703         https://bugs.webkit.org/show_bug.cgi?id=147419
2704
2705         Reviewed by Timothy Hatcher.
2706
2707         * Localizations/en.lproj/localizedStrings.js:
2708         New scope bar item labels.
2709
2710         * UserInterface/Views/RenderingFrameTimelineView.js:
2711         (WebInspector.RenderingFrameTimelineView):
2712         New scope bar for frame duration filtering.
2713         (WebInspector.RenderingFrameTimelineView.displayNameForDurationFilter):
2714         (WebInspector.RenderingFrameTimelineView.prototype.matchTreeElementAgainstCustomFilters):
2715         Overridden for view specific filtering. Filtering applies to RenderingFrameTimelineRecords only.
2716         (WebInspector.RenderingFrameTimelineView.prototype._scopeBarSelectionDidChange):
2717         Force sidebar filtering when duration filter changes.
2718
2719 2015-07-28  Joseph Pecoraro  <pecoraro@apple.com>
2720
2721         Web Inspector: console.groupEnd causes negative indent when no group is active
2722         https://bugs.webkit.org/show_bug.cgi?id=147375
2723
2724         Reviewed by Timothy Hatcher.
2725
2726         * UserInterface/Views/LogContentView.js:
2727         (WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
2728
2729 2015-07-28  Brian J. Burg  <burg@cs.washington.edu>
2730
2731         Web Inspector: Convert NavigationItem subclasses to ES6
2732         https://bugs.webkit.org/show_bug.cgi?id=147364
2733
2734         Reviewed by Timothy Hatcher.
2735
2736         Convert remaining NavigationItem subclasses to use ES6 class.
2737
2738         Also promote the _additionalClassNames to be a protected getter,
2739         and inline the style class names that are only used in one place.
2740
2741         Mechanical changes are elided from the changelog.
2742
2743         * UserInterface/Views/ActivateButtonNavigationItem.js:
2744         (WebInspector.ActivateButtonNavigationItem):
2745         (WebInspector.ActivateButtonNavigationItem.prototype.get additionalClassNames):
2746         * UserInterface/Views/ActivateButtonToolbarItem.js:
2747         (WebInspector.ActivateButtonToolbarItem):
2748         * UserInterface/Views/ButtonNavigationItem.js:
2749         (WebInspector.ButtonNavigationItem):
2750         (WebInspector.ButtonNavigationItem.prototype.get additionalClassNames):
2751         * UserInterface/Views/ButtonToolbarItem.js:
2752         (WebInspector.ButtonToolbarItem):
2753         * UserInterface/Views/ControlToolbarItem.js:
2754         (WebInspector.ControlToolbarItem):
2755         (WebInspector.ControlToolbarItem.prototype.get additionalClassNames):
2756         * UserInterface/Views/DividerNavigationItem.js:
2757         (WebInspector.DividerNavigationItem):
2758         (WebInspector.DividerNavigationItem.prototype.get additionalClassNames):
2759         * UserInterface/Views/FlexibleSpaceNavigationItem.js:
2760         (WebInspector.FlexibleSpaceNavigationItem):
2761         (WebInspector.FlexibleSpaceNavigationItem.prototype.get additionalClassNames):
2762         * UserInterface/Views/HierarchicalPathNavigationItem.js:
2763         (WebInspector.HierarchicalPathNavigationItem.prototype.get additionalClassNames):
2764         (WebInspector.HierarchicalPathNavigationItem.prototype.get _additionalClassNames): Deleted.
2765         * UserInterface/Views/NavigationItem.js:
2766         (WebInspector.NavigationItem):
2767         (WebInspector.NavigationItem.prototype.get _classNames):
2768         * UserInterface/Views/RadioButtonNavigationItem.js:
2769         (WebInspector.RadioButtonNavigationItem):
2770         (WebInspector.RadioButtonNavigationItem.prototype.get additionalClassNames):
2771         * UserInterface/Views/ToggleButtonNavigationItem.js:
2772         (WebInspector.ToggleButtonNavigationItem):
2773         (WebInspector.ToggleButtonNavigationItem.prototype.get additionalClassNames):
2774         * UserInterface/Views/ToggleControlToolbarItem.js:
2775         (WebInspector.ToggleControlToolbarItem):
2776         (WebInspector.ToggleControlToolbarItem.prototype.get additionalClassNames):
2777
2778 2015-07-28  Joseph Pecoraro  <pecoraro@apple.com>
2779
2780         Web Inspector: Include <template> node content in DOM Tree
2781         https://bugs.webkit.org/show_bug.cgi?id=147335
2782
2783         Reviewed by Timothy Hatcher.
2784
2785         * UserInterface/Controllers/DOMTreeManager.js:
2786         (WebInspector.DOMTreeManager.prototype._unbind):
2787         Cleanup templateContent when DOMNodes get removed.
2788
2789         * UserInterface/Models/DOMNode.js:
2790         (WebInspector.DOMNode.prototype.templateContent):
2791         Create a DOMNode from the payload's templateContent.
2792
2793         * UserInterface/Views/DOMTreeElement.js:
2794         (WebInspector.DOMTreeElement.prototype._singleTextChild):
2795         (WebInspector.DOMTreeElement.prototype._hasVisibleChildren):
2796         (WebInspector.DOMTreeElement.prototype._visibleChildren):
2797         A DOMTreeElement has children if the DOMNode has template content.
2798
2799 2015-07-28  Devin Rousso  <drousso@apple.com>
2800
2801         Web Inspector: Invalid selectors can be applied to the stylesheet
2802         https://bugs.webkit.org/show_bug.cgi?id=147230
2803
2804         Reviewed by Timothy Hatcher.
2805
2806         * Localizations/en.lproj/localizedStrings.js:
2807
2808         * UserInterface/Models/CSSRule.js:
2809         (WebInspector.CSSRule.prototype.set selectorText):
2810         Fires an event with data stating if the newly applied selector was valid or not.
2811         (WebInspector.CSSRule.prototype._selectorRejected):
2812         (WebInspector.CSSRule.prototype._selectorResolved):
2813         (WebInspector.CSSRule):
2814
2815         * UserInterface/Models/DOMNodeStyles.js:
2816         (WebInspector.DOMNodeStyles.prototype.changeRuleSelector.ruleSelectorChanged):
2817         (WebInspector.DOMNodeStyles.prototype.changeRuleSelector):
2818         Now returns a promise that will reject if CSSAgent.setRuleSelector has an
2819         error, such as if the selector is invalid, and resolve otherwise.
2820
2821         * UserInterface/Views/CSSStyleDeclarationSection.css:
2822         (.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover):
2823         (.style-declaration-section:not(.invalid-selector).rule-disabled > .header > .icon):
2824         (.style-declaration-section.invalid-selector > .header > .icon):
2825         (.style-declaration-section.invalid-selector > .header > .selector > *):
2826         (.style-declaration-section > .header > .icon.toggle-able:hover): Deleted.
2827         (.style-declaration-section.rule-disabled > .header > .icon): Deleted.
2828
2829         * UserInterface/Views/CSSStyleDeclarationSection.js:
2830         (WebInspector.CSSStyleDeclarationSection):
2831         (WebInspector.CSSStyleDeclarationSection.prototype._toggleRuleOnOff):
2832         Only allow rule toggling if the selector is valid.
2833         (WebInspector.CSSStyleDeclarationSection.prototype._markSelector):
2834         If the new selector is valid, refresh the section. Otherwise, apply a class
2835         to the section element that marks the selector as being invalid.
2836         (WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector):
2837
2838 2015-07-28  Joseph Pecoraro  <pecoraro@apple.com>
2839
2840         Web Inspector: Show Pseudo Elements in DOM Tree
2841         https://bugs.webkit.org/show_bug.cgi?id=139612
2842
2843         Reviewed by Timothy Hatcher.
2844
2845         * UserInterface/Controllers/DOMTreeManager.js:
2846         (WebInspector.DOMTreeManager.prototype._pseudoElementAdded):
2847         Hook up the new pseudo element DOMNode to the parent.
2848
2849         (WebInspector.DOMTreeManager.prototype._pseudoElementRemoved):
2850         Unhook the pseudo element from its parent.
2851
2852         (WebInspector.DOMTreeManager.prototype._unbind):
2853         When unbinding, unbind any pseudo element children we may have had.
2854
2855         * UserInterface/Models/DOMNode.js:
2856         (WebInspector.DOMNode.prototype.isPseudoElement):
2857         (WebInspector.DOMNode.prototype.pseudoType):
2858         (WebInspector.DOMNode.prototype.hasPseudoElements):
2859         (WebInspector.DOMNode.prototype.pseudoElements):
2860         New state of a DOMNode may include pseudo elements.
2861
2862         (WebInspector.DOMNode.prototype.appropriateSelectorFor):
2863         A selector for this node includes the selector for the node above it.
2864
2865         * UserInterface/Protocol/DOMObserver.js:
2866         (WebInspector.DOMObserver.prototype.pseudoElementAdded):
2867         (WebInspector.DOMObserver.prototype.pseudoElementRemoved):
2868         Pass the message on to DOMTreeManager.
2869
2870         * UserInterface/Views/DOMTreeElement.js:
2871         (WebInspector.DOMTreeElement.prototype.get editable):
2872         Pseudo element nodes are not editable.
2873
2874         (WebInspector.DOMTreeElement.prototype.showChildNode):
2875         (WebInspector.DOMTreeElement.prototype.onpopulate):
2876         (WebInspector.DOMTreeElement.prototype.updateChildren):
2877         (WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
2878         (WebInspector.DOMTreeElement.prototype._singleTextChild):
2879         (WebInspector.DOMTreeElement.prototype._hasVisibleChildren):
2880         (WebInspector.DOMTreeElement.prototype._visibleChildren):
2881         (WebInspector.DOMTreeElement.prototype._updateChildren):
2882         (WebInspector.DOMTreeElement.prototype.adjustCollapsedRange):
2883         (WebInspector.DOMTreeElement.prototype.handleLoadAllChildren):
2884         A DOMTreeElement's children are no longer 1-to-1 to DOMNode's children.
2885         Instead a DOMNode may have a before/after pseudo element child that
2886         are not included in the children list. Update parts of DOMTreeElement
2887         to respect this list of visible children.
2888
2889         * UserInterface/Views/DOMTreeElementPathComponent.js:
2890         (WebInspector.DOMTreeElementPathComponent):
2891         * UserInterface/Views/PathComponentIcons.css:
2892         (.dom-pseudo-element-icon .icon):
2893         Styling for the path component when a pseudo element is selected.
2894
2895         * UserInterface/Views/DOMTreeOutline.css:
2896         (.dom-tree-outline .html-pseudo-element):
2897         (.dom-tree-outline .html-fragment.shadow):
2898         (.webkit-html-fragment.shadow): Deleted.
2899         Styles for pseudo elements in the DOM tree.
2900
2901         * UserInterface/Views/DOMTreeOutline.js:
2902         (WebInspector.DOMTreeOutline.prototype._hideElement):
2903         Make the hide element selector hide the host element.
2904
2905         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2906         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.addEventListeners):
2907         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.removeEventListeners):
2908         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
2909         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes):
2910         Pseudo class changes won't happen on pseudo elements, but will
2911         happen on their host element, so listen to and make pseudo class
2912         changes to the host element.
2913
2914         * UserInterface/Views/RulesStyleDetailsPanel.css:
2915         (.sidebar > .panel.details.css-style .rules > *:first-child:matches(.new-rule)):
2916         Since a pseudo element does not have a style attribute,
2917         give some margin in the style sidebar above the "New Rule"
2918         button so it looks better.
2919
2920 2015-07-27  Matt Baker  <mattbaker@apple.com>
2921
2922         Web Inspector: Record button in Timelines view is clipped on non-retina. Hovering over the dot draws it correctly.
2923         https://bugs.webkit.org/show_bug.cgi?id=147346
2924
2925         Reviewed by Joseph Pecoraro.
2926
2927         Since the hovered button isn't clipped (-webkit-filter is applied in that case), add a filter that
2928         doesn't alter the button's appearance to the non-hovered selector.
2929
2930         * UserInterface/Views/TimelineSidebarPanel.css:
2931         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
2932         Added brightness 100% filter to non-hovered selector.
2933
2934 2015-07-27  Matt Baker  <mattbaker@apple.com>
2935
2936         Web Inspector: Clicking a frame in the Rendering Frames timeline should select the corresponding grid row
2937         https://bugs.webkit.org/show_bug.cgi?id=147013
2938
2939         Reviewed by Timothy Hatcher.
2940
2941         Added ability to select (or highlight) a particular frame by clicking in the overview graph. A tick mark
2942         appears above the selected frame inside the ruler, and the frame element's background color changes to a light
2943         blue vertical highlight. Frame selection is synced across the timeline view's data grid, overview graph, and
2944         navigation bar path components.
2945
2946         A few behaviors:
2947            - Clicking a frame outside the current ruler selection selects the frame.
2948            - Clicking the selected frame will deselect it.
2949            - Resizing the ruler selection to exclude the selected frame will deselect it.
2950
2951         * UserInterface/Views/DataGrid.js:
2952         (WebInspector.DataGridNode.prototype.select):
2953         No need to generate two SelectedNodeChanged events when selecting a node causes
2954         the currently selected node to be deselected.
2955
2956         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
2957         (WebInspector.LayoutTimelineOverviewGraph):
2958         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
2959         (WebInspector.NetworkTimelineOverviewGraph):
2960         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
2961         (WebInspector.ScriptTimelineOverviewGraph): Set TimelineOverview during construction.
2962         Set TimelineOverview during construction.
2963
2964         * UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
2965         (.timeline-overview-graph.rendering-frame > .frame-marker):
2966         (body.window-inactive .timeline-overview-graph.rendering-frame > .frame-marker):
2967         Added styles for selected frame marker.
2968
2969         * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
2970         (WebInspector.RenderingFrameTimelineOverviewGraph):
2971         Set TimelineOverview during construction.
2972         (WebInspector.RenderingFrameTimelineOverviewGraph.prototype._mouseClicked):
2973         Added frame marker element and frame selection via mouse click.
2974
2975         * UserInterface/Views/RenderingFrameTimelineView.js:
2976         (WebInspector.RenderingFrameTimelineView.prototype.treeElementDeselected):
2977         Deselect grid node when frame is deselected from the overview graph.
2978         (WebInspector.RenderingFrameTimelineView.prototype.filterDidChange): Deleted.
2979         Removed unnecessary override.
2980
2981         * UserInterface/Views/TimelineOverview.js:
2982         Added selectRecord method and RecordSelected event.
2983         (WebInspector.TimelineOverview):
2984         (WebInspector.TimelineOverview.prototype._timelineRulerMouseDown):
2985         (WebInspector.TimelineOverview.prototype._timelineRulerMouseClicked):
2986         Since timeline ruler specifies pointer-events: all, click events must be forwarded to the
2987         underlying overview graph. Click events following changes to the ruler's selection are ignored.
2988
2989         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
2990         (WebInspector.TimelineOverview.prototype._recordSelected):
2991         Forward RecordSelected events from child graphs to clients of the overview.
2992
2993         * UserInterface/Views/TimelineOverviewGraph.js:
2994         Added RecordSelected event.
2995         (WebInspector.TimelineOverviewGraph):
2996         (WebInspector.TimelineOverviewGraph.prototype.get visible):
2997         (WebInspector.TimelineOverviewGraph.prototype.get selectedRecord):
2998         (WebInspector.TimelineOverviewGraph.prototype.set selectedRecord):
2999         Added property for selecting a record in the graph. Derived graph types can implement record selection
3000         and choose how to style the selected record.
3001         (WebInspector.TimelineOverviewGraph.prototype.updateLayout):
3002         (WebInspector.TimelineOverviewGraph.prototype.needsLayout):
3003         Update frame marker during an animation frame.
3004         (WebInspector.TimelineOverviewGraph.prototype.dispatchSelectedRecordChangedEvent):
3005         Dispatch wrapper to simplify things.
3006         (WebInspector.TimelineOverviewGraph.prototype.updateSelectedRecord):
3007         (WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout.update):
3008         (WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
3009         Inform derived overview graph to optionally style the selected record.
3010         (WebInspector.TimelineOverviewGraph.prototype.set timelineOverview): Deleted.
3011         No longer needed. TimelineOverview set during construction.
3012
3013         * UserInterface/Views/TimelineRecordFrame.css:
3014         (.timeline-record-frame):
3015         (.timeline-record-frame.tall):
3016         Limit the "fade out" effect to frames that are >= 95% of the graph height, otherwise the
3017         gradient mask is noticeable when selecting a shorter frame.
3018         (.timeline-record-frame.selected):
3019         (body.window-inactive .timeline-record-frame.selected):
3020         (.timeline-record-frame.selected > .frame):
3021         Added highlight (and dimmed inactive highlight) for selected frame element.
3022
3023         * UserInterface/Views/TimelineRecordFrame.js:
3024         (WebInspector.TimelineRecordFrame.prototype.get selected):
3025         (WebInspector.TimelineRecordFrame.prototype.set selected):
3026         Added property for setting selected style.
3027
3028         * UserInterface/Views/TimelineRecordingContentView.js:
3029         (WebInspector.TimelineRecordingContentView):
3030         (WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
3031         Select record in overview in response to changing navigation path.
3032         (WebInspector.TimelineRecordingContentView.prototype._recordSelected.get console):
3033         (WebInspector.TimelineRecordingContentView.prototype._recordSelected):
3034         Update selected tree element in response to changing record selection in the overview graph.
3035
3036 2015-07-27  Joseph Pecoraro  <pecoraro@apple.com>
3037
3038         Web Inspector: Revert change to DOMTreeElement.prototype.remove
3039         https://bugs.webkit.org/show_bug.cgi?id=147336
3040
3041         Reviewed by Timothy Hatcher.
3042
3043         * UserInterface/Views/DOMTreeElement.js:
3044         (WebInspector.DOMTreeElement.prototype.remove.removeNodeCallback):
3045         This change was accidental, and just resulted in the function calling
3046         itself again. It didn't infinite loops because another path would have
3047         removed the DOMTreeElement, but lets correct this code.
3048
3049 2015-07-27  Devin Rousso  <drousso@apple.com>
3050
3051         Web Inspector: support live editing of rule selectors
3052         https://bugs.webkit.org/show_bug.cgi?id=139153
3053
3054         Reviewed by Timothy Hatcher.
3055
3056         * UserInterface/Controllers/DOMTreeManager.js:
3057         (WebInspector.DOMTreeManager.prototype.highlightSelector):
3058         Moved from CSSStyleDeclarationSection.
3059
3060         * UserInterface/Views/CSSStyleDeclarationSection.js:
3061         (WebInspector.CSSStyleDeclarationSection):
3062         (WebInspector.CSSStyleDeclarationSection.prototype.get _currentSelectorText):
3063         Returns the current selector text, either from the style ownerRule or the selector element text.
3064         (WebInspector.CSSStyleDeclarationSection.prototype._highlightNodesWithSelector):
3065         Now highlights all nodes matching the current selector instead of the ownerRule's selector.
3066         (WebInspector.CSSStyleDeclarationSection.prototype._hideDOMNodeHighlight):
3067         (WebInspector.CSSStyleDeclarationSection.prototype._handleMouseOver):
3068         (WebInspector.CSSStyleDeclarationSection.prototype._handleMouseOut):
3069         (WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown):
3070         If the character is not a tab, highlight all nodes matching the current selector text.
3071         (WebInspector.CSSStyleDeclarationSection.prototype._handleKeyUp):
3072         (WebInspector.CSSStyleDeclarationSection.prototype._hideHighlightOnNodesWithSelector): Deleted.
3073
3074 2015-07-27  Nikita Vasilyev  <nvasilyev@apple.com>
3075
3076         Web Inspector: " = $0" in Elements panel can cause a jerk by pushing nodes below it
3077         https://bugs.webkit.org/show_bug.cgi?id=147318
3078
3079         Reviewed by Timothy Hatcher.
3080
3081         * UserInterface/Views/DOMTreeOutline.css:
3082         (.dom-tree-outline li.selected > span::after):
3083
3084 2015-07-25  Nikita Vasilyev  <nvasilyev@apple.com>
3085
3086         Web Inspector: Start using Node.prototype.remove
3087         https://bugs.webkit.org/show_bug.cgi?id=147304
3088
3089         Reviewed by Timothy Hatcher.
3090
3091         * UserInterface/Base/Main.js:
3092         (WebInspector.elementDragStart):
3093         (WebInspector.elementDragEnd):
3094         (WebInspector.revertDomChanges):
3095         * UserInterface/Views/DOMTreeElement.js:
3096         (WebInspector.DOMTreeElement.prototype._updateSearchHighlight.updateEntryHide):
3097         (WebInspector.DOMTreeElement.prototype._updateSearchHighlight):
3098         (WebInspector.DOMTreeElement.prototype.remove.removeNodeCallback):
3099         (WebInspector.DOMTreeElement.prototype.remove):
3100         * UserInterface/Views/Resizer.js:
3101         (WebInspector.Resizer.prototype._resizerMouseDown):
3102         (WebInspector.Resizer.prototype._resizerMouseUp):
3103         (WebInspector.Resizer):
3104
3105 2015-07-25  Nikita Vasilyev  <nvasilyev@apple.com>
3106
3107         Web Inspector: Fix color declaration for not-executed comments
3108         https://bugs.webkit.org/show_bug.cgi?id=147305
3109
3110         Reviewed by Timothy Hatcher.
3111
3112         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
3113         (.cm-s-default .basic-block-has-not-executed.cm-comment):
3114         This was an RGB color mispelled as HSL. Replace "hsl" with "rgb"
3115         and convert it to HSL.
3116
3117 2015-07-25  Nikita Vasilyev  <nvasilyev@apple.com>
3118
3119         Web Inspector: Start using Node.prototype.replaceWith
3120         https://bugs.webkit.org/show_bug.cgi?id=147303
3121
3122         Reviewed by Timothy Hatcher.
3123
3124         * UserInterface/Views/Popover.js:
3125         (WebInspector.Popover.prototype._update):
3126
3127 2015-07-25  Nikita Vasilyev  <nvasilyev@apple.com>
3128
3129         Web Inspector: Start using Node.prototype.append
3130         https://bugs.webkit.org/show_bug.cgi?id=147301
3131
3132         Convert all instances of element.appendChild(document.createTextNode(aString))
3133         to element.append(aString).
3134
3135         Reviewed by Timothy Hatcher.
3136
3137         * UserInterface/Base/DOMUtilities.js:
3138         * UserInterface/Base/Main.js:
3139         (WebInspector.linkifyLocation):
3140         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
3141         * UserInterface/Models/Breakpoint.js:
3142         (WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
3143         * UserInterface/Views/BoxModelDetailsSectionRow.js:
3144         (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics):
3145         * UserInterface/Views/CSSStyleDeclarationSection.js:
3146         (WebInspector.CSSStyleDeclarationSection.prototype.refresh):
3147         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
3148         (WebInspector.CSSStyleDetailsSidebarPanel):
3149         * UserInterface/Views/ChartDetailsSectionRow.js:
3150         (WebInspector.ChartDetailsSectionRow.prototype._createLegendItem):
3151         * UserInterface/Views/ConsoleMessageView.js:
3152         (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
3153         (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
3154         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
3155         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.accessibilityPropertiesCallback):
3156         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
3157         * UserInterface/Views/DOMTreeElement.js:
3158         (WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
3159         (WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
3160         (WebInspector.DOMTreeElement.prototype._buildTagDOM):
3161         (WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
3162         defaultElement variable is unused, remove it.
3163
3164         * UserInterface/Views/DataGrid.js:
3165         (WebInspector.DataGridNode.prototype.createCell.get if):
3166         (WebInspector.DataGridNode.prototype.createCell):
3167         * UserInterface/Views/DebuggerDashboardView.js:
3168         (WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
3169         * UserInterface/Views/EventListenerSectionGroup.js:
3170         (WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
3171         (WebInspector.EventListenerSectionGroup):
3172         * UserInterface/Views/FormattedValue.js:
3173         (WebInspector.FormattedValue.createLinkifiedElementString):
3174         (WebInspector.FormattedValue.createElementForNodePreview):
3175         * UserInterface/Views/ObjectPreviewView.js:
3176         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
3177         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
3178         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
3179         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):
3180         (WebInspector.ResourceDetailsSidebarPanel):
3181         * UserInterface/Views/RulesStyleDetailsPanel.js:
3182         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton):
3183         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
3184         * UserInterface/Views/SearchResultTreeElement.js:
3185         (WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
3186         * UserInterface/Views/SyntaxHighlightingSupport.js:
3187         (.appendText):
3188         (WebInspector.syntaxHighlightStringAsDocumentFragment):
3189         * UserInterface/Views/TimelineDataGridNode.js:
3190         (WebInspector.TimelineDataGridNode.prototype.createCellContent):
3191
3192 2015-07-24  Joseph Pecoraro  <pecoraro@apple.com>
3193
3194         Web Inspector: Add custom parameter lists for new DOM append/prepend/before/after/replaceWith methods
3195         https://bugs.webkit.org/show_bug.cgi?id=147257
3196
3197         Reviewed by Timothy Hatcher.
3198
3199         * UserInterface/Models/NativeFunctionParameters.js:
3200
3201 2015-07-23  Matt Baker  <mattbaker@apple.com>
3202
3203         Web Inspector: jittery cursor when adjusting time interval using timeline grabbers
3204         https://bugs.webkit.org/show_bug.cgi?id=147095
3205
3206         Reviewed by Brian Burg.
3207
3208         * UserInterface/Views/TimelineRuler.css:
3209         (.timeline-ruler.resizing-selection > .selection-drag):
3210         Override selection-drag element's cursor when "resizing-selection" selector is applied.
3211         (.timeline-ruler.allows-time-range-selection.creating-selection): Deleted.
3212         Renamed "creating-selection" selector to "resizing-selection" to reflect its new role.
3213
3214         * UserInterface/Views/TimelineRuler.js:
3215         (WebInspector.TimelineRuler.prototype._handleMouseMove):
3216         (WebInspector.TimelineRuler.prototype._handleMouseUp):
3217         (WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown):
3218         (WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseUp):
3219         Toggle cursor styles.
3220
3221 2015-07-23  Devin Rousso  <drousso@apple.com>
3222
3223         Web Inspector: Add a function to CSSCompletions to get a list of supported system fonts
3224         https://bugs.webkit.org/show_bug.cgi?id=147009
3225
3226         Reviewed by Joseph Pecoraro.
3227
3228         * UserInterface/Base/Main.js:
3229         (WebInspector.loaded):
3230         (WebInspector.activateExtraDomains):
3231         * UserInterface/Base/Test.js:
3232         (WebInspector.loaded):
3233         * UserInterface/Models/CSSCompletions.js:
3234         (WebInspector.CSSCompletions.requestCSSCompletions.fontFamilyNamesCallback):
3235         (WebInspector.CSSCompletions.requestCSSCompletions):
3236         Now also grabs the list of system font family names and adds that list to the existing completion
3237         list for both font and font-family in CSSKeywordCompletions.
3238         (WebInspector.CSSCompletions.requestCSSNameCompletions): Deleted.
3239
3240 2015-07-23  Matt Baker  <mattbaker@apple.com>
3241
3242         Web Inspector: wrong cursor shown when selecting time interval from timeline overview
3243         https://bugs.webkit.org/show_bug.cgi?id=147094
3244
3245         Reviewed by Timothy Hatcher.
3246
3247         * UserInterface/Views/TimelineRuler.css:
3248         (.timeline-ruler.allows-time-range-selection.creating-selection):
3249         New cursor style for entire ruler element.
3250
3251         * UserInterface/Views/TimelineRuler.js:
3252         (WebInspector.TimelineRuler.prototype._handleMouseMove):
3253         (WebInspector.TimelineRuler.prototype._handleMouseUp):
3254         Toggle cursor style when dragging to create a new selection in the overview.
3255
3256 2015-07-22  Joseph Pecoraro  <pecoraro@apple.com>
3257