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