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