blob: 0e62cd36233c23182bb14de6e072e111c42726af [file] [log] [blame]
2015-11-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline does not immediately update current time after switching tabs while recording
https://bugs.webkit.org/show_bug.cgi?id=151528
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype.shown):
Provide a number so that _startUpdatingCurrentTime doesn't decide
to wait until the next event to update current time.
(WebInspector.TimelineRecordingContentView.prototype._update):
When switching tabs we stop updating and hit this code. However
we want to keep _lastUpdateTimestamp so that if we switch back
to the tab we can re-compute the current time. So don't clear it
in cases where the view was hidden, as it might need to use
it when it is shown again.
2015-11-20 Matt Baker <mattbaker@apple.com>
Web Inspector: Remove "Show only resources with breakpoints" filter button
https://bugs.webkit.org/show_bug.cgi?id=151517
Reviewed by Timothy Hatcher.
Removed filter button in preparation for https://bugs.webkit.org/show_bug.cgi?id=151119.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.showResourcesWithBreakpointsOnlyFilterFunction): Deleted.
(WebInspector.DebuggerSidebarPanel): Deleted.
2015-11-20 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Add support for Gradients in the Visual sidebar background editor
https://bugs.webkit.org/show_bug.cgi?id=150494
Reviewed by Timothy Hatcher.
Allows the editors in the Visual sidebar Background Style section to
work with gradients and data URIs.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/CodeMirrorGradientEditingController.css: Deleted.
Some styling was reused in VisualStyleBackgroundPicker.css.
* UserInterface/Controllers/CodeMirrorGradientEditingController.js:
(WebInspector.CodeMirrorGradientEditingController):
(WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
(WebInspector.CodeMirrorGradientEditingController.prototype.popoverDidPresent):
(WebInspector.CodeMirrorGradientEditingController.prototype._gradientEditorGradientChanged):
(WebInspector.CodeMirrorGradientEditingController.prototype.handleEvent): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopsDidChange): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype.dragToAdjustControllerWasAdjustedByAmount): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._angleInputValueDidChange): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._handleChangeEvent): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._colorPickerColorChanged): Deleted.
(WebInspector.CodeMirrorGradientEditingController.prototype._updateCSSClassForGradientType): Deleted.
Reworked gradient editor popup into WebInspector.GradientEditor.
* UserInterface/Main.html:
* UserInterface/Models/Gradient.js:
(WebInspector.Gradient.fromString):
(WebInspector.Gradient.stopsWithComponents):
(WebInspector.LinearGradient.linearGradientWithComponents):
Removed console.error statements as they didn't do anything but clog the console.
* UserInterface/Views/GradientEditor.css: Added.
(.gradient-editor):
(.gradient-editor.radial-gradient):
(.gradient-editor.editing-color):
(.gradient-editor.radial-gradient.editing-color):
(.gradient-editor > .gradient-type-select):
(.gradient-editor > .gradient-slider):
(.gradient-editor > .color-picker):
(.gradient-editor > .color-picker > .slider):
(.gradient-editor > .color-picker > .brightness):
(.gradient-editor > .color-picker > .opacity):
(.gradient-editor > .gradient-angle):
(.gradient-editor.radial-gradient > .gradient-angle):
(.gradient-editor > .gradient-angle > input):
* UserInterface/Views/GradientEditor.js: Added.
(WebInspector.GradientEditor):
(WebInspector.GradientEditor.prototype.get element):
(WebInspector.GradientEditor.prototype.set gradient):
(WebInspector.GradientEditor.prototype.get gradient):
(WebInspector.GradientEditor.prototype.gradientSliderStopsDidChange):
(WebInspector.GradientEditor.prototype.gradientSliderStopWasSelected):
(WebInspector.GradientEditor.prototype.dragToAdjustControllerWasAdjustedByAmount):
(WebInspector.GradientEditor.prototype._updateCSSClassForGradientType):
(WebInspector.GradientEditor.prototype._gradientTypeChanged):
(WebInspector.GradientEditor.prototype._colorPickerColorChanged):
(WebInspector.GradientEditor.prototype._angleChanged):
(WebInspector.GradientEditor.prototype._angleInputValueDidChange):
New standalone editor for CSS Gradients.
* UserInterface/Views/VisualStyleBackgroundPicker.css: Added.
(.visual-style-property-container.background-picker > .visual-style-property-value-container):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-gradient-swatch):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-gradient-swatch:hover):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-gradient-swatch:active):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-gradient-swatch > span):
(.visual-style-property-container.background-picker > .visual-style-property-value-container.gradient-value > .color-gradient-swatch):
(.visual-style-property-container.background-picker > .visual-style-property-value-container.gradient-value > .color-gradient-swatch + .value-input):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .value-input):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .value-input[disabled]):
(.visual-style-property-container.background-picker > .visual-style-property-value-container > .value-type-picker-select):
* UserInterface/Views/VisualStyleBackgroundPicker.js: Added.
(WebInspector.VisualStyleBackgroundPicker):
(WebInspector.VisualStyleBackgroundPicker.prototype.get value):
(WebInspector.VisualStyleBackgroundPicker.prototype.set value):
(WebInspector.VisualStyleBackgroundPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleBackgroundPicker.prototype.parseValue):
(WebInspector.VisualStyleBackgroundPicker.prototype._updateValueInput):
(WebInspector.VisualStyleBackgroundPicker.prototype._updateGradientSwatch):
(WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchClicked):
(WebInspector.VisualStyleBackgroundPicker.prototype._gradientEditorGradientChanged):
(WebInspector.VisualStyleBackgroundPicker.prototype._valueInputValueChanged):
(WebInspector.VisualStyleBackgroundPicker.prototype._keywordSelectMouseDown):
(WebInspector.VisualStyleBackgroundPicker.prototype._handleKeywordChanged):
(WebInspector.VisualStyleBackgroundPicker.prototype._createValueOptions):
(WebInspector.VisualStyleBackgroundPicker.prototype._addAdvancedValues):
(WebInspector.VisualStyleBackgroundPicker.prototype._removeAdvancedValues):
(WebInspector.VisualStyleBackgroundPicker.prototype._toggleTabbingOfSelectableElements):
Visual property editor for the CSS background-image property. Supports
limited keywords, as well as url() and gradients.
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
Fixed regular expression parsing to not match commas inside parenthesis.
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
* UserInterface/Views/VisualStylePropertyEditorLink.css:
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-border):
Fixed spacing of link line.
* UserInterface/Views/VisualStyleURLInput.js: Removed.
Reworked into VisualStyleBackgroundPicker.js.
2015-11-19 Brian Burg <bburg@apple.com>
Web Inspector: yank/kill shortcuts (CTRL+Y, K) don't work in Console / QuickConsole
https://bugs.webkit.org/show_bug.cgi?id=151157
Reviewed by Joseph Pecoraro.
CodeMirror maintains its own editor buffer and implements its own
`killLine` command but doesn't implement the yank command. So, text
that is "killed" with CTRL-k inside a CodeMirror instance isn't
added to WebCore's kill ring. Subsequent yank commands won't match
up with the killed text, instead returning text from a prior kill
that was handled by WebCore (i.e., in a contenteditable or form input).
This patch adds a host function so that the Inspector frontend can
append "missed" killed text to WebCore's kill ring. Subsequent
yanks handled by WebCore will then match the text killed by CodeMirror.
In the frontend, we implement our own key binding handler for
CTRL-k that captures killed text, detects whether the kill
should start a new sequence, and sends it to WebCore. Because this
involves several flags and listeners, and we want this behavior for
all editable CodeMirror instances, the text kill handling is
factored into its own CodeMirrorTextKillController.
To add this behavior to all instances, this patch centralizes the
code that constructs a base CodeMirror instance, and attaches the
CodeMirrorTextKillController to all instances. The shortcut
does nothing when its CodeMirror instance is read-only.
The particulars of the kill controller are documented inline.
No new tests, because we need to use both InspectorFrontendHost
and TestRunner.execCommand, but the latter is not available in
the inspector context where we would need to simulate a kill.
* UserInterface/Controllers/CodeMirrorTextKillController.js: Added.
(WebInspector.CodeMirrorTextKillController):
(WebInspector.CodeMirrorTextKillController.prototype._handleKillLine):
(WebInspector.CodeMirrorTextKillController.prototype._handleTextChange):
(WebInspector.CodeMirrorTextKillController.prototype._handleEditorBlur):
(WebInspector.CodeMirrorTextKillController.prototype._handleSelectionOrCaretChange):
* UserInterface/Main.html:
* UserInterface/Protocol/InspectorFrontendHostStub.js:
(window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.killText): Add a stub to avoid check-before-use.
* UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.prototype._updateBody):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor):
* UserInterface/Views/CodeMirrorEditor.js: Added.
(WebInspector.CodeMirrorEditor.create):
(WebInspector.CodeMirrorEditor):
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt):
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
2015-11-19 Matt Baker <mattbaker@apple.com>
Web Inspector: Convert remaining timeline views to use View base class
https://bugs.webkit.org/show_bug.cgi?id=151410
Reviewed by Timothy Hatcher.
Converted timeline views to use View base class. Mostly mechanical
changes (override View.prototype.layout, use let in more places).
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WebInspector.LayoutTimelineOverviewGraph.prototype.layout):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout): Deleted.
* UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WebInspector.NetworkTimelineOverviewGraph.prototype.layout.createBar):
(WebInspector.NetworkTimelineOverviewGraph.prototype.layout):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar): Deleted.
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout): Deleted.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.layout):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.updateLayout): Deleted.
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph.prototype.layout.createBar):
(WebInspector.ScriptTimelineOverviewGraph.prototype.layout):
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar): Deleted.
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout): Deleted.
* UserInterface/Views/TimelineOverview.js:
Extend View.
(WebInspector.TimelineOverview):
Add ruler as a subview.
(WebInspector.TimelineOverview.prototype.set startTime):
(WebInspector.TimelineOverview.prototype.set currentTime):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set endTime):
(WebInspector.TimelineOverview.prototype.set scrollStartTime):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverview.prototype.get timelineRuler):
(WebInspector.TimelineOverview.prototype.canShowTimeline):
(WebInspector.TimelineOverview.prototype.layout):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview._handleGestureStart):
(WebInspector.TimelineOverview.prototype._handleGestureChange):
(WebInspector.TimelineOverview.prototype._timelineAdded):
(WebInspector.TimelineOverview.prototype._timelineRemoved):
(WebInspector.TimelineOverview.prototype.get element): Deleted.
(WebInspector.TimelineOverview.prototype.updateLayout): Deleted.
* UserInterface/Views/TimelineOverviewGraph.js:
Extend view.
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.needsLayout):
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
(WebInspector.TimelineOverviewGraph.prototype.updateLayout): Deleted.
(WebInspector.TimelineOverviewGraph.prototype.updateLayoutIfNeeded): Deleted.
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout.update): Deleted.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
Add overview as a subview.
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
Use View.prototype.replaceSubview to swap overview graphs.
2015-11-18 Brian Burg <bburg@apple.com>
Web Inspector: Storage tab shouldn't hide cookies for .example.com when inspected page is foo.bar.example.com
https://bugs.webkit.org/show_bug.cgi?id=151408
Reviewed by Timothy Hatcher.
The regex should allow multiple subdomains to match a cookie for domain .example.com.
Test: inspector/page/filter-cookies-for-domain.html
* UserInterface/Models/CookieStorageObject.js:
(WebInspector.CookieStorageObject.cookieDomainMatchesResourceDomain):
Also make the group non-capturing. We don't use the match.
(WebInspector.CookieStorageObject.prototype.saveIdentityToCookie):
(WebInspector.CookieStorageObject):
* UserInterface/Test.html:
2015-11-18 Brian Burg <bburg@apple.com>
Web Inspector: move cookie url matching out of CookieStorageContentView and clean up some code
https://bugs.webkit.org/show_bug.cgi?id=151424
Reviewed by Timothy Hatcher.
Move the code that decides whether a cookie matches a resource URL to a model class.
This will make it possible to test this code easily without pulling Views into tests.
* UserInterface/Models/CookieStorageObject.js:
(WebInspector.CookieStorageObject.cookieMatchesResourceURL):
(WebInspector.CookieStorageObject.cookieDomainMatchesResourceDomain):
(WebInspector.CookieStorageObject.prototype.saveIdentityToCookie):
(WebInspector.CookieStorageObject):
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype.update): use Promises.
(WebInspector.CookieStorageContentView.prototype._rebuildTable):
(WebInspector.CookieStorageContentView.prototype._filterCookies):
Use Array.filter() and Array.some() to express this logic more directly.
(WebInspector.CookieStorageContentView.cookieMatchesResourceURL): Deleted.
(WebInspector.CookieStorageContentView.cookieDomainMatchesResourceDomain): Deleted.
(WebInspector.CookieStorageContentView.prototype.update.callback): Deleted.
2015-11-18 Matt Baker <mattbaker@apple.com>
Web Inspector: Clear watch expressions button using wrong icon
https://bugs.webkit.org/show_bug.cgi?id=151422
Reviewed by Timothy Hatcher.
Updated "clear" button to use trashcan image. This was broken by
https://bugs.webkit.org/show_bug.cgi?id=151377.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
2015-11-18 Matt Baker <mattbaker@apple.com>
Web Inspector: Reduce synchronous view layouts
https://bugs.webkit.org/show_bug.cgi?id=151058
Reviewed by Timothy Hatcher.
Replace calls to View.updateLayout with needsLayout, when a synchronous layout
isn't absolutely necessary.
* UserInterface/Models/BackForwardEntry.js:
(WebInspector.BackForwardEntry.prototype.prepareToShow):
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype.updateLayout): Deleted.
View subclasses shouldn't override updateLayout.
* UserInterface/Views/ButtonNavigationItem.js:
(WebInspector.ButtonNavigationItem.prototype.set label):
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.ContentBrowser.prototype._currentContentViewDidChange):
(WebInspector.ContentBrowser.prototype._contentViewNavigationItemsDidChange):
* UserInterface/Views/DatabaseTableContentView.js:
(WebInspector.DatabaseTableContentView.prototype._queryFinished):
Just update DataGrid's layout, not the whole view. The grid is the only subview
so the result is identical, but the intent is cleared this way.
(WebInspector.DatabaseTableContentView.prototype.updateLayout): Deleted.
View subclasses shouldn't override updateLayout.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype.promptDidChangeHeight): Deleted.
Unused code.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.set width):
(WebInspector.Sidebar.prototype.set collapsed):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype._contentWillPopulate):
Add TextEditor as a subview.
(WebInspector.TextResourceContentView.prototype.updateLayout): Deleted.
View subclasses shouldn't override updateLayout.
2015-11-18 Matt Baker <mattbaker@apple.com>
Web Inspector: Probes sidebar panel sections should use NavigationBar
https://bugs.webkit.org/show_bug.cgi?id=151373
Reviewed by Brian Burg.
Replaces image elements with a NavigationBar instance. The "Clear samples"
button is disabled when no samples exist in the probe set.
* Localizations/en.lproj/localizedStrings.js:
New navigation item labels.
* UserInterface/Models/ProbeSet.js:
(WebInspector.ProbeSet.prototype._sampleCollected):
Dispatch new event WebInspector.ProbeSet.Event.SampleAdded.
* UserInterface/Views/DetailsSection.css:
(.details-section > .header > .options > .navigation-bar):
(.details-section > .header > .options > .navigation-bar > .item):
Define consistent style for showing a NavigationBar inside the section header.
* UserInterface/Views/DetailsSection.js:
(WebInspector.DetailsSection):
Add "options" class name in the base class.
* UserInterface/Views/ProbeDetailsSidebarPanel.css:
(.details-section.probe-set .options > :matches(.probe-remove, .probe-clear-samples, .probe-add)): Deleted.
(.details-section.probe-set .options > .probe-clear-samples): Deleted.
(.details-section.probe-set .options > .probe-remove): Deleted.
(.details-section.probe-set .options > .probe-add): Deleted.
Remove <img> button styles.
* UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection):
(WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked.createProbeFromEnteredExpression):
(WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
(WebInspector.ProbeSetDetailsSection.prototype._clearSamplesButtonClicked):
(WebInspector.ProbeSetDetailsSection.prototype._probeSetSamplesChanged):
Update "Clear samples" enabled state.
(WebInspector.ProbeSetDetailsSection.prototype._probeSetHasSamples):
Helper function to check if the probe set is empty.
2015-11-18 Matt Baker <mattbaker@apple.com>
Web Inspector: Watch Expressions details section should use NavigationBar
https://bugs.webkit.org/show_bug.cgi?id=151377
Reviewed by Timothy Hatcher.
Replaces image elements with a NavigationBar instance. The refresh and
clear buttons are disabled if no watch expressions exist.
* Localizations/en.lproj/localizedStrings.js:
New navigation item labels.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
(.details-section.watch-expressions .options > *): Deleted.
(.details-section.watch-expressions .options > *:active): Deleted.
(.details-section.watch-expressions .options > .watch-expression-add): Deleted.
(.details-section.watch-expressions .options > .watch-expression-clear): Deleted.
(.details-section.watch-expressions .options > .watch-expression-refresh): Deleted.
Remove <img> button styles.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.presentPopoverOverTargetElement):
Use the navigation item element.
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._updateWatchExpressionsNavigationBar):
Enable/disable refresh and clear buttons.
2015-11-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move Timeline creation into a recording
https://bugs.webkit.org/show_bug.cgi?id=151367
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._loadNewRecording): Deleted.
* UserInterface/Models/Timeline.js:
(WebInspector.Timeline.create):
(WebInspector.Timeline.prototype.get type):
(WebInspector.Timeline): Deleted.
(WebInspector.Timeline.prototype.get recording): Deleted.
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording):
(WebInspector.TimelineRecording.prototype.get readonly):
(WebInspector.TimelineRecording.prototype.unloaded):
(WebInspector.TimelineRecording.prototype.reset):
(WebInspector.TimelineRecording.prototype.isWritable): Deleted.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype.shown):
2015-11-17 Matt Baker <mattbaker@apple.com>
Web Inspector: Breakpoint condition field should use CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=151333
Reviewed by Joseph Pecoraro.
Updated breakpoint popover's condition field to use CodeMirror.
* UserInterface/Controllers/BreakpointPopoverController.js:
Removed keyboard shortcuts. Now handled by CodeMirror.
(WebInspector.BreakpointPopoverController.prototype.completionControllerShouldAllowEscapeCompletion):
Prevent handling of escape to allow tabbing to next element.
(WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
Create CodeMirror instance.
(WebInspector.BreakpointPopoverController.prototype._conditionCodeMirrorChanged):
(WebInspector.BreakpointPopoverController.prototype._conditionCodeMirrorBeforeChange):
Enforce single-line editor.
(WebInspector.BreakpointPopoverController.prototype._conditionCodeMirrorEscapeOrEnterKey):
(WebInspector.BreakpointPopoverController): Deleted.
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.editBreakpoint):
Removed condition element select. CodeMirror sets focus when popover content is created.
(WebInspector.BreakpointPopoverController.prototype._popoverConditionInputChanged): Deleted.
Replaced by BreakpointPopoverController.prototype._conditionCodeMirrorChanged.
(WebInspector.BreakpointPopoverController.prototype._popoverConditionInputKeyDown): Deleted.
Replaced by BreakpointPopoverController.prototype._conditionCodeMirrorEscapeOrEnterKey.
* UserInterface/Views/BreakpointPopoverController.css:
(.edit-breakpoint-popover-condition):
(.edit-breakpoint-popover-condition > .CodeMirror):
(#edit-breakpoint-popover-condition): Deleted.
Replace selector id with class, styled CodeMirror element to match original input element.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-placeholder): Deleted.
Moved common CodeMirror placeholder text style to CodeMirrorOverrides.css.
* UserInterface/Views/CodeMirrorOverrides.css:
(.CodeMirror .CodeMirror-placeholder):
Add placeholder style.
2015-11-12 Matt Baker <mattbaker@apple.com>
Web Inspector: Deleting a probe should remove probe breakpoint actions only.
https://bugs.webkit.org/show_bug.cgi?id=151245
Reviewed by Brian Burg.
Fixed breakpoint action filter.
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype.clearActions):
Missing return in named function expression.
2015-11-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Auto-log inspect node selected elements to the console
https://bugs.webkit.org/show_bug.cgi?id=151178
Reviewed by Brian Burg.
Auto-logging user selected elements to the console helps with
quick use in the console. $0 is not very discoverable, and $n
values are expendable. This also makes it convenient to use the
inspect node toolbar search option to select a few different
nodes and use each of them in the console without extra work.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.inspectNodeObject.nodeAvailable):
(WebInspector.DOMTreeManager.prototype.inspectNodeObject):
Log selected nodes to the console. Treat this as a synthetic log that
will not immediately open the console like normal evaluation results.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult.saveResultCallback):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted.printResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
Initialize ConsoleCommandResultMessage's synthetic properties.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement):
(WebInspector.DOMTreeOutline.prototype._populateContextMenu):
* UserInterface/Controllers/RuntimeManager.js:
Create a global for the special "console" object group used in multiple places.
* UserInterface/Models/ConsoleCommandResultMessage.js:
(WebInspector.ConsoleCommandResultMessage):
(WebInspector.ConsoleCommandResultMessage.prototype.get synthetic):
Add a synthetic property.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
When the ConsoleResult is a synthetic result, do not auto-open the console.
2015-11-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: timeline event markers are added to overview even when not capturing a timeline recording
https://bugs.webkit.org/show_bug.cgi?id=151166
Reviewed by Timothy Hatcher.
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.addEventMarker):
Do not add event markers when not capturing. This would have resulted in more
and more markers showing in the Timeline for page loads when the Timeline was
not active. For example reloading when a non-Timeline tab was active.
2015-11-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Debug toolbar button to toggle InspectorBackend.dumpInspectorProtocolMessages
https://bugs.webkit.org/show_bug.cgi?id=151175
Reviewed by Brian Burg.
Add debug UI and a way to toggle it on and off in non-production builds.
To enable the debug UI use a keyboard shortcut in Inspector:
Option+Shift+Command+D (Mac) or Option+Shift+Ctrl+D (Windows / Linux)
The debug UI setting is a persistent setting, so those of use developing
Web Inspector will turn it on and leave it on.
Currently the only debug UI is a new toolbar button to toggle
the frontend logging on or off.
* Scripts/combine-resources.pl:
(concatenateFiles):
Exclude "Debug" files when combining resources for minification.
* UserInterface/Main.html:
Rename "Base/Bootstrap.js" to "Debug/Bootstrap" so that we can easily exclude it.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Only evaluate bootstrap functions if they exist.
* UserInterface/Debug/Bootstrap.js: Renamed from Source/WebInspectorUI/UserInterface/Base/Bootstrap.js.
(WebInspector.runBootstrapOperations):
Add a debug setting, toolbar button, and keyboard shortcut.
2015-11-11 Brian Burg <bburg@apple.com>
Web Inspector: blank debugger tab when opening inspector on unvisited website
https://bugs.webkit.org/show_bug.cgi?id=151149
Reviewed by Joseph Pecoraro.
When Inspector tries to show default content when initially showing a tab upon opening,
there may not be any tree elements added to the navigation bar yet. In the case of an
unvisited website, there will be no state restoration cookie to trigger deferred selection.
So, showDefaultContentView finds no tree elements it can show, and the main view is blank.
We can fix this by speculatively showing the first script/resource that's added to the tree
if no content view is being shown. If a state restoration cookie exists, it will take priority
over the default-displayed content view.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._addResource):
(WebInspector.DebuggerSidebarPanel.prototype._addScript):
2015-11-11 Matt Baker <mattbaker@apple.com>
Web Inspector: Convert sidebars to use View base class
https://bugs.webkit.org/show_bug.cgi?id=151057
Reviewed by Timothy Hatcher.
This patch makes Sidebar a subclass of View. Mostly mechanical changes and cleanup,
such as adding navigation bars and panels as subviews, removing element getters,
and replacing external properties with symbols.
* UserInterface/Base/Main.js:
Added sidebars to view hierarchy.
* UserInterface/Views/DebuggerSidebarPanel.js:
Add navigation bar as a subview.
* UserInterface/Views/NetworkSidebarPanel.js:
Add navigation bar as a subview.
(WebInspector.NetworkSidebarPanel):
(WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
(WebInspector.NetworkSidebarPanel.prototype._treeElementGoToArrowWasClicked):
External properties replaced with symbols.
* UserInterface/Views/ResourceSidebarPanel.js:
Add navigation bar as a subview.
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
External properties replaced with symbols.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar):
(WebInspector.Sidebar.prototype.addSidebarPanel):
(WebInspector.Sidebar.prototype.removeSidebarPanel):
Panels are now added and removed as subviews.
(WebInspector.Sidebar.prototype.get width):
(WebInspector.Sidebar.prototype.set width):
(WebInspector.Sidebar.prototype.get collapsed):
(WebInspector.Sidebar.prototype.set collapsed):
"collapsed" property now backed by private class variable, not DOM state.
(WebInspector.Sidebar.prototype.get element): Deleted.
* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.get visible):
(WebInspector.SidebarPanel.prototype.get selected):
(WebInspector.SidebarPanel.prototype.set selected):
"selected" property now backed by private class variable, not DOM state.
(WebInspector.SidebarPanel.prototype.get parentSidebar):
No longer stored as separate property. Wrapper around View.prototype.parentView.
Original getter retained for clarity.
(WebInspector.SidebarPanel.prototype.show):
(WebInspector.SidebarPanel.prototype.hide):
(WebInspector.SidebarPanel.prototype.added):
(WebInspector.SidebarPanel.prototype.removed):
(WebInspector.SidebarPanel.prototype.get element): Deleted.
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel):
Add navigation bar as a subview.
2015-11-10 Matt Baker <mattbaker@apple.com>
Web Inspector: Enable/disable All Breakpoints not usable when "No Filter Results" displayed
https://bugs.webkit.org/show_bug.cgi?id=151062
Reviewed by Timothy Hatcher.
Position the placeholder element below the navigation bar. This was already being done
for the other navigation sidebars.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.debugger > .content): Deleted.
2015-11-10 Matt Baker <mattbaker@apple.com>
Web Inspector: Batch all scheduled layouts and update the view tree in a single animation frame
https://bugs.webkit.org/show_bug.cgi?id=150993
Reviewed by Brian Burg.
Shifts responsibility for scheduling asynchronous layouts from view objects to a controller
layer, implemented as private static methods and properties in the View class. A single animation
frame callback performs a breadth-first traversal of the view tree starting at the root view,
updating views marked as needing a layout.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Setup root view.
* UserInterface/Views/View.js:
Added private class properties for root view reference and rAF identifier.
(WebInspector.View):
(WebInspector.View.prototype.get layoutPending):
(WebInspector.View.prototype.get parentView):
(WebInspector.View.prototype.makeRootView):
Set current view to be the root of the view hierarchy.
Can only be called once.
(WebInspector.View.prototype.insertSubviewBefore):
No longer appends subview element to parent element, if subview already in the DOM.
Checks that view being inserted isn't the root view.
(WebInspector.View.prototype.removeSubview):
(WebInspector.View.prototype.updateLayout):
Cancels any scheduled layouts for the view, then does a synchronous layout.
(WebInspector.View.prototype.updateLayoutIfNeeded):
(WebInspector.View.prototype.needsLayout):
Schedules view for the next asynchronous layout, if not already scheduled.
(WebInspector.View.prototype.didAttach):
(WebInspector.View.prototype.didDetach):
Inform view of changing parent view.
(WebInspector.View.prototype._layoutSubtree):
(WebInspector.View._scheduleLayoutForView):
Increments dirty counts on ancestor views, schedules a layout if needed.
(WebInspector.View._cancelScheduledLayoutForView):
Decrements dirty counts on ancestor views, cancels a pending layout if needed.
(WebInspector.View._visitViewTreeForLayout):
Animation frame callback. Does a breadth-first traversal of the view tree,
and updates the layout of views marked as dirty.
2015-11-10 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Code coverage profiler: incorrect "in-viewport" detection algorithm
https://bugs.webkit.org/show_bug.cgi?id=151116
Reviewed by Brian Burg.
* UserInterface/Controllers/BasicBlockAnnotator.js:
(WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
2015-11-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Support Gesture Events to zoom in / out of the Timeline
https://bugs.webkit.org/show_bug.cgi?id=151071
Reviewed by Timothy Hatcher.
Adjust the Timeline's secondsPerPixel value by the gesture event's scale factor.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview._handleGestureStart):
(WebInspector.TimelineOverview.prototype._handleGestureChange):
(WebInspector.TimelineOverview.prototype._handleGestureEnd):
2015-11-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception creating TimelineRecord alternate subtitles
https://bugs.webkit.org/show_bug.cgi?id=151046
Reviewed by Brian Burg.
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
We just need to create an element, it does not need to be
a child of subtitle, as it gets appended to the right
place later on.
2015-11-09 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: [Regression] [Mavericks] Top border of selected tab matches the background when Web Inspector is undocked
https://bugs.webkit.org/show_bug.cgi?id=150981
Reviewed by Timothy Hatcher.
* UserInterface/Views/TabBar.css:
(body.mavericks .tab-bar > .item:not(.disabled).selected): Added.
2015-11-09 Matt Baker <mattbaker@apple.com>
Web Inspector: Convert DatabaseContentView to use View base class
https://bugs.webkit.org/show_bug.cgi?id=150959
Reviewed by Timothy Hatcher.
Update DatabaseContentView to inherit from View. This required that query results be
promoted to a first-class view object, and that ConsolePrompt's DOM element not be wrapped
inside a container element.
Two new query result view classes (and their base class) wrap up DOM element creation
which was being performed by DatabaseContentView.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
New files.
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt):
Removed unused parameter.
* UserInterface/Views/DatabaseContentView.css:
(.storage-view):
(.storage-view > .console-prompt):
(.storage-view > .console-prompt::before):
(:matches(.database-user-query, .database-query-result)::before):
(.database-query-result.no-results):
(.database-query-prompt): Deleted.
(:matches(.database-user-query, .database-query-prompt, .database-query-result)::before): Deleted.
(.database-query-prompt::before): Deleted.
Modified styles to create prompt without needing a wrapper element.
* UserInterface/Views/DatabaseContentView.js:
(WebInspector.DatabaseContentView):
(WebInspector.DatabaseContentView.prototype.shown):
(WebInspector.DatabaseContentView.prototype.consolePromptCompletionsNeeded.accumulateMatches):
(WebInspector.DatabaseContentView.prototype.consolePromptCompletionsNeeded.tableNamesCallback):
(WebInspector.DatabaseContentView.prototype.consolePromptCompletionsNeeded):
(WebInspector.DatabaseContentView.prototype._messagesClicked):
(WebInspector.DatabaseContentView.prototype._queryFinished):
(WebInspector.DatabaseContentView.prototype._queryError):
(WebInspector.DatabaseContentView.prototype.updateLayout): Deleted.
No longer needed.
(WebInspector.DatabaseContentView.prototype._appendViewQueryResult): Deleted.
(WebInspector.DatabaseContentView.prototype._appendErrorQueryResult): Deleted.
(WebInspector.DatabaseContentView.prototype._appendQueryResult): Deleted.
Removed methods subsumed under DatabaseUserQueryView.
* UserInterface/Views/DatabaseUserQueryErrorView.js: Added.
(WebInspector.DatabaseUserQueryErrorView):
Displays supplied error message.
* UserInterface/Views/DatabaseUserQuerySuccessView.js: Added.
(WebInspector.DatabaseUserQuerySuccessView):
Creates data grid if results exist, otherwise displays "no results" message.
(WebInspector.DatabaseUserQuerySuccessView.prototype.get dataGrid):
External access to view's data grid for autosizing columns, etc.
(WebInspector.DatabaseUserQuerySuccessView.prototype.layout):
Update grid layout manually, since the grid's parent in the DOM isn't the view's root element.
* UserInterface/Views/DatabaseUserQueryViewBase.js: Added.
Base class for success and error message views.
(WebInspector.DatabaseUserQueryViewBase):
Creates DOM common to subclasses.
(WebInspector.DatabaseUserQueryViewBase.prototype.get resultElement):
Protected getter exposing the content root for both subclasses.
2015-11-07 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: [Regression] [Mavericks] Toolbar is too dark while docked
https://bugs.webkit.org/show_bug.cgi?id=150977
Set the toolbar color of the docked inspector to be the same as on OS X 10.10+.
Undocked toolbar color on Mavericks is unnaffected.
Reviewed by Timothy Hatcher.
* UserInterface/Views/Toolbar.css:
(body.mavericks.docked .toolbar):
(body:not(.mavericks) .toolbar): Added.
2015-11-06 Timothy Hatcher <timothy@apple.com>
Web Inspector: Search Results tab causes jump to Resources tab on reload
https://bugs.webkit.org/show_bug.cgi?id=150817
Reviewed by Brian Burg.
Remove the "search on reload" behavior from the Search Results tab. It often didn't find everything
on large pages, since it only searched after 500ms of the main resource changing. The bug here
was caused by performSearch selecting the first result, even if it was a background tab. We now
avoid doing unnecessary search work in the background when the Search Results tab isn't visible.
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel): Deleted.
(WebInspector.SearchSidebarPanel.prototype._mainResourceDidChange): Remove children from the
sidebar since performSearch isn't doing it now and ScriptTreeElements were not being removed.
ResourceTreeElements were already being removed by NavigationSidebarPanel's prune behavior.
Removed the call to performSearch and related code.
(WebInspector.SearchSidebarPanel.prototype._mainResourceDidChange.delayedWork): Deleted.
2015-11-05 Matt Baker <mattbaker@apple.com>
Web Inspector: Convert remaining ContentViews to View base class
https://bugs.webkit.org/show_bug.cgi?id=150729
Reviewed by Brian Burg.
Refactor content views to reuse View features: remove updateLayout and
element getters, and use View.prototype.addSubview and removeSubview
where appropriate.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
* UserInterface/Views/ClusterContentView.js:
(WebInspector.ClusterContentView):
(WebInspector.ClusterContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype._rebuildTable):
(WebInspector.CookieStorageContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView):
(WebInspector.DOMStorageContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.layout):
(WebInspector.DOMTreeContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/DatabaseTableContentView.js:
(WebInspector.DatabaseTableContentView):
(WebInspector.DatabaseTableContentView.prototype._queryFinished):
(WebInspector.DatabaseTableContentView.prototype._queryError):
* UserInterface/Views/FontResourceContentView.js:
(WebInspector.FontResourceContentView.prototype.layout):
(WebInspector.FontResourceContentView):
(WebInspector.FontResourceContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
(WebInspector.IndexedDatabaseObjectStoreContentView):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.layout):
(WebInspector.LogContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.needsLayout):
(WebInspector.NetworkGridContentView.prototype.layout):
(WebInspector.NetworkGridContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype.layout): Deleted.
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView.prototype._contentWillPopulate):
(WebInspector.ScriptContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView):
(WebInspector.TextContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.layout):
(WebInspector.TextEditor.prototype.get element): Deleted.
(WebInspector.TextEditor.prototype.updateLayout): Deleted.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype.layout):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype.updateLayout): Deleted.
2015-11-05 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Pretty print falsely triggers on some JS that wasn't minified
https://bugs.webkit.org/show_bug.cgi?id=150876
Change the minification detection heuristic. Look for the ratio of whitespace to
non-whitespace characters in the first 5000 characters.
The previous heuristic looked for lines longer than 500 characters. Not only it was
slower on large unminified files, it also had a false positive on unminified codemirror.js.
Reviewed by Timothy Hatcher.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._contentWillPopulate):
(WebInspector.SourceCodeTextEditor.prototype._isLikelyMinified):
Exit early if whitespace to non-whitespace ratio drops below 5%.
2015-11-05 Matt Baker <mattbaker@apple.com>
Web Inspector: Convert TimelineRuler to View base class
https://bugs.webkit.org/show_bug.cgi?id=150703
Reviewed by Brian Burg.
Convert TimelineRuler to View base class. Ruler markers and selection elements
can be updated independent from its main layout. The logic for these additional
layouts is implemented as an override of View.prototype.needsLayout, and remains
largely unchanged.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView):
Add ruler as a subview.
(WebInspector.OverviewTimelineView.prototype.layout): Deleted.
Separate ruler layout no longer needed.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.set allowsClippedLabels):
(WebInspector.TimelineRuler.prototype.set formatLabelCallback):
(WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):
(WebInspector.TimelineRuler.prototype.set zeroTime):
(WebInspector.TimelineRuler.prototype.set startTime):
(WebInspector.TimelineRuler.prototype.set duration):
(WebInspector.TimelineRuler.prototype.get endTime):
(WebInspector.TimelineRuler.prototype.set endTime):
(WebInspector.TimelineRuler.prototype.get secondsPerPixel):
(WebInspector.TimelineRuler.prototype.set secondsPerPixel):
(WebInspector.TimelineRuler.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineRuler.prototype.needsLayout):
(WebInspector.TimelineRuler.prototype.layout):
(WebInspector.TimelineRuler.prototype._needsMarkerLayout):
(WebInspector.TimelineRuler.prototype._needsSelectionLayout):
(WebInspector.TimelineRuler.prototype._recalculate):
(WebInspector.TimelineRuler.prototype._updateMarkers):
(WebInspector.TimelineRuler.prototype._updateSelection):
(WebInspector.TimelineRuler.prototype._handleMouseDown):
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseUp):
Renamed methods to match new View.prototype methods and cleaned up
some code to use let, for...of.
(WebInspector.TimelineRuler.prototype.get element): Deleted.
No longer needed.
(WebInspector.TimelineRuler.prototype.updateLayout): Deleted.
Renamed to layout, overrides View.prototype.layout.
(WebInspector.TimelineRuler.prototype._needsLayout): Deleted.
Renamed to needsLayout, overrides View.prototype.needsLayout.
(WebInspector.TimelineRuler.prototype._needsMarkerLayout.update): Deleted.
(WebInspector.TimelineRuler.prototype._needsSelectionLayout.update): Deleted.
* UserInterface/Views/View.js:
(WebInspector.View.prototype.get isLayoutPending):
Added getter to check for pending layout.
2015-11-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ⌥⌘C sometimes ends ups up opening inspector without console prompt focused
https://bugs.webkit.org/show_bug.cgi?id=150916
Reviewed by Timothy Hatcher.
When first opening the inspector we hide the window until the document
is mostly ready / loaded. However once displaying the window WK2 would
set the initial focus, clearing what we already had and focusing the
first natural element (tabindex dictates the toolbar). Workaround this
by detecting when the document becomes visible and then focusing the
console prompt.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.showConsole):
(InspectorFrontendAPI.handleEvent):
2015-11-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Toolbar "Inspect Node" button not highlighting when active
https://bugs.webkit.org/show_bug.cgi?id=150938
Reviewed by Timothy Hatcher.
* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated) > .glyph):
(.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated) > .glyph):
Copy the navigation-bar button activated styles to toolbar.
2015-11-04 Matt Baker <mattbaker@apple.com>
Web Inspector: Load markers persist in timeline ruler after resetting recording
https://bugs.webkit.org/show_bug.cgi?id=150918
Reviewed by Joseph Pecoraro.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype._recordingReset):
Clears ruler markers on recording reset. Adds current time marker back.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._recordingReset):
Clears ruler markers on recording reset. Adds current time marker back.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.clearMarkers):
Added method to clear markers and marker elements.
2015-11-04 Matt Baker <mattbaker@apple.com>
Web Inspector: Uncaught Exception opening inspector - TypeError: Attempted to assign to readonly property.
https://bugs.webkit.org/show_bug.cgi?id=150913
Reviewed by Timothy Hatcher.
Fix invalid call to BackForwardEntry.prototype.contentView set.
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.replaceContentView):
Replace each BackForwardEntry matching the old content view with a new entry.
2015-11-04 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Uncaught exception mousing over CSS resource
https://bugs.webkit.org/show_bug.cgi?id=150917
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._processMarkedToken): Add missing parameter.
2015-11-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: WebInspector.Color should support #rgba and #rrggbbaa syntax
https://bugs.webkit.org/show_bug.cgi?id=150894
Reviewed by Timothy Hatcher.
Support for hex with alpha color syntax.
* UserInterface/Models/Color.js:
(WebInspector.Color.fromString):
(WebInspector.Color.prototype.nextFormat):
(WebInspector.Color.prototype.copy):
(WebInspector.Color.prototype.toString):
(WebInspector.Color.prototype._toShortHEXAlphaString):
(WebInspector.Color.prototype._toHEXAlphaString):
Add support for new hex syntax. Address some minor issues
like case insensitivity and extra comma separate values.
* UserInterface/Views/CodeMirrorTextMarkers.js:
This prevent trailing hex characters from showing up
when cycling through color variants.
* UserInterface/Views/CodeMirrorAdditions.js:
When CodeMirror stops treating the new values as error
this will give them our hex-color styles.
2015-11-03 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r191612): Storage sidebar panel tree outline is broken
https://bugs.webkit.org/show_bug.cgi?id=150862
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
Inherit from ContentView.
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel.prototype._addDatabase):
Fixed syntax error.
(WebInspector.StorageSidebarPanel.prototype._addIndexedDatabase):
(WebInspector.StorageSidebarPanel.prototype._addFrameManifest):
WebInspector.TreeOutline.append doesn't exist; changed to appendChild.
2015-11-03 Matt Baker <mattbaker@apple.com>
Web Inspector: Create View base class, refactor some core view classes
https://bugs.webkit.org/show_bug.cgi?id=149186
Reviewed by Brian Burg and Timothy Hatcher.
This patch introduces a new View base class, which encapsulates DOM element creation,
layout scheduling, and subview management. The View class constructor accepts an optional
element parameter, allowing an existing DOM element to be associated with the View object,
rather than dynamically creating a new element. View also adds a `__view` property to its
associated DOM element to facilitate debugging the Inspector UI.
For the view classes refactored in this patch, the changes are largely mechanical. Dynamically
created DOM elements and redundant element getters have been removed. needsLayout has replaced
updateLayoutIfNeeded where appropriate. updateLayout has been removed entirely for views that
performed no layout other than to cascade layouts to their children.
* UserInterface/Base/Main.js:
Moved TabBar layout updates out of TabBrowser and into Main.js.
* UserInterface/Main.html:
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt):
(WebInspector.ConsolePrompt.prototype.layout):
(WebInspector.ConsolePrompt.prototype.get element): Deleted.
(WebInspector.ConsolePrompt.prototype.updateLayout): Deleted.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
(WebInspector.ContentBrowser.prototype.get element): Deleted.
(WebInspector.ContentBrowser.prototype.updateLayout): Deleted.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView):
(WebInspector.ContentBrowserTabContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.prototype.get element): Deleted.
(WebInspector.ContentView.prototype.updateLayout): Deleted.
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer):
(WebInspector.ContentViewContainer.prototype._showEntry):
(WebInspector.ContentViewContainer.prototype._hideEntry):
(WebInspector.ContentViewContainer.prototype.get element): Deleted.
(WebInspector.ContentViewContainer.prototype.updateLayout): Deleted.
(WebInspector.ContentViewContainer.prototype._addContentViewElement): Deleted.
(WebInspector.ContentViewContainer.prototype._removeContentViewElement): Deleted.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.autoSizeColumns):
(WebInspector.DataGrid.prototype.layout):
(WebInspector.DataGrid.prototype.applyColumnWidthsMap):
(WebInspector.DataGrid): Deleted.
(WebInspector.DataGrid.prototype.updateLayout): Deleted.
(WebInspector.DataGrid.prototype.resizerDragging): Deleted.
(WebInspector.DataGrid.prototype.resizerDragEnded): Deleted.
* UserInterface/Views/HierarchicalPathNavigationItem.js:
(WebInspector.HierarchicalPathNavigationItem.prototype.set components):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView):
(WebInspector.LayoutTimelineView.prototype.layout):
(WebInspector.LayoutTimelineView.prototype.updateLayout): Deleted.
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar):
(WebInspector.NavigationBar.prototype.insertNavigationItem):
(WebInspector.NavigationBar.prototype.removeNavigationItem):
(WebInspector.NavigationBar.prototype.get minimumWidth):
(WebInspector.NavigationBar.prototype.layout):
(WebInspector.NavigationBar.prototype._mouseDown):
(WebInspector.NavigationBar.prototype._mouseMoved):
(WebInspector.NavigationBar.prototype._mouseUp):
(WebInspector.NavigationBar.prototype._calculateMinimumWidth):
(WebInspector.NavigationBar.prototype.updateLayoutSoon.update): Deleted.
(WebInspector.NavigationBar.prototype.updateLayoutSoon): Deleted.
(WebInspector.NavigationBar.prototype.updateLayout): Deleted.
(WebInspector.NavigationBar.prototype.get element): Deleted.
* UserInterface/Views/NavigationItem.js:
(WebInspector.NavigationItem.prototype.set hidden):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
(WebInspector.NetworkTimelineView.prototype.layout):
(WebInspector.NetworkTimelineView.prototype.updateLayout): Deleted.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype.layout):
(WebInspector.OverviewTimelineView.prototype.updateLayout): Deleted.
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole):
(WebInspector.QuickConsole.prototype.layout):
(WebInspector.QuickConsole.prototype.get element): Deleted.
(WebInspector.QuickConsole.prototype.updateLayout): Deleted.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
(WebInspector.RenderingFrameTimelineView.prototype.layout):
(WebInspector.RenderingFrameTimelineView.prototype.updateLayout): Deleted.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype.layout):
(WebInspector.ScriptTimelineView.prototype.updateLayout): Deleted.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar):
(WebInspector.TabBar.prototype.insertTabBarItem.animateTabs):
(WebInspector.TabBar.prototype.insertTabBarItem.removeStyles):
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.removeTabBarItem.animateTabs):
(WebInspector.TabBar.prototype.removeTabBarItem.removeStyles):
(WebInspector.TabBar.prototype.removeTabBarItem):
(WebInspector.TabBar.prototype.hasNormalTab):
(WebInspector.TabBar.prototype.layout):
(WebInspector.TabBar.prototype._recordTabBarItemSizesAndPositions):
(WebInspector.TabBar.prototype._finishExpandingTabsAfterClose.):
(WebInspector.TabBar.prototype._finishExpandingTabsAfterClose):
(WebInspector.TabBar.prototype._handleClick):
(WebInspector.TabBar.prototype._handleMouseMoved):
(WebInspector.TabBar.prototype._handleMouseUp):
(WebInspector.TabBar.prototype._handleMouseLeave):
(WebInspector.TabBar.prototype._handleNewTabMouseEnter):
(WebInspector.TabBar.prototype.updateLayoutSoon.update): Deleted.
(WebInspector.TabBar.prototype.updateLayoutSoon): Deleted.
(WebInspector.TabBar.prototype.updateLayout): Deleted.
(WebInspector.TabBar.prototype.get element): Deleted.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.get element): Deleted.
(WebInspector.TabBrowser.prototype.updateLayout): Deleted.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.filterUpdated):
(WebInspector.TimelineView.prototype.needsLayout):
(WebInspector.TimelineView.prototype.updateLayout): Deleted.
(WebInspector.TimelineView.prototype.updateLayoutIfNeeded): Deleted.
(WebInspector.TimelineView): Deleted.
* UserInterface/Views/Toolbar.js:
(WebInspector.Toolbar):
(WebInspector.Toolbar.prototype.set displayMode):
(WebInspector.Toolbar.prototype.set sizeMode):
(WebInspector.Toolbar.prototype.addToolbarItem):
(WebInspector.Toolbar.prototype.layout):
(WebInspector.Toolbar.prototype.customUpdateLayout): Deleted.
Renamed to layout. This eliminated a layering violation in NavigationBar,
where the function previously known as updateLayout checked for a
a `customUpdateLayout` function property, and would call it instead of its
own layout logic if found.
* UserInterface/Views/View.js: Added.
(WebInspector.View):
(WebInspector.View.prototype.get element):
(WebInspector.View.prototype.get subviews):
(WebInspector.View.prototype.addSubview):
Appends a view to the end of the subview list.
(WebInspector.View.prototype.insertSubviewBefore):
Inserts a view into subview list before another subview.
(WebInspector.View.prototype.removeSubview):
(WebInspector.View.prototype.replaceSubview):
(WebInspector.View.prototype.updateLayout):
No longer overridden by subclasses.
(WebInspector.View.prototype.updateLayoutIfNeeded):
Forces a layout if one has been scheduled, otherwise does nothing.
(WebInspector.View.prototype.needsLayout):
Schedules a layout for the view.
(WebInspector.View.prototype.layout):
Overridden by views that require special layout logic. Layouts
cascade to child views automatically.
(WebInspector.View.prototype._layoutSubtree):
Main layout entry point. Called by requestAnimationFrame via needsLayut, by
updateLayout when forcing a synchronous layout, and called recursively during
subview traversal.
2015-11-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Handle or Remove ParseHTML Timeline Event Records
https://bugs.webkit.org/show_bug.cgi?id=150689
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._processRecord):
2015-11-02 Andy Estes <aestes@apple.com>
[Cocoa] Add tvOS and watchOS to SUPPORTED_PLATFORMS
https://bugs.webkit.org/show_bug.cgi?id=150819
Reviewed by Dan Bernstein.
This tells Xcode to include these platforms in its Devices dropdown, making it possible to build in the IDE.
* Configurations/Base.xcconfig:
2015-10-30 Timothy Hatcher <timothy@apple.com>
Web Inspector: Unexpected background color behind the Continue button in the DebuggerDashboardView
https://bugs.webkit.org/show_bug.cgi?id=150734
Reviewed by Brian Burg.
* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger .navigation-bar .item.button):
(.dashboard.debugger .navigation-bar .item.button > .glyph):
2015-10-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Make use of other Timer details in Timeline (timeout, singleShot)
https://bugs.webkit.org/show_bug.cgi?id=150697
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._processRecord):
Create a small object for timer details.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.EventType.displayName):
New details object requires new path to timer identifier.
* UserInterface/Views/ScriptTimelineView.css:
(.sidebar > .panel.navigation.timeline:not(.timeline-recording-content-view-showing) .navigation-sidebar-panel-content-tree-outline.script .item .alternate-subtitle):
(.navigation-sidebar-panel-content-tree-outline .item .alternate-subtitle):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .alternate-subtitle):
(.navigation-sidebar-panel-content-tree-outline .item.small:not(.two-line) .alternate-subtitle::before):
Styles for an alternate-subtitle, a subtitle to show when the timeline
content view is showing and not a resource content view.
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
Create alternate subtitle for Timers with the timeout millisecond details.
Differentiate between setTimeout / setInterval.
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent): Deleted.
(WebInspector.ScriptTimelineDataGridNode): Deleted.
Remove dead code. Normally there would be a filter / scope bar for an eventType
column but no such column exists.
2015-10-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Display console.timeStamp(title) title in timeline markers
https://bugs.webkit.org/show_bug.cgi?id=150691
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._processRecord):
(WebInspector.TimelineManager.prototype._processEvent):
Detect unused timeline records.
* UserInterface/Models/TimelineMarker.js:
(WebInspector.TimelineMarker):
(WebInspector.TimelineMarker.prototype.get details):
Give markers an optional details argument.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.addMarker):
When a marker is a TimeStamp, use the details title in
the tooltip if one is available.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart):
Used \u in localized string. Kept this an endash since it is a range.
2015-10-29 Timothy Hatcher <timothy@apple.com>
Web Inspector: Navigation bar icons are missing
https://bugs.webkit.org/show_bug.cgi?id=150677
Reviewed by Joseph Pecoraro.
The glyph width and height were not being set correctly and it broke NavigationBar buttons.
The width and height attribute was being set on a div, when it should have used the style property.
Also remove the suppressEmboss flag, which is no longer used but the clients and subclasses still did.
* UserInterface/Base/ImageUtilities.js:
(useSVGSymbol): Use style property instead of setting width and height. The attributes
didn't accomplish the same thing in all cases. Use title and className property on the
wrapper element and remove the comments, which applied when there wasn't a wrapper.
* UserInterface/Views/ActivateButtonNavigationItem.js:
(WebInspector.ActivateButtonNavigationItem): Remove suppressEmboss.
* UserInterface/Views/ActivateButtonToolbarItem.js:
(WebInspector.ActivateButtonToolbarItem): Remove suppressEmboss.
* UserInterface/Views/ButtonNavigationItem.js:
(WebInspector.ButtonNavigationItem): Remove suppressEmboss.
(WebInspector.ButtonNavigationItem.prototype.set image): Use style property instead of setting
width and height attributes. This assumed the SVG element was the glyph element, which changed
at one point without me remembering to fix this client.
* UserInterface/Views/ButtonToolbarItem.js:
(WebInspector.ButtonToolbarItem): Remove suppressEmboss.
* UserInterface/Views/DebuggerDashboardView.js:
(WebInspector.DebuggerDashboardView): Remove suppressEmboss use.
* UserInterface/Views/FilterBar.js:
(WebInspector.FilterBar.prototype.addFilterBarButton): Remove suppressEmboss.
* UserInterface/Views/FilterBarButton.js:
(WebInspector.FilterBarButton): Remove suppressEmboss.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel): Remove suppressEmboss use.
* UserInterface/Views/ToggleButtonNavigationItem.js:
(WebInspector.ToggleButtonNavigationItem): Remove suppressEmboss.
2015-10-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Clean up and audit TimelineRecordFactory records
https://bugs.webkit.org/show_bug.cgi?id=150660
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._processRecord):
(WebInspector.TimelineManager.prototype._processEvent):
Add FIXME for payload data which we are not yet using but could.
Fix typo in some rAF records where we were mistakenly using "timerId"
instead of "id" for the request identifier.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.EventType.displayName):
Display the now correctly accessed rAF identifier in the Scripts timeline.
2015-10-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add "revert" to CSS value autocompletion
https://bugs.webkit.org/show_bug.cgi?id=150652
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSCompletions.js:
* UserInterface/Models/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel):
(WebInspector.VisualStyleDetailsPanel.prototype._populateDisplaySection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateAlignmentSection):
Treat "revert" like initial and unset. It is valid on all properties.
2015-10-28 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION(r191071): Web Inspector: Can't resize split console when the window is too narrow
https://bugs.webkit.org/show_bug.cgi?id=150492
Reviewed by Timothy Hatcher.
Make some items inside of the navigation bar click-through to incsease the draggable area.
* UserInterface/Views/Main.css:
(#split-content-browser > .navigation-bar > :matches(.hierarchical-path, .log-scope-bar)):
2015-10-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Show Timeline Markers again (DOMContentLoaded, Load, console.timeStamp)
https://bugs.webkit.org/show_bug.cgi?id=150612
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
Tooltip strings for the timeline markers.
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.addEventMarker):
Dispatch an event so the views listening to this recording can add the markers.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype._markerAdded):
Add the marker to the OverviewTimelineView's ruler.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._markerAdded):
(WebInspector.TimelineOverview.prototype.addMarker): Deleted.
Add the marker to the TimelineOverview's ruler. Remove the unused method.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.addMarker):
Give some marker's a tooltip based on their type.
* UserInterface/Views/TimelineOverview.css:
(.timeline-overview > .timeline-ruler > .markers):
(.timeline-overview.frames > .timeline-ruler > .markers > .marker:not(.current-time)):
Correct the height of markers in the timeline overview.
Hide markers non-current-time markers in the rendering frames view.
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler > .markers > .marker):
(.timeline-ruler > .markers > .marker::before):
Give markers a bit of width to make it easier to trigger their tooltip.
(.timeline-ruler > .markers > .marker.load-event):
(.timeline-ruler > .markers > .marker.dom-content-event):
(.timeline-ruler > .markers > .marker.timestamp):
Adjust coloring of the markers. hsla(0.5) was causing bleeding
with width 1px to 2px. hsl() with opacity it was always 1px.
2015-10-28 Timothy Hatcher <timothy@apple.com>
Web Inspector: Zoom never goes back to 100% size
https://bugs.webkit.org/show_bug.cgi?id=150637
Add and subtract 20% from the zoom level so the zoom factor can return
to the 1 starting zoom factor if you go back the other direction.
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector._increaseZoom): Add 0.2 instead of multiplying 1.2.
(WebInspector._decreaseZoom): Subtract 0.2 instead of multiplying 0.8.
2015-10-28 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frames pie chart does not update during initial selection of a timeline range
https://bugs.webkit.org/show_bug.cgi?id=150630
Reviewed by Geoffrey Garen.
No longer suppress selection changed events while dragging to create a new selection.
We dispatch selection changed events when adjusting an existing selection, so it makes
sense to treat both cases identically.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler): Deleted.
(WebInspector.TimelineRuler.prototype._dispatchTimeRangeSelectionChangedEvent): Deleted.
(WebInspector.TimelineRuler.prototype._handleMouseMove): Deleted.
2015-10-27 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove image generators and use SVG directly
https://bugs.webkit.org/show_bug.cgi?id=150602
Reviewed by Brian Burg.
This removes the code used to generate button image states as various canvas bitmaps.
With the simplification of the UI in Yosemite, we can now just style SVG images to change
the color used by the glyphs in these images. To do that we use the special "currentColor"
color keyword. That keyword represents the current value of the applied CSS text color.
This approach was used since it works across shadow DOM boundaries, which are there with
our new use of the SVG <use> element to import glyphs. This allows us to eliminate the
"stroked" and "filled" classes that were used to style some images that used the old
wrappedSVGDocument image utility.
Some of the SVG images had to be recreated -- specifically the removal of <clipPath> and
<text> elements. Those elements do not work or work well with the <use> element. We can
now only use graphical elements like <path>, <rect>, <circle>, etc.
* UserInterface/Images/*.svg: Added id to the top level for most images. Use currentColor instead of black. Sorted attributes.
* UserInterface/Images/gtk/*.svg: Added id to the top level for most images. Filed bug 150603 to track adopting currentColor.
* UserInterface/Base/ImageUtilities.js:
(useSVGSymbol): Added.
(catch): Deleted.
(_devicePixelRatioChanged): Deleted.
(_registerGeneratedImageUpdateFunction): Deleted.
(_logSQLError): Deleted.
(_logSQLTransactionError): Deleted.
(_prefetchCachedImagesAndUpdate): Deleted.
(_prefetchCachedImagesAndUpdate.): Deleted.
(else.): Deleted.
(restoreImageFromStorage): Deleted.
(imageLoaded): Deleted.
(ensureImageIsLoaded): Deleted.
(restoreImages.restoreActiveImages): Deleted.
(restoreImages): Deleted.
(restoreImage): Deleted.
(update): Deleted.
(generateImages.generateActiveImages): Deleted.
(generateImages): Deleted.
(generateImage): Deleted.
(_drawImageShadow): Deleted.
(_invertMaskImage): Deleted.
(_applyImageMask): Deleted.
(generateEmbossedImages): Deleted.
(invokeCallbackWithDocument): Deleted.
(imageLoad): Deleted.
(imageError): Deleted.
(wrappedSVGDocument): Deleted.
* UserInterface/Views/ActivateButtonNavigationItem.js:
(WebInspector.ActivateButtonNavigationItem.prototype.set activated):
(WebInspector.ActivateButtonNavigationItem.prototype.generateStyleText): Deleted.
* UserInterface/Views/ButtonNavigationItem.css:
(.navigation-bar .item.button):
(.navigation-bar .item.button > .glyph):
(.navigation-bar .item.button:not(.disabled):active > .glyph):
(.navigation-bar .item.button:not(.disabled):matches(:focus, .activate.activated, .radio.selected) > .glyph):
(.navigation-bar .item.button:not(.disabled):active:matches(:focus, .activate.activated, .radio.selected) > .glyph):
(body.window-inactive .navigation-bar .item.button > .glyph):
(.navigation-bar .item.button.disabled > .glyph):
(body.window-inactive .navigation-bar .item.button.disabled > .glyph):
(.navigation-bar .item.button.text-only): Deleted.
(body.window-inactive .navigation-bar .item.button:not(.suppress-emboss) > .glyph): Deleted.
(body.window-inactive .navigation-bar .item.button.disabled:not(.suppress-emboss) > .glyph): Deleted.
(.navigation-bar .item.button.suppress-emboss): Deleted.
(.navigation-bar .item.button.suppress-emboss > .glyph): Deleted.
(.navigation-bar .item.button.suppress-emboss:active > .glyph): Deleted.
(.navigation-bar .item.button.suppress-emboss.disabled > .glyph): Deleted.
* UserInterface/Views/ButtonNavigationItem.js:
(WebInspector.ButtonNavigationItem.prototype.set image):
(WebInspector.ButtonNavigationItem): Deleted.
(WebInspector.ButtonNavigationItem.prototype.get suppressBezel): Deleted.
(WebInspector.ButtonNavigationItem.prototype.set suppressBezel): Deleted.
(WebInspector.ButtonNavigationItem.prototype.generateStyleText): Deleted.
(WebInspector.ButtonNavigationItem.prototype._canvasIdentifier): Deleted.
(WebInspector.ButtonNavigationItem.prototype._updateImage): Deleted.
(WebInspector.ButtonNavigationItem.prototype._generateImages): Deleted.
* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button > .glyph):
(.toolbar .item.button:not(.disabled):active > .glyph):
* UserInterface/Views/ControlToolbarItem.css:
(.toolbar .item.control):
(.toolbar .item.control:hover):
* UserInterface/Views/MultipleScopeBarItem.js:
(WebInspector.MultipleScopeBarItem):
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype.updateLayoutSoon.update):
(WebInspector.NavigationBar.prototype.updateLayoutSoon):
(WebInspector.NavigationBar): Deleted.
(WebInspector.NavigationBar.prototype.insertNavigationItem): Deleted.
(WebInspector.NavigationBar.prototype.removeNavigationItem): Deleted.
(WebInspector.NavigationBar.prototype.updateLayout): Deleted.
(WebInspector.NavigationBar.prototype._updateStyle): Deleted.
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
* UserInterface/Views/RadioButtonNavigationItem.js:
(WebInspector.RadioButtonNavigationItem.prototype.set active):
(WebInspector.RadioButtonNavigationItem.prototype.generateStyleText): Deleted.
* UserInterface/Views/ScopeBar.css:
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows):
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .filled): Deleted.
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .stroked): Deleted.
* UserInterface/Views/ScopeBarItem.js:
(WebInspector.ScopeBarItem):
* UserInterface/Views/ScopeRadioButtonNavigationItem.css:
(.scope-radio-button-navigation-item:hover > .arrows):
(.scope-radio-button-navigation-item.selected > .arrows > svg .stroked): Deleted.
* UserInterface/Views/ScopeRadioButtonNavigationItem.js:
(WebInspector.ScopeRadioButtonNavigationItem):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar > .default-item-selected > .multiple .arrows):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar > .default-item-selected > .multiple svg .filled): Deleted.
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar > .default-item-selected > .multiple svg .stroked): Deleted.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementAddedOrChanged):
(WebInspector.TimelineSidebarPanel.prototype._timelineAdded):
* UserInterface/Views/ToggleButtonNavigationItem.js:
(WebInspector.ToggleButtonNavigationItem): Deleted.
* UserInterface/Views/TreeElementStatusButton.css:
(.item > .status > .status-button):
(:matches(:focus, .force-focus) .item.selected > .status > .status-button):
(.item > .status > .status-button > svg .filled): Deleted.
(:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .filled): Deleted.
(.item > .status > .status-button > svg .stroked): Deleted.
(:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .stroked): Deleted.
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
* UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .visual-style-section-clear):
* UserInterface/Views/VisualStyleKeywordIconList.css:
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:not(.selected) > div):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .stroked): Deleted.
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .filled): Deleted.
* UserInterface/Views/VisualStyleKeywordIconList.js:
(WebInspector.VisualStyleKeywordIconList.createListItem):
(WebInspector.VisualStyleKeywordIconList):
* UserInterface/Views/VisualStylePropertyEditorLink.css:
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > :matches(.linked-icon, .unlinked-icon)):
(.visual-style-property-editor-link:not(.linked) > .visual-style-property-editor-link-icon > :matches(.linked-icon, .unlinked-icon)):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon): Deleted.
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .filled): Deleted.
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .stroked): Deleted.
* UserInterface/Views/VisualStylePropertyEditorLink.js:
(WebInspector.VisualStylePropertyEditorLink):
* UserInterface/Views/VisualStyleSelectorSection.css:
(.details-section.visual-style-selector-section > .header > .controls > .visual-style-selector-section-add-rule):
* UserInterface/Views/VisualStyleSelectorSection.js:
(WebInspector.VisualStyleSelectorSection):
2015-10-28 Timothy Hatcher <timothy@apple.com>
Web Inspector: jsmin.py mistakenly removes whitespace from template literal strings
https://bugs.webkit.org/show_bug.cgi?id=148728
Reviewed by Joseph Pecoraro.
* Scripts/jsmin.py:
(JavascriptMinify.minify): Make backtick a quoting character.
2015-10-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline recording start button missing when WEB_REPLAY disabled (no ReplayAgent)
https://bugs.webkit.org/show_bug.cgi?id=150633
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._updateReplayInterfaceVisibility):
Ensure we pass a boolean to classList.toggle.
2015-10-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove Timeline MarkDOMContent and MarkLoad, data is already available
https://bugs.webkit.org/show_bug.cgi?id=150615
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._processEvent):
Remove the now unneed mark event handling.
(WebInspector.TimelineManager.prototype.pageDOMContentLoadedEventFired):
(WebInspector.TimelineManager.prototype.pageLoadEventFired):
Update the main frame and create markers for the current recording.
* UserInterface/Protocol/PageObserver.js:
(WebInspector.PageObserver.prototype.domContentEventFired):
(WebInspector.PageObserver.prototype.loadEventFired):
Forward to TimelineManager.
2015-10-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused / duplicated XHR timeline instrumentation
https://bugs.webkit.org/show_bug.cgi?id=150605
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._processRecord):
Remove unused events and add an assert that we don't miss
any script embedders.
2015-10-27 Matt Baker <mattbaker@apple.com>
REGRESSION: Web Inspector: DOM path bar blinks when modifying inline styles
https://bugs.webkit.org/show_bug.cgi?id=149258
Reviewed by Timothy Hatcher.
Now that Object now longer spams constructor event listeners, ContentBrowser can safely
update the NavigationBar synchronously. This fixes the issue, with zero impact on layout
responsiveness when selecting Rendering Frames tree elements.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
Force NavigationBar to update synchronously.
2015-10-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline current time marker does not start moving when starting recording after just opening inspector
https://bugs.webkit.org/show_bug.cgi?id=150178
Reviewed by Brian Burg.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.capturingStarted):
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.initializeTimeBoundsIfNecessary):
For a recording to start updating current time the recording itself
must have a start time. Provide a setter so that the start time can
be set without waiting for a timeline record. For example the
timestamp that the frontend receives when it starts a recording.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
When we have a startTime number (new backends) always use it as the current time.
Previously we were only doing this if current time was NaN, which would be when
re-starting a recording after it had stopped, but not for the initial recording
after opening the inspector.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.updateLayout):
Even if we do not need to create new time dividers we may need to perform
other updates like update the current time marker. So do work before bailing.
2015-10-26 Matt Baker <mattbaker@apple.com>
Web Inspector: WebInspector.Object can dispatch constructor-level events multiple times
https://bugs.webkit.org/show_bug.cgi?id=150579
Reviewed by Timothy Hatcher.
Use `hasOwnProperty` when checking for constructor event listeners when walking the
prototype chain. This prevents listeners registered with a base class constructor
from being dispatched multiple times by getting picked up higher in the prototype chain.
* UserInterface/Base/Object.js:
(WebInspector.Object.prototype.dispatchEventToListeners.dispatch):
(WebInspector.Object.prototype.dispatchEventToListeners):
(WebInspector.Object):
2015-10-26 Matt Baker <mattbaker@apple.com>
Web Inspector: Hundreds of failed assertions after switching to Rendering Frames after recording complete
https://bugs.webkit.org/show_bug.cgi?id=150568
Reviewed by Timothy Hatcher.
When the TimelineRecordingContentView responds to the current content view changing,
the TimelineOverview may be swapped out (if switching from a Timelines content view to a
Rendering Frames content view). This patch installs a new overview (if it's changing) prior
to setting the TimelineSidebarPanel's tree outline, as setting the tree outline forces
filters to run.
Filtering tree elements requires that the timeline overview is up to date, which was the
cause the assertion deluge.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
2015-10-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Spacebar to start recording should not cause system beep
https://bugs.webkit.org/show_bug.cgi?id=150573
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._toggleRecordingOnSpacebar):
(WebInspector.TimelineSidebarPanel.prototype._toggleNewRecordingOnSpacebar):
The keyboard shortcuts do not implicitly prevent default because they may bail.
So in cases where they do handle the key, prevent default to prevent system beeps.
2015-10-26 Matt Baker <mattbaker@apple.com>
Web Inspector: Cleanup sidebar panels, reduce `delete` and use Maps instead of objects
https://bugs.webkit.org/show_bug.cgi?id=150548
Reviewed by Timothy Hatcher.
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._updateDataGrid):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._dataGridNodeForLayer):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.restoreStateFromCookie.finalAttemptToRestoreViewStateFromCookie):
(WebInspector.NavigationSidebarPanel.restoreStateFromCookie):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
Switched to using Symbol() to set external properties on tree elements.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel):
(WebInspector.StorageSidebarPanel.prototype._addDatabase):
(WebInspector.StorageSidebarPanel.prototype._addIndexedDatabase):
(WebInspector.StorageSidebarPanel.prototype._addFrameManifest):
(WebInspector.StorageSidebarPanel.prototype._storageCleared):
2015-10-24 Nikita Vasilyev <nvasilyev@apple.com>
Unreviewed, rolling out r191419.
https://bugs.webkit.org/show_bug.cgi?id=150537
Reverted changeset:
"Web Inspector: Autocompletion previews in the CSS sidebar do not apply"
https://bugs.webkit.org/show_bug.cgi?id=147720
http://trac.webkit.org/changeset/191419
2015-10-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused ScrollLayer Timeline EventType
https://bugs.webkit.org/show_bug.cgi?id=150518
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
* Versions/Inspector-iOS-9.0.json:
2015-10-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: xlink:href should be linkified
https://bugs.webkit.org/show_bug.cgi?id=150505
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
When opening a URL with a fragment, prefer opening a resource
that has the same URL without the fragment, otherwise this would
open in a new tab.
* UserInterface/Base/URLUtilities.js:
(absoluteURL):
Better handling absoluteURL("#frag", baseURL).
* UserInterface/Views/CodeMirrorAdditions.js:
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
Allow for more "href" style attributes, such as XML namespaced
"xlink:href" attribute names.
2015-10-23 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Command-Enter in Debugger should show a popover with evaluation result
https://bugs.webkit.org/show_bug.cgi?id=149195
Currenty, the only way to display the popover is to hover over the text with a mouse cursor.
Provide a way to display it via a keyboard shortcut.
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController): Deleted.
(WebInspector.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions): Deleted.
Don't evaluate selected text from Debugger or Sources in the console.
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController):
(WebInspector.CodeMirrorTokenTrackingController.prototype._handleCommandEnterKey):
(WebInspector.CodeMirrorTokenTrackingController.prototype._hidePopover):
Cmd-Enter triggers the popover, Esc hides it.
(WebInspector.CodeMirrorTokenTrackingController.prototype.set mode):
(WebInspector.CodeMirrorTokenTrackingController.prototype.removeHighlightedRange):
Don't use delete.
(WebInspector.CodeMirrorTokenTrackingController.prototype._mouseMovedWithMarkedText):
When a token isn't hovered, hide it only when it was triggered not by the keyboard.
(WebInspector.CodeMirrorTokenTrackingController.prototype._markedTextIsNoLongerHovered):
Don't use delete.
(WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
(WebInspector.CodeMirrorTokenTrackingController.prototype._getTokenInfoForPosition):
Abstract out a no side effects _getTokenInfoForPosition method, which is also used by _handleCommandEnterKey.
(WebInspector.CodeMirrorTokenTrackingController.prototype._mouseMovedOutOfEditor):
(WebInspector.CodeMirrorTokenTrackingController.prototype._mouseButtonWasReleasedOverEditor):
Don't use delete.
(WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
(WebInspector.CodeMirrorTokenTrackingController.prototype._processNonSymbolToken):
(WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
Pass tokenInfo as an argument to explicitly state that these methods require it.
(WebInspector.CodeMirrorTokenTrackingController.prototype._resetTrackingStates):
Don't use delete.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeReleased):
Allow to hide the popover regardless of mouse position. Used when the text cursor moves or
when Esc key is pressed.
2015-10-23 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Visual sidebar should support multiple backgrounds
https://bugs.webkit.org/show_bug.cgi?id=148310
Reviewed by Timothy Hatcher.
Changes the layout of the Background - Style section in the Visual sidebar
to be a list instead of a single editable field for a background-image URL.
Allows for comma-separated background properties (both shorthand and
longhand) and displays them all in a single list for editing.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/VisualStyleColorPicker.js:
(WebInspector.VisualStyleColorPicker):
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
(.visual-style-property-container.comma-separated-keyword-editor):
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._generateTextFromLonghandProperties.propertyValue):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._generateTextFromLonghandProperties):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.modifyPropertyText):
Comma separated properties will now try to assemble a value from related longhand
properties so that a single shorthand property with commas may be used.
* UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section.background .details-section.background-style .visual-style-property-container.comma-separated-keyword-editor.background):
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection):
(WebInspector.VisualStyleDetailsPanel.prototype._noRemainingCommaSeparatedEditorItems):
(WebInspector.VisualStyleDetailsPanel.prototype._selectedCommaSeparatedEditorItemValueChanged):
(WebInspector.VisualStyleDetailsPanel.prototype._commaSeparatedEditorTreeItemSelected):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.noRemainingTreeItems): Deleted.
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.selectedBoxShadowItemValueChanged): Deleted.
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.boxShadowItemSelected): Deleted.
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.noRemainingTreeItems): Deleted.
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.selectedtransitionItemValueChanged): Deleted.
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.transitionItemSelected): Deleted.
Made the "background-image" property into a comma separated editor.
* UserInterface/Views/VisualStyleFontFamilyListEditor.js:
(WebInspector.VisualStyleFontFamilyListEditor):
* UserInterface/Views/VisualStyleKeywordIconList.js:
(WebInspector.VisualStyleKeywordIconList.prototype.set value):
(WebInspector.VisualStyleKeywordIconList.prototype._handleKeywordChanged):
(WebInspector.VisualStyleKeywordIconList):
* UserInterface/Views/VisualStyleKeywordPicker.js:
(WebInspector.VisualStyleKeywordPicker.prototype.updateEditorValues):
(WebInspector.VisualStyleKeywordPicker.prototype._setValue):
* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
* UserInterface/Views/VisualStylePropertyCombiner.js:
(WebInspector.VisualStylePropertyCombiner):
(WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateCompatibleEditor):
(WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText):
* UserInterface/Views/VisualStylePropertyEditor.js:
(WebInspector.VisualStylePropertyEditor):
(WebInspector.VisualStylePropertyEditor.prototype.update):
(WebInspector.VisualStylePropertyEditor.prototype.getValuesFromText):
(WebInspector.VisualStylePropertyEditor.prototype.get propertyMissing):
(WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
Moved "propertyMissing" into a member variable for better access.
* UserInterface/Views/VisualStyleURLInput.js:
(WebInspector.VisualStyleURLInput):
(WebInspector.VisualStyleURLInput.prototype.get synthesizedValue):
(WebInspector.VisualStyleURLInput.prototype.parseValue):
Added support for specific keywords to be used in the input field.
2015-10-22 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove generateColoredImagesForCSS and its clients
https://bugs.webkit.org/show_bug.cgi?id=150474
Reviewed by Joseph Pecoraro.
* UserInterface/Base/ImageUtilities.js:
(generateColoredImage): Deleted.
(imageLoaded): Deleted.
(ensureImageIsLoaded): Deleted.
(restoreImages.restoreActiveImages): Deleted.
(restoreImages): Deleted.
(restoreImage): Deleted.
(update): Deleted.
(generateImage): Deleted.
(generateColoredImagesForCSS): Deleted.
* UserInterface/Base/Main.js:
(WebInspector.loaded): Deleted call to _generateDisclosureTriangleImages.
(WebInspector._generateDisclosureTriangleImages): Deleted.
(WebInspector.createGoToArrowButton): Deleted code to generate the states.
* UserInterface/Images/BackArrow.svg: Removed.
* UserInterface/Images/BackForwardArrows.svg: Added.
* UserInterface/Images/DisclosureTriangleSmallClosed.svg: Removed.
* UserInterface/Images/DisclosureTriangleSmallOpen.svg: Removed.
* UserInterface/Images/DisclosureTriangleTinyClosed.svg: Removed.
* UserInterface/Images/DisclosureTriangleTinyOpen.svg: Removed.
* UserInterface/Images/DisclosureTriangles.svg: Added.
* UserInterface/Images/ForwardArrow.svg: Removed.
* UserInterface/Images/GoToArrow.svg:
* UserInterface/Images/Locked.svg: Moved fill color here.
* UserInterface/Images/SortIndicatorArrows.svg: Added.
* UserInterface/Images/SortIndicatorDownArrow.svg: Removed.
* UserInterface/Images/SortIndicatorUpArrow.svg: Removed.
* UserInterface/Images/gtk/BackArrow.svg: Removed.
* UserInterface/Images/gtk/BackForwardArrows.svg: Added.
* UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg: Removed.
* UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg: Removed.
* UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg: Removed.
* UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg: Removed.
* UserInterface/Images/gtk/DisclosureTriangles.svg: Added.
* UserInterface/Images/gtk/ForwardArrow.svg: Removed.
* UserInterface/Images/gtk/GoToArrow.svg:
* UserInterface/Images/gtk/Locked.svg: Moved fill color here.
* UserInterface/Images/gtk/SortIndicatorArrows.svg: Added.
* UserInterface/Images/gtk/SortIndicatorDownArrow.svg: Removed.
* UserInterface/Images/gtk/SortIndicatorUpArrow.svg: Removed.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section.locked > .header::before):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection): Deleted.
* UserInterface/Views/ConsoleMessageView.css:
(.console-message.expandable .console-top-level-message::before):
(.console-message.expandable.expanded .console-top-level-message::before):
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser): Use BackForwardArrows.svg.
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.parent::before):
(.dom-tree-outline:focus li.parent.selected::before):
(.dom-tree-outline li.parent.expanded::before):
(.dom-tree-outline:focus li.parent.expanded.selected::before):
* UserInterface/Views/DataGrid.css:
(.data-grid th.sort-ascending > div:first-child::after):
(.data-grid th.sort-descending > div:first-child::after):
(.data-grid tr.parent td.disclosure::before):
(.data-grid tr.parent.expanded td.disclosure::before):
(.data-grid:matches(:focus, .force-focus) tr.parent.selected td.disclosure::before):
(.data-grid:matches(:focus, .force-focus) tr.parent.expanded.selected td.disclosure::before):
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid): Deleted call to _generateSortIndicatorImagesIfNeeded.
(WebInspector.DataGrid.prototype._generateSortIndicatorImagesIfNeeded): Deleted.
* UserInterface/Views/DetailsSection.css:
(.details-section > .header::before):
(.details-section > .header:not(.mouse-over-options-element):active::before):
(.details-section.collapsed > .header::before):
(.details-section.collapsed > .header:not(.mouse-over-options-element):active::before):
* UserInterface/Views/DetailsSection.js:
(WebInspector.DetailsSection): Deleted call to _generateDisclosureTrianglesIfNeeded.
(WebInspector.DetailsSection.prototype._generateDisclosureTrianglesIfNeeded): Deleted.
* UserInterface/Views/ErrorObjectView.css:
(.error-object > .formatted-error::before):
(.error-object.expanded > .formatted-error::before):
* UserInterface/Views/FindBanner.css:
(.find-banner > button.segmented.left > .glyph):
(.find-banner > button.segmented.left:active:not(:disabled) > .glyph):
(.find-banner > button.segmented.right > .glyph):
(.find-banner > button.segmented.right:active:not(:disabled) > .glyph):
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner): Deleted call to _generateButtonsGlyphsIfNeeded.
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded): Deleted.
* UserInterface/Views/LogContentView.css:
(.console-group-title::before):
(.console-group.collapsed .console-group-title::before):
* UserInterface/Views/Main.css:
(.go-to-arrow):
(.go-to-arrow:active):
(:matches(:focus, .force-focus) .selected .go-to-arrow):
(:matches(:focus, .force-focus) .selected .go-to-arrow:active):
* UserInterface/Views/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline .item .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline .item.expanded .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel): Deleted call to _generateDisclosureTrianglesIfNeeded.
(WebInspector.NavigationSidebarPanel.prototype._generateDisclosureTrianglesIfNeeded): Deleted.
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property.parent > .disclosure-button):
(.object-tree-property.parent.expanded > .disclosure-button):
(.object-tree-property .read-only): Deleted.
* UserInterface/Views/ObjectTreeView.css:
(.object-tree > :matches(.title, .object-preview)::before):
(.object-tree.expanded > :matches(.title, .object-preview)::before):
* UserInterface/Views/TypeTreeElement.css:
(.type-tree-element.parent > .disclosure-button):
(.type-tree-element.parent.expanded > .disclosure-button):
2015-10-22 Matt Baker <mattbaker@apple.com>
Web Inspector: CSS Data URIs count against page weight twice
https://bugs.webkit.org/show_bug.cgi?id=150101
Reviewed by Timothy Hatcher.
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange):
Exclude resources with a data URI from the total page weight.
* UserInterface/Models/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.updateForRedirectResponse):
(WebInspector.Resource.prototype.updateForResponse):
(WebInspector.Resource.prototype.markAsFinished):
Removed uses of `delete`.
2015-10-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused Timeline GCEvent Record type
https://bugs.webkit.org/show_bug.cgi?id=150477
Reviewed by Timothy Hatcher.
iOS backends never emitted a GCEvent timeline event.
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
* Versions/Inspector-iOS-9.0.json:
2015-10-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: srcset attributes should have hyperlinks to the resources
https://bugs.webkit.org/show_bug.cgi?id=150409
Reviewed by Timothy Hatcher.
Follow-up tweaks and fixes that were intended to be landed.
* UserInterface/Views/CodeMirrorAdditions.js:
(tokenizeSrcSetString):
Multiline parsing has issues recovering the state CodeMirror
expects, so we just bail in those cases. Leading whitespace
is also handled poorly, but expected to be rare.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
Trim to eliminate leading whitespace.
2015-10-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Restore :not(:placeholder-shown) behavior on search bars with comments
https://bugs.webkit.org/show_bug.cgi?id=150452
Reviewed by Timothy Hatcher.
* UserInterface/Views/FindBanner.css:
(.find-banner.console-find-banner > input[type="search"]:not(:placeholder-shown)):
* UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]:not(:placeholder-shown)):
Add back the placeholder-shown related styles and add a comment about what they are for.
2015-10-22 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Tabbing over CSS properties prepended by * doesn't move the highlighted range
https://bugs.webkit.org/show_bug.cgi?id=150294
Reviewed by Timothy Hatcher.
Moving the selected text when tabbing and shift-tabbing now relies upon
the last index of ";" if it exists instead of whether the line ends with it.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey):
2015-10-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: srcset attributes should have hyperlinks to the resources
https://bugs.webkit.org/show_bug.cgi?id=150409
Reviewed by Timothy Hatcher.
The "srcset" attribute parsing is a simplification of:
https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-srcset
The "srcset" attribute value is expected to be in comma
separated groups. Within each group we always expect a link,
and an optional descriptor. We want to linkify the link.
* UserInterface/Views/CodeMirrorAdditions.js:
(tokenizeSrcSetString):
(extendedXMLToken):
When parsing srcset attribute, parse links as link tokens
so that they are linkified in resource content views.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
When creating the DOMTree DOM for srcset attributes,
create link elements for the link values of attribute value.
2015-10-21 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Autocompletion previews in the CSS sidebar do not apply
https://bugs.webkit.org/show_bug.cgi?id=147720
Reviewed by Timothy Hatcher.
When autocompletion hints are added to styles or the console, the history
object used by CodeMirror was edited to remove the last entry. Instead of
using this method (which caused glitchy behaviour when undo-ing), call
CodeMirror.undo() and adjust accordingly. In addition, a marker was being
used as the completion hint instead of applying text, whereas these
changes use actual text, ensuring that completions are previewed in the page.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype.close):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._commitCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._handleBeforeChange):
(WebInspector.CodeMirrorCompletionController.prototype._createCompletionHintMarker): Deleted.
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.clearMarker): Deleted.
2015-10-21 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Add forgotten WebInspector.UIString from r190521
https://bugs.webkit.org/show_bug.cgi?id=150425
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(UserInterface/Views/CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded)
2015-10-21 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Adjust usages of classList.toggle to ensure a true/false value instead of undefined
https://bugs.webkit.org/show_bug.cgi?id=150424
Reviewed by Timothy Hatcher.
Adds "!!" in front of force parameters in classList.toggle calls that
could possibly be undefined (thereby breaking the UI).
* UserInterface/Views/ScopeBarItem.js:
(WebInspector.ScopeBarItem):
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
* UserInterface/Views/VisualStylePropertyEditor.js:
(WebInspector.VisualStylePropertyEditor):
2015-10-21 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Option-Up doesn't increment certain attribute values
https://bugs.webkit.org/show_bug.cgi?id=149257
Reviewed by Brian Burg.
If the user tries to modify a numerical attribute in HTML and the cursor
was at the beginning of the attribute value, the range of the selection
was within a sibling element instead of the text node containin the value.
This patch fixes this issue and ensures that the correct text is selected.
* UserInterface/Views/EditingSupport.js:
(WebInspector.startEditing.handleEditingResult):
Replaced var with let.
2015-10-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Use some CSS Variables in Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=150405
Reviewed by Timothy Hatcher.
* UserInterface/Main.html:
Include the new variables stylesheet.
* UserInterface/Views/Variables.css: Added.
(:root):
Introduce new global variables.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .cm-link):
* UserInterface/Views/ConsoleMessageView.css:
(.console-message-preview-divider):
(.console-message-enclosed):
(.console-message .console-message-extra-parameters-container > li::before):
(.console-saved-variable):
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.selected > span::after):
* UserInterface/Views/FormattedValue.css:
(:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap, .formatted-weakset) > .size):
(.formatted-number):
(.formatted-boolean):
(.formatted-string):
(.formatted-regexp):
(.formatted-symbol):
* UserInterface/Views/ObjectPreviewView.css:
(.object-preview > .size):
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
(.object-tree-array-index .index-name):
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(.syntax-highlighted :matches(.css-keyword, .css-tag, .css-at-rule, .css-important, .javascript-keyword, .html-tag)):
(.syntax-highlighted :matches(.css-number, .javascript-number)):
(.syntax-highlighted :matches(.css-string, .javascript-string, .html-attribute-value)):
(.syntax-highlighted .javascript-regexp):
* UserInterface/Views/TypeTokenView.css:
(.type-token-symbol):
Make use of variables.
2015-10-21 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Typo in a property name: style.inerhited
https://bugs.webkit.org/show_bug.cgi?id=150391
Reviewed by Csaba Osztrogonác.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
2015-10-20 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Pressing Command-S while focused on the styles sidebar should save CSS file
https://bugs.webkit.org/show_bug.cgi?id=150298
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
Beep when saving didn't work. Inline CSS and CSS in style attributes aren't curently supported.
2015-10-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JavaScriptCore should parse sourceURL and sourceMappingURL directives
https://bugs.webkit.org/show_bug.cgi?id=150096
Reviewed by Geoffrey Garen.
* UserInterface/Test/InspectorProtocol.js:
(InspectorProtocol._sendMessage):
(InspectorProtocol.dispatchMessageFromBackend):
This is only used for tests, so avoid console.log
and just dump directly to the system console.
2015-10-19 Xabier Rodriguez Calvar <calvaris@igalia.com>
[Streams API] Add skeleton for initial WritableStream support
https://bugs.webkit.org/show_bug.cgi?id=149951
Reviewed by Darin Adler.
* UserInterface/Models/NativeFunctionParameters.js: Added support for WritableStream.
2015-10-19 James Craig <jcraig@apple.com>
Web Inspector: AX: console list 'input'/'output' markers are not perceivable
https://bugs.webkit.org/show_bug.cgi?id=133045
Enabling WebKit Web Inspector console pseudo-element labels using the new CSS4 'alt' property.
Reviewed by Brian Burg.
* UserInterface/Views/LogContentView.css:
(.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):
(.console-messages:focus .console-item.selected .console-user-command-result.console-log-level::before):
(@media reader): Deleted.
2015-10-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Console Search should update when console is cleared
https://bugs.webkit.org/show_bug.cgi?id=150141
Reviewed by Brian Burg.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._logCleared):
Reperform the search if there is a search query.
(WebInspector.LogContentView.prototype._filterMessageElements):
Reperform the current search.
2015-10-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add "unset" to CSS value autocompletion
https://bugs.webkit.org/show_bug.cgi?id=127616
Reviewed by Brian Burg.
* UserInterface/Models/CSSCompletions.js:
* UserInterface/Models/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
Treat "unset" similiar to "initial". Also, no need for "initial"
in an individual property's list. We always include it.
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel):
(WebInspector.VisualStyleDetailsPanel.prototype._populateDisplaySection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateAlignmentSection):
Add "Unset" alongside "Initial".
2015-10-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include Garbage Collection Event in Timeline
https://bugs.webkit.org/show_bug.cgi?id=142510
Reviewed by Geoffrey Garen and Brian Burg.
* UserInterface/Base/Utilities.js:
(Array.prototype.partition):
Helper to partition an Array into two arrays.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Test.html:
* UserInterface/Test/Test.js:
(WebInspector.loaded):
* UserInterface/Protocol/HeapObserver.js: Added.
(WebInspector.HeapObserver.prototype.garbageCollected):
(WebInspector.HeapObserver):
Create the new observer and manager.
* UserInterface/Models/GarbageCollection.js: Added.
(WebInspector.GarbageCollection):
(WebInspector.GarbageCollection.fromPayload):
(WebInspector.GarbageCollection.prototype.get type):
(WebInspector.GarbageCollection.prototype.get startTime):
(WebInspector.GarbageCollection.prototype.get endTime):
(WebInspector.GarbageCollection.prototype.get duration):
Model object for Heap.GarbageCollection.
* UserInterface/Controllers/HeapManager.js: Added.
(WebInspector.HeapManager):
(WebInspector.HeapManager.prototype.garbageCollected):
Dispatch events with the GC object.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype._garbageCollected):
Include new GC Timeline Events as Script events.
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
For the Script overview, make two sets of bars, one for Scripts and one for GCs.
The GCs bar will be overlaid on top of the the Scripts bar. This is particularly
useful since a GC can happen during script execution.
* UserInterface/Images/TimelineRecordGarbageCollection.svg: Added.
* UserInterface/Main.html:
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype.isGarbageCollection):
(WebInspector.ScriptTimelineRecord.EventType.displayName):
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.get data):
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
(WebInspector.ScriptTimelineDataGridNode):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype._processPendingRecords):
* UserInterface/Views/SourceCodeTimelineTreeElement.js:
(WebInspector.SourceCodeTimelineTreeElement):
* UserInterface/Views/TimelineIcons.css:
(.garbage-collection-profile-record .icon):
* UserInterface/Views/TimelineRecordBar.css:
(.timeline-record-bar.timeline-record-type-script.script-timeline-record-garbage-collected > .segment):
UI for GC events.
* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.createCombinedBars):
Simplify by storing start time into a variable.
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
Icon for GC events.
2015-10-15 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r191135.
https://bugs.webkit.org/show_bug.cgi?id=150197
This patch causes 50+ LayoutTest crashes related to the
inspector (Requested by ryanhaddad on #webkit).
Reverted changeset:
"Web Inspector: JavaScriptCore should parse sourceURL and
sourceMappingURL directives"
https://bugs.webkit.org/show_bug.cgi?id=150096
http://trac.webkit.org/changeset/191135
2015-10-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JavaScriptCore should parse sourceURL and sourceMappingURL directives
https://bugs.webkit.org/show_bug.cgi?id=150096
Reviewed by Geoffrey Garen.
* UserInterface/Test/InspectorProtocol.js:
(InspectorProtocol._sendMessage):
(InspectorProtocol.dispatchMessageFromBackend):
This is only used for tests, so avoid console.log
and just dump directly to the system console.
2015-10-13 João Oliveira <hello@jxs.pt>
Web Inspector: Console SearchBar should work more like ContentBrowser FindBanner
https://bugs.webkit.org/show_bug.cgi?id=149505
Reviewed by Joseph Pecoraro.
Console tab now uses findBanner, adapted LogContentView to use findBanner,
and findBanner to be more agnostic to both usecases, either as fixed, on console tab,
and hideable on other inspector tabs.
* UserInterface/Views/FindBanner.css:
(.find-banner.console-find-banner):
(.find-banner.console-findbanner input[type="search"]):
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner):
(WebInspector.FindBanner.set targetElement.delayedWork):
(WebInspector.FindBanner.prototype.set targetElement):
(WebInspector.FindBanner.prototype.get showing):
(WebInspector.FindBanner.prototype.focus):
(WebInspector.FindBanner.prototype._clearAndBlur):
(WebInspector.FindBanner.prototype.show.delayedWork):
(WebInspector.FindBanner.prototype.show):
(WebInspector.FindBanner.prototype.hide):
(WebInspector.FindBanner.prototype.get element): Deleted.
(WebInspector.FindBanner.prototype._inputFieldSearch): Deleted.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype.get navigationItems):
(WebInspector.LogContentView.prototype.handleFindEvent):
(WebInspector.LogContentView.prototype.findBannerRevealPreviousResult):
(WebInspector.LogContentView.prototype.findBannerRevealNextResult):
(WebInspector.LogContentView.prototype._filterMessageElements):
(WebInspector.LogContentView.prototype.findBannerPerformSearch):
(WebInspector.LogContentView.prototype.findBannerSearchCleared):
(WebInspector.LogContentView.prototype.revealNextSearchResult):
(WebInspector.LogContentView.prototype.revealPreviousSearchResult):
(WebInspector.LogContentView.prototype._performSearch):
(WebInspector.LogContentView.prototype.searchBarDidActivate): Deleted.
(WebInspector.LogContentView.prototype._searchTextDidChange): Deleted.
2015-10-13 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION(r189567): Web Inspector: Clipped filter icons when debugger sidebar is narrow
https://bugs.webkit.org/show_bug.cgi?id=150023
r189567 changed flexbox items' default min-width from 0 to auto.
Explicitly set it to 0 in CSS.
Reviewed by Brian Burg.
* UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]):
2015-10-13 Yusuke Suzuki <utatane.tea@gmail.com>
Web Inspector: Don't shadow global Object constructor in WebInspector.Object class definition
https://bugs.webkit.org/show_bug.cgi?id=150093
Reviewed by Joseph Pecoraro.
Currently, class expression does not define any variables. So even in `class Object { }`,
we were able to touch the global Object constructor (like `Object.keys`).
However, that is a bug. After https://bugs.webkit.org/show_bug.cgi?id=150089 fixes that bug,
the global `Object` is shadowed by the user-defined `class Object` name.
To solve this issue, we changed the `class Object` to `class WebInspectorObject`.
And we expose this class as a `WebInspector.Object`.
* UserInterface/Base/Object.js:
2015-10-10 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Improve error messages for internal Inspector code
https://bugs.webkit.org/show_bug.cgi?id=149995
Don't log "error.stack" since the error view already includes a nicely formatted stacktrace.
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype._dispatchResponseToCallback):
(InspectorBackendClass.prototype._dispatchEvent):
2015-10-08 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Stack trace view doesn't properly display lines without function names
https://bugs.webkit.org/show_bug.cgi?id=149922
Reviewed by Timothy Hatcher.
* UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace._parseStackTrace):
(WebInspector.StackTrace._parseLocation): Added.
2015-10-08 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: An error view doesn't get expanded by clicking on the expand arrow
https://bugs.webkit.org/show_bug.cgi?id=149917
Reviewed by Timothy Hatcher.
* UserInterface/Views/ErrorObjectView.css:
(.error-object > .formatted-error::before):
(.error-object.expanded > .formatted-error::before):
(.error-object::before): Deleted.
(.error-object.expanded::before): Deleted.
2015-10-06 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Clicking on a stack trace link does not navigate to the corresponding line
https://bugs.webkit.org/show_bug.cgi?id=149405
lineNumber should be a number type but it was a string.
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.openURL):
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
Keep lineNumber undefined when it isn't present in the string.
WebInspector.linkifyStringAsFragmentWithCustomLinkifier is only used by
WebInspector.linkifyStringAsFragment and it expects lineNumber to be undefined
when it wasn't found in the parsed string.
2015-10-06 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Fix spacing of FindBanner prev/next buttons
https://bugs.webkit.org/show_bug.cgi?id=149717
Reviewed by Darin Adler.
The sizing and spacing of the previous and next buttons in the FindBanner
is slightly off and should be readjusted to ensure that both buttons are
the same size and have the same spacing.
* UserInterface/Views/FindBanner.css:
(.find-banner > button.segmented.right > .glyph):
(.find-banner > button.segmented):
(.find-banner > button.segmented > .glyph):
(.find-banner > button.segmented.left): Deleted.
(.find-banner > button.segmented.left > .glyph): Deleted.
(.find-banner > button.segmented.right): Deleted.
2015-10-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Simplify TimelineRecordBar a bit
https://bugs.webkit.org/show_bug.cgi?id=149733
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.prototype.set records):
2015-10-05 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Error displayed as an object when passed as a second argument to console.log
https://bugs.webkit.org/show_bug.cgi?id=149799
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendExtraParameters):
Don't format errors as objects.
(WebInspector.ConsoleMessageView.prototype._formatParameter):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsValue):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsError):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsArray):
Replace an unnecessary span element with a document fragment.
* UserInterface/Views/ErrorObjectView.css:
(.error-object):
Display an error object on the same line as a list bullet.
2015-10-05 Myles C. Maxfield <mmaxfield@apple.com>
Unprefix -webkit-font-feature-settings
https://bugs.webkit.org/show_bug.cgi?id=149722
Reviewed by Sam Weinig.
* UserInterface/Models/CSSKeywordCompletions.js:
2015-10-04 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Wrong column numbers in error object views
https://bugs.webkit.org/show_bug.cgi?id=149795
Convert columnNumber and lineNumber properties from strings to numbers
to prevent accidental string concatenations.
Reviewed by Timothy Hatcher.
* UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace._parseStackTrace):
2015-10-02 Matt Baker <mattbaker@apple.com>
Web Inspector: Add breakpoint option to ignore n times before stopping
https://bugs.webkit.org/show_bug.cgi?id=147664
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
New strings for breakpoint popover labels.
* UserInterface/Controllers/BreakpointPopoverController.js:
(WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
Add ignoreCount UI to popover, if backend support exists. UI based on same
feature in Xcode's breakpoint editing dialog.
(WebInspector.BreakpointPopoverController.prototype._popoverIgnoreInputChanged):
User input sanity checks on numeric input.
* UserInterface/Controllers/DebuggerManager.js:
Listen for changes to breakpoint ignoreCount property.
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get ignoreCount):
(WebInspector.Breakpoint.prototype.set ignoreCount):
New property for ignoreCount.
(WebInspector.Breakpoint.prototype.get options):
Added ignoreCount to options object.
(WebInspector.Breakpoint.prototype.get info):
Added ignoreCount to info object.
* UserInterface/Views/BreakpointPopoverController.css:
(#edit-breakpoint-popover-ignore):
New styles for breakpoint popover.
2015-10-02 Matt Baker <mattbaker@apple.com>
Web Inspector: Cleanup DebuggerManager, reduce `delete` and use Maps instead of objects
https://bugs.webkit.org/show_bug.cgi?id=149760
Reviewed by Joseph Pecoraro.
Replaced objects used as hashmaps with Map.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.breakpointsForSourceCode):
(WebInspector.DebuggerManager.prototype.breakpointForIdentifier):
(WebInspector.DebuggerManager.prototype.scriptForIdentifier):
(WebInspector.DebuggerManager.prototype.scriptsForURL):
(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
(WebInspector.DebuggerManager.prototype.breakpointResolved):
(WebInspector.DebuggerManager.prototype.reset):
(WebInspector.DebuggerManager.prototype.scriptDidParse):
(WebInspector.DebuggerManager.prototype._sourceCodeLocationFromPayload):
(WebInspector.DebuggerManager.prototype._setBreakpoint.didSetBreakpoint):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
(WebInspector.DebuggerManager.prototype._removeBreakpoint.didRemoveBreakpoint):
(WebInspector.DebuggerManager.prototype._removeBreakpoint):
2015-10-02 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Copying inline style text puts "undefined" in the pasteboard
https://bugs.webkit.org/show_bug.cgi?id=149155
Reviewed by Brian Burg.
CSSStyleDeclarations for inline styles do not have a owner CSSRule, which means
that they do not have a selector or media list. CSS strings must have a selector
and, for inline styles without an owner rule and selector, this was a problem.
* UserInterface/Models/CSSStyleDeclaration.js:
(WebInspector.CSSStyleDeclaration.prototype.get mediaList):
(WebInspector.CSSStyleDeclaration.prototype.get selectorText):
(WebInspector.CSSStyleDeclaration.prototype.generateCSSRuleString):
Added getters for the list of media queries and selector text with fallbacks
for CSSStyleDeclarations that do not have an owner CSSRule (inline styles).
* UserInterface/Test.html:
Added CSSMedia include for new inspector/css/generate-css-rule-string.html test.
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
Removed parameter that no longer exists.
2015-10-02 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed, rolling out r190520, some tests assert / crash.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded): Deleted.
* UserInterface/Base/Utilities.js:
(value): Deleted.
* UserInterface/Controllers/HeapManager.js: Removed.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager): Deleted.
(WebInspector.TimelineManager.prototype._garbageCollected): Deleted.
* UserInterface/Images/TimelineRecordGarbageCollection.svg: Removed.
* UserInterface/Main.html:
* UserInterface/Models/GarbageCollection.js: Removed.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.EventType.displayName):
(WebInspector.ScriptTimelineRecord.prototype.isGarbageCollection): Deleted.
* UserInterface/Protocol/HeapObserver.js: Removed.
* UserInterface/Test.html:
* UserInterface/Test/Test.js:
(WebInspector.loaded): Deleted.
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.get data):
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent): Deleted.
(WebInspector.ScriptTimelineDataGridNode): Deleted.
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype._processPendingRecords):
* UserInterface/Views/SourceCodeTimelineTreeElement.js:
(WebInspector.SourceCodeTimelineTreeElement):
* UserInterface/Views/TimelineIcons.css:
(.garbage-collection-profile-record .icon): Deleted.
* UserInterface/Views/TimelineRecordBar.css:
(.timeline-record-bar.timeline-record-type-script.script-timeline-record-garbage-collected > .segment): Deleted.
* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.createCombinedBars):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
2015-10-02 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Option-Click on a property name in the Computed view should jump to resource view
https://bugs.webkit.org/show_bug.cgi?id=149521
Reviewed by Timothy Hatcher.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.effectivePropertyForName):
Now tries to search for a non-canonical property before falling back to
the canonical version.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
If the user option-clicks the goto arrow, it shows the source for the
property instead.
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty.delegateShowProperty):
(WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty):
Attempts to show the source of the given property. Will fallback to
highlighting the property in the rules panel.
2015-10-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include Garbage Collection Event in Timeline
https://bugs.webkit.org/show_bug.cgi?id=142510
Reviewed by Geoffrey Garen.
* UserInterface/Base/Utilities.js:
(Array.prototype.parition):
Helper to partition an Array into two arrays.
* UserInterface/Main.html:
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Test.html:
* UserInterface/Test/Test.js:
(WebInspector.loaded):
* UserInterface/Protocol/HeapObserver.js:
(WebInspector.HeapObserver.prototype.garbageCollected):
(WebInspector.HeapObserver):
Create the new observer and manager.
* UserInterface/Models/GarbageCollection.js:
(WebInspector.GarbageCollection):
(WebInspector.GarbageCollection.fromPayload):
(WebInspector.GarbageCollection.prototype.get type):
(WebInspector.GarbageCollection.prototype.get startTime):
(WebInspector.GarbageCollection.prototype.get endTime):
(WebInspector.GarbageCollection.prototype.get duration):
Model object for Heap.GarbageCollection.
* UserInterface/Controllers/HeapManager.js:
(WebInspector.HeapManager):
(WebInspector.HeapManager.prototype.garbageCollected):
Dispatch events with.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype._garbageCollected):
Include new GC Timeline Events as Script events.
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
For the Script overview, make two sets of bars, one for Scripts and one for GCs.
The GCs bar will be on top of the the Scripts bar. This is particularly useful
since a GC can happen during script execution.
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.get data):
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
(WebInspector.ScriptTimelineDataGridNode):
Give a NaN call count to top level Script DataGridNodes.
In the UI, display the empty placeholder for NaN call counts.
* UserInterface/Images/TimelineRecordGarbageCollection.svg: Added.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype.isGarbageCollection):
(WebInspector.ScriptTimelineRecord.EventType.displayName):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype._processPendingRecords):
* UserInterface/Views/SourceCodeTimelineTreeElement.js:
(WebInspector.SourceCodeTimelineTreeElement):
* UserInterface/Views/TimelineIcons.css:
(.garbage-collection-profile-record .icon):
* UserInterface/Views/TimelineRecordBar.css:
(.timeline-record-bar.timeline-record-type-script.script-timeline-record-garbage-collected > .segment):
UI for GC events.
* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.createCombinedBars):
Simplify by storing start time into a variable.
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
Icon for GC events.
2015-10-02 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Fix indentation of console message parameters
https://bugs.webkit.org/show_bug.cgi?id=149740
Reviewed by Darin Adler.
* UserInterface/Views/ConsoleMessageView.css:
(.console-message .console-message-stack-trace-container > li):
(.console-message .console-message-extra-parameters-container > li::before):
2015-10-02 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Add GTK+ icons for new plus icons in the style sidebar
https://bugs.webkit.org/show_bug.cgi?id=149227
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/NewTabPlus.svg: Updated.
* UserInterface/Images/gtk/Plus13.svg: Copied from Source/WebInspectorUI/UserInterface/Images/gtk/Plus.svg.
* UserInterface/Images/gtk/Plus15.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/gtk/Plus.svg.
2015-10-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Simplify filterableData processing
https://bugs.webkit.org/show_bug.cgi?id=149730
Reviewed by Timothy Hatcher.
* UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype.get filterableData):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype.get filterableData):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
* UserInterface/Views/SearchResultTreeElement.js:
(WebInspector.SearchResultTreeElement.prototype.get filterableData):
(WebInspector.SearchResultTreeElement):
2015-10-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Do not immediately create all ProfileNodeTreeElements when showing JavaScript and Events timeline
https://bugs.webkit.org/show_bug.cgi?id=149726
Reviewed by Timothy Hatcher.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.shouldFilterPopulate):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
We were populating during filtering if there were any custom filters.
However the TimelineSidebarPanel has custom filters (based on time and type)
but those don't need to trigger population. Delay population until it
would actually be needed (like a text search).
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.shouldFilterPopulate):
Do not populate on filter via this custom filters.
2015-10-01 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r189567): Toolbar collapses when inspector at minimum height with console open
https://bugs.webkit.org/show_bug.cgi?id=149725
Reviewed by Timothy Hatcher.
CSS Flexible Box Layout Module Level 1 introduces a new `auto` initial value for the min-{width|height}
of flex box items, breaking some areas of the inspector UI. This is fixed by setting a min-height of
zero for the #main <div>.
* UserInterface/Views/Main.css:
(#main):
2015-10-01 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Clip string previews
https://bugs.webkit.org/show_bug.cgi?id=149708
Only show first 140 characters in strings previews.
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Utilities.js:
(String.prototype.truncate): Added.
A smart trancate function that doesn't split words.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._shouldConsiderObjectLossless):
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForTypesAndValue):
2015-09-30 João Oliveira <hello@jxs.pt>
Web Inspector: Adjust font size of Developer Tools using Command,+ or Command,-
https://bugs.webkit.org/show_bug.cgi?id=149590
Reviewed by Joseph Pecoraro.
Patch by João Oliveira and Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded): Add global keyboard shortcuts for zoom in and zoom out.
2015-10-01 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Add GTK+ icons for the numerical input and slider based Visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147847
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/VisualStylePropertyLinked.svg: Added.
* UserInterface/Images/gtk/VisualStylePropertyUnlinked.svg: Added.
2015-10-01 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Add GTK+ icons for the different types of non-numerical Visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147846
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/AUTHORS: Updated.
* UserInterface/Images/gtk/ClearBoth.svg: Added.
* UserInterface/Images/gtk/ClearLeft.svg: Added.
* UserInterface/Images/gtk/ClearRight.svg: Added.
* UserInterface/Images/gtk/CubicBezier.svg: Updated.
* UserInterface/Images/gtk/FloatLeft.svg: Added.
* UserInterface/Images/gtk/FloatRight.svg: Added.
* UserInterface/Images/gtk/FontStyleItalic.svg: Added.
* UserInterface/Images/gtk/FontStyleNormal.svg: Added.
* UserInterface/Images/gtk/FontVariantSmallCaps.svg: Added.
* UserInterface/Images/gtk/TextAlignCenter.svg: Added.
* UserInterface/Images/gtk/TextAlignJustify.svg: Added.
* UserInterface/Images/gtk/TextAlignLeft.svg: Added.
* UserInterface/Images/gtk/TextAlignRight.svg: Added.
* UserInterface/Images/gtk/TextDecorationLineThrough.svg: Added.
* UserInterface/Images/gtk/TextDecorationOverline.svg: Added.
* UserInterface/Images/gtk/TextDecorationUnderline.svg: Added.
* UserInterface/Images/gtk/TextTransformCapitalize.svg: Added.
* UserInterface/Images/gtk/TextTransformLowercase.svg: Added.
* UserInterface/Images/gtk/TextTransformUppercase.svg: Added.
* UserInterface/Images/gtk/VisualStyleNone.svg: Added.
2015-09-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reduce `delete` in Timeline related classes
https://bugs.webkit.org/show_bug.cgi?id=149686
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.capturingStopped):
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
(WebInspector.TimelineDataGrid.prototype._sort):
(WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
* UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
* UserInterface/Views/ProbeSetDataGrid.js:
(WebInspector.ProbeSetDataGrid):
(WebInspector.ProbeSetDataGrid.prototype._teardownData):
Remove an unused member variable as well.
2015-09-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Thousands of timers fire after switching to JavaScript and Events timeline
https://bugs.webkit.org/show_bug.cgi?id=149682
Reviewed by Timothy Hatcher.
Setting the status element of a GeneralTreeElement was triggering a
TreeOutline.onchange event. For TreeOutlines with lots of tree elements
(JavaScript & Events with profile nodes) this could result in thousands
of onchange events that causes lots of unnecessary work and blocks
future timers (like scroll synchronization) from firing.
This change eliminates TreeOutline change events for tree element
changes that are not interesting.
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.set status): Deleted.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeElement.prototype.set tooltip): Deleted.
2015-09-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reduce `delete` in TreeElements and DataGridNodes
https://bugs.webkit.org/show_bug.cgi?id=149680
Reviewed by Timothy Hatcher.
* UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement):
(WebInspector.BreakpointTreeElement.prototype._removeProbeSet):
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._editingCommitted.moveToNextCell):
(WebInspector.DataGrid.prototype._editingCommitted):
(WebInspector.DataGrid.prototype._editingCancelled):
(WebInspector.DataGrid.prototype.removeColumn):
(WebInspector.DataGridNode.prototype.refreshIfNeeded):
(WebInspector.DataGridNode.prototype.refresh):
(WebInspector.DataGridNode.prototype.expand):
(WebInspector.DataGridNode.prototype.restorePosition):
(WebInspector.DataGridNode):
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.ondetach):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.refresh):
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeElement.prototype._fireDidChange):
(WebInspector.TreeElement.prototype.expand):
2015-09-30 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Add GTK+ icon for the Bezier curve visual editor
https://bugs.webkit.org/show_bug.cgi?id=147681
Reviewed by Joseph Pecoraro.
* UserInterface/Images/gtk/CubicBezier.svg: Added.
2015-09-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Console completion suggestions should include properties on Object (hasOwnProperty, toString, etc)
https://bugs.webkit.org/show_bug.cgi?id=149649
Reviewed by Darin Adler.
* UserInterface/Base/Utilities.js:
(value):
Since keySets in this instance are often used as hash maps with the
`in` operator, create a blank object that won't have Object.prototype
functions that would be seen by `in`.
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames.compare):
Sort __defineGetter__ and __lookupGetter__ and friends last, since they
are rarely used properties.
2015-09-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Missing completions for Symbol objects, console.error warning
https://bugs.webkit.org/show_bug.cgi?id=149641
Reviewed by Darin Adler.
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.getCompletions):
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):
Include completions for symbol types.
2015-09-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Hitting ESC while editing element tag name leaves element in bad state
https://bugs.webkit.org/show_bug.cgi?id=149506
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._startEditingTagName.editingCancelled):
(WebInspector.DOMTreeElement.prototype._startEditingTagName):
When cancelling editing of a tag name, revert any changes we had
been making to the closing tag name.
2015-09-28 João Oliveira <hello@jxs.pt>
Web Inspector: search shortcut in split console moves focus to search box, but doesn't show caret
https://bugs.webkit.org/show_bug.cgi?id=149223
Reviewed by Timothy Hatcher.
When pressing console find shortcut (CMD+F) SearchBar now checks if there's text on _searchInput
if so text is selected, if the textbox is empty, textbox gains focus.
* UserInterface/Views/SearchBar.js:
(WebInspector.SearchBar.prototype.focus):
2015-09-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reloading the page causes the inspector tab to switch back to "Resources" tab
https://bugs.webkit.org/show_bug.cgi?id=148732
Reviewed by Darin Adler.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptsCleared):
Suppress selection of sibiling tree elements when removing extra folders.
2015-09-24 Ryosuke Niwa <rniwa@webkit.org>
Ran sort-Xcode-project-file.
* WebInspectorUI.xcodeproj/project.pbxproj:
2015-09-23 Saam barati <sbarati@apple.com>
Fix broken inspector tests.
Reviewed by Joseph Pecoraro and Brian Burg.
We can't redeclare a "let" variable and "var" variable using the same
identifier at the top-level of a function.
* UserInterface/Test/InspectorProtocol.js:
(InspectorProtocol.sendCommand):
(InspectorProtocol.addEventListener):
(InspectorProtocol.dispatchMessageFromBackend):
2015-09-23 Saam barati <sbarati@apple.com>
Web Inspector: Don't use bind() when creating internal AST, instead, pass in "this" parameter to map()
https://bugs.webkit.org/show_bug.cgi?id=149483
Reviewed by Joseph Pecoraro.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
2015-09-23 Saam barati <sbarati@apple.com>
Web Inspector: Type bubbles missing for computed methods and methods on object literals
https://bugs.webkit.org/show_bug.cgi?id=148562
Reviewed by Joseph Pecoraro.
This patch makes sure that computed methods are working
for both classes and object literals. Also, methods now
work on object literals. This patch also cleans up the
"isGetterOrSetter" and "getterOrSetterRange" fields.
Basically, we used this as a way to ask the type profiler
for the return types of a function. Now, we just have
a field called "typeProfilingReturnDivot" that is set
on all functions so we don't need to conditionally ask
if it's a getter or setter.
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.functionReturnDivot):
(WebInspector.ScriptSyntaxTree.prototype._recurseArray):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
2015-09-22 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: The right sidebar always opens up on breakpoint
https://bugs.webkit.org/show_bug.cgi?id=149261
Reviewed by Timothy Hatcher.
Whenever the debugger was paused, the sidebar was being forced to open.
This has been removed in favor of letting the user decide.
* UserInterface/Base/Main.js:
(WebInspector._debuggerDidPause):
2015-09-22 Saam barati <sbarati@apple.com>
Web Inspector: [ES6] Improve Type Profiler Support for Arrow Functions
https://bugs.webkit.org/show_bug.cgi?id=143171
Reviewed by Joseph Pecoraro.
Esprima and JSC both support arrow functions. We just
need to support it in our AST and do the right things
to include support in the type profiler bits.
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
(WebInspector.TypeTokenAnnotator.prototype._translateToOffsetAfterFunctionParameterList.isLineTerminator):
(WebInspector.TypeTokenAnnotator.prototype._translateToOffsetAfterFunctionParameterList):
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
(WebInspector.ScriptSyntaxTree.functionReturnDivot):
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
2015-09-22 Saam barati <sbarati@apple.com>
Web Inspector: update Esprima to latest version
https://bugs.webkit.org/show_bug.cgi?id=148960
Reviewed by Joseph Pecoraro.
Esprima version 2.6 further supports ES6. We're
updating to it so we can support more ES6 features
in our script syntax tree.
* UserInterface/External/Esprima/LICENSE:
* UserInterface/External/Esprima/esprima.js:
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
2015-09-21 Matt Baker <mattbaker@apple.com>
Web Inspector: requestAnimationFrame continues to be called after stopping the timeline recording
https://bugs.webkit.org/show_bug.cgi?id=149390
Reviewed by Brian Burg.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._update):
Stop calling requestAnimationFrame if this._updating is false and recording end time is NaN.
2015-09-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Simplify some functional callbacks
https://bugs.webkit.org/show_bug.cgi?id=149333
Reviewed by Brian Burg.
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager.prototype.messageWasAdded):
* UserInterface/Models/Color.js:
(WebInspector.Color):
* UserInterface/Models/Geometry.js:
(WebInspector.CubicBezier.fromCoordinates):
* UserInterface/Models/ObjectPreview.js:
(WebInspector.ObjectPreview.fromPayload):
* UserInterface/Models/TypeDescription.js:
(WebInspector.TypeDescription.fromPayload):
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.getCollectionEntries):
(WebInspector.RemoteObject.prototype.getCollectionEntries.): Deleted.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.get markers):
(WebInspector.TextEditor.prototype.markersAtPosition):
2015-09-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused canClearBrowserCookies / canClearBrowserCache protocol methods
https://bugs.webkit.org/show_bug.cgi?id=149307
Reviewed by Brian Burg.
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
* Versions/Inspector-iOS-9.0.json:
Retroactively remove the protocol methods as they were unused
in these earlier versions as well.
2015-09-17 Joseph Pecoraro <pecoraro@apple.com>
REGRESSION: Web Inspector: Double clicking on an attribute second time doesn't work
https://bugs.webkit.org/show_bug.cgi?id=149259
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeElement.js:
Be sure to clear the editing state when committed, even if the value did not change.
2015-09-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Make Find / Save keyboard shortcuts work better globally
https://bugs.webkit.org/show_bug.cgi?id=149198
Reviewed by Brian Burg.
Previously find/save keyboard shortcuts required the user have the
ContentView in the ContentBrowser focused. That means nothing would
happen if you clicked / focused in the Sidebars. This change considers
the keyboard shortcuts globally, like Copy.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Add global find and save keyboard shortcuts.
(WebInspector._focusChanged):
It is often useful to have the currentFocusedElement know if it is
in a TextEditor or other CodeMirror editor. When editable the <textarea>
is selected and not updating focused element.
(WebInspector._focusedContentBrowser):
(WebInspector._focusedContentView):
Provide helpers for getting a good approximation of the current focused
or visible content view that users would expect to be interacting with.
Since the focus event may not fire when clicking around to elements
like the <body>. Rather than make it explicitly focusable, check the
document.activeElement, and if it is body aim for the main content
browser instead of the currentFocusedElement which may be stale.
Likewise, if the QuickConsole is focused and the split console is
showing, treat it like the split browser is focused.
(WebInspector._focusedOrVisibleContentBrowser):
(WebInspector._focusedOrVisibleContentView):
If nothing is focused, default to the main content browser.
(WebInspector._find):
Pass on to the ContentView which typically handles Find
by showing its find banner.
(WebInspector._save):
(WebInspector._saveAs):
Check and save the current ContentView if supported.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.get supportsSearch):
(WebInspector.LogContentView.prototype.handleFindEvent):
Add custom find handling for LogContentView from the routed through the
BrowserController instead of special event handlers in the controller.
(WebInspector.LogContentView.prototype.get supportsSave):
(WebInspector.LogContentView.prototype.save): Deleted.
(WebInspector.LogContentView.prototype.saveAs): Deleted.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController): Deleted.
(WebInspector.JavaScriptLogViewController.prototype._handleFindShortcut): Deleted.
(WebInspector.JavaScriptLogViewController.prototype._save): Deleted.
(WebInspector.JavaScriptLogViewController.prototype._saveAs): Deleted.
Special save handling is no longer needed in the log view controller.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype.handleFindEvent):
(WebInspector.ContentBrowser): Deleted.
(WebInspector.ContentBrowser.prototype._save): Deleted.
(WebInspector.ContentBrowser.prototype._saveAs): Deleted.
(WebInspector.ContentBrowser.prototype._showFindBanner): Deleted.
Save functionality moved globally, find functionality moved to a
public method called like copy event handling.
2015-09-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inactive window may cause many layers to be created due to Dashboard opacity
https://bugs.webkit.org/show_bug.cgi?id=149274
Reviewed by Brian Burg.
The dashboard container gets an opacity when the window is inactive. Combined
with the animating debugger continue button this caused a cascade of slightly
overlapping content causing a cascade of a lot of small layers. The simple
approach taken here is to stop the slight pulse animation when the window
is inactive.
* UserInterface/Views/DebuggerDashboardView.css:
(body.window-inactive .dashboard.debugger .navigation-bar .item.button > .glyph):
2015-09-17 Devin Rousso <dcrousso+webkit@gmail.com>
REGRESSION(r188427): Web Inspector: Extra whitespace left behind in styles sidebar after clicking in and out
https://bugs.webkit.org/show_bug.cgi?id=149197
Reviewed by Timothy Hatcher.
In r188427, logic was added to preserve the leading whitespace of styles in a CSS file.
An unfortunate side effect of this was that extra newlines in between CSS properties
were treated as valid and left where they were. This is undesired behaviour and often
clutters the styles sidebar. These changes remove the extra newlines.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContent):
2015-09-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reduce Annotation Update Frequency
https://bugs.webkit.org/show_bug.cgi?id=149250
Reviewed by Saam Barati.
* UserInterface/Controllers/BasicBlockAnnotator.js:
(WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.BasicBlockAnnotator.prototype.insertAnnotations):
Set a lower bound of 500ms on update frequency for both annotators.
2015-09-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix common typo "supress" => "suppress"
https://bugs.webkit.org/show_bug.cgi?id=149199
Reviewed by Gyuyoung Kim.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode.prototype.select):
(WebInspector.DataGridNode.prototype.deselect):
* UserInterface/Views/SearchBar.js:
(WebInspector.SearchBar):
2015-09-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Turn off line wrapping in resource text editors
https://bugs.webkit.org/show_bug.cgi?id=149121
Reviewed by Darin Adler.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
2015-09-15 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Picking unchanged for font-size does not reset back to the unchanged value
https://bugs.webkit.org/show_bug.cgi?id=148351
Reviewed by Brian Burg.
Visual number editors now save any new values in the special placeholder element
to display it whenever the "Unchanged" option is selected by the user.
* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.set units):
(WebInspector.VisualStyleNumberInputBox.prototype._setNumberInputIsEditable):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown.adjustValue):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown):
2015-09-15 Brian Burg <bburg@apple.com>
Web Inspector: command-click in NewTabContentView should open new tab without switching to it
https://bugs.webkit.org/show_bug.cgi?id=149173
Reviewed by Joseph Pecoraro.
To allow a user to quickly restore tabs, it should be possible to command-click
all the tabs that are desired without going back through the [+] tab button.
* UserInterface/Base/Main.js:
(WebInspector.createNewTabWithType): Renamed.
Use an options object and split creating the tab from deleting the
replaced tab and showing the new tab. Add better error checking.
(WebInspector.createNewTab): Deleted.
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView):
(WebInspector.NewTabContentView.prototype._createNewTabWithType): Renamed.
If the meta key is pressed, don't switch to the new tab or remove this view
unless there are no more tabs that can be created beyond the current one.
(WebInspector.NewTabContentView.prototype._allowableTabTypes): Added.
(WebInspector.NewTabContentView.prototype._createNewTab): Deleted.
2015-09-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Watch Expressions uncaught exceptions on page reload
https://bugs.webkit.org/show_bug.cgi?id=149150
Reviewed by Brian Burg.
Instead of waiting 50ms to Resume, when the page navigates
Resume immediately. This ensures nobody is using a stale
activeCallFrame after the navigation.
Also clean up the manager a bit by removing some deletes.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.restoreBreakpointsSoon):
(WebInspector.DebuggerManager.prototype.reset):
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
(WebInspector.DebuggerManager.prototype.debuggerDidResume):
(WebInspector.DebuggerManager.prototype._mainResourceDidChange):
(WebInspector.DebuggerManager.prototype._didResumeInternal):
(WebInspector.DebuggerManager.prototype._associateBreakpointsWithSourceCode):
(WebInspector.DebuggerManager.prototype.debuggerDidResume.delayedWork): Deleted.
2015-09-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Closing the final inspector tab should be allowed
https://bugs.webkit.org/show_bug.cgi?id=149130
Reviewed by Brian Burg.
Previously we did not allow closing the last inspector tab. Now, we
will allow closing all inspector tabs, and when the last is closed,
present an unclosable New Tab tab, which would then be used to create
a new tab.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
If we have no tabs to restore, show the New Tab tab.
(WebInspector._openDefaultTab):
When the last tab is closed, the tab bar requests we open a default tab.
Open the New Tab tab.
(WebInspector.TabBar.prototype._handleClick):
Disallow closing the single default tab.
(WebInspector._newTabItemClicked):
(WebInspector.showNewTabTab):
Share logic for showing the New Tab tab.
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView):
Mark the new tab's tab bar item as the "default" tab bar item. It gets
special behavior when it is the single normal tab (cannot be closed).
* UserInterface/Views/TabBar.css:
(body:not(.window-inactive) .tab-bar > .item:hover > .close):
(body:not(.window-inactive) .tab-bar.single-tab > .item.default-tab:hover > .close):
(.tab-bar.single-tab > .item.default-tab > .close):
(body:not(.window-inactive) .tab-bar:not(.single-tab) > .item:not(.hide-close-button):hover > .close): Deleted.
(.tab-bar > .item.hide-close-button > .close): Deleted.
Update styles to only disable the close button on the
"default-tab" when it is the "single-tab" open. Otherwise
always allow closing tabs.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar.prototype.removeTabBarItem):
(WebInspector.TabBar.prototype.hasNormalTab):
(WebInspector.TabBar.prototype._openDefaultTab):
When removing the last normal tab, send an event to open
the default tab.
* UserInterface/Views/TabBarItem.js:
(WebInspector.TabBarItem.prototype.get default):
(WebInspector.TabBarItem.prototype.get isDefaultTab):
(WebInspector.TabBarItem.prototype.set isDefaultTab):
(WebInspector.TabBarItem.prototype.get hideCloseButton): Deleted.
(WebInspector.TabBarItem.prototype.set hideCloseButton): Deleted.
Switch to marking a tab bar item as the default tab. This tab
will be allowed when it is the single remaining tab. Currently
the default tab is always the "New Tab" tab.
2015-09-15 Brian Burg <bburg@apple.com>
Web Inspector: new tab content view should disallow split console
https://bugs.webkit.org/show_bug.cgi?id=149164
Reviewed by Joseph Pecoraro.
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView.prototype.get supportsSplitContentBrowser):
2015-09-14 Brian Burg <bburg@apple.com>
Web Inspector: tab bar stutters when moving mouse after closing tab
https://bugs.webkit.org/show_bug.cgi?id=149138
Reviewed by Joseph Pecoraro.
The tab bar lacked the 'static-layout' class between when the Promise microtask
ran and the beginning of the requestAnimationFrame. This caused a flash of
tabs that are way too wide.
Re-add the static-layout class immediately after measuring the 'after' tab size.
This code should probably just manually compute tab sizes since flexbox
layout is quite slow and our measurement code here forces layout several times.
* UserInterface/Views/TabBar.js:
2015-09-14 Brian Burg <bburg@apple.com>
Web Inspector: backend command promises are not rejected when a protocol error occurs
https://bugs.webkit.org/show_bug.cgi?id=141403
Reviewed by Joseph Pecoraro.
Fix a few corner cases for how InspectorBackend delivers command failures.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.deliverFailure): Added.
(InspectorBackend.Command.prototype._invokeWithArguments):
If argument-checking fails, return a rejected promise or invoke the supplied callback
on a zero-delay setTimeout to ensure that the reply is asynchronous.
2015-09-14 Brian Burg <bburg@apple.com>
Web Inspector: middle-clicking a tab in the tab bar should close it
https://bugs.webkit.org/show_bug.cgi?id=149135
Reviewed by Joseph Pecoraro.
This matches the behavior of the tab bar in Safari and other browsers.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleClick):
2015-09-14 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Border under the styles filter field is clipped
https://bugs.webkit.org/show_bug.cgi?id=149115
Reviewed by Darin Adler.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content + .options-container > .filter-bar):
2015-09-11 Nan Wang <n_wang@apple.com>
AX: ARIA 1.1 @aria-current
https://bugs.webkit.org/show_bug.cgi?id=146012
Reviewed by Chris Fleizach.
Added support for ARIA 1.1 aria-current.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2015-09-10 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Styles sidebar says Media: all when it should say Media: screen
https://bugs.webkit.org/show_bug.cgi?id=148436
Reviewed by Timothy Hatcher.
Removed filter that prevented "Media: screen" from being displayed.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.filteredMediaList): Deleted.
2015-09-10 Matt Baker <mattbaker@apple.com>
Web Inspector: Prefer calling ContentViewContainer.updateLayout directly
https://bugs.webkit.org/show_bug.cgi?id=149041
Reviewed by Timothy Hatcher.
Cleaned up two places where a parent view duplicated logic encapsulated by ContentViewContainer.
* UserInterface/Views/ClusterContentView.js:
(WebInspector.ClusterContentView.prototype.updateLayout):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype.updateLayout):
2015-09-08 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r189189): Missing breakpoint context menu for debugger sidebar tree elements
https://bugs.webkit.org/show_bug.cgi?id=148651
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Create BreakpointPopoverController singleton, expose as public property of global WebInspector object.
* UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype.oncontextmenu):
Use BreakpointPopoverController singleton.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
Don't create BreakpointPopoverController instance.
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
Use BreakpointPopoverController singleton.
2015-09-08 Joseph Pecoraro <pecoraro@apple.com>
Fix inspector/codemirror tests.
Rubber-stamped by Brian Burg.
* UserInterface/Test.html:
Reorder includes to be more like Main.html. This ensures that CodeMirror
resources are loaded before Inspector sources use it, like CodeMirrorAdditions
which gets merged into TestCombined.js.
2015-09-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move PrettyPrinting tests into LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=148698
Reviewed by Timothy Hatcher.
* Tools/PrettyPrinting/index.html:
Modify the relative path to the tests which are now in LayoutTests.
* UserInterface/Test.html:
Load CodeMirror and related resources for Formatting.
2015-09-06 Andy Estes <aestes@apple.com>
WebKit.xcworkspace should be be able to build iOS platforms
https://bugs.webkit.org/show_bug.cgi?id=148881
Reviewed by Daniel Bates.
Since we don't want to create platform-specific schemes, all projects in the workspace's schemes need to build
for all supported platforms.
* Configurations/Base.xcconfig: Included iphoneos and iphonesimulator in SUPPORTED_PLATFORMS.
* Configurations/WebInspectorUIFramework.xcconfig: Skipped installing on iOS.
2015-09-04 Brian Burg <bburg@apple.com>
Web Inspector: combine Test.html resources to make tests run faster
https://bugs.webkit.org/show_bug.cgi?id=148726
Reviewed by Timothy Hatcher.
In an attempt to make inspector tests run faster, always combine resources
on the Test.html page. This cuts down from 110+ resource loads to 5 loads.
To avoid name clashes, add the 'Combined' suffix to files that would clash
with uncombined Test resources, and add the 'Test' prefix when combining
or minifying files that would clash with production minification. So, it
would be possible for Main.html and Test.html to have different minified
versions of CodeMirror or other external libraries if they use different
subsets.
Combining is unlikely to make debugging tests more difficult, since almost
all test code is marshalled and eval'd into existence anyway.
* Configurations/WebInspectorUIFramework.xcconfig:
* Scripts/combine-resources.pl: Drive-by spelling.
(concatenateFiles):
(concatinateFiles): Deleted.
* Scripts/copy-user-interface-resources-dryrun.rb:
* Scripts/copy-user-interface-resources.pl:
Drive-by spelling. Add a new code path for combining Test resources, which
doesn't require minification or handling CSS, images, or most externals.
* WebInspectorUI.vcxproj/build-webinspectorui.pl:
Always combine Test.html, but also ditto everything into place for
engineering builds.
2015-09-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Test Runtime.saveResult and $n values
https://bugs.webkit.org/show_bug.cgi?id=148837
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
Initialize the dump logging function different if we are in tests or not.
When in tests, using console.log as well as dumping system activity to
the system console results in an infinite loop of logging!
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
Use the logging function we figured out earlier.
2015-09-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Clean up and modernize DOMTreeManager
https://bugs.webkit.org/show_bug.cgi?id=148821
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.requestDocument.onDocumentAvailable):
(WebInspector.DOMTreeManager.prototype.requestDocument):
(WebInspector.DOMTreeManager.prototype.pushNodeByPathToFrontend):
(WebInspector.DOMTreeManager.prototype._wrapClientCallback):
(WebInspector.DOMTreeManager.prototype._attributeModified):
(WebInspector.DOMTreeManager.prototype._attributeRemoved):
(WebInspector.DOMTreeManager.prototype._inlineStyleInvalidated):
(WebInspector.DOMTreeManager.prototype._loadNodeAttributes):
(WebInspector.DOMTreeManager.prototype.cancelSearch):
(WebInspector.DOMTreeManager.prototype.querySelector):
(WebInspector.DOMTreeManager.prototype.querySelectorAll):
(WebInspector.DOMTreeManager.prototype.highlightDOMNode):
(WebInspector.DOMTreeManager.prototype._buildHighlightConfig):
Cleanup and modernize where appropriate.
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.performSearch):
Callback is now required.
2015-09-04 Matt Baker <mattbaker@apple.com>
Web Inspector: Render Frames "Other" task filter checkbox misaligned with text
https://bugs.webkit.org/show_bug.cgi?id=148788
Reviewed by Timothy Hatcher.
* UserInterface/Views/ChartDetailsSectionRow.css:
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > .color-key):
Adjust "fake" checkbox margin to align with label text.
2015-09-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Expand Console domain test coverage
https://bugs.webkit.org/show_bug.cgi?id=148740
Reviewed by Brian Burg.
* UserInterface/Protocol/RemoteObject.js:
Add a few helpers for checking the RemoteObject type.
2015-09-02 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r189241.
https://bugs.webkit.org/show_bug.cgi?id=148703
These tests crash with assertions (Requested by ap on
#webkit).
Reverted changeset:
"Web Inspector: Move PrettyPrinting tests into LayoutTests"
https://bugs.webkit.org/show_bug.cgi?id=148698
http://trac.webkit.org/changeset/189241
2015-09-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move PrettyPrinting tests into LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=148698
Reviewed by Timothy Hatcher.
* Tools/PrettyPrinting/index.html:
Modify the relative path to the tests which are now in LayoutTests.
* UserInterface/Test.html:
Load CodeMirror and related resources for Formatting.
2015-09-01 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r187873): Location column icon is missing in timeline data grids
https://bugs.webkit.org/show_bug.cgi?id=148691
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.createCellContent):
Added "icon" class name. Was using removed class variable (class="undefined").
2015-09-01 Matt Baker <mattbaker@apple.com>
Web Inspector: Show layout/paint pixel area in the Rendering Frames tree outline
https://bugs.webkit.org/show_bug.cgi?id=148674
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
New UI string.
* UserInterface/Views/RenderingFrameTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.rendering-frame .item:not(.paint-record):not(.layout-record) .subtitle):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.rendering-frame .item .subtitle): Deleted.
Show subtitles for layout and paint records only. We still want to hide script record subtitles,
since that information is already in the 'Location' column.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords):
Add tree element subtitle for LayoutTimelineRecords that specify width and height.
2015-09-01 Matt Baker <mattbaker@apple.com>
Web Inspector: Reorder columns in the Rendering Frames data grid by importance
https://bugs.webkit.org/show_bug.cgi?id=148672
Reviewed by Timothy Hatcher.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
Updated column order, rearranged the column object setup code to match.
2015-09-01 Brian Burg <bburg@apple.com>
Web Inspector: rewrite inspector/console/command-line-api.html to use AsyncTestSuite
https://bugs.webkit.org/show_bug.cgi?id=148637
Reviewed by Darin Adler.
* UserInterface/Base/Object.js:
(WebInspector.Object.singleFireEventListener):
(WebInspector.Object.singleFireEventListener.let.wrappedCallback): Arrow.
2015-09-01 Devin Rousso <drousso@apple.com>
Web Inspector: New rule button in the style sidebar is blurry and too dark
https://bugs.webkit.org/show_bug.cgi?id=148108
Reviewed by Timothy Hatcher.
Added support for Plus and Minus icons on non-retina screens.
Also removed some CSS rules that no longer apply to anything.
* UserInterface/Images/Minus.svg:
* UserInterface/Images/NewTabPlus.svg:
* UserInterface/Images/Plus.svg: Removed.
* UserInterface/Images/Plus13.svg: Copied from Source/WebInspectorUI/UserInterface/Images/Plus.svg.
* UserInterface/Images/Plus15.svg: Copied from Source/WebInspectorUI/UserInterface/Images/Plus.svg.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content + .options-container):
(.sidebar > .panel.details.css-style > .content + .options-container > .new-rule):
* UserInterface/Views/ProbeDetailsSidebarPanel.css:
(.details-section.probe-set .options > .probe-add):
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .new-rule): Deleted.
(.sidebar > .panel.details.css-style .rules > *:first-child:matches(.new-rule)): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .new-rule): Deleted.
(.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section): Deleted.
(.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .label): Deleted.
(.sidebar > .panel.details.css-style .rules .new-rule img): Deleted.
(.sidebar > .panel.details.css-style .rules .new-rule:hover): Deleted.
(.sidebar > .panel.details.css-style .rules .new-rule:active): Deleted.
(@media (-webkit-min-device-pixel-ratio: 2)): Deleted.
Removed CSS rules that no longer apply. The new rule button was moved to the Styles sidebar.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
(.details-section.watch-expressions .options > .watch-expression-add):
* UserInterface/Views/TabBar.css:
(.tab-bar > .item.new-tab-button > .icon):
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-controls > div):
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
* UserInterface/Views/VisualStyleSelectorSection.js:
(WebInspector.VisualStyleSelectorSection):
2015-09-01 Brian Burg <bburg@apple.com>
Web Inspector: add TestSuite hooks for per-testcase setup and teardown actions
https://bugs.webkit.org/show_bug.cgi?id=148641
Reviewed by Timothy Hatcher.
It should be possible to run setup and teardown actions for each test case.
The use case here is to add listeners, set up testcase-specific state, etc.
To match how test functions work in each suite, the sync and async implementations
take functions with no arguments and(resolve, reject), respectively.
* UserInterface/Test/TestSuite.js:
(TestSuite.prototype.addTestCase):
(TestSuite.messageFromThrownObject):
(TestSuite):
(AsyncTestSuite.prototype.runTestCases): Stick the extra functions in the chain.
(AsyncTestSuite):
(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):
2015-09-01 Matt Baker <mattbaker@apple.com>
Web Inspector: Visual style editor shouldn't allow alpha characters in numeric input fields
https://bugs.webkit.org/show_bug.cgi?id=148580
Reviewed by Brian Burg.
* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox):
Added input element "changed" handler, renamed "keyup" handler to match "keydown" handler.
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputChanged):
Validate input in response to changed event.
2015-08-31 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Command-Enter for selected JS in Debugger/Sources shouldn't change the focus
https://bugs.webkit.org/show_bug.cgi?id=148613
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleTabContentView.js:
(WebInspector.ConsoleTabContentView.prototype.shown):
Always focus on the console prompt when the console tab get selected.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.shown): Deleted.
2015-08-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Debugger Popovers should work for object literal shorthand variables
https://bugs.webkit.org/show_bug.cgi?id=148603
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
Allow debugger popovers for object property shorthands, because they
are actually variables that have values. Previously we ignored property
name literals, because they were just property names until ES6.
* UserInterface/Views/CodeMirrorAdditions.js:
Add a helper for walking through token types from a start position. It may be useful elsewhere.
2015-08-31 Matt Baker <mattbaker@apple.com>
Web Inspector: Move the Popover code out of the Breakpoint model object
https://bugs.webkit.org/show_bug.cgi?id=127328
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/BreakpointPopoverController.js: Added.
(WebInspector.BreakpointPopoverController):
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.editBreakpoint):
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.removeBreakpoint):
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.toggleBreakpoint):
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.toggleAutoContinue):
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.revealOriginalSourceCodeLocation):
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems):
(WebInspector.BreakpointPopoverController.prototype.showEditBreakpointPopover):
(WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
(WebInspector.BreakpointPopoverController.prototype._popoverToggleEnabledCheckboxChanged):
(WebInspector.BreakpointPopoverController.prototype._popoverConditionInputChanged):
(WebInspector.BreakpointPopoverController.prototype._popoverToggleAutoContinueCheckboxChanged):
(WebInspector.BreakpointPopoverController.prototype._popoverConditionInputKeyDown):
(WebInspector.BreakpointPopoverController.prototype._popoverActionsCreateAddActionButton):
(WebInspector.BreakpointPopoverController.prototype._popoverActionsAddActionButtonClicked):
(WebInspector.BreakpointPopoverController.prototype._popoverActionsInsertBreakpointActionView):
(WebInspector.BreakpointPopoverController.prototype.breakpointActionViewAppendActionView):
(WebInspector.BreakpointPopoverController.prototype.breakpointActionViewRemoveActionView):
(WebInspector.BreakpointPopoverController.prototype.breakpointActionViewResized):
(WebInspector.BreakpointPopoverController.prototype.willDismissPopover):
(WebInspector.BreakpointPopoverController.prototype.didDismissPopover):
Added controller class to encapsulate view logic previously located in WebInspector.Breakpoint.
* UserInterface/Main.html:
Added and updated file paths.
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype.appendContextMenuItems.editBreakpoint): Deleted.
(WebInspector.Breakpoint.prototype.appendContextMenuItems.removeBreakpoint): Deleted.
(WebInspector.Breakpoint.prototype.appendContextMenuItems.toggleBreakpoint): Deleted.
(WebInspector.Breakpoint.prototype.appendContextMenuItems.toggleAutoContinue): Deleted.
(WebInspector.Breakpoint.prototype.appendContextMenuItems.revealOriginalSourceCodeLocation): Deleted.
(WebInspector.Breakpoint.prototype.appendContextMenuItems): Deleted.
(WebInspector.Breakpoint.prototype._popoverToggleEnabledCheckboxChanged): Deleted.
(WebInspector.Breakpoint.prototype._popoverConditionInputChanged): Deleted.
(WebInspector.Breakpoint.prototype._popoverToggleAutoContinueCheckboxChanged): Deleted.
(WebInspector.Breakpoint.prototype._popoverConditionInputKeyDown): Deleted.
(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement): Deleted.
(WebInspector.Breakpoint.prototype._popoverActionsCreateAddActionButton): Deleted.
(WebInspector.Breakpoint.prototype._popoverActionsAddActionButtonClicked): Deleted.
(WebInspector.Breakpoint.prototype._popoverActionsInsertBreakpointActionView): Deleted.
(WebInspector.Breakpoint.prototype.breakpointActionViewAppendActionView): Deleted.
(WebInspector.Breakpoint.prototype.breakpointActionViewRemoveActionView): Deleted.
(WebInspector.Breakpoint.prototype.breakpointActionViewResized): Deleted.
(WebInspector.Breakpoint.prototype.willDismissPopover): Deleted.
(WebInspector.Breakpoint.prototype.didDismissPopover): Deleted.
(WebInspector.Breakpoint.prototype._showEditBreakpointPopover): Deleted.
Removed view logic.
* UserInterface/Views/BreakpointPopoverController.css: Renamed from Source/WebInspectorUI/UserInterface/Views/Breakpoint.css.
(.popover .edit-breakpoint-popover-content):
(.popover .edit-breakpoint-popover-content.wide):
(.popover .edit-breakpoint-popover-content > label.toggle):
(.popover .edit-breakpoint-popover-content > table):
(.popover .edit-breakpoint-popover-content > table > tr > th):
(.popover .edit-breakpoint-popover-content > table > tr > td):
(#edit-breakpoint-popover-condition):
(#edit-breakpoint-popoover-auto-continue):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
Creates a BreakpointPopoverController instance. The lifetime of the 'Edit Breakpoint' view is internal to the
controller, and can't be initiated outside of a context menu item click.
2015-08-31 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frame tasks making up < 1% of the selection don't appear in the pie chart
https://bugs.webkit.org/show_bug.cgi?id=148549
Reviewed by Timothy Hatcher.
Small data points can be invisible or difficult to see in the pie chart. This patch introduces
a minimum slice size of 1.5% (determined by visual inspection) for chart items.
Legend items continue to show the original data point values, not the adjusted values used to
draw the chart slices.
* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow):
(WebInspector.ChartDetailsSectionRow.prototype._updateLayout):
Adjust display values up or down as needed, so no data point is less than the
minimum and all chart slices still total 100%.
2015-08-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: "animationEnd" event names should be "animationend" (broken dashboard animation after pause)
https://bugs.webkit.org/show_bug.cgi?id=148604
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight):
* UserInterface/Views/DashboardContainerView.js:
(WebInspector.DashboardContainerView.prototype._showDashboardView.animationEnded):
(WebInspector.DashboardContainerView.prototype._showDashboardView):
(WebInspector.DashboardContainerView.prototype._hideDashboardView.animationEnded):
(WebInspector.DashboardContainerView.prototype._hideDashboardView):
* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView.prototype._setConsoleItemValue.animationEnded):
(WebInspector.DefaultDashboardView.prototype._setConsoleItemValue):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype._revealSearchResult):
2015-08-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Resource.prototype.associateWithScript assertions firing
https://bugs.webkit.org/show_bug.cgi?id=148601
Reviewed by Timothy Hatcher.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.associateWithScript):
Restore the code that was here before it was converted to asserts.
It looked as if it was iOS 6 only but it was not.
2015-08-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve ScriptSyntaxTree a bit
https://bugs.webkit.org/show_bug.cgi?id=148563
Reviewed by Timothy Hatcher.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
Share and fix ClassDeclaration and ClassExpression recursion to visit
the identifier (node.id). Include the kind with a VariableDeclaration
("var", "let", "const").
2015-08-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Separate creating a style sheet from adding a new rule in the protocol
https://bugs.webkit.org/show_bug.cgi?id=148502
Reviewed by Timothy Hatcher.
The backend allows creating multiple stylesheets. This patch makes
the frontend have a preferred InspectorStyleSheet per-frame.
* UserInterface/Base/Object.js:
(WebInspector.Object.singleFireEventListener):
Return the wrapped listener so it can be removed if needed.
* UserInterface/Models/CSSStyleSheet.js:
(WebInspector.CSSStyleSheet.prototype.isInspectorStyleSheet):
Helper to check if the current stylesheet is an inspector created stylesheet.
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager.prototype.preferredInspectorStyleSheetForFrame):
(WebInspector.CSSStyleManager.prototype.preferredInspectorStyleSheetForFrame.documentNodeAvailable):
(WebInspector.CSSStyleManager.prototype.preferredInspectorStyleSheetForFrame.bodyNodeAvailable):
(WebInspector.CSSStyleManager.prototype.preferredInspectorStyleSheetForFrame.cssRuleAvailable):
(WebInspector.CSSStyleManager.prototype._inspectorStyleSheetsForFrame):
Lookup the inspector stylesheet for a particular frame. If one doesn't exist create it.
For legacy backends, exploit "addRule" to create the inspector stylesheet.
* UserInterface/Models/DOMNode.js:
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.addEmptyRule.inspectorStyleSheetAvailable):
(WebInspector.DOMNodeStyles.prototype.addEmptyRule):
Currently add all new rules to the inspector stylesheet.
2015-08-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Type Profiler does not understand Functions within Default Argument Expressions
https://bugs.webkit.org/show_bug.cgi?id=148557
Reviewed by Timothy Hatcher.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
Add support for abstracting and recursing through the default parameter
expressions Esprima has on function expressions and declarations.
2015-08-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Type Profiler does not understand Functions inside Template Strings (ScriptSyntaxTree warnings)
https://bugs.webkit.org/show_bug.cgi?id=148556
Reviewed by Timothy Hatcher.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
Add support for abstracting and recursing through the Esprima template nodes.
2015-08-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Standardize on CSSStyleSheet.Type enum and move more protocol enum conversion to the manager
https://bugs.webkit.org/show_bug.cgi?id=148515
Reviewed by Brian Burg.
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager.protocolStyleSheetOriginToEnum):
(WebInspector.CSSStyleManager.protocolMediaSourceToEnum):
Protocol enum to frontend enum conversion.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.refresh.fetchedComputedStyle):
(WebInspector.DOMNodeStyles.prototype.refresh):
(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
(WebInspector.DOMNodeStyles.prototype._collectStylesInCascadeOrder):
Use the manager to convert from a protocol payload enum to frontend num for css types.
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.get editable):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
* UserInterface/Views/VisualStyleSelectorSection.js:
(WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
(WebInspector.VisualStyleSelectorSection.prototype.update.uniqueOrderedRules.set return):
(WebInspector.VisualStyleSelectorSection.prototype.update.uniqueOrderedRules):
(WebInspector.VisualStyleSelectorSection.prototype.update):
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem):
Update enum use.
2015-08-26 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: [Regression] [Mavericks]: Undocked Web Inspector toolbar is two different colors and has extra space
https://bugs.webkit.org/show_bug.cgi?id=148510
Make body element transparent and remove extra padding above the toolbar only for OS X Mavericks.
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
* UserInterface/Views/Main.css:
(body:not(.mavericks)):
(body): Deleted.
* UserInterface/Views/Toolbar.css:
(body:not(.mavericks) .toolbar):
(body.window-inactive:not(.mavericks) .toolbar):
(body.mac-platform:not(.docked, .mavericks) .toolbar):
(.toolbar): Deleted.
(body.window-inactive .toolbar): Deleted.
(body.mac-platform:not(.docked) .toolbar): Deleted.
2015-08-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception in CSS Completion - TypeError: undefined is not an object (evaluating 'this._values[middleIndex].startsWith')
https://bugs.webkit.org/show_bug.cgi?id=148508
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions):
Add a comment explaining that the constructor may be called with
a list of strings or a list of objects from the protocol. Add
a fast path for when this is constructed with a list of strings.
2015-08-26 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frames timeline pie chart should use SVG instead of 2D canvas
https://bugs.webkit.org/show_bug.cgi?id=148457
Reviewed by Timothy Hatcher.
* UserInterface/Views/ChartDetailsSectionRow.css:
(.details-section > .content > .group > .row.chart > .chart-content > svg > path.hidden):
(.details-section > .content > .group > .row.chart > .chart-content > svg > path.chart-segment):
(.details-section > .content > .group > .row.chart > .chart-content > svg > path.empty-chart):
New styles for SVG chart elements.
* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow):
Calculate radii and create SVG chart elements.
(WebInspector.ChartDetailsSectionRow.prototype.clearItems):
Remove chart segment path elements.
(WebInspector.ChartDetailsSectionRow.prototype._needsLayout):
(WebInspector.ChartDetailsSectionRow.prototype._updateLayout.createSegmentPathData):
Helper function that creates path data for a single pie chart segment.
(WebInspector.ChartDetailsSectionRow.prototype._updateLayout):
Creates path elements as needed, and updates path data for for non-zero data points.
(WebInspector.ChartDetailsSectionRow.prototype.set innerLabel): Deleted.
(WebInspector.ChartDetailsSectionRow.prototype.set innerRadius): Deleted.
These properties are now set during construction.
(WebInspector.ChartDetailsSectionRow.prototype.updateLayout): Deleted.
Renamed to _updateLayout.
* UserInterface/Views/TimelineSidebarPanel.js:
Chart size and inner radius passed to chart constructor.
2015-08-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Implement tracking of active stylesheets in the frontend
https://bugs.webkit.org/show_bug.cgi?id=105828
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSStyleSheet.js:
(WebInspector.CSSStyleSheet):
(WebInspector.CSSStyleSheet.prototype.get origin):
(WebInspector.CSSStyleSheet.prototype.updateInfo):
Add a new origin attribute that has been sent from the backend for a while.
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager.prototype.styleSheetAdded):
(WebInspector.CSSStyleManager.prototype.styleSheetRemoved):
Handle the new events by managing the new CSSStyleSheets.
(WebInspector.CSSStyleManager):
(WebInspector.CSSStyleManager.prototype._mainResourceDidChange):
Reset the legacy fetching flag. Fetching is only needed for legacy backends.
(WebInspector.CSSStyleManager.prototype._fetchInfoForAllStyleSheets):
Include the new origin property in the legacy updateInfo path.
* UserInterface/Protocol/CSSObserver.js:
(WebInspector.CSSObserver.prototype.styleSheetAdded):
(WebInspector.CSSObserver.prototype.styleSheetRemoved):
Forward to the manager.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
Refresh the sidebar when stylesheets are added / removed, as that
may affect the style of the select element.
2015-08-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Drop iOS 6 Legacy Remote Inspector Support
https://bugs.webkit.org/show_bug.cgi?id=148456
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector._updateReloadToolbarButton):
(WebInspector._updateDownloadToolbarButton):
(WebInspector.canArchiveMainFrame):
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager.prototype._frameURLMapKey):
(WebInspector.CSSStyleManager.prototype._lookupStyleSheet.styleSheetsFetched):
(WebInspector.CSSStyleManager._updateResourceContent.fetchedStyleSheetContent):
(WebInspector.CSSStyleManager.prototype._clearStyleSheetsForResource): Deleted.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.highlightSelector):
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype._setBreakpoint):
* UserInterface/Controllers/JavaScriptLogViewController.js:
* UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager):
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
* UserInterface/Controllers/SourceMapManager.js:
(WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
* UserInterface/Controllers/StorageManager.js:
(WebInspector.StorageManager):
(WebInspector.StorageManager.prototype._addDOMStorageIfNeeded):
(WebInspector.StorageManager.prototype.domStorageWasUpdated): Deleted.
(WebInspector.StorageManager.prototype._domStorageForIdentifier): Deleted.
(WebInspector.StorageManager.prototype._extraDomainsActivated): Deleted.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._processRecord):
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions):
(WebInspector.CSSCompletions.requestCSSCompletions):
* UserInterface/Models/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.addCustomCompletions): Deleted.
* UserInterface/Models/CSSProperty.js:
(WebInspector.CSSProperty):
(WebInspector.CSSProperty.prototype.update):
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.get matchedSelectors): Deleted.
(WebInspector.CSSRule.prototype.get matchedSelectorText): Deleted.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.refresh.parseRuleMatchArrayPayload):
(WebInspector.DOMNodeStyles.prototype.refresh.fetchedMatchedStyles):
(WebInspector.DOMNodeStyles.prototype.changeRule.changeText):
(WebInspector.DOMNodeStyles.prototype.changeStyleText):
(WebInspector.DOMNodeStyles.prototype._parseStylePropertyPayload):
(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
(WebInspector.DOMNodeStyles.prototype.changeStyleText.attributeChanged): Deleted.
(WebInspector.DOMNodeStyles.prototype.changeStyleText.fetchedStyleSheetContent.contentDidChange): Deleted.
(WebInspector.DOMNodeStyles.prototype.changeStyleText.fetchedStyleSheetContent): Deleted.
(WebInspector.DOMNodeStyles.prototype._parseSourceRangePayload): Deleted.
(WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload): Deleted.
* UserInterface/Models/DOMStorageObject.js:
* UserInterface/Models/DOMTree.js:
(WebInspector.DOMTree.prototype.requestRootDOMNode):
(WebInspector.DOMTree.prototype._requestRootDOMNode):
* UserInterface/Models/DatabaseObject.js:
(WebInspector.DatabaseObject.prototype.executeSQL.queryCallback):
(WebInspector.DatabaseObject.prototype.executeSQL):
(WebInspector.DatabaseObject):
(WebInspector.DatabaseObject.prototype.executeSQL.callback): Deleted.
* UserInterface/Models/ExecutionContext.js:
(WebInspector.ExecutionContext.supported): Deleted.
* UserInterface/Models/IssueMessage.js:
(WebInspector.IssueMessage): Deleted.
* UserInterface/Models/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord):
(WebInspector.LayoutTimelineRecord.prototype.get width):
(WebInspector.LayoutTimelineRecord.prototype.get height):
(WebInspector.LayoutTimelineRecord.prototype.get area):
(WebInspector.LayoutTimelineRecord.prototype.get x): Deleted.
(WebInspector.LayoutTimelineRecord.prototype.get y): Deleted.
(WebInspector.LayoutTimelineRecord.prototype.get rect): Deleted.
* UserInterface/Models/ProfileNode.js:
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.associateWithScript):
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource.prototype.requestContentFromBackend):
* UserInterface/Models/TextRange.js:
(WebInspector.TextRange.prototype.resolveLinesAndColumns.countNewLineCharacters): Deleted.
(WebInspector.TextRange.prototype.resolveLinesAndColumns): Deleted.
* UserInterface/Models/TimelineRecording.js:
* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded): Deleted.
* UserInterface/Protocol/DOMStorageObserver.js:
(WebInspector.DOMStorageObserver.prototype.addDOMStorage): Deleted.
(WebInspector.DOMStorageObserver.prototype.updateDOMStorage): Deleted.
* UserInterface/Protocol/DatabaseObserver.js:
(WebInspector.DatabaseObserver.prototype.sqlTransactionSucceeded): Deleted.
(WebInspector.DatabaseObserver.prototype.sqlTransactionFailed): Deleted.
(WebInspector.DatabaseObserver): Deleted.
* UserInterface/Protocol/Legacy/6.0/InspectorBackendCommands.js: Removed.
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype._deleteCallback):
(WebInspector.CookieStorageContentView):
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings): Deleted.
* UserInterface/Views/EventListenerSectionGroup.js:
(WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
(WebInspector.EventListenerSectionGroup):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype._showHighlightForRecord):
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole):
(WebInspector.QuickConsole.prototype._createExecutionContextPathComponentFromFrame):
(WebInspector.QuickConsole.prototype._frameAdded): Deleted.
(WebInspector.QuickConsole.prototype._frameRemoved): Deleted.
(WebInspector.QuickConsole.prototype._frameMainResourceChanged): Deleted.
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.get data):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._makeBasicBlockAnnotator):
* Versions/Inspector-iOS-6.0.json: Removed.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2015-08-26 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Command-Enter should evaluate selected JS in Debugger/Sources
https://bugs.webkit.org/show_bug.cgi?id=148368
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions):
Evaluate selected text in the console only for JS and HTML resources. HTML resources
should be allowed because they can have commented out (inside <!-- -->) and
inline (onclick="") JavaScript.
2015-08-25 Brian Burg <bburg@apple.com>
Web Inspector: no need to allocate protocolErrors array for every dispatched backend command
https://bugs.webkit.org/show_bug.cgi?id=146466
Reviewed by Joseph Pecoraro.
* UserInterface/TestStub.html: Fix a typo, this property exists on ProtocolTest.
2015-08-26 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frames legend item checkbox colors are too light
https://bugs.webkit.org/show_bug.cgi?id=148465
Reviewed by Timothy Hatcher.
* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow.prototype._addCheckboxColorFilter):
Gamma primitive should use an "exponent" attribute instead of "value".
Increased gamma exponent to 1.4.
2015-08-26 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Make DOM node attribute changes highlighting less obnoxious
https://bugs.webkit.org/show_bug.cgi?id=148050
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeOutline.css:
(@keyframes node-state-changed): Change color to a light green.
(.node-state-changed): Add a slight ease-in for the animation function.
2015-08-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Refresh button to Cookie Content View
https://bugs.webkit.org/show_bug.cgi?id=148468
Reviewed by Timothy Hatcher.
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView):
(WebInspector.CookieStorageContentView.prototype.get navigationItems):
(WebInspector.CookieStorageContentView.prototype._refreshButtonClicked):
2015-08-25 Brian Burg <bburg@apple.com>
Web Inspector: message dispatch metrics should use high-resolution timing data
https://bugs.webkit.org/show_bug.cgi?id=135467
Reviewed by Timothy Hatcher.
Use performance.now if it's available, otherwise fallback to Date.now().
Format timestamps with fixed decimal point, and sprinkle some ES6.
* UserInterface/Base/Utilities.js:
(timestamp): Added.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
(InspectorBackendClass.prototype._dispatchEvent):
* UserInterface/Protocol/MessageDispatcher.js:
(WebInspector.dispatchNextQueuedMessageFromBackend):
(WebInspector.dispatchMessageFromBackend): Be consistent about using `this`.
2015-08-25 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frames pie chart should use the needsLayout/updateLayout idiom
https://bugs.webkit.org/show_bug.cgi?id=148412
Reviewed by Timothy Hatcher.
* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow):
(WebInspector.ChartDetailsSectionRow.prototype.set innerLabel):
(WebInspector.ChartDetailsSectionRow.prototype.set innerRadius):
Schedule a layout.
(WebInspector.ChartDetailsSectionRow.prototype.set data): Deleted.
Replaced by addItem, setItemValue, and clearItems.
(WebInspector.ChartDetailsSectionRow.prototype.addItem):
(WebInspector.ChartDetailsSectionRow.prototype.setItemValue):
(WebInspector.ChartDetailsSectionRow.prototype.clearItems):
Add/update data points and schedule a layout.
(WebInspector.ChartDetailsSectionRow.prototype._needsLayout):
(WebInspector.ChartDetailsSectionRow.prototype.updateLayout):
Update legend and draw pie chart.
(WebInspector.ChartDetailsSectionRow.prototype._createLegend): Deleted.
Refactored as _updateLegend.
(WebInspector.ChartDetailsSectionRow.prototype._refresh): Deleted.
Refactored as updateLayout.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
Add chart data points once.
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart):
Update chart values.
2015-08-24 Brian Burg <bburg@apple.com>
Web Inspector: add protocol test for existing error handling performed by the backend
https://bugs.webkit.org/show_bug.cgi?id=147097
Reviewed by Joseph Pecoraro.
Add a way to send raw messages to the backend while still awaiting on responses.
This is necessary to test protocol error handling in the inspector backend.
* UserInterface/Test/InspectorProtocol.js:
(InspectorProtocol.sendCommand):
(InspectorProtocol.awaitCommand): Use awaitMessage internally.
(InspectorProtocol.awaitMessage): Added. Use a dummy requestId if none is supplied.
(InspectorProtocol._sendMessage): Added.
(InspectorProtocol.dispatchMessageFromBackend):
Reject with the error object instead of the error message, so error code/data can be checked.
(InspectorProtocol.sendMessage): Deleted, it is now a private method.
2015-08-24 Timothy Hatcher <timothy@apple.com>
Web Inspector: Change webkitAnimationEnd use, should be animationEnd
https://bugs.webkit.org/show_bug.cgi?id=148385
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight):
* UserInterface/Views/DashboardContainerView.js:
(WebInspector.DashboardContainerView.prototype._showDashboardView.animationEnded):
(WebInspector.DashboardContainerView.prototype._showDashboardView):
(WebInspector.DashboardContainerView.prototype._hideDashboardView.animationEnded):
(WebInspector.DashboardContainerView.prototype._hideDashboardView):
* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView.prototype._setConsoleItemValue.animationEnded):
(WebInspector.DefaultDashboardView.prototype._setConsoleItemValue):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.revealPosition.revealAndHighlightLine):
(WebInspector.TextEditor.prototype.revealPosition):
(WebInspector.TextEditor.prototype._revealSearchResult):
2015-08-24 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r188581): Web Inspector: Console user command isn't visible when it's expected to be
https://bugs.webkit.org/show_bug.cgi?id=148283
One of the improvements of r188581 "Option-Enter should commit console command
without erasing the prompt" was not to show a console user command if it's the
same as the previous one.
However, there could be a lot of other messages between the last two user
commands - console.log, CSS warnings, etc. In that case we should show a console
user command again by resetting _lastCommitted.
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.startNewSession):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessageView):
Reset _lastCommitted for all messages except for user commands and use command results.
2015-08-24 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frames filter checkboxes all become checked during recording
https://bugs.webkit.org/show_bug.cgi?id=148375
Reviewed by Timothy Hatcher.
* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow.prototype._createLegend):
Removed incorrect code that forced checked to true.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart):
Persist legend item checkbox state when updating the chart.
2015-08-23 Matt Baker <mattbaker@apple.com>
Web Inspector: Filtered style not applied to graph elements during timeline recording
https://bugs.webkit.org/show_bug.cgi?id=148339
Reviewed by Brian Burg.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Check for hidden state change when applying filters to newly added tree elements.
2015-08-23 Timothy Hatcher <timothy@apple.com>
Web Inspector: Drop webkit prefixes from animation, keyframes and transform
https://bugs.webkit.org/show_bug.cgi?id=148364
Reviewed by Darin Adler.
* UserInterface/Views/BreakpointTreeElement.css:
(.breakpoint-generic-line-icon .icon > span):
(.data-updated.breakpoint-generic-line-icon .icon > span):
* UserInterface/Views/ColorPicker.css:
(.color-picker > .slider):
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard):
(.toolbar .dashboard.slide-out-up):
(.toolbar .dashboard.slide-out-down):
(.toolbar .dashboard.slide-in-up):
(.toolbar .dashboard.slide-in-down):
(@keyframes slide-top-edge):
(@keyframes slide-bottom-edge):
(@-webkit-keyframes slide-top-edge): Deleted.
(@-webkit-keyframes slide-bottom-edge): Deleted.
* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger .navigation-bar .item.button > .glyph):
(@keyframes pulse-pause-button):
(@-webkit-keyframes pulse-pause-button): Deleted.
* UserInterface/Views/DefaultDashboardView.css:
(.toolbar .dashboard.default > .item.pulsing):
(@keyframes console-item-pulse):
(@-webkit-keyframes console-item-pulse): Deleted.
* UserInterface/Views/GoToLineDialog.css:
(.go-to-line-dialog):
* UserInterface/Views/HoverMenu.css:
(.hover-menu):
* UserInterface/Views/IndeterminateProgressSpinner.css:
(@keyframes discrete-spinner):
(.indeterminate-progress-spinner):
(@-webkit-keyframes discrete-spinner): Deleted.
* UserInterface/Views/Main.css:
(.bouncy-highlight):
(@keyframes bouncy-highlight-animation):
(@-webkit-keyframes bouncy-highlight-animation): Deleted.
* UserInterface/Views/ProbeSetDataGrid.css:
(.details-section.probe-set .data-grid tr.revealed.highlighted):
(@keyframes blink-frame-highlight):
(.details-section.probe-set .data-grid > tr.data-updated):
(@keyframes blink-probe-frame):
(@-webkit-keyframes blink-frame-highlight): Deleted.
(@-webkit-keyframes blink-probe-frame): Deleted.
* UserInterface/Views/TextEditor.css:
(.text-editor > .CodeMirror .highlighted):
(@keyframes text-editor-highlight-fadeout):
(.text-editor > .CodeMirror .hovered-expression-highlight):
(@keyframes text-editor-hovered-expression-highlight-fadeout):
(@-webkit-keyframes text-editor-highlight-fadeout): Deleted.
(@-webkit-keyframes text-editor-hovered-expression-highlight-fadeout): Deleted.
* UserInterface/Views/TimelineOverview.css:
(.timeline-overview.frames > .timeline-ruler > .markers > .divider):
(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.right):
(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.right):
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler > .header > .divider):
(.timeline-ruler > .markers > .divider):
(.timeline-ruler > .markers > .marker):
(.timeline-ruler > .selection-handle.left):
(.timeline-ruler > .selection-handle.right):
2015-08-21 Saam barati <sbarati@apple.com>
Web Inspector: Type profiler shows 'Undefined' annotation for functions with no return statements
https://bugs.webkit.org/show_bug.cgi?id=146882
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
2015-08-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: WebInspector.domTreeManager.regionLayoutUpdated does not exist
https://bugs.webkit.org/show_bug.cgi?id=148348
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/CSSObserver.js:
(WebInspector.CSSObserver.prototype.regionLayoutUpdated):
Just do the same as the new event name.
2015-08-21 Brian Burg <bburg@apple.com>
Web Inspector: clean up uses of `new` with zero-argument constructors and factory methods
https://bugs.webkit.org/show_bug.cgi?id=148311
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/InspectorFrontendHostStub.js:
* UserInterface/Views/ClusterContentView.js:
(WebInspector.ClusterContentView):
* UserInterface/Views/ColorPicker.js:
(WebInspector.ColorPicker):
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.createFromRepresentedObject): This was causing a console assertion
when a breakpoint tree element was selected and the inspector tried to restore the view state
after a reload or back/forward navigation.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
2015-08-20 Brian Burg <bburg@apple.com>
Web Inspector: add a regression test for the fix introduced in r188679
https://bugs.webkit.org/show_bug.cgi?id=148223
Reviewed by Joseph Pecoraro.
Turns out that we were possibly leaking a single DOMTree on reload.
Always clear the main frame's DOMTree as well as those of sub-frames.
* UserInterface/Base/Object.js: Add back single-fire listeners.
(WebInspector.Object.singleFireEventListener.let.wrappedCallback):
(WebInspector.Object.singleFireEventListener):
(WebInspector.Object.retainedObjectsWithPrototype):
(WebInspector.Object.prototype.singleFireEventListener):
(WebInspector.Object.prototype.retainedObjectsWithPrototype):
* UserInterface/Models/Frame.js:
(WebInspector.Frame.prototype.removeAllChildFrames): Clear own tree too.
2015-08-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Better Remember open tab types and order if using JSContext inspector
https://bugs.webkit.org/show_bug.cgi?id=148285
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.activateExtraDomains):
Save and restore extra domain related tabs at the expected saved index.
(WebInspector._rememberOpenTabs):
Keep unsupported tab types in the setting so when they are supported they open.
* UserInterface/Base/Utilities.js:
Add a helper for inserting a single object into an array.
2015-08-20 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: inline errors/warnings are taller than the line height
https://bugs.webkit.org/show_bug.cgi?id=148232
Reviewed by Timothy Hatcher.
* UserInterface/Views/SourceCodeTextEditor.css:
(.source-code.text-editor > .CodeMirror .issue-widget.inline):
(.source-code.text-editor > .CodeMirror .issue-widget.inline > .text):
2015-08-20 Joseph Pecoraro <pecoraro@apple.com>
JSContext Inspector: Uncaught Exception opening Search Tab
https://bugs.webkit.org/show_bug.cgi?id=148284
Reviewed by Timothy Hatcher.
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel):
This is copied / pasted code that shouldn't apply to the Search tab.
We want to show results under Resources in the Search tab.
2015-08-20 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Truncate data URIs
https://bugs.webkit.org/show_bug.cgi?id=148212
Reviewed by Timothy Hatcher.
* UserInterface/Base/URLUtilities.js:
(parseURL):
Exit early to avoid an expensive RegExp match on a potentially very large data URI.
(parseQueryString):
Fix typo.
(WebInspector.displayNameForURL):
(WebInspector.truncateURL):
By default, only show first and last 3 characters of data URIs.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.get displayURL):
For tooltips, show first and last 32 characters of data URIs.
* UserInterface/Models/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype._locationString):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._updateToolTip):
2015-08-20 Devin Rousso <drousso@apple.com>
Web Inspector: Add flex alignment section to Visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148243
Reviewed by Timothy Hatcher.
Uses select keyword pickers to contain the list of possible values. Also supports
the upcoming Grid layout keywords in the advanced keyword list.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel):
(WebInspector.VisualStyleDetailsPanel.prototype._populateFlexboxSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateAlignmentSection):
2015-08-20 Devin Rousso <drousso@apple.com>
Web Inspector: Labels in the computed panel are shifted when a filter is applieds
https://bugs.webkit.org/show_bug.cgi?id=148250
Reviewed by Timothy Hatcher.
Added to the selectors for filtering to ensure they only apply to the rules panel.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .label:not(.filter-section-non-matching) ~ .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .label.filter-matching-label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .label:not(.filter-section-non-matching) + .label.filter-matching-label:not(.filter-section-non-matching)):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .new-rule):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .style-declaration-section:not(.filter-section-non-matching) ~ .label:not(.filter-section-non-matching)):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) ~ .label): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) + .label.filter-matching-label:not(.filter-section-non-matching)): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .new-rule): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-non-matching) ~ .label:not(.filter-section-non-matching)): Deleted.
2015-08-20 Devin Rousso <drousso@apple.com>
Web Inspector: Fix "attempted to assign to readonly property" in Visual editor links
https://bugs.webkit.org/show_bug.cgi?id=148264
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStylePropertyEditorLink.js:
(WebInspector.VisualStylePropertyEditorLink.prototype.set linked):
No longer attempts to set the "hidden" attribute of the link icons before they exist.
2015-08-20 Devin Rousso <drousso@apple.com>
Web Inspector: Visual editor adds extra spaces to styles with no properties
https://bugs.webkit.org/show_bug.cgi?id=148242
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSStyleDeclaration.js:
(WebInspector.CSSStyleDeclaration.prototype.set text):
Now trims the text and, if the resulting string has no length or the style is inline,
replaces the text to be set with the trimmed text.
* UserInterface/Views/VisualStylePropertyCombiner.js:
(WebInspector.VisualStylePropertyCombiner.prototype.modifyPropertyText):
Removed unnecessary trim.
2015-08-20 Devin Rousso <drousso@apple.com>
Web Inspector: Font size between computed and set value is off in visual styles popups
https://bugs.webkit.org/show_bug.cgi?id=148226
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStylePropertyEditor.css:
(.visual-style-property-container > .visual-style-property-value-container > .visual-style-special-property-placeholder):
Increased font-size to match the font-size of the overlaid select element.
2015-08-20 Matt Baker <mattbaker@apple.com>
Web Inspector: Filtered frames shouldn't be selectable in the Rendering Frames overview graph
https://bugs.webkit.org/show_bug.cgi?id=148253
Reviewed by Timothy Hatcher.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
Check record's filtered state before setting new frame selection.
2015-08-20 Devin Rousso <drousso@apple.com>
Web Inspector: visual style number inputs don't style the units correctly
https://bugs.webkit.org/show_bug.cgi?id=148222
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
Added extra checks to see if the number input has a value when setting the value on the editor.
2015-08-20 Matt Baker <mattbaker@apple.com>
Web Inspector: Filtered frames should be styled differently in the Rendering Frames overview graph
https://bugs.webkit.org/show_bug.cgi?id=147421
Reviewed by Timothy Hatcher.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.representedObjectWasFiltered):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
Inform derived sidebar of tree element filter state changes.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.recordWasFiltered):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.updateLayout):
Update filtered frame style when a record's state changes, and during layout.
* UserInterface/Views/TimelineOverview.js:
* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph.prototype.recordWasFiltered):
Allow setting a record's filtered state for a given timeline in the overview.
* UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame.filtered > .frame):
New filtered frame style.
* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame.prototype.get filtered):
(WebInspector.TimelineRecordFrame.prototype.set filtered):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype.recordWasFiltered):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.representedObjectWasFiltered):
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
Apply task filters to RenderingFrameTimelineRecords and their immediate children.
2015-08-20 Brian Burg <bburg@apple.com>
Web Inspector: console assertion when hitting breakpoint after auto-recording ends
https://bugs.webkit.org/show_bug.cgi?id=148225
Reviewed by Timothy Hatcher.
Add checks for the precondition to starting/stopping time updates.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
2015-08-19 Brian Burg <bburg@apple.com>
Web Inspector: add TestHarness option to tee all commands to system console
https://bugs.webkit.org/show_bug.cgi?id=148181
Reviewed by Joseph Pecoraro.
It is currently difficult to trace what's going on when a test times out
on a buildbot instance. The existing option for forcing debug logging can
still drop messages that don't make it from the inspector to the test page.
This patch adds an option which logs all TestHarness commands directly to
stderr in the Inspector instance using InspectorFrontendHost::unbufferedLog.
Clean up how existing harness logging code calls into each other. Extract
the stringifying code that is duplicated everywhere.
* UserInterface/Test.html: Reorganize options and add new option.
* UserInterface/Test/FrontendTestHarness.js:
(FrontendTestHarness.prototype.completeTest):
(FrontendTestHarness.prototype.addResult):
(FrontendTestHarness.prototype.debugLog):
(FrontendTestHarness.prototype.testPageDidLoad):
(FrontendTestHarness.prototype._resendResults):
(FrontendTestHarness):
* UserInterface/Test/ProtocolTestHarness.js:
(ProtocolTestHarness.prototype.completeTest):
(ProtocolTestHarness.prototype.addResult):
(ProtocolTestHarness.prototype.debugLog):
* UserInterface/Test/TestHarness.js:
(TestHarness.prototype.log):
(TestHarness.prototype.assert):
(TestHarness.prototype.expectThat):
(TestHarness.messageAsString):
(TestHarness):
* UserInterface/TestStub.html: Reorganize options and add new option.
2015-08-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused temporary variable
https://bugs.webkit.org/show_bug.cgi?id=148215
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel):
2015-08-19 Devin Rousso <drousso@apple.com>
Web Inspector: Visual styles panel does not work with pseudo-elements
https://bugs.webkit.org/show_bug.cgi?id=148187
Reviewed by Timothy Hatcher.
If the inline style does not exist, such as for pseudo-elements, default to the first matched rule.
* UserInterface/Views/VisualStyleSelectorSection.js:
(WebInspector.VisualStyleSelectorSection.prototype.update):
2015-08-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DOMTree leaks on main resource changes
https://bugs.webkit.org/show_bug.cgi?id=148158
Reviewed by Timothy Hatcher.
* UserInterface/Models/DOMTree.js:
(WebInspector.DOMTree.prototype.disconnect):
Add a way to disconnect the DOMTree and allow it to get garbage collected.
(WebInspector.DOMTree.prototype.invalidate.performInvalidate):
(WebInspector.DOMTree.prototype.invalidate):
(WebInspector.DOMTree.prototype._requestRootDOMNode):
(WebInspector.DOMTree.prototype._framePageExecutionContextChanged):
Remove some uses of the delete operator.
* UserInterface/Models/Frame.js:
(WebInspector.Frame.prototype.removeChildFrame):
(WebInspector.Frame.prototype.removeAllChildFrames):
(WebInspector.Frame.prototype._detachFromParentFrame):
When a frame gets removed from its parent, disconnect its DOMTree.
2015-08-19 Devin Rousso <drousso@apple.com>
Web Inspector: The first style in the Rules panel for pseudo-elements needs padding
https://bugs.webkit.org/show_bug.cgi?id=148207
Reviewed by Timothy Hatcher.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label:first-child):
If the first element in the Rules panel is a label, add some top padding.
2015-08-19 Devin Rousso <drousso@apple.com>
Web Inspector: Committing a valid selector in the styles sidebar replaces the new selector with the old one
https://bugs.webkit.org/show_bug.cgi?id=148206
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._markSelector):
No longer unnecessarily refreshes the section if the selector is valid.
2015-08-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exceptions regarding PseudoElements / TemplateContent
https://bugs.webkit.org/show_bug.cgi?id=148190
Reviewed by Brian Burg.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._unbind):
Iterate over the values in the map, not the iterator pairs.
* UserInterface/Models/DOMNode.js:
When removing a pseudo element, don't assume this._children
exists, it may be null. So separate the two paths.
2015-08-19 Devin Rousso <drousso@apple.com>
Web Inspector: long selectors in the visual editor sidebar can overflow
https://bugs.webkit.org/show_bug.cgi?id=148185
Reviewed by Timothy Hatcher.
Selectors in the Visual editor sidebar are now clipped and use ellipses.
* UserInterface/Views/VisualStyleSelectorSection.css:
(.details-section.visual-style-selector-section > .header > .current-selector):
(.details-section.visual-style-selector-section:not(.collapsed) > .content):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles > .title): Deleted.
* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(.item.visual-style-selector-item):
(.item.visual-style-selector-item > .titles):
(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item > .icon):
2015-08-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include Legacy Inspector JSON for iOS 9
https://bugs.webkit.org/show_bug.cgi?id=148200
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js: Added.
* Versions/Inspector-iOS-9.0.json: Added.
2015-08-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update Copyright in minified / combined output
https://bugs.webkit.org/show_bug.cgi?id=148201
Reviewed by Timothy Hatcher.
* Scripts/copy-user-interface-resources.pl:
Include copyright comments from missing 2014 and 2015 contributors
in the comment in the minified / combined Main.js.
2015-08-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception in inspector page while handling event DOMStorage.domStorageItemRemoved
https://bugs.webkit.org/show_bug.cgi?id=148191
Reviewed by Brian Burg.
* UserInterface/Controllers/StorageManager.js:
(WebInspector.StorageManager.prototype.itemsCleared):
(WebInspector.StorageManager.prototype.itemRemoved):
(WebInspector.StorageManager.prototype.itemAdded):
(WebInspector.StorageManager.prototype.itemUpdated):
Check if the DOMStorage for the identifier actually exists.
Due to how the backend emits events, the page may have already
navigated when we get a storage update for the previous page.
In that case, we don't want to create a DOMStorage for the
previous page if it doesn't exist.
2015-08-19 Brian Burg <bburg@apple.com>
Web Inspector: use unprefixed CSS property 'filter' instead of '-webkit-filter'
https://bugs.webkit.org/show_bug.cgi?id=148186
Reviewed by Dean Jackson.
* UserInterface/Views/BreakpointActionView.css:
(.breakpoint-action-remove-button:active):
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover):
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker.clickable:hover):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:hover):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:active):
* UserInterface/Views/ChartDetailsSectionRow.css:
(body.window-inactive .details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > input[type=checkbox]):
* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow.prototype._addCheckboxColorFilter):
* UserInterface/Views/NewTabContentView.css:
(.new-tab.tab.content-view > .tab-item.disabled):
(.new-tab.tab.content-view > .tab-item:not(.disabled):hover > .box):
(.new-tab.tab.content-view > .tab-item:not(.disabled):active > .box):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:active):
* UserInterface/Views/VisualStyleKeywordIconList.css:
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:not(.selected) > div):
* UserInterface/Views/VisualStyleSelectorSection.css:
(.details-section.visual-style-selector-section > .header > .controls > .visual-style-selector-section-add-rule):
2015-08-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exception while handling event DOM.pseudoElementRemoved reloading twitter pages
https://bugs.webkit.org/show_bug.cgi?id=148180
Reviewed by Brian Burg.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._visibleChildren):
DOMNode.children can be null before it is filled in.
2015-08-19 Brian Burg <bburg@apple.com>
Web Inspector: InspectorTest should be a subclass of TestHarness
https://bugs.webkit.org/show_bug.cgi?id=148079
Reviewed by Timothy Hatcher.
Extract the frontend test harness into a subclass. Delete some code that
is now redundant. Sprinkle some ES6 syntax where possible.
Rewrite the code that redirects the Inspector page's console messages to
the test page, since it didn't appear to work any more.
* UserInterface/Test.html: Add debug options here, and a wiki link.
* UserInterface/Test/FrontendTestHarness.js: Added.
(FrontendTestHarness):
(FrontendTestHarness.prototype.completeTest):
(FrontendTestHarness.prototype.addResult):
(FrontendTestHarness.prototype.debugLog):
(FrontendTestHarness.prototype.evaluateInPage):
(FrontendTestHarness.prototype.expectNoError):
(FrontendTestHarness.prototype.testPageDidLoad):
(FrontendTestHarness.prototype.reloadPage):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput.createProxyConsoleHandler):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput):
(FrontendTestHarness.prototype.reportUncaughtException):
(FrontendTestHarness.prototype._resendResults):
* UserInterface/Test/Test.js:
(WebInspector.loaded):
(WebInspector.UIString): Arrow it.
(WebInspector.updateDockedState): Arrow it.
(WebInspector.updateDockingAvailability): Arrow it.
(InspectorTest.EventDispatcher.prototype.dispatchEvent): Deleted.
(InspectorTest.EventDispatcher): Deleted.
(InspectorTest.log): Deleted.
(InspectorTest.assert): Deleted.
(InspectorTest.expectThat): Deleted.
(InspectorTest.debugLog): Deleted.
(InspectorTest.expectNoError): Deleted.
(InspectorTest.completeTest): Deleted.
(InspectorTest.evaluateInPage): Deleted.
(InspectorTest.addResult): Deleted.
(InspectorTest._resendResults): Deleted.
(InspectorTest.testPageDidLoad): Deleted.
(InspectorTest.reloadPage): Deleted.
(InspectorTest.reportUncaughtException): Deleted.
* UserInterface/Test/TestSuite.js: Clean an unnecessary self = this.
(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):
* UserInterface/TestStub.html: Add matching link to wiki.
2015-08-19 Brian Burg <bburg@apple.com>
Web Inspector: split TestStub.js into multiple files and modernize it
https://bugs.webkit.org/show_bug.cgi?id=148077
Reviewed by Timothy Hatcher.
Since we want to share files between the two harnesses, split some of the parts
into different files so not everything has to be included at once.
Rename InjectedTestHarness to just TestHarness. Update some code to use
ES6 features where appropriate. Put test classes into Test/ directory.
* UserInterface/Base/TestStub.js: Removed.
* UserInterface/Test.html:
* UserInterface/Test/InspectorProtocol.js: Added.
(InspectorProtocol.sendCommand):
(InspectorProtocol.awaitCommand):
(InspectorProtocol.awaitEvent.):
(InspectorProtocol.awaitEvent):
(InspectorProtocol.addEventListener):
(InspectorProtocol.sendMessage):
(InspectorProtocol.checkForError):
(InspectorProtocol.dispatchMessageFromBackend):
* UserInterface/Test/ProtocolTestHarness.js: Added.
(ProtocolTestHarness.prototype.completeTest):
(ProtocolTestHarness.prototype.addResult):
(ProtocolTestHarness.prototype.debugLog):
(ProtocolTestHarness.prototype.evaluateInPage):
(ProtocolTestHarness):
* UserInterface/Test/Test.js: Renamed from Source/WebInspectorUI/UserInterface/Base/Test.js.
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.UIString):
(WebInspector.updateDockedState):
(WebInspector.updateDockingAvailability):
(InspectorTest.EventDispatcher.prototype.dispatchEvent):
(InspectorTest.EventDispatcher):
(InspectorTest.log):
(InspectorTest.assert):
(InspectorTest.expectThat):
(InspectorTest.debugLog):
(InspectorTest.expectNoError):
(InspectorTest.completeTest):
(InspectorTest.evaluateInPage):
(InspectorTest.addResult):
(InspectorTest._resendResults):
(InspectorTest.testPageDidLoad):
(InspectorTest.reloadPage):
(InspectorTest.reportUncaughtException):
* UserInterface/Test/TestHarness.js: Added.
(TestHarness):
(TestHarness.prototype.completeTest):
(TestHarness.prototype.addResult):
(TestHarness.prototype.debugLog):
(TestHarness.prototype.evaluateInPage):
(TestHarness.prototype.createAsyncSuite):
(TestHarness.prototype.createSyncSuite):
(TestHarness.prototype.get logCount):
(TestHarness.prototype.log):
(TestHarness.prototype.assert):
(TestHarness.prototype.expectThat):
* UserInterface/Test/TestStub.js: Added.
* UserInterface/Test/TestSuite.js: Added.
(TestSuite):
(TestSuite.prototype.runTestCasesAndFinish):
(TestSuite.prototype.runTestCases):
(TestSuite.prototype.get passCount):
(TestSuite.prototype.get skipCount):
(TestSuite.prototype.addTestCase):
(AsyncTestSuite.prototype.runTestCasesAndFinish.finish):
(AsyncTestSuite.prototype.runTestCasesAndFinish):
(AsyncTestSuite.prototype.runTestCases):
(AsyncTestSuite):
(SyncTestSuite.prototype.runTestCasesAndFinish):
(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):
* UserInterface/TestStub.html:
2015-08-19 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Pressing Command-Enter should re-evaluate selected console user command
https://bugs.webkit.org/show_bug.cgi?id=147918
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._keyDown):
(WebInspector.LogContentView.prototype._commandEnterWasPressed):
Only re-evaluate one selected user command.
2015-08-19 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r188581): Web Inspector: Console user command isn't visible after reloading the page
https://bugs.webkit.org/show_bug.cgi?id=148166
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.startNewSession):
2015-08-19 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r188581): Web Inspector: Option-Enter no longer inserts a new line in the console
https://bugs.webkit.org/show_bug.cgi?id=148165
Make Option-Enter insert a new line, as it was before r188581.
Make Command-Enter keep executed command in the prompt.
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt): Deleted.
(WebInspector.ConsolePrompt.prototype._handleCommandEnterKey):
(WebInspector.ConsolePrompt.prototype._handleOptionEnterKey): Deleted.
(WebInspector.ConsolePrompt.prototype._handleCommandOptionEnterKey): Deleted.
2015-08-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Links for rules in <style> are incorrect, do not account for <style> offset in the document
https://bugs.webkit.org/show_bug.cgi?id=148141
Reviewed by Brian Burg.
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager):
(WebInspector.CSSStyleManager.prototype.get styleSheets):
(WebInspector.CSSStyleManager.prototype.fetchStyleSheetsIfNeeded):
(WebInspector.CSSStyleManager.prototype.styleSheetForIdentifier):
(WebInspector.CSSStyleManager.prototype._mainResourceDidChange):
Update more information about a StyleSheet when fetched.
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.update):
Eliminate usage of `delete`.
* UserInterface/Models/CSSStyleSheet.js:
(WebInspector.CSSStyleSheet):
(WebInspector.CSSStyleSheet.prototype.get startLineNumber):
(WebInspector.CSSStyleSheet.prototype.get startColumnNumber):
(WebInspector.CSSStyleSheet.prototype.hasInfo):
(WebInspector.CSSStyleSheet.prototype.isInlineStyleTag):
(WebInspector.CSSStyleSheet.prototype.updateInfo):
Include more information about this stylesheet.
(WebInspector.CSSStyleSheet.prototype.offsetSourceCodeLocation):
Include helper API to offset a source code location by the startLine/Column
of this stylesheet itself, if it was an inline style.
(WebInspector.CSSStyleSheet.prototype.isInlineStyleAttributeStyleSheet):
(WebInspector.CSSStyleSheet.prototype.markAsInlineStyleAttributeStyleSheet):
(WebInspector.CSSStyleSheet.isInlineStyle): Deleted.
(WebInspector.CSSStyleSheet.prototype.markAsInlineStyle): Deleted.
Rename for clarity.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.refresh):
Fetch stylesheet header information eagerly, so we have them early on.
(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
Offset sourceCodeLocations for CSSRules based on the StyleSheet offset.
* UserInterface/Models/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype.update):
Improve coding style.
2015-08-18 Devin Rousso <drousso@apple.com>
Web Inspector: Add proper formatting for editing styles in the Visual Panel
https://bugs.webkit.org/show_bug.cgi?id=148147
Reviewed by Timothy Hatcher.
Editing styles in the Visual styles panel now preserves whitespace in the related resource file.
* UserInterface/Views/VisualStylePropertyCombiner.js:
(WebInspector.VisualStylePropertyCombiner):
(WebInspector.VisualStylePropertyCombiner.prototype.modifyPropertyText):
* UserInterface/Views/VisualStylePropertyEditor.js:
(WebInspector.VisualStylePropertyEditor):
(WebInspector.VisualStylePropertyEditor.generateFormattedTextForNewProperty):
(WebInspector.VisualStylePropertyEditor.prototype.modifyPropertyText):
2015-08-18 Devin Rousso <drousso@apple.com>
Web Inspector: Add support for positioning Visual editors on non-retina displays
https://bugs.webkit.org/show_bug.cgi?id=148160
Reviewed by Timothy Hatcher.
Cleans up the positioning, dimensions, and widths of the
Visual editors on non-retina displays.
* UserInterface/Views/VisualStyleColorPicker.css:
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):
* UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row.visual-style-separated-row):
(@media (-webkit-min-device-pixel-ratio: 2)):
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._clearModifiedSection):
* UserInterface/Views/VisualStylePropertyEditorLink.css:
(.visual-style-property-editor-link):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon):
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-icon):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-icon:hover + .visual-style-property-editor-link-border.right): Deleted.
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.right): Deleted.
(.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-icon): Deleted.
* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item > .icon):
(.item.visual-style-selector-item.selector-invalid > .titles > .title::before):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.item.visual-style-selector-item > .titles):
(.item.visual-style-selector-item.selector-invalid > .icon): Deleted.
* UserInterface/Views/VisualStyleTimingEditor.css:
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor):
(@media (-webkit-min-device-pixel-ratio: 2)):
2015-08-18 Devin Rousso <drousso@apple.com>
Web Inspector: Show the computed value in an overlay for numerical Visual Editors
https://bugs.webkit.org/show_bug.cgi?id=148161
Reviewed by Timothy Hatcher.
Adds an "Unchanged" option to the number-based Visual editors that shows the
computed value if it is not a number (it would therefore be a keyword).
* UserInterface/Views/VisualStyleNumberInputBox.css:
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container:not(.has-value) > span):
* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox):
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.get units):
(WebInspector.VisualStyleNumberInputBox.prototype.set units):
(WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
(WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
(WebInspector.VisualStyleNumberInputBox.prototype.set _unitsElementTextContent):
(WebInspector.VisualStyleNumberInputBox.prototype._markUnitsContainerIfInputHasValue):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown):
(WebInspector.VisualStyleNumberInputBox.prototype._numberInputChanged):
2015-08-18 Devin Rousso <drousso@apple.com>
Web Inspector: Small Caps variant checkbox should be to the left of the Small Caps label
https://bugs.webkit.org/show_bug.cgi?id=148102
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStyleKeywordCheckbox.css:
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input): Deleted.
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::after):
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::before): Deleted.
2015-08-18 Devin Rousso <drousso@apple.com>
Web Inspector: Visual editor links should unlink when switching styles
https://bugs.webkit.org/show_bug.cgi?id=148153
Reviewed by Timothy Hatcher.
Visual editor links are now deactivated when switching rules/nodes.
* UserInterface/Images/VisualStylePropertyUnlinked.svg:
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
* UserInterface/Views/VisualStylePropertyEditorLink.js:
(WebInspector.VisualStylePropertyEditorLink.prototype.set linked):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconClicked):
(WebInspector.VisualStylePropertyEditorLink):
2015-08-18 Devin Rousso <drousso@apple.com>
Web Inspector: Consider showing style summary on collapsed visual sidebar sections
https://bugs.webkit.org/show_bug.cgi?id=148104
Reviewed by Timothy Hatcher.
The blue indicator dot on a section now means that that section has at least one set value.
If a section has been modified, it will display a trash can that will clear those modifications.
* UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section .details-section.has-set-property > .header > span::after):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section.modified > .header > span::after): Deleted.
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
(WebInspector.VisualStyleDetailsPanel.prototype._sectionModified):
(WebInspector.VisualStyleDetailsPanel.prototype._groupHasSetProperty):
2015-08-18 Devin Rousso <drousso@apple.com>
Web Inspector: round sub-pixel values we get from computed style in visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148105
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
Now rounds the value and placeholder to the nearest 100th.
2015-08-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: transparent color swatches have lopsided checkered background on non-retina
https://bugs.webkit.org/show_bug.cgi?id=148150
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(@media (-webkit-max-device-pixel-ratio: 1)):
Make color and bezier widgets slightly smaller, but evenly sized so the
checkered background is not lopsided and the curve is a little less blurry.
2015-08-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Modernize CSSStyleManager
https://bugs.webkit.org/show_bug.cgi?id=148143
Reviewed by Brian Burg.
* UserInterface/Controllers/CSSStyleManager.js:
- Eliminate `delete` operator use.
- Move from using Objects as hashmaps to Map.
- Fix typos.
2015-08-18 Brian Burg <bburg@apple.com>
Web Inspector: load ProtocolTestStub from the WebInspectorUI bundle
https://bugs.webkit.org/show_bug.cgi?id=147955
Reviewed by Timothy Hatcher.
Move ProtocolTestStub.{html,js} into the actual WebInspectorUI project.
* UserInterface/Base/TestStub.js: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.js.
* UserInterface/TestStub.html: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.html.
2015-08-18 Devin Rousso <drousso@apple.com>
Web Inspector: Better keyboard shortcut to focus on the console prompt
https://bugs.webkit.org/show_bug.cgi?id=147927
Reviewed by Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._focusConsolePrompt):
Added a Control-Tilde keyboard shortcut to focus the console prompt.
2015-08-18 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Option-Enter should commit console command without erasing the prompt
https://bugs.webkit.org/show_bug.cgi?id=148123
Also, don't append a console command if it's the same as the last one.
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt):
(WebInspector.ConsolePrompt.prototype._handleEnterKey.commitTextOrInsertNewLine):
(WebInspector.ConsolePrompt.prototype._handleEnterKey):
(WebInspector.ConsolePrompt.prototype._handleOptionEnterKey):
(WebInspector.ConsolePrompt.prototype._handleCommandOptionEnterKey):
2015-08-17 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r188539, r188544, r188552, and
r188564.
https://bugs.webkit.org/show_bug.cgi?id=148122
Broke tests and some build styles (Requested by ap on
#webkit).
Reverted changesets:
"Web Inspector: load ProtocolTestStub from the WebInspectorUI
bundle"
https://bugs.webkit.org/show_bug.cgi?id=147955
http://trac.webkit.org/changeset/188539
"Web Inspector: split TestStub.js into multiple files and
modernize it"
https://bugs.webkit.org/show_bug.cgi?id=148077
http://trac.webkit.org/changeset/188544
"Web Inspector: InspectorTest should be a subclass of
TestHarness"
https://bugs.webkit.org/show_bug.cgi?id=148079
http://trac.webkit.org/changeset/188552
"Unreviewed internal build fix attempt after r188539."
http://trac.webkit.org/changeset/188564
2015-08-17 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Allow typing command when a console message is selected
https://bugs.webkit.org/show_bug.cgi?id=148121
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._keyPress):
Command-C should still copy the selected message.
2015-08-17 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Update slider styles
https://bugs.webkit.org/show_bug.cgi?id=148120
Reviewed by Timothy Hatcher.
* UserInterface/Views/Main.css:
(input[type=range]):
(input[type=range]::-webkit-slider-runnable-track::before):
2015-08-17 Devin Rousso <drousso@apple.com>
Web Inspector: font-family list is backwards in visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148101
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._addCommaSeparatedKeyword):
Now appends new children if the current index is not set instead of inserting them.
2015-08-17 Devin Rousso <drousso@apple.com>
Web Inspector: Style changes to Visual sidebar selector items
https://bugs.webkit.org/show_bug.cgi?id=148114
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype._updateTitleElements):
(WebInspector.GeneralTreeElement.prototype._updateTitleTooltip):
Moved the code to update the item tooltip to its own function.
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.editorMouseover):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.editorMouseout):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners):
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
(WebInspector.VisualStyleDetailsPanel.prototype._populateMarginSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populatePaddingSection):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseover): Deleted.
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseout): Deleted.
Added on-hover node/selector highlighting to margin and padding editor links.
* UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox):
Replaced "No Units" with "Number" for better clarity.
* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(body:not(.window-inactive, .window-docked-inactive) .item.visual-style-selector-item.selected > input[type="checkbox"]:checked::before):
(.item.visual-style-selector-item.selected > input[type="checkbox"]::before): Deleted.
Removes the white border when the window is inactive and when the checkbox is unchecked.
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
Now updates the title of the item when the selector changes.
2015-08-17 Devin Rousso <drousso@apple.com>
Web Inspector: delete key should work on multi-values visual sidebar grid sections
https://bugs.webkit.org/show_bug.cgi?id=148110
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._listElementKeyDown):
If the backspace/delete key is pressed when focus is within the list element, delete
the selected list item if it is not currently being edited (if it has an editor).
* UserInterface/Views/VisualStyleFontFamilyTreeElement.js:
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.get currentlyEditing):
2015-08-17 Devin Rousso <drousso@apple.com>
Web Inspector: web fonts or unknown fonts show up as Times in visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148103
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStyleFontFamilyTreeElement.js:
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.updateMainTitle):
Fonts now fall back to sans-serif and -apple-system if they do not exist.
2015-08-17 Myles C. Maxfield <mmaxfield@apple.com>
Implement IntegerHasher
https://bugs.webkit.org/show_bug.cgi?id=147866
Reviewed by Darin Adler and Anders Carlsson.
Update comment.
* UserInterface/Base/Utilities.js:
2015-08-17 Brian Burg <bburg@apple.com>
Web Inspector: InspectorTest should be a subclass of TestHarness
https://bugs.webkit.org/show_bug.cgi?id=148079
Reviewed by Timothy Hatcher.
Extract the frontend test harness into a subclass. Delete some code that
is now redundant. Sprinkle some ES6 syntax where possible.
Rewrite the code that redirects the Inspector page's console messages to
the test page, since it didn't appear to work any more.
* UserInterface/Test.html:
* UserInterface/Test/FrontendTestHarness.js: Added.
(FrontendTestHarness):
(FrontendTestHarness.prototype.completeTest):
(FrontendTestHarness.prototype.addResult):
(FrontendTestHarness.prototype.debugLog):
(FrontendTestHarness.prototype.evaluateInPage):
(FrontendTestHarness.prototype.expectNoError):
(FrontendTestHarness.prototype.testPageDidLoad):
(FrontendTestHarness.prototype.reloadPage):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput.createProxyConsoleHandler):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput):
(FrontendTestHarness.prototype.reportUncaughtException):
(FrontendTestHarness.prototype._resendResults):
* UserInterface/Test/Test.js:
(InspectorTest.EventDispatcher.prototype.dispatchEvent): Deleted.
(InspectorTest.EventDispatcher): Deleted.
(InspectorTest.log): Deleted.
(InspectorTest.assert): Deleted.
(InspectorTest.expectThat): Deleted.
(InspectorTest.debugLog): Deleted.
(InspectorTest.expectNoError): Deleted.
(InspectorTest.completeTest): Deleted.
(InspectorTest.evaluateInPage): Deleted.
(InspectorTest.addResult): Deleted.
(InspectorTest._resendResults): Deleted.
(InspectorTest.testPageDidLoad): Deleted.
(InspectorTest.reloadPage): Deleted.
(InspectorTest.reportUncaughtException): Deleted.
2015-08-17 Saam barati <sbarati@apple.com>
Web Inspector: Type profiler return types aren't showing up
https://bugs.webkit.org/show_bug.cgi?id=147348
Reviewed by Brian Burg.
Bug #145995 changed the starting offset of a function to
be the open parenthesis of the function's parameter list.
This broke the type profiler's text offset based protocol with JSC.
The text offset used in the protocol is now the first letter of the
function/get/set/method name. So "f" in "function a() {}", "s" in "set foo(){}", etc.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
(WebInspector.ScriptSyntaxTree.functionReturnDivot):
2015-08-17 Brian Burg <bburg@apple.com>
Web Inspector: REGRESSION: spurious console.assert inside ResourceContentView._contentAvailable
https://bugs.webkit.org/show_bug.cgi?id=147886
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype._hasContent): Fix the style class name.
2015-08-17 Brian Burg <bburg@apple.com>
Web Inspector: split TestStub.js into multiple files and modernize it
https://bugs.webkit.org/show_bug.cgi?id=148077
Reviewed by Timothy Hatcher.
Since we want to share files between the two harnesses, split some of the parts
into different files so not everything has to be included at once.
Rename InjectedTestHarness to just TestHarness. Update some code to use
ES6 features where appropriate. Put test classes into Test/ directory.
* UserInterface/Base/TestStub.js: Removed.
* UserInterface/Test.html:
* UserInterface/Test/InspectorProtocol.js: Added.
(InspectorProtocol.sendCommand):
(InspectorProtocol.awaitCommand):
(InspectorProtocol.awaitEvent.):
(InspectorProtocol.awaitEvent):
(InspectorProtocol.addEventListener):
(InspectorProtocol.sendMessage):
(InspectorProtocol.checkForError):
(InspectorProtocol.dispatchMessageFromBackend):
* UserInterface/Test/ProtocolTestHarness.js: Added.
(ProtocolTestHarness.prototype.completeTest):
(ProtocolTestHarness.prototype.addResult):
(ProtocolTestHarness.prototype.debugLog):
(ProtocolTestHarness.prototype.evaluateInPage):
(ProtocolTestHarness):
* UserInterface/Test/Test.js: Renamed from Source/WebInspectorUI/UserInterface/Base/Test.js.
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.UIString):
(WebInspector.updateDockedState):
(WebInspector.updateDockingAvailability):
(InspectorTest.EventDispatcher.prototype.dispatchEvent):
(InspectorTest.EventDispatcher):
(InspectorTest.log):
(InspectorTest.assert):
(InspectorTest.expectThat):
(InspectorTest.debugLog):
(InspectorTest.expectNoError):
(InspectorTest.completeTest):
(InspectorTest.evaluateInPage):
(InspectorTest.addResult):
(InspectorTest._resendResults):
(InspectorTest.testPageDidLoad):
(InspectorTest.reloadPage):
(InspectorTest.reportUncaughtException):
* UserInterface/Test/TestHarness.js: Added.
(TestHarness):
(TestHarness.prototype.completeTest):
(TestHarness.prototype.addResult):
(TestHarness.prototype.debugLog):
(TestHarness.prototype.evaluateInPage):
(TestHarness.prototype.createAsyncSuite):
(TestHarness.prototype.createSyncSuite):
(TestHarness.prototype.get logCount):
(TestHarness.prototype.log):
(TestHarness.prototype.assert):
(TestHarness.prototype.expectThat):
* UserInterface/Test/TestStub.js: Added.
* UserInterface/Test/TestSuite.js: Added.
(TestSuite):
(TestSuite.prototype.runTestCasesAndFinish):
(TestSuite.prototype.runTestCases):
(TestSuite.prototype.get passCount):
(TestSuite.prototype.get skipCount):
(TestSuite.prototype.addTestCase):
(AsyncTestSuite.prototype.runTestCasesAndFinish.finish):
(AsyncTestSuite.prototype.runTestCasesAndFinish):
(AsyncTestSuite.prototype.runTestCases):
(AsyncTestSuite):
(SyncTestSuite.prototype.runTestCasesAndFinish):
(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):
* UserInterface/TestStub.html:
2015-08-17 Brian Burg <bburg@apple.com>
Web Inspector: load ProtocolTestStub from the WebInspectorUI bundle
https://bugs.webkit.org/show_bug.cgi?id=147955
Reviewed by Timothy Hatcher.
Move ProtocolTestStub.{html,js} into the actual WebInspectorUI project.
* UserInterface/Base/TestStub.js: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.js.
* UserInterface/TestStub.html: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.html.
2015-08-17 Simon Fraser <simon.fraser@apple.com>
will-change should sometimes trigger compositing
https://bugs.webkit.org/show_bug.cgi?id=148072
Reviewed by Tim Horton.
Have the web inspector show a correct compositing reason for will-change.
This could be improved to indicate which specific value in will-change triggered
the compositing.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
(WebInspector.LayerTreeDetailsSidebarPanel):
2015-08-14 Matt Baker <mattbaker@apple.com>
Web Inspector: NavigationBar.updateLayoutSoon should use requestAnimationFrame
https://bugs.webkit.org/show_bug.cgi?id=148010
Reviewed by Brian Burg.
NavigationBar.updateLayoutSoon now uses requestAnimationFrame instead of setTimeout.
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar):
(WebInspector.NavigationBar.prototype.updateLayoutSoon.update):
(WebInspector.NavigationBar.prototype.updateLayoutSoon):
(WebInspector.NavigationBar.prototype.updateLayout):
2015-08-14 Devin Rousso <drousso@apple.com>
Web Inspector: Add VisualStyleDetailsPanel
https://bugs.webkit.org/show_bug.cgi?id=147570
Reviewed by Timothy Hatcher.
Added VisualStyleDetailsPanel and inclusions to forthcoming classes
that will be used in this visual sidebar panel.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
Added files for all new classes used in the VisualStyleDetailsPanel.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
* UserInterface/Views/DetailsSection.js:
(WebInspector.DetailsSection):
(WebInspector.DetailsSection.prototype.set collapsed):
(WebInspector.DetailsSection.prototype.get expandedByUser):
(WebInspector.DetailsSection.prototype._headerElementClicked):
Track whether or not the expanded state was caused by the user.
* UserInterface/Views/VisualStyleDetailsPanel.css: Added.
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .visual-style-section-clear):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section:not(.modified) > .header > .visual-style-section-clear):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > span):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section.modified > .header > span::after):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row:last-child):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row.visual-style-separated-row):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container > .visual-style-property-title):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container:not(.layout-reversed):last-child):
(.sidebar > .panel.details.css-style .visual.disabled > .details-section:not(.visual-style-selector-section)):
(.sidebar > .panel.details.css-style .visual.disabled > .details-section:not(.visual-style-selector-section) input):
* UserInterface/Views/VisualStyleDetailsPanel.js: Added.
(WebInspector.VisualStyleDetailsPanel):
(WebInspector.VisualStyleDetailsPanel.prototype.refresh):
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection.replaceDashWithCapital):
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection.createOptionsElement):
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection):
(WebInspector.VisualStyleDetailsPanel.prototype._prepareForChange):
(WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
(WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
(WebInspector.VisualStyleDetailsPanel.prototype._updateAutocompleteCompatiblePropertyEditor):
(WebInspector.VisualStyleDetailsPanel.prototype._sectionModified):
(WebInspector.VisualStyleDetailsPanel.prototype._clearModifiedSection):
(WebInspector.VisualStyleDetailsPanel.prototype.get _initialTextList):
(WebInspector.VisualStyleDetailsPanel.prototype._initialPropertyTextModified):
(WebInspector.VisualStyleDetailsPanel.prototype._populateSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateDisplaySection):
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
(WebInspector.VisualStyleDetailsPanel.prototype._populatePositionSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateFloatSection):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseover):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseout):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners):
(WebInspector.VisualStyleDetailsPanel.prototype._populateDimensionsSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateMarginSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populatePaddingSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateFlexboxSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTextStyleSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateFontSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTextSpacingSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTextShadowSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateOutlineSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.noRemainingTreeItems):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.selectedBoxShadowItemValueChanged):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.boxShadowItemSelected):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.noRemainingTreeItems):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.selectedtransitionItemValueChanged):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.transitionItemSelected):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection):
2015-08-14 Devin Rousso <drousso@apple.com>
Web Inspector: Highlight DOM node attribute changes in parallel, not sequentially
https://bugs.webkit.org/show_bug.cgi?id=148019
Reviewed by Brian Burg.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._markNodeChanged):
(WebInspector.DOMTreeElement.prototype._nodeChangedAnimationEnd):
Now removes the animated element from the updated list once the animation ends.
2015-08-14 Matt Baker <mattbaker@apple.com>
Web Inspector: Long delay when row selection changes in timeline data grids
https://bugs.webkit.org/show_bug.cgi?id=148005
Reviewed by Brian Burg.
Selecting a tree element in the Timelines sidebar generates multiple
WebInspector.ContentView.SelectionPathComponentsDidChange events, each of which
causes NavigationBar to update its layout (which is extremely expensive).
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
Call updateLayoutSoon instead of updateLayout to coalesce layout requests.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._recordSelected):
When the selected record changes in the overview graph, make sure the record's tree element
isn't already selected. Reselecting the tree element results in an extra NavigationBar layout.
2015-08-14 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r188396): Rendering Frames timeline ruler dividers are off by 1px
https://bugs.webkit.org/show_bug.cgi?id=148040
Reviewed by Brian Burg.
* UserInterface/Views/TimelineOverview.css:
(.timeline-overview.frames > .timeline-ruler > .markers > .divider):
(.timeline-overview.frames > .timeline-ruler > .header > .divider): Deleted.
All ruler dividers should be translated by the same amount.
2015-08-14 Devin Rousso <drousso@apple.com>
Web Inspector: Style changes to Visual sidebar editors
https://bugs.webkit.org/show_bug.cgi?id=148021
Reviewed by Brian Burg.
Various style fixes and feature enhancements in some of the Visual style property editors.
* UserInterface/Views/VisualStyleColorPicker.css:
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):
(.visual-style-property-container.input-color-picker.multiple > .visual-style-property-value-container > .visual-style-multiple-property-placeholder):
* UserInterface/Views/VisualStyleKeywordCheckbox.css:
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input):
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::before):
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > input): Deleted.
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > div): Deleted.
Replaced the SVG image before the checkbox with a :before pseudo-element with content.
* UserInterface/Views/VisualStyleKeywordCheckbox.js:
(WebInspector.VisualStyleKeywordCheckbox):
Removed the SVG image before the checkbox.
* UserInterface/Views/VisualStyleKeywordPicker.js:
(WebInspector.VisualStyleKeywordPicker.prototype.get value):
(WebInspector.VisualStyleKeywordPicker.prototype.set value):
(WebInspector.VisualStyleKeywordPicker.prototype.set placeholder):
(WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype._getValue):
(WebInspector.VisualStyleKeywordPicker.prototype._setValue):
(WebInspector.VisualStyleKeywordPicker.prototype._generateSynthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype._handleKeywordChanged):
Due to a current bug (https://webkit.org/b/147064), you cannot extend ES6 getters/setters. In order to work
around this, a member function was added that performs the same action as the getter/setter, but can be extended.
* UserInterface/Views/VisualStylePropertyEditorLink.css:
(.visual-style-property-editor-link.linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon):
* UserInterface/Views/VisualStyleRelativeNumberSlider.js:
(WebInspector.VisualStyleRelativeNumberSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._resetSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._sliderChanged):
* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item.selected > input[type="checkbox"]::before):
(.item.visual-style-selector-item.modified > .icon):
(.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title:focus):
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
Added another context menu item to show the source location for the selected rule.
2015-08-14 Devin Rousso <drousso@apple.com>
Web Inspector: Add visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147576
Added parent class for property editors in the Visual style
details panel in the CSS sidebar.
Reviewed by Timothy Hatcher.
* UserInterface/Views/VisualStylePropertyCombiner.js: Added.
(WebInspector.VisualStylePropertyCombiner):
(WebInspector.VisualStylePropertyCombiner.prototype.get style):
(WebInspector.VisualStylePropertyCombiner.prototype.get synthesizedValue):
(WebInspector.VisualStylePropertyCombiner.prototype.modifyPropertyText):
(WebInspector.VisualStylePropertyCombiner.prototype.update):
(WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateCompatibleEditor):
(WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText):
(WebInspector.VisualStylePropertyCombiner.prototype.propertyMissing):
(WebInspector.VisualStylePropertyCombiner.prototype.resetEditorValues):
(WebInspector.VisualStylePropertyCombiner.prototype._markEditors):
(WebInspector.VisualStylePropertyCombiner.prototype._handlePropertyEditorValueChanged):
* UserInterface/Views/VisualStylePropertyEditor.css: Added.
(.visual-style-property-container):
(.visual-style-property-container > .visual-style-property-title):
(.visual-style-property-container > .visual-style-property-title > .property-reference-info):
(.visual-style-property-container.disabled > .visual-style-property-title > :not(.property-reference-info)):
(.visual-style-property-container > .visual-style-property-value-container):
(.visual-style-property-container.disabled > .visual-style-property-value-container):
(.visual-style-property-container > .visual-style-property-value-container select):
(.visual-style-property-container > .visual-style-property-value-container input):
(.visual-style-property-container.disabled > .visual-style-property-value-container input):
(.visual-style-property-container.layout-reversed > .visual-style-property-title):
(.visual-style-property-container > .visual-style-property-value-container > .visual-style-special-property-placeholder):
(.visual-style-property-info-popover):
(.visual-style-property-info-popover > h3):
* UserInterface/Views/VisualStylePropertyEditor.js: Added.
(WebInspector.VisualStylePropertyEditor.canonicalizeValues):
(WebInspector.VisualStylePropertyEditor):
(WebInspector.VisualStylePropertyEditor.prototype.get element):
(WebInspector.VisualStylePropertyEditor.prototype.get style):
(WebInspector.VisualStylePropertyEditor.prototype.get value):
(WebInspector.VisualStylePropertyEditor.prototype.set value):
(WebInspector.VisualStylePropertyEditor.prototype.get units):
(WebInspector.VisualStylePropertyEditor.prototype.set units):
(WebInspector.VisualStylePropertyEditor.prototype.get placeholder):
(WebInspector.VisualStylePropertyEditor.prototype.set placeholder):
(WebInspector.VisualStylePropertyEditor.prototype.get synthesizedValue):
(WebInspector.VisualStylePropertyEditor.prototype.set suppressStyleTextUpdate):
(WebInspector.VisualStylePropertyEditor.prototype.set masterProperty):
(WebInspector.VisualStylePropertyEditor.prototype.get masterProperty):
(WebInspector.VisualStylePropertyEditor.prototype.set optionalProperty):
(WebInspector.VisualStylePropertyEditor.prototype.get optionalProperty):
(WebInspector.VisualStylePropertyEditor.prototype.set colorProperty):
(WebInspector.VisualStylePropertyEditor.prototype.get colorProperty):
(WebInspector.VisualStylePropertyEditor.prototype.get propertyReferenceName):
(WebInspector.VisualStylePropertyEditor.prototype.set propertyReferenceName):
(WebInspector.VisualStylePropertyEditor.prototype.set disabled):
(WebInspector.VisualStylePropertyEditor.prototype.get disabled):
(WebInspector.VisualStylePropertyEditor.prototype.update):
(WebInspector.VisualStylePropertyEditor.prototype.updateEditorValues):
(WebInspector.VisualStylePropertyEditor.prototype.resetEditorValues):
(WebInspector.VisualStylePropertyEditor.prototype.modifyPropertyText):
(WebInspector.VisualStylePropertyEditor.prototype.getValuesFromText):
(WebInspector.VisualStylePropertyEditor.prototype.propertyMissing):
(WebInspector.VisualStylePropertyEditor.prototype.valueIsCompatible):
(WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedKeyword):
(WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedUnit):
(WebInspector.VisualStylePropertyEditor.prototype.get contentElement):
(WebInspector.VisualStylePropertyEditor.prototype.get specialPropertyPlaceholderElement):
(WebInspector.VisualStylePropertyEditor.prototype.parseValue):
(WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedKeyword):
(WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedUnit):
(WebInspector.VisualStylePropertyEditor.prototype._canonicalizedKeywordForKey):
(WebInspector.VisualStylePropertyEditor.prototype._keyForKeyword):
(WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
(WebInspector.VisualStylePropertyEditor.prototype._replaceShorthandPropertyWithLonghandProperties):
(WebInspector.VisualStylePropertyEditor.prototype._titleElementPrepareForClick):
(WebInspector.VisualStylePropertyEditor.prototype._titleElementMouseOver):
(WebInspector.VisualStylePropertyEditor.prototype._titleElementMouseOut):
(WebInspector.VisualStylePropertyEditor.prototype._titleElementClick):
(WebInspector.VisualStylePropertyEditor.prototype._hasMultipleConflictingValues):
(WebInspector.VisualStylePropertyEditor.prototype._showPropertyInfoPopover):
(WebInspector.VisualStylePropertyEditor.prototype._toggleTabbingOfSelectableElements):
* UserInterface/Views/VisualStyleTabbedPropertiesRow.css: Added.
(.visual-style-tabbed-properties-row ~ :not(.visible)):
(.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container):
(.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button):
(.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button.selected):
(.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button:not(.selected):hover):
* UserInterface/Views/VisualStyleTabbedPropertiesRow.js: Added.
(WebInspector.VisualStyleTabbedPropertiesRow):
(WebInspector.VisualStyleTabbedPropertiesRow.prototype._handleButtonClicked):
2015-08-14 Devin Rousso <drousso@apple.com>
Web Inspector: Add Visual editors for CSS properties with comma separated values
https://bugs.webkit.org/show_bug.cgi?id=147578
Reviewed by Timothy Hatcher.
Displays comma separated CSS property values as a tree outline list.
* UserInterface/Images/Minus.svg: Added.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype.get selectedTreeElementIndex):
(WebInspector.TreeOutline):
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css: Added.
(.visual-style-property-container.comma-separated-keyword-editor):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list):
(.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-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)):
(.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):
(.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)):
(.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):
(.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 > *):
(.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):
(.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):
(.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):
(.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):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-controls):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-controls > div):
(.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):
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js: Added.
(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set selectedTreeElementValue):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.get value):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.get synthesizedValue):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeElementSelected):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeItemIsEmpty):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._addEmptyCommaSeparatedKeyword):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._removeSelectedCommaSeparatedKeyword):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._removeEmptyCommaSeparatedKeywords):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._addCommaSeparatedKeyword):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._removeCommaSeparatedKeyword):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._createNewTreeElement):
* UserInterface/Views/VisualStyleFontFamilyListEditor.js: Added.
(WebInspector.VisualStyleFontFamilyListEditor):
(WebInspector.VisualStyleFontFamilyListEditor.prototype.visualStyleCompletionsControllerCustomizeCompletionElement):
(WebInspector.VisualStyleFontFamilyListEditor.prototype.get hasCompletions):
(WebInspector.VisualStyleFontFamilyListEditor.prototype.set completions):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._modifyCommaSeparatedKeyword):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._addCommaSeparatedKeyword):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._addEmptyCommaSeparatedKeyword):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._completionClicked):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._treeElementKeyDown):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._treeElementKeywordChanged):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._hideCompletions):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._createNewTreeElement):
* UserInterface/Views/VisualStyleFontFamilyTreeElement.js: Added.
(WebInspector.VisualStyleFontFamilyTreeElement):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.editorBounds):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.updateMainTitle):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.showKeywordEditor):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.hideKeywordEditor):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.get keywordEditorHidden):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.onattach):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.ondeselect):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype._keywordEditorKeyDown):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype._keywordEditorKeyUp):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype._keywordEditorBlurred):
2015-08-14 Devin Rousso <drousso@apple.com>
Web Inspector: Add autocomplete controller for Visual property editors
https://bugs.webkit.org/show_bug.cgi?id=147579
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/VisualStyleCompletionsController.js: Added.
(WebInspector.VisualStyleCompletionsController):
Takes in a CSSCompletions and displays a list of suggestions based on a given prefix in a popover.
(WebInspector.VisualStyleCompletionsController.prototype.get visible):
(WebInspector.VisualStyleCompletionsController.prototype.get hasCompletions):
(WebInspector.VisualStyleCompletionsController.prototype.get currentCompletion):
(WebInspector.VisualStyleCompletionsController.prototype.set completions):
(WebInspector.VisualStyleCompletionsController.prototype.completionSuggestionsViewCustomizeCompletionElement):
(WebInspector.VisualStyleCompletionsController.prototype.previous):
(WebInspector.VisualStyleCompletionsController.prototype.next):
(WebInspector.VisualStyleCompletionsController.prototype.update):
(WebInspector.VisualStyleCompletionsController.prototype.show):
(WebInspector.VisualStyleCompletionsController.prototype.hide):
* UserInterface/Models/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
Make sure that the cssNameCompletions exist before trying to add them.
* UserInterface/Views/CompletionSuggestionsView.js:
(WebInspector.CompletionSuggestionsView.prototype.update):
Allow the delegate to modify the newly created completion suggestion item.
2015-08-14 Devin Rousso <drousso@apple.com>
Web Inspector: Add a visual editor for timing functions
https://bugs.webkit.org/show_bug.cgi?id=148022
Reviewed by Timothy Hatcher.
Uses the existing bezier editor and the Visual keyword picker to make an editor for timing functions.
* UserInterface/Views/VisualStyleTimingEditor.css: Added.
(.visual-style-property-container.timing-editor > .visual-style-property-value-container):
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .keyword-picker-select):
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor):
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:hover):
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:active):
* UserInterface/Views/VisualStyleTimingEditor.js: Added.
(WebInspector.VisualStyleTimingEditor):
(WebInspector.VisualStyleTimingEditor.prototype.parseValue):
(WebInspector.VisualStyleTimingEditor.prototype.get bezierValue):
(WebInspector.VisualStyleTimingEditor.prototype.set bezierValue):
(WebInspector.VisualStyleTimingEditor.prototype._getValue):
(WebInspector.VisualStyleTimingEditor.prototype._setValue):
(WebInspector.VisualStyleTimingEditor.prototype._generateSynthesizedValue):
(WebInspector.VisualStyleTimingEditor.prototype._bezierMarkerClicked):
(WebInspector.VisualStyleTimingEditor.prototype._handleKeywordChanged):
2015-08-13 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Can't resize split console when window is too narrow
https://bugs.webkit.org/show_bug.cgi?id=147924
Make some items inside of the navigation bar click-through to incsease
the draggable area.
Reviewed by Timothy Hatcher.
* UserInterface/Views/Main.css:
(#split-content-browser > .navigation-bar > :matches(.hierarchical-path, .log-search-bar, .log-scope-bar)):
(#split-content-browser > .navigation-bar > :matches(.log-search-bar, .log-scope-bar) > :matches(li, input)):
2015-08-13 Devin Rousso <drousso@apple.com>
Web Inspector: Flash DOM node attribute on change
https://bugs.webkit.org/show_bug.cgi?id=147973
Reviewed by Timothy Hatcher.
Whenever an attribute on a DOM node changes, flash the attribute value.
If that value doesn't exist, flash the attribute name instead.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype.nodeChanged):
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
If the node has been marked with a general change, mark the attribute element for animation.
(WebInspector.DOMTreeElement.prototype._markNodeChanged.animationEnd):
(WebInspector.DOMTreeElement.prototype._markNodeChanged):
Adds a class to the given element that applies a simple background flash animation.
(WebInspector.DOMTreeElement.prototype._fireDidChange):
Add the animation class once all building of the represented DOM object for that node is done.
* UserInterface/Views/DOMTreeOutline.css:
(@keyframes node-state-changed):
Applies a semi-transparent background that fades to default.
(.node-state-changed):
* UserInterface/Views/DOMTreeUpdater.js:
(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
Now passes along the name of the modified attribute.
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
If the modified node object has an attribute member, mark the node as being generally changed.
2015-08-13 Devin Rousso <drousso@apple.com>
REGRESSION (r184000): Web Inspector: Stripped whitespace after editing CSS in Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=145679
Reviewed by Timothy Hatcher.
The formatter will now calculate the number of beginning spaces before the first line in a rule
and duplicate them in front of every other line. If there is no new line at the beginning or are
no spaces, assume 4 spaces and a new line for each property.
Also cleaned up the code for _resetContent a bit.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.set get this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.get this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):
2015-08-13 Matt Baker <mattbaker@apple.com>
Web Inspector: Skip rendering frame records without children
https://bugs.webkit.org/show_bug.cgi?id=147993
Reviewed by Reviewed by Joseph Pecoraro.
This became an issue for frames which include an IndexedDB "success" event. This caused the
payload to pass the "has children" test, but resulted in model objects with no child records.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded):
Fixed record type check and moved rendering frame index assignment.
* UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.prototype.setupFrameIndex):
Frame index is now set externally, and can only be set once.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype._renderingFrameTimelineRecordAdded):
Added assertion.
2015-08-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Watch Expressions
https://bugs.webkit.org/show_bug.cgi?id=147904
Reviewed by Brian Burg.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
A RemoteObject's description string is optional, but we always
assume it exists and is a string, so default to the empty string.
* UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow.evalCallback):
Include the object group in the DidEvaluate event.
(WebInspector.RemoteObject.fakeRemoteObject):
(WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
(WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties.get return):
(WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties):
(WebInspector.RemoteObject.prototype._isFakeObject):
(WebInspector.RemoteObject.prototype._getPropertyDescriptors):
(WebInspector.RemoteObject.prototype._deprecatedGetProperties):
Support a fake RemoteObject. We use this fake RemoteObject to
back a ObjectTreeView where we add custom Properties which are of the form
"Expressions => RemoteObject" instead of "Object Property => RemoteObject".
Ensure a fake remote object is not used in unexpected ways.
* UserInterface/Views/Popover.js:
(WebInspector.Popover.prototype.update):
Default a popover update to animate, but allow not animating.
(WebInspector.Popover.prototype.handleEvent):
Vend a class that other content can use so that the Popover won't
dismiss if content with that class is scrolled. For example, a
completions list may be showing over a popover, if that scrolls
it should not dismiss the popover.
* UserInterface/Views/CompletionSuggestionsView.js:
(WebInspector.CompletionSuggestionsView):
Adopt the Popover ignore class so a popover won't dismiss if the
completion suggestions view is scrolled.
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement.get return):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement):
Allow modifying the context menu on an ObjectTreeView by looking for a delegate
on the TreeOutline.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.css: Added.
(.details-section.watch-expressions .options > *):
(.details-section.watch-expressions .options > *:active):
(.details-section.watch-expressions .options > .watch-expression-add):
(.details-section.watch-expressions .options > .watch-expression-clear):
(.details-section.watch-expressions .options > .watch-expression-refresh):
(.popover .watch-expression):
(.watch-expression-editor):
(.watch-expression-editor > .CodeMirror):
(.watch-expression-editor > .CodeMirror-scroll):
Styles for the new Watch Expressions section, buttons, popover, and editor.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.inspect):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
Because we update the UI after a delay, to allow ObjectTreeView's to asynchronously
expand and fetch their list of properties, we convert updating the watch expression
and call frame sections asynchronously and return a promise. This lets us visually
update the UI after both sections have updated.
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._removeWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressions):
Modify the saved list of watch expressions.
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.presentPopoverOverTargetElement):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.this._codeMirror.addKeyMap):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.willDismissPopover):
Handle presenting and dismissing the add watch expression popover.
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._refreshAllWatchExpressionsButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressionsButtonClicked):
Other button handlers.
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._mainResourceDidChange):
Refresh the sidebar on navigation, as the watch expressions may change value (`location.href`).
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeElementAddContextMenuItems):
Add our own context menu items to watch expression ObjectTreeView tree elements to
allow removing a watch expression.
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._propertyPathIdentifierForTreeElement):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeAddHandler):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler):
Convert code to use `let`.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
Misc. changes.
2015-08-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: A {Map, WeakMap, Set, WeakSet} object contains itself will hang the console
https://bugs.webkit.org/show_bug.cgi?id=147966
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
For empty overflow previews, don't show ", ..." if we didn't show any
values; just show "..." in these cases.
2015-08-13 Matt Baker <mattbaker@apple.com>
Web Inspector: Hide child rows for filtered tasks in the Rendering Frames data grid
https://bugs.webkit.org/show_bug.cgi?id=147960
Reviewed by Timothy Hatcher.
* UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord.taskTypeForTimelineRecord):
New static method for mapping TimelineRecords to rendering frame tasks.
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask):
Refactored to use taskTypeForTimelineRecord.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
Task filtering is applied to children of the frame record only. Parent frame
record is hidden by default, and visible by virtue of having unfiltered children.
2015-08-13 Matt Baker <mattbaker@apple.com>
Web Inspector: Clearing frames timeline doesn't remove current time marker
https://bugs.webkit.org/show_bug.cgi?id=147650
Reviewed by Timothy Hatcher.
The rendering frames timeline offsets all markers by 1px to align them on frame
boundaries, which causes the current time marker to be visible even with left: 0px.
We can exclude the current time marker without it being noticable during recording.
* UserInterface/Views/TimelineOverview.css:
2015-08-13 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r188325): Web Inspector: Fix vertical spacing in CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=147971
r188325 inceased line-height by 2px. Remove top and bottom 1px padding
to compensate for line-height changes.
In the feature we may highlight the backgroud of text tokens (e.g. for the
heatmap profiler) so we would want to get rid of the gaps between the lines
(caused by the paddind) regardless of this regression.
Reviewed by Timothy Hatcher.
* UserInterface/Views/CodeMirrorOverrides.css:
(.CodeMirror pre):
2015-08-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Sometimes CSS resources don't update after editing via Styles panel
https://bugs.webkit.org/show_bug.cgi?id=143244
Reviewed by Timothy Hatcher.
* UserInterface/Models/SourceCode.js:
(WebInspector.SourceCode.prototype._processContent):
This code is brittle and we should move off of putting the
possibly stale content in the Promise result.
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype._contentAvailable):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._contentAvailable):
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype.requestScriptSyntaxTree):
Use the current source code's content.
2015-08-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix Poor Class Names
https://bugs.webkit.org/show_bug.cgi?id=147958
Reviewed by Timothy Hatcher.
* UserInterface/Views/ClusterContentView.js:
* UserInterface/Views/ResourceContentView.js:
2015-08-12 Devin Rousso <drousso@apple.com>
Web Inspector: Opening the Elements tab without a selected sidebar panel causes a crash
https://bugs.webkit.org/show_bug.cgi?id=147965
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
If the saved setting for the selectedPanel does not exist, default to the rules panel.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
Only save the new navigationItem info if the selectedPanel exists.
2015-08-12 Matt Baker <mattbaker@apple.com>
Web Inspector: Remove clamp and adopt Number.constrain
https://bugs.webkit.org/show_bug.cgi?id=147952
Reviewed by Timothy Hatcher.
* UserInterface/Base/Utilities.js:
Removed clamp function.
* UserInterface/Views/BezierEditor.js:
(WebInspector.BezierEditor.prototype._updateControlPointsForMouseEvent):
* UserInterface/Views/ProfileNodeDataGridNode.js:
(WebInspector.ProfileNodeDataGridNode.prototype.updateRangeTimes):
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.updateRangeTimes):
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._updateSelection):
Replaced instances of clamp with Number.constrain.
2015-08-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DOM Node should have context menu to scroll it into view on the inspected page
https://bugs.webkit.org/show_bug.cgi?id=147913
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._updateChildren.set continue):
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
Add a context menu item to scroll into view for element nodes.
(WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode.scrollIntoView):
(WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode):
(WebInspector.DOMTreeElement.prototype._scrollIntoView):
Call scrollIntoViewIfNeeded on the real Node.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.populateContextMenu):
Remove unused parameter.
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
Add context menu for Nodes in ObjectTrees.
2015-08-12 Dan Bernstein <mitz@apple.com>
Removed the executable bit from non-executable source.
* UserInterface/External/CodeMirror/LICENSE: Removed property svn:executable.
* UserInterface/External/CodeMirror/clojure.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/closebrackets.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/codemirror.css: Removed property svn:executable.
* UserInterface/External/CodeMirror/codemirror.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/coffeescript.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/comment.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/css.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/htmlmixed.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/javascript.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/livescript.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/matchbrackets.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/overlay.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/placeholder.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/runmode.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/sass.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/searchcursor.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/sql.js: Removed property svn:executable.
* UserInterface/External/CodeMirror/xml.js: Removed property svn:executable.
2015-08-11 Matt Baker <mattbaker@apple.com>
Web Inspector: TimelineView data not cleared when recording is reset
https://bugs.webkit.org/show_bug.cgi?id=147916
Reviewed by Timothy Hatcher.
Each derived timeline view maintains a separate array of timeline records. These weren't
cleared on reset, so switching to a timeline view after clearing the recording caused
the view to populate its tree outline.
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.set columns):
(WebInspector.LayoutTimelineView):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.set columns):
(WebInspector.NetworkTimelineView):
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.reset):
(WebInspector.OverviewTimelineView.prototype._processPendingRepresentedObjects):
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.reset):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.reset):
2015-08-11 Matt Baker <mattbaker@apple.com>
Web Inspector: Dragging a timeline ruler handle when both handles clamped is broken
https://bugs.webkit.org/show_bug.cgi?id=147912
Reviewed by Timothy Hatcher.
When clamped handles overlap, the handle nearest in time to the ruler's edge should be visible and
clickable, and the other should be hidden. This change ensures that clicking and dragging a ruler
handle to modify a selection outside the visible area works correctly.
* UserInterface/Views/TimelineOverview.css:
(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.right):
Style adjustment for rendering frames, which offsets the right handle by 5px instead of 4px.
(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.right):
Style adjustment for rendering frames, which offsets the right shaded area by 1px.
(.timeline-overview.frames > .timeline-ruler > .selection-handle.right): Deleted.
(.timeline-overview.frames > .timeline-ruler > .shaded-area.right): Deleted.
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler.both-handles-clamped > .selection-handle):
Updated handle style when both are clamped.
(.timeline-ruler > .selection-handle.clamped.hidden):
Hide the clamped handle that is beneath the other clamped handle.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._updateSelection):
2015-08-11 Devin Rousso <drousso@apple.com>
Web Inspector: Disabling attribute styles should not be possible
https://bugs.webkit.org/show_bug.cgi?id=147922
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
Increases the specificity of the if statement that adds rule disable state toggling to the icon.
2015-08-11 Devin Rousso <drousso@apple.com>
Web Inspector: Update to CodeMirror 5.5 or later
https://bugs.webkit.org/show_bug.cgi?id=147109
Reviewed by Timothy Hatcher.
Updated CodeMirror to version 5.5, as well as the extension files for CodeMirror
that are currently used in WebInspector.
* Localizations/en.lproj/localizedStrings.js:
* Tools/PrettyPrinting/FormatterDebug.js:
Added WebInspector namespace for formatters.
* Tools/PrettyPrinting/index.html:
Added WebInspector namespace for formatters.
* UserInterface/External/CodeMirror/LICENSE:
* UserInterface/External/CodeMirror/clojure.js:
* UserInterface/External/CodeMirror/closebrackets.js:
* UserInterface/External/CodeMirror/codemirror.css:
* UserInterface/External/CodeMirror/codemirror.js:
* UserInterface/External/CodeMirror/coffeescript.js:
* UserInterface/External/CodeMirror/comment.js:
* UserInterface/External/CodeMirror/css.js:
* UserInterface/External/CodeMirror/htmlmixed.js:
* UserInterface/External/CodeMirror/javascript.js:
* UserInterface/External/CodeMirror/livescript.js:
* UserInterface/External/CodeMirror/matchbrackets.js:
* UserInterface/External/CodeMirror/overlay.js:
* UserInterface/External/CodeMirror/sass.js:
* UserInterface/External/CodeMirror/searchcursor.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/xml.js:
* UserInterface/Views/CodeMirrorFormatters.js:
Now uses the new token in CodeMirror for media query parenthesis.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror pre):
Removed the additional vertical padding.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
Clicking on the end of a line in a style will now correctly insert a new line.
* UserInterface/Views/ComputedStyleDetailsPanel.css:
(.details-section > .content > .group > .row .CodeMirror-code pre .go-to-arrow):
The go-to arrow now has the proper dimensions.
* UserInterface/Views/HoverMenu.css:
(.hover-menu > img):
* UserInterface/Views/SourceCodeTextEditor.css:
(.hover-menu.color > img):
2015-08-11 Matt Baker <mattbaker@apple.com>
Web Inspector: Add the ability to filter out tasks in the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=147389
Reviewed by Timothy Hatcher.
Added filtering by task type to the Rendering Frames timeline view. Legend item checkboxes
in the timeline sidebar toggle filtering for the corresponding task. The "Other" category
cannot be filtered, since all rendering frame records include some "other" time in addition to
child records from at least one additional task type.
A row is filtered (hidden) from the data grid when the corresponding rendering frame has no
unfiltered child records.
* UserInterface/Base/Main.js:
(WebInspector._windowFocused):
(WebInspector._windowBlurred):
Added inactive style for docked window.
* UserInterface/Views/ChartDetailsSectionRow.css:
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > .color-key):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > input[type=checkbox]):
(body.window-inactive .details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > input[type=checkbox]):
(.details-section > .content > .group > .row.chart > .defs-only):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label > .color-swatch): Deleted.
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label): Deleted.
Switched to label elements, added checkbox styles, and updated color swatch style for non-checkbox items.
* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow):
Added svg filter container and style sheet element.
(WebInspector.ChartDetailsSectionRow.prototype.set data):
(WebInspector.ChartDetailsSectionRow.prototype._createLegend.createGammaPrimitive):
(WebInspector.ChartDetailsSectionRow.prototype._createLegend.createCheckboxFilterElement):
Helper function to create an svg:filter to blend legend key color over the native checkbox element.
Filter assumes grayscale input, and each checkbox requires a separate filter.
(WebInspector.ChartDetailsSectionRow.prototype._createLegend):
Creates legend items, svg filters, and checkbox style sheet.
(WebInspector.ChartDetailsSectionRow.prototype._legendItemCheckboxValueChanged):
Repackage and forward checkbox changed event.
(WebInspector.ChartDetailsSectionRow.prototype._createLegendItem): Deleted.
Logic moved to WebInspector.ChartDetailsSectionRow.prototype._createLegend.
* UserInterface/Views/TimelineSidebarPanel.js:
Added set of rendering frame task types against which tree elements can be filtered.
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
If filter is not empty, check ancestor rendering frame record for unfiltered data.
(WebInspector.TimelineSidebarPanel.prototype._frameSelectionLegendItemChecked):
Update task filter in response when legend items are checked/unchecked.
2015-08-11 Brent Fulgham <bfulgham@apple.com>
[Win] Switch Windows build to Visual Studio 2015
https://bugs.webkit.org/show_bug.cgi?id=147887
<rdar://problem/22235098>
Reviewed by Alex Christensen.
Update Visual Studio project file settings to use the current Visual
Studio and compiler. Continue targeting binaries to run on our minimum
supported configuration of Windows 7.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
2015-08-11 Brian Burg <bburg@apple.com>
Web Inspector: Agent commands do not actually return a promise when expected
https://bugs.webkit.org/show_bug.cgi?id=138665
Reviewed by Timothy Hatcher.
This patch unifies the handling of different invocation and dispatch modes in the
InspectorBackend protocol system. Command responses are dispatched to a provided
callback function; if no function was provided, then the command returns a promise.
Rather than awkwardly converting between promises and callbacks at invocation and
response dispatch time, the backend now stores the callback or promise thunks and
knows how to invoke each when the response comes. This mirrors how response handling
works in ProtocolTestStub.js. InspectorBackend includes more machinery to support Agent
objects and various debug flags.
Performanace impact is expected to be negligible, because there are relatively
few commands issued by the inspector frontend and returned promises are short-lived.
Remove all uses of Command.prototype.promise, since it is no longer necessary.
* UserInterface/Base/Test.js:
(InspectorTest.reloadPage):
* UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.prototype.getSession.get var):
(WebInspector.ReplayManager.getSegment.get var):
* UserInterface/Models/ReplaySession.js:
(WebInspector.ReplaySession.prototype.segmentsChanged):
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.requestContentFromBackend):
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype.requestContentFromBackend):
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource.prototype.requestContentFromBackend):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype.runAfterPendingDispatches):
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback.set this):
(InspectorBackendClass.set this):
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
(InspectorBackendClass.prototype._dispatchResponseToCallback):
(InspectorBackendClass.prototype._dispatchResponseToPromise):
(InspectorBackendClass.prototype._flushPendingScripts):
(InspectorBackend.Command.prototype.invoke):
(InspectorBackend.Command.prototype._invokeWithArguments):
(InspectorBackendClass.prototype._willSendMessageToBackend.set return): Deleted.
(InspectorBackendClass._dispatchCallback.get if): Deleted.
(InspectorBackendClass.prototype._willSendMessageToBackend): Deleted.
(InspectorBackendClass.prototype._invokeCommand): Deleted.
(.callable): Deleted.
(InspectorBackend.Command.create): Deleted.
(InspectorBackend.Command.prototype.promise): Deleted.
2015-08-11 Devin Rousso <drousso@apple.com>
Web Inspector: Hovering over an element in the Elements tab should highlight the whole line
https://bugs.webkit.org/show_bug.cgi?id=147855
Reviewed by Brian Burg.
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.hovered:not(.selected) .selection):
Removed the horizontal positioning and border radius.
2015-08-10 Devin Rousso <drousso@apple.com>
Web Inspector: Add numerical input and slider based Visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147712
Reviewed by Brian Burg.
Added editors for CSS properties with numerical values for use in the Visual style
details panel in the CSS sidebar, in the form of a combined select and input or an
input range. Also added optional visual linkages to sync values between multiple
editors of this type.
* UserInterface/Images/VisualStylePropertyLinked.svg: Added.
* UserInterface/Images/VisualStylePropertyUnlinked.svg: Added.
* UserInterface/Views/VisualStyleNumberInputBox.css: Added.
(.visual-style-property-container > .visual-style-property-value-container.focused > .focus-ring):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-keyword-select):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container):
(.visual-style-property-container > .visual-style-property-value-container:not(.number-input-editable) > .number-input-container):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container > .number-input-value):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container > span):
* UserInterface/Views/VisualStyleNumberInputBox.js: Added.
(WebInspector.VisualStyleNumberInputBox):
(WebInspector.VisualStyleNumberInputBox.prototype.get value):
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.get units):
(WebInspector.VisualStyleNumberInputBox.prototype.set units):
(WebInspector.VisualStyleNumberInputBox.prototype.get placeholder):
(WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
(WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
(WebInspector.VisualStyleNumberInputBox.prototype.get numberInputEditable):
(WebInspector.VisualStyleNumberInputBox.prototype.updateValueFromText):
(WebInspector.VisualStyleNumberInputBox.prototype.parseValue):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown.shiftValue):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown):
(WebInspector.VisualStyleNumberInputBox.prototype._numberInputChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordSelectMouseDown):
(WebInspector.VisualStyleNumberInputBox.prototype._createValueOptions):
(WebInspector.VisualStyleNumberInputBox.prototype._createUnitOptions):
(WebInspector.VisualStyleNumberInputBox.prototype._addAdvancedUnits):
(WebInspector.VisualStyleNumberInputBox.prototype._removeAdvancedUnits):
(WebInspector.VisualStyleNumberInputBox.prototype._focusContentElement):
(WebInspector.VisualStyleNumberInputBox.prototype._blurContentElement):
(WebInspector.VisualStyleNumberInputBox.prototype._toggleTabbingOfSelectableElements):
* UserInterface/Views/VisualStylePropertyEditorLink.css: Added.
(.visual-style-property-editor-link):
(.visual-style-property-editor-link.disabled):
(.visual-style-property-editor-link.link-all):
(.visual-style-property-editor-link.link-all.linked):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-icon:hover + .visual-style-property-editor-link-border.right):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.right):
(.visual-style-property-editor-link.linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border.right):
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link:not(.link-all).linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .filled):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .stroked):
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-icon):
(.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-icon):
* UserInterface/Views/VisualStylePropertyEditorLink.js: Added.
(WebInspector.VisualStylePropertyEditorLink):
(WebInspector.VisualStylePropertyEditorLink.prototype.get element):
(WebInspector.VisualStylePropertyEditorLink.prototype.set disabled):
(WebInspector.VisualStylePropertyEditorLink.prototype._linkedPropertyValueChanged):
(WebInspector.VisualStylePropertyEditorLink.prototype._updateLinkedEditors):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconMouseover):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconMouseout):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconClicked):
* UserInterface/Views/VisualStyleRelativeNumberSlider.css: Added.
(.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-title):
(.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-value-container):
(.visual-style-property-container.number-input-box.relative-number-slider.disabled > .relative-slider):
(.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-value-container.no-values.no-units):
(.visual-style-property-container.number-input-box.relative-number-slider > .relative-slider):
* UserInterface/Views/VisualStyleRelativeNumberSlider.js: Added.
(WebInspector.VisualStyleRelativeNumberSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype.set scale):
(WebInspector.VisualStyleRelativeNumberSlider.prototype.updateEditorValues):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._resetSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._sliderChanged):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._numberInputChanged):
2015-08-10 Devin Rousso <drousso@apple.com>
Web Inspector: Add different types of non-numerical Visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147711
Added editors for keyword based CSS properties for use in the Visual style
details panel in the CSS sidebar. Also added images for keyword values that
are simple enough to be conveyed in an image.
Reviewed by Brian Burg.
* UserInterface/Images/ClearBoth.svg: Added.
* UserInterface/Images/ClearLeft.svg: Added.
* UserInterface/Images/ClearRight.svg: Added.
* UserInterface/Images/FloatLeft.svg: Added.
* UserInterface/Images/FloatRight.svg: Added.
* UserInterface/Images/FontStyleItalic.svg: Added.
* UserInterface/Images/FontStyleNormal.svg: Added.
* UserInterface/Images/FontVariantSmallCaps.svg: Added.
* UserInterface/Images/TextAlignCenter.svg: Added.
* UserInterface/Images/TextAlignJustify.svg: Added.
* UserInterface/Images/TextAlignLeft.svg: Added.
* UserInterface/Images/TextAlignRight.svg: Added.
* UserInterface/Images/TextDecorationLineThrough.svg: Added.
* UserInterface/Images/TextDecorationOverline.svg: Added.
* UserInterface/Images/TextDecorationUnderline.svg: Added.
* UserInterface/Images/TextTransformCapitalize.svg: Added.
* UserInterface/Images/TextTransformLowercase.svg: Added.
* UserInterface/Images/TextTransformUppercase.svg: Added.
* UserInterface/Images/VisualStyleNone.svg: Added.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
Changed color swatch title.
* UserInterface/Views/Slider.js:
(WebInspector.Slider):
(WebInspector.Slider.prototype.set value):
(WebInspector.Slider.prototype.set knobX):
(WebInspector.Slider.prototype.get maxX):
If the given value is below 0, reset it to 0.
(WebInspector.Slider.prototype._handleMousedown):
(WebInspector.Slider.prototype._handleMousemove):
(WebInspector.Slider.prototype.get _maxX): Deleted.
* UserInterface/Views/VisualStyleColorPicker.css: Added.
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .visual-style-special-property-placeholder):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:hover):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:active):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch > span):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):
(.visual-style-property-container.input-color-picker.multiple > .visual-style-property-value-container > .visual-style-multiple-property-placeholder):
* UserInterface/Views/VisualStyleColorPicker.js: Added.
(WebInspector.VisualStyleColorPicker):
(WebInspector.VisualStyleColorPicker.prototype.get value):
(WebInspector.VisualStyleColorPicker.prototype.set value):
(WebInspector.VisualStyleColorPicker.prototype.get placeholder):
(WebInspector.VisualStyleColorPicker.prototype.set placeholder):
(WebInspector.VisualStyleColorPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleColorPicker.prototype.get hasCompletions):
(WebInspector.VisualStyleColorPicker.prototype.set completions):
(WebInspector.VisualStyleColorPicker.prototype._updateColorSwatch):
(WebInspector.VisualStyleColorPicker.prototype._colorSwatchClicked):
(WebInspector.VisualStyleColorPicker.prototype._colorPickerColorDidChange):
(WebInspector.VisualStyleColorPicker.prototype._completionClicked):
(WebInspector.VisualStyleColorPicker.prototype._textInputKeyDown):
(WebInspector.VisualStyleColorPicker.prototype._textInputKeyUp):
(WebInspector.VisualStyleColorPicker.prototype._showCompletionsIfAble):
(WebInspector.VisualStyleColorPicker.prototype._hideCompletions):
(WebInspector.VisualStyleColorPicker.prototype._toggleTabbingOfSelectableElements):
* UserInterface/Views/VisualStyleKeywordCheckbox.css: Added.
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container):
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > input):
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > div):
* UserInterface/Views/VisualStyleKeywordCheckbox.js: Added.
(WebInspector.VisualStyleKeywordCheckbox):
(WebInspector.VisualStyleKeywordCheckbox.prototype.get value):
(WebInspector.VisualStyleKeywordCheckbox.prototype.set value):
(WebInspector.VisualStyleKeywordCheckbox.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordCheckbox.prototype._toggleTabbingOfSelectableElements):
* UserInterface/Views/VisualStyleKeywordIconList.css: Added.
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:first-child):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:last-child):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected)):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .stroked):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .filled):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected) + .keyword-icon):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon > div):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:not(.selected) > div):
* UserInterface/Views/VisualStyleKeywordIconList.js: Added.
(WebInspector.VisualStyleKeywordIconList.dashToCapital):
(WebInspector.VisualStyleKeywordIconList.createListItem):
(WebInspector.VisualStyleKeywordIconList):
(WebInspector.VisualStyleKeywordIconList.prototype.get value):
(WebInspector.VisualStyleKeywordIconList.prototype.set value):
(WebInspector.VisualStyleKeywordIconList.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordIconList.prototype._handleKeywordChanged):
* UserInterface/Views/VisualStyleKeywordPicker.js: Added.
(WebInspector.VisualStyleKeywordPicker):
(WebInspector.VisualStyleKeywordPicker.prototype.get value):
(WebInspector.VisualStyleKeywordPicker.prototype.set value):
(WebInspector.VisualStyleKeywordPicker.prototype.set placeholder):
(WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype.updateEditorValues):
(WebInspector.VisualStyleKeywordPicker.prototype._handleKeywordChanged):
(WebInspector.VisualStyleKeywordPicker.prototype._keywordSelectMouseDown):
(WebInspector.VisualStyleKeywordPicker.prototype._addValues):
(WebInspector.VisualStyleKeywordPicker.prototype._addAdvancedValues):
(WebInspector.VisualStyleKeywordPicker.prototype._removeAdvancedValues):
(WebInspector.VisualStyleKeywordPicker.prototype._toggleTabbingOfSelectableElements):
* UserInterface/Views/VisualStylePropertyNameInput.js: Added.
(WebInspector.VisualStylePropertyNameInput):
(WebInspector.VisualStylePropertyNameInput.prototype.get value):
(WebInspector.VisualStylePropertyNameInput.prototype.set value):
(WebInspector.VisualStylePropertyNameInput.prototype.get synthesizedValue):
(WebInspector.VisualStylePropertyNameInput.prototype.get hasCompletions):
(WebInspector.VisualStylePropertyNameInput.prototype.set completions):
(WebInspector.VisualStylePropertyNameInput.prototype._completionClicked):
(WebInspector.VisualStylePropertyNameInput.prototype._inputKeyDown):
(WebInspector.VisualStylePropertyNameInput.prototype._inputKeyUp):
(WebInspector.VisualStylePropertyNameInput.prototype._hideCompletions):
(WebInspector.VisualStylePropertyNameInput.prototype._toggleTabbingOfSelectableElements):
* UserInterface/Views/VisualStyleURLInput.js: Added.
(WebInspector.VisualStyleURLInput):
(WebInspector.VisualStyleURLInput.prototype.set get value):
(WebInspector.VisualStyleURLInput.prototype.parseValue):
* UserInterface/Views/VisualStyleUnitSlider.css: Added.
(.visual-style-property-container.unit-slider > .visual-style-property-value-container > .slider):
(.visual-style-property-container.unit-slider > .visual-style-property-value-container > .slider > img):
(.visual-style-property-container.unit-slider.opacity > .visual-style-property-value-container > .slider):
* UserInterface/Views/VisualStyleUnitSlider.js: Added.
(WebInspector.VisualStyleUnitSlider):
(WebInspector.VisualStyleUnitSlider.prototype.set value):
(WebInspector.VisualStyleUnitSlider.prototype.get value):
(WebInspector.VisualStyleUnitSlider.prototype.get synthesizedValue):
(WebInspector.VisualStyleUnitSlider.prototype.sliderValueDidChange):
2015-08-10 Devin Rousso <drousso@apple.com>
Web Inspector: Add VisualStyleSelectorSection
https://bugs.webkit.org/show_bug.cgi?id=147572
Reviewed by Brian Burg.
Adds a section to the new Visual style sidebar panel that contains the list of
styles for the currently selected node.
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.get mediaText):
Returns a string containing the list of media queries.
* UserInterface/Models/CSSStyleDeclaration.js:
(WebInspector.CSSStyleDeclaration):
(WebInspector.CSSStyleDeclaration.prototype.set text):
(WebInspector.CSSStyleDeclaration.prototype.get modified):
(WebInspector.CSSStyleDeclaration.prototype.resetText):
(WebInspector.CSSStyleDeclaration.prototype.generateCSSRuleString):
Generates a formatted string of the style text.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):
(WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Deleted.
* UserInterface/Views/VisualStyleSelectorSection.css: Added.
(.details-section.visual-style-selector-section > .header):
(.details-section.visual-style-selector-section:not(.collapsed) > .header):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.details-section.visual-style-selector-section > .header > .current-selector):
(.visual-style-selector-section.details-section:not(.collapsed) > .header > .current-selector):
(.details-section.visual-style-selector-section > .header > .current-selector > .icon):
(.details-section.visual-style-selector-section > .header > .current-selector > span):
(.details-section.visual-style-selector-section > .header > .controls):
(.details-section.visual-style-selector-section.collapsed > .header > .controls):
(.details-section.visual-style-selector-section > .header > .controls > .visual-style-selector-section-add-rule):
(.details-section.visual-style-selector-section > .content > .selectors):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .visual-style-selector-item:nth-child(odd)):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .icon):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > :matches(.disclosure-button, .icon)):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles > .title):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider ~ .visual-style-selector-item:nth-child(even)):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider ~ .visual-style-selector-item:nth-child(odd)):
* UserInterface/Views/VisualStyleSelectorSection.js: Added.
(WebInspector.VisualStyleSelectorSection):
(WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
(WebInspector.VisualStyleSelectorSection.prototype.update.uniqueOrderedRules):
(WebInspector.VisualStyleSelectorSection.prototype.update.insertAllMatchingPseudoRules):
(WebInspector.VisualStyleSelectorSection.prototype.update):
(WebInspector.VisualStyleSelectorSection.prototype.currentStyle):
(WebInspector.VisualStyleSelectorSection.prototype._selectorChanged):
(WebInspector.VisualStyleSelectorSection.prototype._styleTextReset):
(WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
(WebInspector.VisualStyleSelectorSection.prototype._treeElementCheckboxToggled):
(WebInspector.VisualStyleSelectorSection.prototype._handleMouseOver):
(WebInspector.VisualStyleSelectorSection.prototype._handleMouseOut):
* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(.item.visual-style-selector-item):
(.item.visual-style-selector-item.selected):
(.item.visual-style-selector-item > .disclosure-button):
(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item > .icon):
(.item.visual-style-selector-item.modified > .icon):
(.item.visual-style-selector-item.selector-invalid > .icon):
(.item.visual-style-selector-item.selector-invalid > .titles > .title):
(.item.visual-style-selector-item.selector-invalid > .titles > .title::before):
(.item.visual-style-selector-item > .titles):
(.item.visual-style-selector-item:not(.dom-element-icon) > .titles > .title):
(.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title):
(.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title:focus):
(.item.visual-style-selector-item > .titles > .subtitle::before):
(.item.visual-style-selector-item > .titles > .subtitle):
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem):
(WebInspector.VisualStyleSelectorTreeItem.prototype.get iconClassName):
(WebInspector.VisualStyleSelectorTreeItem.prototype.get selectorText):
(WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
(WebInspector.VisualStyleSelectorTreeItem.prototype.ondeselect):
(WebInspector.VisualStyleSelectorTreeItem.prototype._highlightNodesWithSelector):
(WebInspector.VisualStyleSelectorTreeItem.prototype._hideDOMNodeHighlight):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleCheckboxChanged):
(WebInspector.VisualStyleSelectorTreeItem.prototype._updateCheckboxTitle):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleKeyDown):
(WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
(WebInspector.VisualStyleSelectorTreeItem.prototype._styleTextModified):
(WebInspector.VisualStyleSelectorTreeItem.prototype._selectorChanged):
2015-08-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: TDZ in ProbeSetDataGrid construction
https://bugs.webkit.org/show_bug.cgi?id=147834
Reviewed by Timothy Hatcher.
* UserInterface/Views/ProbeSetDataGrid.js:
(WebInspector.ProbeSetDataGrid):
Do not use "this" before calling super.
2015-08-08 Devin Rousso <drousso@apple.com>
Web Inspector: Timeline ruler handle tooltip shows wrong value when handles overlap
https://bugs.webkit.org/show_bug.cgi?id=147652
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._updateSelection):
Now changes the title depending on whether the selection start/end is clamped.
2015-08-08 Devin Rousso <drousso@apple.com>
Web Inspector: Don't show "No Filter Results" when timeline is empty
https://bugs.webkit.org/show_bug.cgi?id=147662
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.reset):
Now hides the empty content placeholder on timeline clear.
2015-08-07 Devin Rousso <drousso@apple.com>
Web Inspector: Decrease the padding of each rule in the Rules sidebar to allow more content to show
https://bugs.webkit.org/show_bug.cgi?id=147360
Reviewed by Timothy Hatcher.
Generally tightened the padding around each section in the rules panel, as well as the
content inside each section. Also moved the new rule button to be next to the filter bar.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section):
(.style-declaration-section.last-in-group):
(.style-declaration-section.last-in-group + .style-declaration-section): Deleted.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content > .pseudo-classes):
(.sidebar > .panel.details.css-style > .content + .options-container):
(.sidebar > .panel.details.css-style > .content:not(.supports-new-rule, .has-filter-bar) + .options-container):
(.sidebar > .panel.details.css-style > .content + .options-container > .new-rule):
(.sidebar > .panel.details.css-style > .content + .options-container > .filter-bar):
(.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .options-container > .filter-bar):
(.sidebar > .panel.details.css-style > .content.has-filter-bar + .filter-bar): Deleted.
(.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .filter-bar): Deleted.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._newRuleButtonClicked):
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton): Deleted.
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Deleted.
(WebInspector.RulesStyleDetailsPanel.prototype._newRuleClicked): Deleted.
2015-08-07 Devin Rousso <drousso@apple.com>
Web Inspector: Don't include zero-width space into a copied text from the console
https://bugs.webkit.org/show_bug.cgi?id=147767
Reviewed by Timothy Hatcher.
Now removes work break characters in generated javascript text when copying
to the clipboard. Also replaced var with let in the modified functions.
* UserInterface/Views/ConsoleCommandView.js:
(WebInspector.ConsoleCommandView.prototype.toClipboardString):
(WebInspector.ConsoleCommandView):
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype.toClipboardString):
2015-08-07 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Simplify OS-specific CSS class names
https://bugs.webkit.org/show_bug.cgi?id=147794
Replace "body:not(.el-capitan)" with ".legacy-mac".
Replace "body.el-capitan" with ".latest-mac".
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
* UserInterface/Views/Toolbar.css:
(body.legacy-mac .toolbar .dashboard-container):
(body.legacy-mac .toolbar .search-bar > input[type="search"]):
(body.legacy-mac .toolbar .search-bar > input[type="search"]:focus):
(body.legacy-mac .toolbar .item.button:active):
(body.window-inactive.legacy-mac .toolbar .dashboard-container):
(body.latest-mac .toolbar .dashboard-container):
(body.latest-mac .toolbar .search-bar > input[type="search"]):
(body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
(@media (-webkit-min-device-pixel-ratio: 2)):
(body.latest-mac .toolbar .item.button:active):
(body.latest-mac.window-inactive .toolbar .dashboard-container):
(body:not(.el-capitan) .toolbar .dashboard-container): Deleted.
(body:not(.el-capitan) .toolbar .search-bar > input[type="search"]): Deleted.
(body:not(.el-capitan) .toolbar .search-bar > input[type="search"]:focus): Deleted.
(body:not(.el-capitan) .toolbar .item.button:active): Deleted.
(body.window-inactive:not(.el-capitan) .toolbar .dashboard-container): Deleted.
(body.el-capitan .toolbar .dashboard-container): Deleted.
(body.el-capitan .toolbar .search-bar > input[type="search"]): Deleted.
(body.el-capitan .toolbar .search-bar > input[type="search"]:focus): Deleted.
(body.el-capitan .toolbar .item.button:active): Deleted.
(body.el-capitan.window-inactive .toolbar .dashboard-container): Deleted.
2015-08-07 Devin Rousso <drousso@apple.com>
Web Inspector: Option+Up/Down arrow keys should increment/decrement numbers in HTML and SVG attributes
https://bugs.webkit.org/show_bug.cgi?id=147317
Reviewed by Timothy Hatcher.
If the value under the cursor in an HTML element attribute is a number, pressing alt and
up/down will increment/decrement the number value and apply that change to the element.
* UserInterface/Views/BoxModelDetailsSectionRow.js:
(WebInspector.BoxModelDetailsSectionRow.prototype._alteredFloatNumber):
(WebInspector.BoxModelDetailsSectionRow.prototype._handleKeyDown):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._startEditingAttribute):
(WebInspector.DOMTreeElement.prototype._attributeEditingCommitted):
(WebInspector.DOMTreeElement.prototype._attributeNumberEditingCommitted):
* UserInterface/Views/EditingSupport.js:
(WebInspector.EditingConfig.prototype.setNumberCommitHandler):
(WebInspector.startEditing.defaultFinishHandler):
(WebInspector.startEditing.handleEditingResult):
2015-08-05 Devin Rousso <drousso@apple.com>
Web Inspector: Move the Metrics style sidebar panel into Computed
https://bugs.webkit.org/show_bug.cgi?id=147715
Reviewed by Timothy Hatcher.
Deleted the Metrics sidebar panel and moved its contents into the Computed sidebar panel.
In addition, not hovering over the Metrics section will display the colors of each box.
* UserInterface/Main.html:
* UserInterface/Views/BoxModelDetailsSectionRow.css:
(.details-section .row.box-model :matches(.position, .margin, .border, .padding, .content)):
(.details-section .row.box-model .position):
(.details-section .row.box-model .margin):
(.details-section .row.box-model .border):
(.details-section .row.box-model .padding):
(.details-section .row.box-model :matches(.content span, .top, .right, .bottom, .left)):
(.details-section .row.box-model :matches(.right, .left)):
(.details-section .row.box-model .content): Deleted.
(.details-section .row.box-model .content span): Deleted.
(.details-section .row.box-model .left): Deleted.
(.details-section .row.box-model .right): Deleted.
(.details-section .row.box-model .top): Deleted.
(.details-section .row.box-model .bottom): Deleted.
* UserInterface/Views/BoxModelDetailsSectionRow.js:
(WebInspector.BoxModelDetailsSectionRow.prototype._highlightDOMNode):
If no metric box is hovered, apply a class to the entire section.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
Removed the usage of MetricsStyleDetailsPanel.
* UserInterface/Views/ComputedStyleDetailsPanel.css:
(.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):
Give the metrics section in the Computed panel a white background.
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel):
(WebInspector.ComputedStyleDetailsPanel.prototype.refresh):
Don't refresh the content unless the change is significant (without this, you cannot edit
metrics values using the arrow keys).
* UserInterface/Views/MetricsStyleDetailsPanel.js: Removed.
2015-08-05 Devin Rousso <drousso@apple.com>
Web Inspector: Bezier curve visual editor
https://bugs.webkit.org/show_bug.cgi?id=134501
Reviewed by Timothy Hatcher.
Added a visual Cubic Bezier curve editor that is usable in both
the CSS sidebar and the resources panel.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/DOMUtilities.js:
(createSVGElement):
* UserInterface/Controllers/CodeMirrorBezierEditingController.js:
(WebInspector.CodeMirrorBezierEditingController):
(WebInspector.CodeMirrorBezierEditingController.prototype.get initialValue):
(WebInspector.CodeMirrorBezierEditingController.prototype.get cssClassName):
(WebInspector.CodeMirrorBezierEditingController.prototype.popoverWillPresent):
(WebInspector.CodeMirrorBezierEditingController.prototype.popoverDidPresent):
(WebInspector.CodeMirrorBezierEditingController.prototype._bezierEditorBezierChanged):
* UserInterface/Images/CubicBezier.svg: Added.
* UserInterface/Main.html:
* UserInterface/Models/Geometry.js:
(WebInspector.Point.prototype.distance):
(WebInspector.Point):
(WebInspector.CubicBezier):
(WebInspector.CubicBezier.fromPoints):
(WebInspector.CubicBezier.fromString):
(WebInspector.CubicBezier.prototype.get inPoint):
(WebInspector.CubicBezier.prototype.get outPoint):
(WebInspector.CubicBezier.prototype.copy):
(WebInspector.CubicBezier.prototype.toString):
(WebInspector.CubicBezier.prototype.solve):
(WebInspector.CubicBezier.prototype._sampleCurveX):
(WebInspector.CubicBezier.prototype._sampleCurveY):
(WebInspector.CubicBezier.prototype._sampleCurveDerivativeX):
(WebInspector.CubicBezier.prototype._solveCurveX):
* UserInterface/Models/TextMarker.js:
* UserInterface/Models/UnitBezier.js: Removed.
* UserInterface/Views/BezierEditor.css: Added.
(.bezier-editor):
(.bezier-editor > .bezier-preview):
(.bezier-editor > .bezier-preview > div):
(.bezier-editor > .bezier-preview-timing):
(.bezier-editor > .bezier-preview-timing.animate):
(.bezier-editor > .bezier-container):
(@keyframes bezierPreview):
(.bezier-editor > .bezier-container):
(.bezier-editor > .bezier-container .linear-curve):
(.bezier-editor > .bezier-container .bezier-curve):
(.bezier-editor > .bezier-container .control-line):
(.bezier-editor > .bezier-container .control-handle):
* UserInterface/Views/BezierEditor.js: Added.
(WebInspector.BezierEditor.createControl):
(WebInspector.BezierEditor):
(WebInspector.BezierEditor.prototype.get element):
(WebInspector.BezierEditor.prototype.set bezier):
(WebInspector.BezierEditor.prototype.get bezier):
(WebInspector.BezierEditor.prototype.handleEvent):
(WebInspector.BezierEditor.prototype._handleMousedown):
(WebInspector.BezierEditor.prototype._handleMousemove):
(WebInspector.BezierEditor.prototype._handleMouseup):
(WebInspector.BezierEditor.prototype._updateControlPointsForMouseEvent):
(WebInspector.BezierEditor.prototype._updateValue.round):
(WebInspector.BezierEditor.prototype._updateValue):
(WebInspector.BezierEditor.prototype._updateBezier):
(WebInspector.BezierEditor.prototype._updateControl):
(WebInspector.BezierEditor.prototype._triggerPreviewAnimation):
(WebInspector.BezierEditor.prototype._resetPreviewAnimation):
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:hover):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:active):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.didDismissPopover):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._contentChanged):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createBezierEditors.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createBezierEditors):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._commentProperty.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._commentProperty):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._uncommentRange.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._uncommentRange):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked.updateCodeMirror.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked.updateCodeMirror):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):
* UserInterface/Views/CodeMirrorAdditions.js:
* UserInterface/Views/CodeMirrorTextMarkers.js: Added.
(createCodeMirrorTextMarkers):
(createCodeMirrorColorTextMarkers):
(createCodeMirrorGradientTextMarkers):
(createCodeMirrorCubicBezierTextMarkers):
* UserInterface/Views/Popover.js:
(WebInspector.Popover.prototype._animateFrame):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.createColorMarkers):
(WebInspector.TextEditor.prototype.createGradientMarkers):
(WebInspector.TextEditor.prototype.createCubicBezierMarkers):
(WebInspector.TextEditor.prototype.editingControllerForMarker):
2015-08-05 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Logging error objects should have a better UI
https://bugs.webkit.org/show_bug.cgi?id=143853
Previously, an error object looked like any other object, which wasn't very useful.
Source links couldn't be clicked and stacktraces were unreadable.
Unify console.trace, caught and uncaught exceptions. The following examples use
the same StaceTraceView:
- ({}).x.y
- try { ({}).x.y } catch (e) { console.log(e); }
- console.trace()
Reviewed by Brian Burg.
* UserInterface/Main.html:
* UserInterface/Models/CallFrame.js:
(WebInspector.CallFrame.fromPayload):
(WebInspector.CallFrame):
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptorsAsObject):
* UserInterface/Test.html:
* UserInterface/Views/CallFrameView.css:
(.call-frame .separator):
(.call-frame .subtitle .source-link): Deleted.
(.call-frame:focus .subtitle .source-link): Deleted.
(.call-frame .subtitle:empty): Deleted.
(.call-frame .subtitle): Deleted.
* UserInterface/Views/CallFrameView.js:
(WebInspector.CallFrameView):
- Start usind CallFrameView in stacktraces.
- Introduce showFunctionName optional argument. In stacktraces anonymous functions
are shown as "(anonymous function)" but in console message location
links (the ones on the right side of a console message) we omit them.
- Dash was a pseudo-element and it couldn't be copied to the clipboard.
Make it an actual HTML element.
* UserInterface/Views/ConsoleMessageView.css:
(.console-message-location.call-frame):
(.console-message-location.call-frame > .title):
(.console-message-location.call-frame > .subtitle > .source-link):
Since .call-frame rules are now used in stacktraces, move console message
specific rules from CallFrameView.css to ConsoleMessageView.css.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
(WebInspector.ConsoleMessageView.prototype._appendStackTrace):
(WebInspector.ConsoleMessageView.prototype._formatParameter):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsError): Added.
Format errors differently from other objects.
* UserInterface/Views/ErrorObjectView.css: Added.
(.error-object::before):
(.error-object.expanded::before):
(.error-object-link-container):
(.error-object.expanded > .formatted-error > .error-object-link-container):
(.error-object:not(.expanded) .error-object-outline):
(.error-object-outline):
* UserInterface/Views/ErrorObjectView.js: Added.
(WebInspector.ErrorObjectView):
(WebInspector.ErrorObjectView.parseStackTrace):
(WebInspector.ErrorObjectView.makeSourceLinkWithPrefix):
(WebInspector.ErrorObjectView.prototype.get object):
(WebInspector.ErrorObjectView.prototype.get element):
(WebInspector.ErrorObjectView.prototype.get treeOutline):
(WebInspector.ErrorObjectView.prototype.get expanded):
(WebInspector.ErrorObjectView.prototype.update):
(WebInspector.ErrorObjectView.prototype.expand):
(WebInspector.ErrorObjectView.prototype.collapse):
(WebInspector.ErrorObjectView.prototype._handlePreviewOrTitleElementClick):
(WebInspector.ErrorObjectView.prototype._buildStackTrace):
ErrorObjectView is used to log caught exceptions, e.g.:
try { i.dont.exist++ } catch (e) { console.log(e) }
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForError): Added.
Create error preview.
(WebInspector.FormattedValue.createElementForTypesAndValue):
Fix typo.
(WebInspector.FormattedValue.createObjectPreviewOrFormattedValueForRemoteObject):
Format errors differently from other objects.
2015-08-05 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r187634): Script time is missing from the frames timeline
https://bugs.webkit.org/show_bug.cgi?id=147654
Reviewed by Brian Burg.
Use the current stack entry's parent record when pushing a new stack entry, if no
TimelineRecord was generated from the parent record payload.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded):
Don't create a stack entry when record payload children array is empty.
2015-08-05 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r187900): Breakpoint context menu is broken in Debugger tab
https://bugs.webkit.org/show_bug.cgi?id=147699
Reviewed by Timothy Hatcher.
* UserInterface/Views/SourceCodeTextEditor.js:
Skip only the separator and "Reveal in Debugger tab" menu items.
2015-08-05 Brian Burg <bburg@apple.com>
Web Inspector: use super calls in more places
https://bugs.webkit.org/show_bug.cgi?id=147696
Reviewed by Timothy Hatcher.
A few opportunities for super calls were overlooked when converting to classes.
* UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype.onattach):
(WebInspector.BreakpointTreeElement.prototype.ondetach):
* UserInterface/Views/CallFrameTreeElement.js:
(WebInspector.CallFrameTreeElement.prototype.onattach):
(WebInspector.CallFrameTreeElement):
* UserInterface/Views/DebuggerTabContentView.js:
(WebInspector.DebuggerTabContentView.prototype.showDetailsSidebarPanels):
* UserInterface/Views/ProfileNodeTreeElement.js:
(WebInspector.ProfileNodeTreeElement.prototype.onattach):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.shown):
(WebInspector.SourceCodeTextEditor.prototype.hidden):
(WebInspector.SourceCodeTextEditor.prototype.canBeFormatted):
* UserInterface/Views/SourceCodeTreeElement.js:
(WebInspector.SourceCodeTreeElement.prototype.onattach):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement.prototype.onattach):
(WebInspector.TimelineRecordTreeElement):
2015-08-05 Brian Burg <bburg@apple.com>
Web Inspector: remove unused Object.deprecatedAddConstructorFunctions
https://bugs.webkit.org/show_bug.cgi?id=147690
Reviewed by Timothy Hatcher.
This is no longer used following the conversion to ES6 classes.
* UserInterface/Base/Object.js:
(WebInspector.Object.deprecatedAddConstructorFunctions): Deleted.
2015-08-05 Brian Burg <bburg@apple.com>
Web Inspector: Convert miscellaneous view widgets to use ES6 classes
https://bugs.webkit.org/show_bug.cgi?id=147658
Reviewed by Joseph Pecoraro.
Along the way, inline a few style class names.
Elided mechanical changes from the Changelog.
* UserInterface/Base/Test.js:
* UserInterface/Views/CSSStyleDeclarationSection.js:
* UserInterface/Views/ConsolePrompt.js:
* UserInterface/Views/ContentBrowser.js:
* UserInterface/Views/ContentViewContainer.js:
* UserInterface/Views/DOMTreeDataGridNode.js:
* UserInterface/Views/IndeterminateProgressSpinner.js:
* UserInterface/Views/NavigationBar.js:
* UserInterface/Views/ProbeSetDataGridNode.js:
* UserInterface/Views/QuickConsoleNavigationBar.js:
* UserInterface/Views/Toolbar.js:
2015-08-05 Brian Burg <bburg@apple.com>
Web Inspector: Convert remaining ContentViews to use ES6 classes
https://bugs.webkit.org/show_bug.cgi?id=147534
Reviewed by Joseph Pecoraro.
Along the way, inline a few style class names.
Elided mechanical changes from the Changelog.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
* UserInterface/Views/ClusterContentView.js:
* UserInterface/Views/ConsoleTabContentView.js:
* UserInterface/Views/ContentBrowserTabContentView.js: Rearrange initialization
of the tab's content browser to comply with TDZ rules for using `this`.
* UserInterface/Views/ContentFlowDOMTreeContentView.js:
* UserInterface/Views/ContentView.js:
* UserInterface/Views/ContentViewContainer.js:
* UserInterface/Views/CookieStorageContentView.js:
* UserInterface/Views/DOMStorageContentView.js:
* UserInterface/Views/DOMTreeContentView.js:
* UserInterface/Views/DatabaseContentView.js:
* UserInterface/Views/DatabaseTableContentView.js:
* UserInterface/Views/DebuggerTabContentView.js:
* UserInterface/Views/ElementsTabContentView.js:
* UserInterface/Views/FontResourceContentView.js:
* UserInterface/Views/FrameDOMTreeContentView.js:
* UserInterface/Views/GenericResourceContentView.js:
* UserInterface/Views/ImageResourceContentView.js:
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
* UserInterface/Views/LogContentView.js:
* UserInterface/Views/NetworkGridContentView.js:
* UserInterface/Views/NetworkTabContentView.js:
* UserInterface/Views/NewTabContentView.js:
* UserInterface/Views/ResourceClusterContentView.js:
* UserInterface/Views/ResourceContentView.js:
* UserInterface/Views/ResourcesTabContentView.js:
* UserInterface/Views/ScriptContentView.js:
* UserInterface/Views/SearchTabContentView.js:
* UserInterface/Views/SettingsTabContentView.js:
* UserInterface/Views/StorageTabContentView.js:
* UserInterface/Views/TabContentView.js:
* UserInterface/Views/TextContentView.js:
* UserInterface/Views/TextResourceContentView.js:
* UserInterface/Views/TimelineRecordingContentView.js:
2015-08-05 Devin Rousso <drousso@apple.com>
Web Inspector: Allow users to duplicate rules in the Rules sidebar panel
https://bugs.webkit.org/show_bug.cgi?id=147361
Reviewed by Timothy Hatcher.
Adds context menu option to non-inherited rules that, when clicked, creates
a new rule with the same selector and no properties, and then focuses it.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.addRuleWithSelector.addedRule):
(WebInspector.DOMNodeStyles.prototype.addRuleWithSelector):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.get _currentSelectorText):
(WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionFocusNextNewInspectorRule):
2015-08-04 Matt Baker <mattbaker@apple.com>
Web Inspector: Layout & Rendering timeline grid should show TimelineRecord parent/child relationships
https://bugs.webkit.org/show_bug.cgi?id=147468
Reviewed by Brian Burg.
Layout timeline data grid now shows record nesting for Layout and Composite events.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded):
* UserInterface/Models/TimelineRecord.js:
(WebInspector.TimelineRecord.prototype.get parent):
(WebInspector.TimelineRecord.prototype.set parent):
Preserve timeline record parent/child relationship.
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView):
Style change for disclosure triangle support.
(WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
Only process immediate children of the rendering frame record.
2015-08-04 Devin Rousso <drousso@apple.com>
Web Inspector: "No Filter Results" overlaps other UI elements when docked Inspector is small
https://bugs.webkit.org/show_bug.cgi?id=147659
Reviewed by Timothy Hatcher.
Hide overflow of empty content label containers in navigation sidebars.
* UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .empty-content-placeholder):
2015-08-04 Joseph Pecoraro <pecoraro@apple.com>
Improve some LayoutTests/inspector flakey output for tests with InspectorTest.reloadPage
https://bugs.webkit.org/show_bug.cgi?id=147655
Reviewed by Timothy Hatcher.
* UserInterface/Base/Test.js:
(InspectorTest.reloadPage):
Immediately mark the page as reloading so that any logs that may happen
before the callback for PageAgent.reload wait to be sent after the page
load. What was happening in flakey results was that the logs were
happening before this callback, and therefore getting logged and then
resent after page load and getting relogged.
2015-08-04 Devin Rousso <drousso@apple.com>
Web Inspector: Existing text after completions do not have their completion style removed once hint is applied
https://bugs.webkit.org/show_bug.cgi?id=147536
Reviewed by Timothy Hatcher.
No longer applies a class to the text after the completion hint.
* UserInterface/Controllers/CodeMirrorCompletionController.css:
(.CodeMirror .CodeMirror-lines .completion-hint):
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.clearMarker):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint):
2015-08-04 Matt Baker <mattbaker@apple.com>
Web Inspector: Don't show 'Reveal In Debugger Tab' menu item if already in Debugger tab
https://bugs.webkit.org/show_bug.cgi?id=147554
Reviewed by Timothy Hatcher.
Check current tab before appending context menu items.
* UserInterface/Base/Main.js:
(WebInspector.isShowingDebuggerTab):
* UserInterface/Views/SourceCodeTextEditor.js:
2015-08-04 Devin Rousso <drousso@apple.com>
Web Inspector: buttons in new tab screen lack hover styles
https://bugs.webkit.org/show_bug.cgi?id=145355
Reviewed by Timothy Hatcher.
Added hover brightness filter to new tab buttons.
* UserInterface/Views/NewTabContentView.css:
(.new-tab.tab.content-view > .tab-item:not(.disabled):hover > .box):
(.new-tab.tab.content-view > .tab-item:not(.disabled):active > .box):
2015-08-04 Devin Rousso <drousso@apple.com>
Web Inspector: Merge the styles sidebar navigation bar into a selectable item in the elements sidebar
https://bugs.webkit.org/show_bug.cgi?id=146878
Reviewed by Timothy Hatcher.
Replaced the default navigationItem of the CSSStyleDetailsSidebarPanel with a
ScopeRadioButtonNavigationItem that will open a select element containing the labels
of each style sidebar when reselected.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._panelMatchingIdentifier):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._handleSelectedItemChanged):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._navigationItemSelected): Deleted.
* UserInterface/Views/DOMDetailsSidebarPanel.js:
(WebInspector.DOMDetailsSidebarPanel):
* UserInterface/Views/DetailsSidebarPanel.js:
(WebInspector.DetailsSidebarPanel):
* UserInterface/Views/MetricsStyleDetailsPanel.js:
(WebInspector.MetricsStyleDetailsPanel):
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype._mouseDown):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel):
* UserInterface/Views/ScopeRadioButtonNavigationItem.css: Added.
* UserInterface/Views/ScopeRadioButtonNavigationItem.js: Added.
* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel):
* UserInterface/Views/StyleDetailsPanel.js:
(WebInspector.StyleDetailsPanel):
2015-08-04 Matt Baker <mattbaker@apple.com>
Web Inspector: timeline overview should visually distinguish selection bounds outside the visible duration
https://bugs.webkit.org/show_bug.cgi?id=132764
Reviewed by Brian Burg.
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler > .selection-handle.clamped):
Added style for selection handle outside visible range.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._updateSelection):
Toggle style class and add tool tip showing the handle's value when outside the visible range.
2015-08-04 Brian J. Burg <bburg@apple.com>
Web Inspector: Convert DataGrid and DataGridNode classes to ES6 classes
https://bugs.webkit.org/show_bug.cgi?id=147439
Reviewed by Joseph Pecoraro.
Along the way, inline a few style class names.
Elided mechanical changes from the Changelog.
* UserInterface/Views/DOMTreeDataGrid.js:
* UserInterface/Views/DataGrid.js:
* UserInterface/Views/DatabaseTableContentView.js:
* UserInterface/Views/IndexedDatabaseEntryDataGridNode.js:
* UserInterface/Views/LayerTreeDataGridNode.js:
* UserInterface/Views/LayoutTimelineDataGrid.js:
* UserInterface/Views/LayoutTimelineDataGridNode.js:
* UserInterface/Views/ProbeSetDataGrid.js:
* UserInterface/Views/ProfileNodeDataGridNode.js:
* UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
* UserInterface/Views/ResourceTimelineDataGridNode.js:
* UserInterface/Views/ScriptTimelineDataGrid.js:
* UserInterface/Views/ScriptTimelineDataGridNode.js:
* UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
* UserInterface/Views/TimelineDataGrid.js:
* UserInterface/Views/TimelineDataGridNode.js: Move a function definition out
of an else branch, since this is not allowed in ES6 strict mode.
2015-08-04 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: console error when clicking AppCache folder tree element
https://bugs.webkit.org/show_bug.cgi?id=130042
Reviewed by Joseph Pecoraro.
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel._treeElementSelected): Don't try to
create a content view for ApplicationCacheManifestTreeElement. We can
only create a content view for AppCache frames.
2015-08-04 Andres Gomez <agomez@igalia.com>
[GTK] Add gtk icon to remove comma separated values from CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147623
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/Minus.svg: Added.
2015-08-03 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r187708): Breakpoint dialog script action editing broken
https://bugs.webkit.org/show_bug.cgi?id=147553
Reviewed by Joseph Pecoraro.
Passing a widget to CodeMirror.setBookmark generates a viewportChange event, causing the
BreakpointActionView to update the popup for the breakpoint. The spurious update dismisses
the suggestion list, removes the CodeMirror completion hint, and causes other problems.
Now we ignore viewportChange events unless the viewport size changes. We still want to update
the popup when a carriage return or text wrap modifies the viewport.
* UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.prototype._updateBody):
Evaluate and Probe actions store the current viewport size.
(WebInspector.BreakpointActionView.prototype._codeMirrorViewportChanged):
Check if viewport size has changed since last event.
2015-08-03 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: Application cache DataGrid has incorrect column heading styles
https://bugs.webkit.org/show_bug.cgi?id=147531
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView): Remove erroneous
"storage-view" class, which is intended for databases, not AppCache.
2015-08-02 Matt Baker <mattbaker@apple.com>
Web Inspector: Unnamespaced Formatter classes break CSSStyleDeclarationTextEditor
https://bugs.webkit.org/show_bug.cgi?id=147544
Reviewed by Brian Burg.
Added Formatter and FormatterContentBuilder to WebInspector namespace.
* UserInterface/Controllers/Formatter.js:
* UserInterface/Controllers/FormatterContentBuilder.js:
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.prettyPrint.prettyPrintAndUpdateEditor):
(WebInspector.TextEditor.prototype.prettyPrint):
2015-08-02 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r187689): Timeline overview graph layout is broken
https://bugs.webkit.org/show_bug.cgi?id=147539
Reviewed by Brian Burg.
Removed timeline argument being passed to TimelineOverviewGraph constructor.
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WebInspector.LayoutTimelineOverviewGraph):
* UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WebInspector.NetworkTimelineOverviewGraph):
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph):
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph):
2015-08-01 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Replace "unknown-mac" CSS class with "el-capitan"
https://bugs.webkit.org/show_bug.cgi?id=147524
Reviewed by Timothy Hatcher.
* UserInterface/Base/Platform.js:
No need to repeat WebInspector.Platform.version.release for every possible case.
* UserInterface/Views/Toolbar.css:
(body:not(.el-capitan) .toolbar .dashboard-container):
(body:not(.el-capitan) .toolbar .search-bar > input[type="search"]):
(body:not(.el-capitan) .toolbar .search-bar > input[type="search"]:focus):
(body:not(.el-capitan) .toolbar .item.button:active):
(body.window-inactive:not(.el-capitan) .toolbar .dashboard-container):
(body.el-capitan .toolbar .dashboard-container):
(body.el-capitan .toolbar .search-bar > input[type="search"]):
(body.el-capitan .toolbar .search-bar > input[type="search"]:focus):
(@media (-webkit-min-device-pixel-ratio: 2)):
(body.el-capitan .toolbar .item.button:active):
(body.el-capitan.window-inactive .toolbar .dashboard-container):
(body:not(.unknown-mac) .toolbar .dashboard-container): Deleted.
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]): Deleted.
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]:focus): Deleted.
(body:not(.unknown-mac) .toolbar .item.button:active): Deleted.
(body.window-inactive:not(.unknown-mac) .toolbar .dashboard-container): Deleted.
(body.unknown-mac .toolbar .dashboard-container): Deleted.
(body.unknown-mac .toolbar .search-bar > input[type="search"]): Deleted.
(body.unknown-mac .toolbar .search-bar > input[type="search"]:focus): Deleted.
(body.unknown-mac .toolbar .item.button:active): Deleted.
(body.unknown-mac.window-inactive .toolbar .dashboard-container): Deleted.
2015-07-31 Devin Rousso <drousso@apple.com>
Web Inspector: inherited CSS rules disappear from Styles sidebar while editing
https://bugs.webkit.org/show_bug.cgi?id=147441
Reviewed by Timothy Hatcher.
If the user edits a style declaration such that it would dissapear mid-edit, prevent
the rules panel from refreshing until that editor is blurred.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.get editorActive):
(WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector):
(WebInspector.CSSStyleDeclarationSection.prototype._editorContentChanged):
(WebInspector.CSSStyleDeclarationSection.prototype._editorBlurred):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._editorBlured):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._contentChanged):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel):
(WebInspector.RulesStyleDetailsPanel.prototype._removeSectionWithActiveEditor):
* UserInterface/Views/StyleDetailsPanel.js:
(WebInspector.StyleDetailsPanel.prototype._refreshPreservingScrollPosition):
2015-07-31 Devin Rousso <drousso@apple.com>
Web Inspector: Autocomplete: Undo (Cmd+Z) doesn't work as expected
https://bugs.webkit.org/show_bug.cgi?id=147316
Reviewed by Timothy Hatcher.
Instead of replacing the text for a completion, which messes up the undo history, add
a unique marker that contains the remaining text for the current completion.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController.prototype._createCompletionHintMarker):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint):
2015-07-31 Devin Rousso <drousso@apple.com>
Web Inspector: Scrolling "jumps" in console
https://bugs.webkit.org/show_bug.cgi?id=147482
Reviewed by Joseph Pecoraro.
Removed focus call on messageElement.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._mousedown): Deleted.
(WebInspector.LogContentView.prototype._didFocus): Deleted.
(WebInspector.LogContentView.prototype._didBlur): Deleted.
2015-07-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Unskip / Unflake inspector tests after r187627
https://bugs.webkit.org/show_bug.cgi?id=147503
Reviewed by Brian Burg.
* UserInterface/Base/Test.js:
(InspectorTest.completeTest):
(InspectorTest.completeTest.signalCompletionToTestPage): Deleted.
(InspectorTest.testPageDidLoad):
Instead of immediately resending results if completeTest was called
during a reload before the load has completed, we just set a flag
to complete the test when the load completes. This consistently
resends the output to the new page for test output.
(InspectorTest._resendResults):
Delete clear results. If the page had logged anything directly on
the page side (using InspectorTestProxy) this clearMessages would
have deleted those messages and not been able to recreate them.
Clearing messages wasn't really serving a purpose.
2015-07-31 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: Convert timeline view classes to ES6 classes
https://bugs.webkit.org/show_bug.cgi?id=147381
Reviewed by Joseph Pecoraro.
Along the way, inline a few style class names.
Elided mechanical changes from the Changelog.
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
* UserInterface/Views/LayoutTimelineView.js:
* UserInterface/Views/LinearTimelineOverview.js:
* UserInterface/Views/NetworkTimelineOverviewGraph.js:
* UserInterface/Views/NetworkTimelineView.js:
* UserInterface/Views/OverviewTimelineView.js:
* UserInterface/Views/RenderingFrameTimelineOverview.js:
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
* UserInterface/Views/RenderingFrameTimelineView.js:
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
* UserInterface/Views/ScriptTimelineView.js:
* UserInterface/Views/TimelineOverview.js:
* UserInterface/Views/TimelineOverviewGraph.js:
* UserInterface/Views/TimelineRecordBar.js:
* UserInterface/Views/TimelineRecordFrame.js:
* UserInterface/Views/TimelineRecordingContentView.js:
* UserInterface/Views/TimelineRuler.js:
* UserInterface/Views/TimelineTabContentView.js:
* UserInterface/Views/TimelineView.js:
2015-07-30 Matt Baker <mattbaker@apple.com>
Web Inspector: Better share objects generated from timeline events (Records)
https://bugs.webkit.org/show_bug.cgi?id=147029
Reviewed by Brian Burg.
This patch changes the way TimelineManager processes events, preserving the event hierarchy after
converting payloads to TimelineRecord objects by retaining parent-child relationships between records.
This eliminates the need for RenderingFrameTimelineRecord objects to create a separate copy of their child
records, and provides richer data for the Timelines UI.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded):
Track the parent TimelineRecord as child record payloads are unpacked, and create
a hierarchy of TimelineRecords that mirrors the original event payload hierarchy.
(WebInspector.TimelineManager.prototype._processRecord):
RenderingFrameTimelineRecord is now processed like any other event.
(WebInspector.TimelineManager.prototype._processNestedRecords): Deleted.
Reverted back to a single pass over the incoming timeline event payload.
* UserInterface/Models/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord):
(WebInspector.LayoutTimelineRecord.prototype.get duringComposite): Deleted.
Removed duringComposite property and constructor parameter. No longer needed.
* UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord.prototype.get children): Deleted.
Removed children property. It now exists on the base class TimelineRecord.
Also removed code that was needed to prevent paint time from being added twice.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
(WebInspector.ScriptTimelineRecord):
Removed workaround added in:
<https://webkit.org/b/147025> Web Inspector: REGRESSION (r186218) ScriptTimelineRecord attempts to access null property
* UserInterface/Models/TimelineRecord.js:
(WebInspector.TimelineRecord):
(WebInspector.TimelineRecord.prototype.get children):
Added children property.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords):
Now that we preserve the frame's child record hierarchy, we process the entire tree,
yielding richer data grid output:
Frame X
Styles Recalculated
Layout Invalidated
Composite
Paint
Paint
Compared to the previous output:
Frame X
Styles Recalculated
Layout Invalidated
Composite
Paint
Paint
2015-07-30 Devin Rousso <drousso@apple.com>
Web Inspector: Support smart-pasting in the Rules sidebar panel
https://bugs.webkit.org/show_bug.cgi?id=147362
Reviewed by Timothy Hatcher.
When pasting over the selector, if the pasted text matches CSS rule
formatting, replace the selected rule with the selector and text in
the pasted data.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.changeRule.changeCompleted):
(WebInspector.DOMNodeStyles.prototype.changeRule.styleChanged):
(WebInspector.DOMNodeStyles.prototype.changeRule.changeText):
(WebInspector.DOMNodeStyles.prototype.changeRule.ruleSelectorChanged):
(WebInspector.DOMNodeStyles.prototype.changeRule):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste.parseTextForRule):
(WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
(WebInspector.CSSStyleDeclarationSection):
2015-07-30 Matt Baker <mattbaker@apple.com>
Web Inspector: Fix typo in frame duration filtering console.assert message
https://bugs.webkit.org/show_bug.cgi?id=147458
Rubber-stamped by Joseph Pecoraro.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.displayNameForDurationFilter):
2015-07-30 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Regression: %c is broken for console.group
https://bugs.webkit.org/show_bug.cgi?id=147436
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
2015-07-30 Devin Rousso <drousso@apple.com>
Web Inspector: Add special case for deleting the next character when editing rules in the CSS Sidebar
https://bugs.webkit.org/show_bug.cgi?id=147442
Reviewed by Timothy Hatcher.
If the cursor is on the first position of the first line in a CSS Rule and that line
has no content, delete the line instead of doing nothing.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange):
2015-07-29 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Improve styles of debugger popovers
https://bugs.webkit.org/show_bug.cgi?id=147437
Reviewed by Timothy Hatcher.
Use non-monospace font and improve spacing.
* UserInterface/Views/SourceCodeTextEditor.css:
(.popover .debugger-popover-content > .title):
(.popover .debugger-popover-content > .body):
2015-07-29 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Border line in the debug popover should be semi-transparent black, not dark yellow
https://bugs.webkit.org/show_bug.cgi?id=147435
Reviewed by Timothy Hatcher.
* UserInterface/Views/SourceCodeTextEditor.css:
(.popover .debugger-popover-content > .body):
(@media (-webkit-min-device-pixel-ratio: 2)): Use hairline borders on retina.
2015-07-29 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: " = $0" text in the Elements panel should anti-aliased
https://bugs.webkit.org/show_bug.cgi?id=147432
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.selected > span::after):
(.dom-tree-outline:focus li.selected > span::after):
Decrease the opacity just slightly to make " = $0" more distinct from DOM nodes.
2015-07-29 Matt Baker <mattbaker@apple.com>
Web Inspector: Allow record filtering by frame duration in Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=147419
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
New scope bar item labels.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
New scope bar for frame duration filtering.
(WebInspector.RenderingFrameTimelineView.displayNameForDurationFilter):
(WebInspector.RenderingFrameTimelineView.prototype.matchTreeElementAgainstCustomFilters):
Overridden for view specific filtering. Filtering applies to RenderingFrameTimelineRecords only.
(WebInspector.RenderingFrameTimelineView.prototype._scopeBarSelectionDidChange):
Force sidebar filtering when duration filter changes.
2015-07-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.groupEnd causes negative indent when no group is active
https://bugs.webkit.org/show_bug.cgi?id=147375
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
2015-07-28 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: Convert NavigationItem subclasses to ES6
https://bugs.webkit.org/show_bug.cgi?id=147364
Reviewed by Timothy Hatcher.
Convert remaining NavigationItem subclasses to use ES6 class.
Also promote the _additionalClassNames to be a protected getter,
and inline the style class names that are only used in one place.
Mechanical changes are elided from the changelog.
* UserInterface/Views/ActivateButtonNavigationItem.js:
(WebInspector.ActivateButtonNavigationItem):
(WebInspector.ActivateButtonNavigationItem.prototype.get additionalClassNames):
* UserInterface/Views/ActivateButtonToolbarItem.js:
(WebInspector.ActivateButtonToolbarItem):
* UserInterface/Views/ButtonNavigationItem.js:
(WebInspector.ButtonNavigationItem):
(WebInspector.ButtonNavigationItem.prototype.get additionalClassNames):
* UserInterface/Views/ButtonToolbarItem.js:
(WebInspector.ButtonToolbarItem):
* UserInterface/Views/ControlToolbarItem.js:
(WebInspector.ControlToolbarItem):
(WebInspector.ControlToolbarItem.prototype.get additionalClassNames):
* UserInterface/Views/DividerNavigationItem.js:
(WebInspector.DividerNavigationItem):
(WebInspector.DividerNavigationItem.prototype.get additionalClassNames):
* UserInterface/Views/FlexibleSpaceNavigationItem.js:
(WebInspector.FlexibleSpaceNavigationItem):
(WebInspector.FlexibleSpaceNavigationItem.prototype.get additionalClassNames):
* UserInterface/Views/HierarchicalPathNavigationItem.js:
(WebInspector.HierarchicalPathNavigationItem.prototype.get additionalClassNames):
(WebInspector.HierarchicalPathNavigationItem.prototype.get _additionalClassNames): Deleted.
* UserInterface/Views/NavigationItem.js:
(WebInspector.NavigationItem):
(WebInspector.NavigationItem.prototype.get _classNames):
* UserInterface/Views/RadioButtonNavigationItem.js:
(WebInspector.RadioButtonNavigationItem):
(WebInspector.RadioButtonNavigationItem.prototype.get additionalClassNames):
* UserInterface/Views/ToggleButtonNavigationItem.js:
(WebInspector.ToggleButtonNavigationItem):
(WebInspector.ToggleButtonNavigationItem.prototype.get additionalClassNames):
* UserInterface/Views/ToggleControlToolbarItem.js:
(WebInspector.ToggleControlToolbarItem):
(WebInspector.ToggleControlToolbarItem.prototype.get additionalClassNames):
2015-07-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include <template> node content in DOM Tree
https://bugs.webkit.org/show_bug.cgi?id=147335
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._unbind):
Cleanup templateContent when DOMNodes get removed.
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode.prototype.templateContent):
Create a DOMNode from the payload's templateContent.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._singleTextChild):
(WebInspector.DOMTreeElement.prototype._hasVisibleChildren):
(WebInspector.DOMTreeElement.prototype._visibleChildren):
A DOMTreeElement has children if the DOMNode has template content.
2015-07-28 Devin Rousso <drousso@apple.com>
Web Inspector: Invalid selectors can be applied to the stylesheet
https://bugs.webkit.org/show_bug.cgi?id=147230
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.set selectorText):
Fires an event with data stating if the newly applied selector was valid or not.
(WebInspector.CSSRule.prototype._selectorRejected):
(WebInspector.CSSRule.prototype._selectorResolved):
(WebInspector.CSSRule):
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.changeRuleSelector.ruleSelectorChanged):
(WebInspector.DOMNodeStyles.prototype.changeRuleSelector):
Now returns a promise that will reject if CSSAgent.setRuleSelector has an
error, such as if the selector is invalid, and resolve otherwise.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover):
(.style-declaration-section:not(.invalid-selector).rule-disabled > .header > .icon):
(.style-declaration-section.invalid-selector > .header > .icon):
(.style-declaration-section.invalid-selector > .header > .selector > *):
(.style-declaration-section > .header > .icon.toggle-able:hover): Deleted.
(.style-declaration-section.rule-disabled > .header > .icon): Deleted.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype._toggleRuleOnOff):
Only allow rule toggling if the selector is valid.
(WebInspector.CSSStyleDeclarationSection.prototype._markSelector):
If the new selector is valid, refresh the section. Otherwise, apply a class
to the section element that marks the selector as being invalid.
(WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector):
2015-07-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Show Pseudo Elements in DOM Tree
https://bugs.webkit.org/show_bug.cgi?id=139612
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._pseudoElementAdded):
Hook up the new pseudo element DOMNode to the parent.
(WebInspector.DOMTreeManager.prototype._pseudoElementRemoved):
Unhook the pseudo element from its parent.
(WebInspector.DOMTreeManager.prototype._unbind):
When unbinding, unbind any pseudo element children we may have had.
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode.prototype.isPseudoElement):
(WebInspector.DOMNode.prototype.pseudoType):
(WebInspector.DOMNode.prototype.hasPseudoElements):
(WebInspector.DOMNode.prototype.pseudoElements):
New state of a DOMNode may include pseudo elements.
(WebInspector.DOMNode.prototype.appropriateSelectorFor):
A selector for this node includes the selector for the node above it.
* UserInterface/Protocol/DOMObserver.js:
(WebInspector.DOMObserver.prototype.pseudoElementAdded):
(WebInspector.DOMObserver.prototype.pseudoElementRemoved):
Pass the message on to DOMTreeManager.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.get editable):
Pseudo element nodes are not editable.
(WebInspector.DOMTreeElement.prototype.showChildNode):
(WebInspector.DOMTreeElement.prototype.onpopulate):
(WebInspector.DOMTreeElement.prototype.updateChildren):
(WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
(WebInspector.DOMTreeElement.prototype._singleTextChild):
(WebInspector.DOMTreeElement.prototype._hasVisibleChildren):
(WebInspector.DOMTreeElement.prototype._visibleChildren):
(WebInspector.DOMTreeElement.prototype._updateChildren):
(WebInspector.DOMTreeElement.prototype.adjustCollapsedRange):
(WebInspector.DOMTreeElement.prototype.handleLoadAllChildren):
A DOMTreeElement's children are no longer 1-to-1 to DOMNode's children.
Instead a DOMNode may have a before/after pseudo element child that
are not included in the children list. Update parts of DOMTreeElement
to respect this list of visible children.
* UserInterface/Views/DOMTreeElementPathComponent.js:
(WebInspector.DOMTreeElementPathComponent):
* UserInterface/Views/PathComponentIcons.css:
(.dom-pseudo-element-icon .icon):
Styling for the path component when a pseudo element is selected.
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline .html-pseudo-element):
(.dom-tree-outline .html-fragment.shadow):
(.webkit-html-fragment.shadow): Deleted.
Styles for pseudo elements in the DOM tree.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._hideElement):
Make the hide element selector hide the host element.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.addEventListeners):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.removeEventListeners):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes):
Pseudo class changes won't happen on pseudo elements, but will
happen on their host element, so listen to and make pseudo class
changes to the host element.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules > *:first-child:matches(.new-rule)):
Since a pseudo element does not have a style attribute,
give some margin in the style sidebar above the "New Rule"
button so it looks better.
2015-07-27 Matt Baker <mattbaker@apple.com>
Web Inspector: Record button in Timelines view is clipped on non-retina. Hovering over the dot draws it correctly.
https://bugs.webkit.org/show_bug.cgi?id=147346
Reviewed by Joseph Pecoraro.
Since the hovered button isn't clipped (-webkit-filter is applied in that case), add a filter that
doesn't alter the button's appearance to the non-hovered selector.
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
Added brightness 100% filter to non-hovered selector.
2015-07-27 Matt Baker <mattbaker@apple.com>
Web Inspector: Clicking a frame in the Rendering Frames timeline should select the corresponding grid row
https://bugs.webkit.org/show_bug.cgi?id=147013
Reviewed by Timothy Hatcher.
Added ability to select (or highlight) a particular frame by clicking in the overview graph. A tick mark
appears above the selected frame inside the ruler, and the frame element's background color changes to a light
blue vertical highlight. Frame selection is synced across the timeline view's data grid, overview graph, and
navigation bar path components.
A few behaviors:
- Clicking a frame outside the current ruler selection selects the frame.
- Clicking the selected frame will deselect it.
- Resizing the ruler selection to exclude the selected frame will deselect it.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode.prototype.select):
No need to generate two SelectedNodeChanged events when selecting a node causes
the currently selected node to be deselected.
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WebInspector.LayoutTimelineOverviewGraph):
* UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WebInspector.NetworkTimelineOverviewGraph):
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph): Set TimelineOverview during construction.
Set TimelineOverview during construction.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
(.timeline-overview-graph.rendering-frame > .frame-marker):
(body.window-inactive .timeline-overview-graph.rendering-frame > .frame-marker):
Added styles for selected frame marker.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph):
Set TimelineOverview during construction.
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._mouseClicked):
Added frame marker element and frame selection via mouse click.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.treeElementDeselected):
Deselect grid node when frame is deselected from the overview graph.
(WebInspector.RenderingFrameTimelineView.prototype.filterDidChange): Deleted.
Removed unnecessary override.
* UserInterface/Views/TimelineOverview.js:
Added selectRecord method and RecordSelected event.
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._timelineRulerMouseDown):
(WebInspector.TimelineOverview.prototype._timelineRulerMouseClicked):
Since timeline ruler specifies pointer-events: all, click events must be forwarded to the
underlying overview graph. Click events following changes to the ruler's selection are ignored.
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineOverview.prototype._recordSelected):
Forward RecordSelected events from child graphs to clients of the overview.
* UserInterface/Views/TimelineOverviewGraph.js:
Added RecordSelected event.
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.get visible):
(WebInspector.TimelineOverviewGraph.prototype.get selectedRecord):
(WebInspector.TimelineOverviewGraph.prototype.set selectedRecord):
Added property for selecting a record in the graph. Derived graph types can implement record selection
and choose how to style the selected record.
(WebInspector.TimelineOverviewGraph.prototype.updateLayout):
(WebInspector.TimelineOverviewGraph.prototype.needsLayout):
Update frame marker during an animation frame.
(WebInspector.TimelineOverviewGraph.prototype.dispatchSelectedRecordChangedEvent):
Dispatch wrapper to simplify things.
(WebInspector.TimelineOverviewGraph.prototype.updateSelectedRecord):
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout.update):
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
Inform derived overview graph to optionally style the selected record.
(WebInspector.TimelineOverviewGraph.prototype.set timelineOverview): Deleted.
No longer needed. TimelineOverview set during construction.
* UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame):
(.timeline-record-frame.tall):
Limit the "fade out" effect to frames that are >= 95% of the graph height, otherwise the
gradient mask is noticeable when selecting a shorter frame.
(.timeline-record-frame.selected):
(body.window-inactive .timeline-record-frame.selected):
(.timeline-record-frame.selected > .frame):
Added highlight (and dimmed inactive highlight) for selected frame element.
* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame.prototype.get selected):
(WebInspector.TimelineRecordFrame.prototype.set selected):
Added property for setting selected style.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
Select record in overview in response to changing navigation path.
(WebInspector.TimelineRecordingContentView.prototype._recordSelected.get console):
(WebInspector.TimelineRecordingContentView.prototype._recordSelected):
Update selected tree element in response to changing record selection in the overview graph.
2015-07-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Revert change to DOMTreeElement.prototype.remove
https://bugs.webkit.org/show_bug.cgi?id=147336
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.remove.removeNodeCallback):
This change was accidental, and just resulted in the function calling
itself again. It didn't infinite loops because another path would have
removed the DOMTreeElement, but lets correct this code.
2015-07-27 Devin Rousso <drousso@apple.com>
Web Inspector: support live editing of rule selectors
https://bugs.webkit.org/show_bug.cgi?id=139153
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.highlightSelector):
Moved from CSSStyleDeclarationSection.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.get _currentSelectorText):
Returns the current selector text, either from the style ownerRule or the selector element text.
(WebInspector.CSSStyleDeclarationSection.prototype._highlightNodesWithSelector):
Now highlights all nodes matching the current selector instead of the ownerRule's selector.
(WebInspector.CSSStyleDeclarationSection.prototype._hideDOMNodeHighlight):
(WebInspector.CSSStyleDeclarationSection.prototype._handleMouseOver):
(WebInspector.CSSStyleDeclarationSection.prototype._handleMouseOut):
(WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown):
If the character is not a tab, highlight all nodes matching the current selector text.
(WebInspector.CSSStyleDeclarationSection.prototype._handleKeyUp):
(WebInspector.CSSStyleDeclarationSection.prototype._hideHighlightOnNodesWithSelector): Deleted.
2015-07-27 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: " = $0" in Elements panel can cause a jerk by pushing nodes below it
https://bugs.webkit.org/show_bug.cgi?id=147318
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.selected > span::after):
2015-07-25 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Start using Node.prototype.remove
https://bugs.webkit.org/show_bug.cgi?id=147304
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.elementDragStart):
(WebInspector.elementDragEnd):
(WebInspector.revertDomChanges):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._updateSearchHighlight.updateEntryHide):
(WebInspector.DOMTreeElement.prototype._updateSearchHighlight):
(WebInspector.DOMTreeElement.prototype.remove.removeNodeCallback):
(WebInspector.DOMTreeElement.prototype.remove):
* UserInterface/Views/Resizer.js:
(WebInspector.Resizer.prototype._resizerMouseDown):
(WebInspector.Resizer.prototype._resizerMouseUp):
(WebInspector.Resizer):
2015-07-25 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Fix color declaration for not-executed comments
https://bugs.webkit.org/show_bug.cgi?id=147305
Reviewed by Timothy Hatcher.
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(.cm-s-default .basic-block-has-not-executed.cm-comment):
This was an RGB color mispelled as HSL. Replace "hsl" with "rgb"
and convert it to HSL.
2015-07-25 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Start using Node.prototype.replaceWith
https://bugs.webkit.org/show_bug.cgi?id=147303
Reviewed by Timothy Hatcher.
* UserInterface/Views/Popover.js:
(WebInspector.Popover.prototype._update):
2015-07-25 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Start using Node.prototype.append
https://bugs.webkit.org/show_bug.cgi?id=147301
Convert all instances of element.appendChild(document.createTextNode(aString))
to element.append(aString).
Reviewed by Timothy Hatcher.
* UserInterface/Base/DOMUtilities.js:
* UserInterface/Base/Main.js:
(WebInspector.linkifyLocation):
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
* UserInterface/Views/BoxModelDetailsSectionRow.js:
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow.prototype._createLegendItem):
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.accessibilityPropertiesCallback):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
(WebInspector.DOMTreeElement.prototype._buildTagDOM):
(WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
defaultElement variable is unused, remove it.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode.prototype.createCell.get if):
(WebInspector.DataGridNode.prototype.createCell):
* UserInterface/Views/DebuggerDashboardView.js:
(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
* UserInterface/Views/EventListenerSectionGroup.js:
(WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
(WebInspector.EventListenerSectionGroup):
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createLinkifiedElementString):
(WebInspector.FormattedValue.createElementForNodePreview):
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):
(WebInspector.ResourceDetailsSidebarPanel):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
* UserInterface/Views/SearchResultTreeElement.js:
(WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
* UserInterface/Views/SyntaxHighlightingSupport.js:
(.appendText):
(WebInspector.syntaxHighlightStringAsDocumentFragment):
* UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.createCellContent):
2015-07-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add custom parameter lists for new DOM append/prepend/before/after/replaceWith methods
https://bugs.webkit.org/show_bug.cgi?id=147257
Reviewed by Timothy Hatcher.
* UserInterface/Models/NativeFunctionParameters.js:
2015-07-23 Matt Baker <mattbaker@apple.com>
Web Inspector: jittery cursor when adjusting time interval using timeline grabbers
https://bugs.webkit.org/show_bug.cgi?id=147095
Reviewed by Brian Burg.
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler.resizing-selection > .selection-drag):
Override selection-drag element's cursor when "resizing-selection" selector is applied.
(.timeline-ruler.allows-time-range-selection.creating-selection): Deleted.
Renamed "creating-selection" selector to "resizing-selection" to reflect its new role.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseUp):
Toggle cursor styles.
2015-07-23 Devin Rousso <drousso@apple.com>
Web Inspector: Add a function to CSSCompletions to get a list of supported system fonts
https://bugs.webkit.org/show_bug.cgi?id=147009
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.activateExtraDomains):
* UserInterface/Base/Test.js:
(WebInspector.loaded):
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.requestCSSCompletions.fontFamilyNamesCallback):
(WebInspector.CSSCompletions.requestCSSCompletions):
Now also grabs the list of system font family names and adds that list to the existing completion
list for both font and font-family in CSSKeywordCompletions.
(WebInspector.CSSCompletions.requestCSSNameCompletions): Deleted.
2015-07-23 Matt Baker <mattbaker@apple.com>
Web Inspector: wrong cursor shown when selecting time interval from timeline overview
https://bugs.webkit.org/show_bug.cgi?id=147094
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler.allows-time-range-selection.creating-selection):
New cursor style for entire ruler element.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
Toggle cursor style when dragging to create a new selection in the overview.
2015-07-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline should immediately start moving play head when starting a new recording
https://bugs.webkit.org/show_bug.cgi?id=147210
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/TimelineObserver.js:
(WebInspector.TimelineObserver.prototype.recordingStarted):
(WebInspector.TimelineObserver.prototype.recordingStopped):
Pass on the new timestamps.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype.capturingStopped):
Pass on the new timestamps in the events.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
Pass on the new timestamp from the event as it can be used to update the currentTime.
(WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
If provided a startTime we can use that as the new currentTime. Otherwise fallback
to determining a good currentTime from the next incoming record for legacy backends.
(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
Update the comment, as there is now a solution but this is required for legacy backends.
2015-07-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline's Current Time does not jump forward to new start time when starting a new recording, causes timeline to appear delayed and broken
https://bugs.webkit.org/show_bug.cgi?id=147204
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
We were skipping a timeline, but it might have a new event record with
a new start time. This ensures we get an updated current time which makes
sense, and we jump forward to that time in the main timeline.
2015-07-22 Matt Baker <mattbaker@apple.com>
Web Inspector: TimelineRuler shouldn't dispatch selection changed event unless it actually changes
https://bugs.webkit.org/show_bug.cgi?id=147219
Reviewed by Timothy Hatcher.
Moved to a "suppress next" model for suppressing dispatch of TimelineRuler's selection changed event. The
ruler's _timeRangeSelectionChanged flag is now reset only when an event is finally dispatched.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype._updateSelection):
(WebInspector.TimelineRuler.prototype._dispatchTimeRangeSelectionChangedEvent):
Check for this._timeRangeSelectionChanged moved into dispatch function.
(WebInspector.TimelineRuler.prototype._handleMouseDown):
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
We now suppress the next dispatch only, rather than a toggle.
2015-07-22 Devin Rousso <drousso@apple.com>
Web Inspector: REGRESSION (Safari 7): Pseudo element rules are not labelled with media queries in Styles panel
https://bugs.webkit.org/show_bug.cgi?id=147207
Reviewed by Timothy Hatcher.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertAllMatchingPseudoStyles):
Now inserts pseudo-styles based on whether their selector specificity is greater than
the previous style's selector specificity.
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
2015-07-22 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Change syntax highlighting color for regular expressions to make them more readable
https://bugs.webkit.org/show_bug.cgi?id=146956
Reviewed by Timothy Hatcher.
* UserInterface/Views/FormattedValue.css:
(.formatted-regexp):
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(.syntax-highlighted :matches(.css-string, .javascript-string, .html-attribute-value)):
(.syntax-highlighted .javascript-regexp):
(.syntax-highlighted :matches(.css-string, .javascript-string, .javascript-regexp, .html-attribute-value)): Deleted.
2015-07-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.log("%d", 0) or console.log("%d", "str") show nothing, expected Number or NaN
https://bugs.webkit.org/show_bug.cgi?id=147163
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.append):
When appending the result for a substitution formatter, don't check against a
falsey value, check against undefined. This will allow falsely values like
0 and NaN to be output as expected.
2015-07-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Total download size doesn't update soon after loading
https://bugs.webkit.org/show_bug.cgi?id=147161
Reviewed by Timothy Hatcher.
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
Previously autorecording would always have made us start capturing,
however we only autorecord if users are on the Timeline tab. Just
reset the time always, a navigation happened and start the timer.
(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange):
Move to a better location within the file.
2015-07-21 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Convert all colors from RGB to HSL color scheme
https://bugs.webkit.org/show_bug.cgi?id=147143
HSL color scheme is more human friendly than RGB.
RGB -> HSL
RGB hex (e.g. #bada55 and #456) -> HSL
RGBA -> HSLA
Named colors (white, black, lightgoldenrodyellow) are unchanged
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorGradientEditingController.css:
(.gradient-editing-controller > label > input):
* UserInterface/Views/BoxModelDetailsSectionRow.css:
(.details-section .row.box-model .position):
(.details-section .row.box-model .margin):
(.details-section .row.box-model .margin.active):
(.details-section .row.box-model .border):
(.details-section .row.box-model .border.active):
(.details-section .row.box-model .padding):
(.details-section .row.box-model .padding.active):
(.details-section .row.box-model .content):
(.details-section .row.box-model .content.active):
* UserInterface/Views/Breakpoint.css:
(.popover .edit-breakpoint-popover-content > table > tr > th):
* UserInterface/Views/BreakpointActionView.css:
(.breakpoint-action-remove-button):
(.breakpoint-action-append-button):
(.breakpoint-action-block-body):
(.breakpoint-action-eval-editor):
* UserInterface/Views/BreakpointTreeElement.css:
(.breakpoint-generic-line-icon .icon > span):
(.data-updated.breakpoint-generic-line-icon .icon > span):
* UserInterface/Views/ButtonNavigationItem.css:
(.navigation-bar .item.button.text-only):
(.navigation-bar .item.button.suppress-emboss > .glyph):
* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button > .label):
(.toolbar.label-only .item.activate.button.activated > .label):
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section > .header > .selector):
(.style-declaration-section > .header > .origin):
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.disabled, .invalid, .other-vendor, .not-inherited, .overridden)):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.invalid):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property:matches(.disabled, .other-vendor, .not-inherited, .overridden)):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch > span):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch:hover > span):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch:active > span):
(.css-style-text-editor > .CodeMirror .cm-link):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content > .pseudo-classes):
(.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
(.sidebar > .panel.details.css-style > .content.has-filter-bar + .filter-bar):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .filter-matching):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-has-label)):
* UserInterface/Views/ChartDetailsSectionRow.css:
(.details-section > .content > .group > .row.chart > .title):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label > .color-swatch):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label):
* UserInterface/Views/CodeMirrorOverrides.css:
(.CodeMirror .CodeMirror-selected):
(.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket):
(.CodeMirror .CodeMirror-lines .CodeMirror-nonmatchingbracket):
(.CodeMirror .CodeMirror-gutters):
(.CodeMirror .CodeMirror-linenumber):
* UserInterface/Views/CompletionSuggestionsView.css:
(.completion-suggestions):
(.completion-suggestions-container > .item:active):
* UserInterface/Views/ConsoleMessageView.css:
(.console-user-command.special-user-log > .console-message-text):
(.console-message .repeat-count):
(.console-message-preview-divider):
(.console-message-enclosed):
(.console-user-command > .console-message-text):
(.console-saved-variable):
* UserInterface/Views/DOMStorageContentView.css:
(.content-view.dom-storage > .data-grid tr.missing-value td.value-column):
(.content-view.dom-storage > .data-grid:focus tr.selected.missing-value td.value-column):
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.hovered:not(.selected) .selection):
(.dom-tree-outline li.selected .selection):
(.dom-tree-outline li.elements-drag-over .selection):
(.dom-tree-outline:focus li.selected .selection):
(.showing-find-banner .dom-tree-outline .search-highlight):
* UserInterface/Views/DataGrid.css:
(.data-grid .highlight):
(.data-grid.inline):
(.data-grid th):
(body.window-inactive .data-grid th):
(.data-grid :matches(th, td):not(:last-child)):
(body.window-inactive .data-grid :matches(th, td):not(:last-child)):
(.data-grid th.sortable:active):
(.data-grid th:matches(.sort-ascending, .sort-descending)):
(.data-grid table.data):
(.data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)):
(.data-grid tr.selected):
(.data-grid:matches(:focus, .force-focus) tr.selected):
(.data-grid td .subtitle):
(.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
(.data-grid td.error):
* UserInterface/Views/DatabaseContentView.css:
(.storage-view .storage-table-error):
(.database-user-query):
(.database-query-text):
* UserInterface/Views/DebuggerDashboardView.css:
(.toolbar .dashboard.debugger):
(.dashboard.debugger .navigation-bar .item.button > .glyph):
(.dashboard.debugger > .divider):
(.dashboard.debugger > .location .function-name):
(.dashboard.debugger > .location .go-to-link):
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts):
* UserInterface/Views/DefaultDashboardView.css:
(.toolbar .dashboard.default > .item.enabled:hover):
(.toolbar .dashboard.default > .item.enabled:active):
(.toolbar .dashboard.default > .item > div):
(.toolbar .dashboard.default > .item.enabled > div):
(.toolbar .dashboard.default > .item.enabled:hover > div):
(.toolbar .dashboard.default > .errors.enabled > div):
(.toolbar .dashboard.default > .errors.enabled:hover > div):
(.toolbar .dashboard.default > .issues.enabled > div):
(.toolbar .dashboard.default > .issues.enabled:hover > div):
* UserInterface/Views/DetailsSection.css:
(.details-section):
(.details-section .details-section):
(.details-section .details-section:first-child):
(.details-section > .header):
(.details-section .details-section > .header):
(.details-section .details-section:not(.collapsed) > .header):
(.details-section.computed-style-properties:not(.collapsed) > .header):
(.details-section > .header > label):
(.details-section > .content > .group):
(.details-section > .content > .group:nth-child(even) > .row:matches(.simple:first-child > *, :not(.simple):first-child)):
(.details-section > .content > .group > .row.simple > .label):
(.details-section > .content .data-grid tr:nth-child(odd)):
* UserInterface/Views/DividerNavigationItem.css:
(.navigation-bar .item.divider):
* UserInterface/Views/Editing.css:
(.editing):
* UserInterface/Views/FilterBar.css:
(.filter-bar):
(.filter-bar > input[type="search"]):
(.filter-bar > input[type="search"]::-webkit-input-placeholder):
* UserInterface/Views/FindBanner.css:
(.find-banner):
(body.window-inactive .find-banner):
(.find-banner > input[type="search"]):
(.find-banner > button):
(.find-banner > button:active:not(:disabled)):
(.find-banner > button:disabled):
* UserInterface/Views/FormattedValue.css:
(:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap, .formatted-weakset) > .size):
(.formatted-number):
(.formatted-boolean):
(.formatted-string):
(.formatted-regexp):
(.formatted-symbol):
(.formatted-null, .formatted-undefined):
* UserInterface/Views/GoToLineDialog.css:
(.go-to-line-dialog):
(.go-to-line-dialog > div):
(.go-to-line-dialog > div > input):
(.go-to-line-dialog > div > input::-webkit-input-placeholder):
(.go-to-line-dialog > div > img):
(.go-to-line-dialog > div > img:active):
* UserInterface/Views/GradientSlider.css:
(.gradient-slider):
(.gradient-slider-knob > div):
* UserInterface/Views/HierarchicalPathComponent.css:
(.hierarchical-path-component > .title):
* UserInterface/Views/HoverMenu.css:
(.hover-menu > svg > :matches(path, rect)):
* UserInterface/Views/ImageResourceContentView.css:
(.content-view.resource.image):
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
(.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(odd)):
* UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
(.panel.details.layer-tree .name-column :matches(.pseudo-element, .reflection)):
(.panel.details.layer-tree tr.selected .name-column :matches(.pseudo-element, .reflection)):
(.panel.details.layer-tree .bottom-bar):
* UserInterface/Views/LogContentView.css:
(.console-item):
(.console-session + .console-session):
(.console-messages a):
(.console-messages a:hover):
(.search-bar.log-search-bar > input[type="search"]):
(.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted):
(.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):
* UserInterface/Views/Main.css:
(body.docked.bottom):
(body.docked.right):
(body.window-inactive.docked.bottom):
(body.window-inactive.docked.right):
(#split-content-browser):
(body.window-inactive #split-content-browser):
(#split-content-browser > .navigation-bar):
(#split-content-browser .hierarchical-path-component.log-icon .title):
(.message-text-view):
(.message-text-view.error):
(.go-to-link):
(.value-with-clarification .clarification):
(.bouncy-highlight):
* UserInterface/Views/NavigationBar.css:
(.navigation-bar):
(body.window-inactive .navigation-bar):
* UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .overflow-shadow):
(body.window-inactive .sidebar > .panel.navigation > .overflow-shadow):
(.sidebar > .panel.navigation > .empty-content-placeholder > .message):
(.navigation-sidebar-panel-content-tree-outline .item.selected):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected):
(body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
(.navigation-sidebar-panel-content-tree-outline .item .highlighted):
(.navigation-sidebar-panel-content-tree-outline .item .subtitle):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .subtitle):
* UserInterface/Views/NetworkGridContentView.css:
(.content-view.network-grid > .data-grid table.data):
* UserInterface/Views/NetworkSidebarPanel.css:
(.sidebar > .panel.navigation.network > .title-bar):
(body.window-inactive .sidebar > .panel.navigation.network > .title-bar):
(.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
* UserInterface/Views/NetworkTimelineOverviewGraph.css:
(.timeline-overview-graph.network:nth-child(even) > .graph-row > .timeline-record-bar > .segment:not(.inactive)):
* UserInterface/Views/NewTabContentView.css:
(.new-tab.tab.content-view):
(.new-tab.tab.content-view > .tab-item > .box):
* UserInterface/Views/ObjectPreviewView.css:
(.object-preview .name):
(.object-preview > .size):
* UserInterface/Views/ObjectTreeView.css:
(.object-tree-outline li .empty-message):
* UserInterface/Views/OverviewTimelineView.css:
(.timeline-view.overview > .timeline-ruler > .header):
(body.window-inactive .timeline-view.overview > .timeline-ruler > .header):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.has-inactive-segment) > .segment):
(.timeline-view.overview > .data-grid:focus tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.has-inactive-segment) > .segment):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(.timeline-view.overview > .data-grid:focus tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
* UserInterface/Views/ProbeSetDataGrid.css:
(.details-section.probe-set .data-grid tr.past-value td):
(.details-section.probe-set .data-grid > td.unknown-value):
(@-webkit-keyframes blink-frame-highlight):
(100%):
(.details-section.probe-set .data-grid tr.separator):
(@-webkit-keyframes blink-probe-frame):
* UserInterface/Views/QuickConsole.css:
(.quick-console):
(body.window-inactive .quick-console):
(.quick-console.showing-log):
* UserInterface/Views/RadioButtonNavigationItem.css:
(.navigation-bar .item.radio.button.text-only:hover):
(.navigation-bar .item.radio.button.text-only.selected):
(.navigation-bar .item.radio.button.text-only:active):
(.navigation-bar .item.radio.button.text-only.selected:active):
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
(.timeline-overview-graph.rendering-frame > .divider):
(.timeline-overview-graph.rendering-frame > .divider > .label):
* UserInterface/Views/ReplayDashboardView.css:
(.toolbar .dashboard.replay):
* UserInterface/Views/ResourceTreeElement.css:
(.item.resource.failed):
(.item.resource.failed .subtitle):
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results > .no-filter-results-message):
* UserInterface/Views/ScopeBar.css:
(.scope-bar > li):
(.scope-bar > li:hover):
(.scope-bar > li.selected):
(.scope-bar > li:active):
(.scope-bar > li.selected:active):
* UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]):
(.search-bar > input[type="search"]::-webkit-input-placeholder):
* UserInterface/Views/SearchSidebarPanel.css:
(.sidebar > .panel.navigation.search > .search-bar):
* UserInterface/Views/Sidebar.css:
(.sidebar):
(.sidebar.left):
(.sidebar.right):
(body.window-inactive .sidebar.left):
(body.window-inactive .sidebar.right):
* UserInterface/Views/SourceCodeTextEditor.css:
(.source-code.text-editor > .CodeMirror .warning):
(.source-code.text-editor > .CodeMirror .error):
(.source-code.text-editor > .CodeMirror .issue-widget.warning):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow):
(.source-code.text-editor > .CodeMirror .issue-widget.error):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow):
(.popover .debugger-popover-content > .body):
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(.syntax-highlighted :matches(.css-comment, .javascript-comment, .html-comment)):
(.syntax-highlighted :matches(.css-keyword, .css-tag, .css-at-rule, .css-important, .javascript-keyword, .html-tag)):
(.syntax-highlighted :matches(.css-number, .javascript-number)):
(.syntax-highlighted :matches(.css-string, .javascript-string, .javascript-regexp, .html-attribute-value)):
(.syntax-highlighted :matches(.html-doctype, .html-processing-instruction)):
(.syntax-highlighted .html-attribute-name):
(.syntax-highlighted a):
(.supports-find-banner.showing-find-banner .syntax-highlighted .search-result):
(.cm-s-default .basic-block-has-not-executed):
(.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-3, .cm-property)):
(.cm-s-default .basic-block-has-not-executed:matches(.cm-number, .cm-atom.cm-hex-color)):
(.cm-s-default .basic-block-has-not-executed.cm-string):
(.cm-s-default .basic-block-has-not-executed.cm-m-xml.cm-meta):
* UserInterface/Views/TabBar.css:
(.tab-bar):
(body.window-inactive .tab-bar):
(.tab-bar > .top-border):
(body.window-inactive .tab-bar > .top-border):
(.tab-bar > .item):
(.tab-bar.dragging-tab > .item.selected):
(.tab-bar > .item:not(.disabled).selected):
(.tab-bar > .item.new-tab-button:not(.disabled):hover):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover + .item):
(body.window-inactive .tab-bar > .item):
(body.window-inactive .tab-bar > .item.selected):
(.tab-bar > .item > .close:hover):
(.tab-bar > .item > .title):
(.tab-bar:not(.animating) > .item:not(.selected):hover > .title):
(.tab-bar > .item.selected > .title):
(.tab-bar.animating.closing-tab > .item.selected):
(body.window-inactive .tab-bar.animating.closing-tab > .item.selected):
* UserInterface/Views/TextEditor.css:
(.text-editor > .CodeMirror .execution-line):
(.text-editor > .CodeMirror .hovered-expression-highlight):
(to):
* UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline th):
(body.window-inactive .data-grid.timeline th):
(.timeline-data-grid-tree-outline .item:hover):
(.timeline-data-grid-tree-outline .item .subtitle):
* UserInterface/Views/TimelineOverview.css:
(.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)):
* UserInterface/Views/TimelineRecordBar.css:
(.timeline-record-bar > .segment):
(:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment.inactive):
(:matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(.timeline-record-bar.timeline-record-type-network > .segment):
(.timeline-record-bar.timeline-record-type-network > .segment.inactive):
(.timeline-record-bar.timeline-record-type-layout > .segment):
(.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-composite > .segment):
(.timeline-record-bar.timeline-record-type-script > .segment):
* UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame):
(.timeline-record-frame > .frame > .duration):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-script):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-layout):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-paint):
* UserInterface/Views/TimelineRecordingContentView.css:
(.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid table.data):
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler > .header):
(body.window-inactive .timeline-ruler > .header):
(.timeline-ruler > .header > .divider):
(body.window-inactive .timeline-ruler > .header > .divider):
(.timeline-ruler > .header > .divider > .label):
(.timeline-ruler > .markers > .divider):
(.timeline-ruler > .markers > .marker):
(.timeline-ruler > .markers > .marker.load-event):
(.timeline-ruler > .markers > .marker.dom-content-event):
(.timeline-ruler > .markers > .marker.timestamp):
(.timeline-ruler > .selection-handle):
(.timeline-ruler > .shaded-area):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar):
(body.window-inactive .sidebar > .panel.navigation.timeline > .status-bar):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
(.sidebar > .panel.navigation.timeline > .title-bar):
(body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):nth-child(even)):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):not(:first-child)):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(body.window-inactive .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
* UserInterface/Views/TimelineView.css:
(.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
* UserInterface/Views/Toolbar.css:
(.toolbar):
(body.window-inactive .toolbar):
* UserInterface/Views/TreeElementStatusButton.css:
(.item > .status > .status-button > svg .filled):
(.item > .status > .status-button > svg .stroked):
* UserInterface/Views/TypeTokenView.css:
(.type-token-function, .type-token-boolean):
(.type-token-number):
(.type-token-string):
(.type-token-symbol):
(.type-token-default):
(.type-token-empty):
(.type-token-many):
* UserInterface/Views/TypeTreeView.css:
(.type-tree-outline li .empty-message):
2015-07-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.assert(false, "Message") message is not visible in console
https://bugs.webkit.org/show_bug.cgi?id=147130
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
We were forgetting to assign the result of args.concat back into args.
In re-addressing this, improve the formatting of output if there is
a string message or not as the second argument to console.assert(), as
that is the common usage.
2015-07-18 Saam barati <saambarati1@gmail.com>
[ES6] Add support for block scope const
https://bugs.webkit.org/show_bug.cgi?id=31813
Reviewed by Filip Pizlo.
"const" variables do not live on the global object and are only
accessible within the "Program" they're defined in. Therefore,
the WebInspector global must be defined as "var" and not "const".
* UserInterface/Base/WebInspector.js:
2015-07-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: REGRESSION (r186218) ScriptTimelineRecord attempts to access null property
https://bugs.webkit.org/show_bug.cgi?id=147025
Reviewed by Timothy Hatcher.
The issue here was two ScriptTimelineRecord's were created for the same
profile payload. When the first ScriptTimelineRecord processed the
payload to create a Profile we modified the payload, then when the
second ScriptTimelineRecord tries to process the payload the data is
in an unexpected state and it crashes.
The solution here is to stash the result on the payload, so when the
payload is shared we can just immediately jump to the resulting Profile.
The longer term solution will be to share higher level objects and not
attempt to process the payload multiple times. That is tracked by:
<https://webkit.org/b/147029> Web Inspector: Better share objects generated from timeline events (Records)
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
When processing the profile payload, store the Profile on the payload
so if another ScriptTimelineRecord has that payload they can avoid
re-processing it.
2015-07-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Total Size of Resources number in dashboard is wrong (does not update during load)
https://bugs.webkit.org/show_bug.cgi?id=147027
Reviewed by Timothy Hatcher.
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange):
Restore implementation of callback from r183328 to update total resource
size as resources are downloaded.
2015-07-16 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Further optimize the weight and time icons taken back to the toolbar dashboard for the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=147010
SVG images optimized with a combination of sed replacements, the
usage of the scour tool (http://www.codedread.com/scour/) and a
forked version of the svgo tool (https://github.com/tanty/svgo).
Also, added the class attribute to the shape elements following
the convention used in Apple's images.
Reviewed by Martin Robinson.
* UserInterface/Images/gtk/Time.svg: Optimized.
* UserInterface/Images/gtk/Weight.svg: Optimized.
2015-07-16 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Add new Network icon for the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=147002
Reviewed by Martin Robinson.
* UserInterface/Images/gtk/Network.svg: Added.
Icon for the new Network tab.
2015-07-16 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Add new composite record icon for the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=146998
Reviewed by Martin Robinson.
* UserInterface/Images/gtk/TimelineRecordComposite.svg: Added.
New composite record icon.
2015-07-15 Matt Baker <mattbaker@apple.com>
Web Inspector: Resizing TimelineRuler selection on both sides doesn't work with snapping enabled
https://bugs.webkit.org/show_bug.cgi?id=146970
Reviewed by Brian Burg.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
Use snapped current time value when setting selection bounds.
2015-07-14 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r186698): Web Inspector: Frame selector is monospace again
https://bugs.webkit.org/show_bug.cgi?id=146954
Reviewed by Joseph Pecoraro.
* UserInterface/Views/HierarchicalPathComponent.css:
(.hierarchical-path-component):
2015-07-14 Matt Baker <mattbaker@apple.com>
Web Inspector: TimelineRuler minimum selection time range should be configurable
https://bugs.webkit.org/show_bug.cgi?id=146944
Reviewed by Joseph Pecoraro.
* UserInterface/Views/RenderingFrameTimelineOverview.js:
Set minimum selection to 1 frame.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.set selectionDuration):
Use ruler's minimum duration.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.get minimumSelectionDuration):
(WebInspector.TimelineRuler.prototype.set minimumSelectionDuration):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
Added property for setting minimum selection duration. Default minimum duration is 0.01, which is
equal to the old hard-coded minimum selection time range.
2015-07-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception in inspector for some ConsoleMessages
https://bugs.webkit.org/show_bug.cgi?id=146919
Reviewed by Brian Burg.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
The parameters list may not exist, so null check it before use.
2015-07-13 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Use -apple-system-monospaced-numbers for line numbers
https://bugs.webkit.org/show_bug.cgi?id=146898
Reviewed by Timothy Hatcher.
* UserInterface/Views/CodeMirrorOverrides.css:
(.CodeMirror .CodeMirror-linenumber): Decrease font-size by 1px to make 4 digit numbers fit.
2015-07-12 Timothy Hatcher <timothy@apple.com>
Web Inspector: Add -apple-system-monospaced-numbers to font and font-family autocomplete
https://bugs.webkit.org/show_bug.cgi?id=146865
Reviewed by Daniel Bates.
* UserInterface/Models/CSSKeywordCompletions.js:
2015-07-11 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Inspector should be able to be docked to the bottom of a narrow window
https://bugs.webkit.org/show_bug.cgi?id=146871
Reviewed by Timothy Hatcher.
* UserInterface/Views/Toolbar.css:
(@media (max-width: 539px)): Hide download button to fit search field into the screen.
2015-07-11 Devin Rousso <drousso@apple.com>
Web Inspector: Improve runtime of pseudo-element sidebar style ordering
https://bugs.webkit.org/show_bug.cgi?id=146866
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.update): Determines the most specific selector and saves it to a variable.
(WebInspector.CSSRule.prototype.get mostSpecificSelector): Returns the most specific selector.
(WebInspector.CSSRule.prototype.selectorIsGreater): Compares the most specific selector to a given selector.
(WebInspector.CSSRule.prototype._determineMostSpecificSelector):
Searches through the selector list to find and return the selector that is the most specific.
(WebInspector.CSSRule):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
2015-07-11 Devin Rousso <drousso@apple.com>
Web Inspector: Warning icon tooltip for numbers with no units could be improved
https://bugs.webkit.org/show_bug.cgi?id=146859
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
If the property's value is incorrect and is comprised of only numbers, that must mean that the value needs
to have units (like "px") after the number. Added another warning icon case to support this scenario.
2015-07-10 Timothy Hatcher <timothy@apple.com>
Web Inspector: Use -apple-system instead of -webkit-system-font
https://bugs.webkit.org/show_bug.cgi?id=146860
Remove explicit uses of font-family where inhertance from the body is enough.
Change -webkit-system-font to -apple-system and use -apple-system-monospaced-numbers
for DataGrid and the toolbar dashboard.
Reviewed by Sam Weinig.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
* UserInterface/Views/DataGrid.css:
(.data-grid td):
* UserInterface/Views/DefaultDashboardView.css:
(.toolbar .dashboard.default > .item):
(.toolbar .dashboard.default > :matches(.time, .resourcesSize)):
(.toolbar .dashboard.default > .resourcesSize):
* UserInterface/Views/HierarchicalPathComponent.css:
(.hierarchical-path-component):
* UserInterface/Views/LogContentView.css:
(.console-messages):
* UserInterface/Views/Main.css:
(body):
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
(.object-tree-array-index .index-name):
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property .prototype-name):
* UserInterface/Views/ObjectTreeView.css:
(.object-tree-outline li .empty-message):
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
(.timeline-overview-graph.rendering-frame > .divider > .label):
* UserInterface/Views/SourceCodeTextEditor.css:
(.source-code.text-editor > .CodeMirror .issue-widget > .text):
* UserInterface/Views/TypeTreeView.css:
(.type-tree):
2015-07-10 Devin Rousso <drousso@apple.com>
Web Inspector: Add source links to functions logged in the console
https://bugs.webkit.org/show_bug.cgi?id=146377
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
Returns a promise that contains the sourceCodeLocation if the object represents a function and has an objectId.
(WebInspector.RemoteObject.prototype._isFunction):
* UserInterface/Views/ConsoleMessageView.css:
(.console-message .console-message-location):
Added specified values for font sizing and family to ensure that all location links have the same styling.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView):
Now creates a link to the source code of the entered text if the message is of the type "result".
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
(WebInspector.ConsoleMessageView.prototype._createRemoteObjectIfNeeded):
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
(WebInspector.ConsoleMessageView.prototype._linkifyLocation):
(WebInspector.ConsoleMessageView.prototype._linkifyCallFrameLocation):
(WebInspector.ConsoleMessageView.prototype._linkifyCallFrame):
2015-07-10 Timothy Hatcher <timothy@apple.com>
Web Inspector: Storage tab should have a scope bar in the sidebar
https://bugs.webkit.org/show_bug.cgi?id=146799
Fix a couple typos found post review.
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel):
2015-07-09 Timothy Hatcher <timothy@apple.com>
Web Inspector: Storage tab should have a scope bar in the sidebar
https://bugs.webkit.org/show_bug.cgi?id=146799
Reviewed by Mark Lam.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Main.html: Added StorageSidebarPanel.css.
* UserInterface/Views/StorageSidebarPanel.css: Added.
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel):
(WebInspector.StorageSidebarPanel.prototype.hasCustomFilters):
(WebInspector.StorageSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.StorageSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.StorageSidebarPanel.prototype._scopeBarSelectionDidChange):
2015-07-09 Timothy Hatcher <timothy@apple.com>
Web Inspector: Make the TabBar work better with AX
https://bugs.webkit.org/show_bug.cgi?id=146806
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar): Set role to tablist and drop tabIndex.
* UserInterface/Views/TabBarItem.js:
(WebInspector.TabBarItem): Set role to tab and tabIndex.
(WebInspector.TabBarItem.prototype.set selected): Toggle aria-selected.
2015-07-09 Devin Rousso <drousso@apple.com>
Web Inspector: Don't clear the console when navigating to a different page
https://bugs.webkit.org/show_bug.cgi?id=142751
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager): No longer distinguishes from page refreshes and page navigations for console clearing.
(WebInspector.LogManager.prototype._delayedMessagesCleared):
(WebInspector.LogManager.prototype._mainResourceDidChange):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent): Changed context menu keep/clear log text.
(WebInspector.LogContentView.prototype._toggleClearLogOnNavigateSetting):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting): Deleted.
2015-07-09 Devin Rousso <drousso@apple.com>
Web Inspector: Pseudo-element style ordering is wrong for pseudo-styles on unique selectors
https://bugs.webkit.org/show_bug.cgi?id=146804
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.selectorIsGreater):
Loops through the selectors in a rule to check if their specificity is greater than a given selector's specificity.
* UserInterface/Models/CSSSelector.js:
(WebInspector.CSSSelector.prototype.isGreaterThan):
Determines if the given selector's specificity is greater than this selector's specificity.
(WebInspector.CSSSelector):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
If the pseudo-element selector's specificity is greater than the current selector's
specificity, create the pseudo-element's section and add it before the current style.
2015-07-09 Devin Rousso <drousso@apple.com>
Web Inspector: Special Logs to Console that do not have an expression should be styled differently, looks like code
https://bugs.webkit.org/show_bug.cgi?id=143840
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.WebInspector.JavaScriptLogViewController.appendImmediateExecutionWithResult):
Now applies a class to special logs initiated by the user (log element, log object, etc).
* UserInterface/Views/ConsoleCommandView.js:
(WebInspector.ConsoleCommandView): Added className parameter.
* UserInterface/Views/ConsoleMessageView.css:
(.console-user-command.selected-element-log):
(.console-user-command.special-user-log > .console-message-text):
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement):
(WebInspector.DOMTreeOutline.prototype._populateContextMenu):
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._contextMenuHandler):
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._logSymbolProperty):
(WebInspector.ObjectTreeBaseTreeElement.prototype._logValue):
2015-07-09 Devin Rousso <drousso@apple.com>
Web Inspector: Checkbox disappears when unchecking CSS background style
https://bugs.webkit.org/show_bug.cgi?id=146776
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers): Now uses _createCommentedCheckboxMarker.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createCommentedCheckboxMarker):
Scans the content of the given lineHandle for any commented text and adds an unselected checkbox to
the beginning of that lineHandle's line.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent): Now adds commented checkbox markers.
2015-07-09 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Align slider knobs in the color picker
https://bugs.webkit.org/show_bug.cgi?id=146778
Also:
- Use half pixel borders on retina
- Remove one pixel white outline to match native OS X color picker more closely
Reviewed by Timothy Hatcher.
* UserInterface/Views/ColorPicker.css:
(.color-picker > .slider > img):
* UserInterface/Views/Slider.css:
(.slider):
(@media (-webkit-min-device-pixel-ratio: 2)):
2015-07-09 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frame segment colors should match those used in original Timelines graph
https://bugs.webkit.org/show_bug.cgi?id=146777
Reviewed by Brian Burg.
* UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame > .frame > .duration):
(.timeline-record-frame > .frame > .duration:last-child):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-script):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-layout):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-paint):
Use same RGB values as TimelineRecordBar.
2015-07-09 Matt Baker <mattbaker@apple.com>
Web Inspector: New JavaScript/Probe breakpoint action disappears when clicking continue checkbox
https://bugs.webkit.org/show_bug.cgi?id=146688
Reviewed by Brian Burg.
Delay removal of empty Evaluate and Probe actions until after the breakpoint popover has been dismissed. This
will make the breakpoint editing experience less jarring, by preventing actions from disappearing when clicking
other controls in the popover.
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype.didDismissPopover):
Clear empty Evaluate and Probe actions on popover dismissal.
* UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.prototype._codeMirrorBlurred):
Don't remove actions with empty data on CodeMirror blur.
2015-07-09 Matt Baker <mattbaker@apple.com>
Web Inspector: new breakpoint action dialog should reuse same action type
https://bugs.webkit.org/show_bug.cgi?id=137255
Reviewed by Brian Burg.
* UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.prototype._appendActionButtonClicked):
Use the view's action type instead of the default.
2015-07-08 Devin Rousso <drousso@apple.com>
Web Inspector: Copy Rule in the context menu copies hidden properties in the rule
https://bugs.webkit.org/show_bug.cgi?id=146775
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString):
Now only uses properties from the rule's visibleProperties list.
2015-07-08 Timothy Hatcher <timothy@apple.com>
Web Inspector: Add page weight and time back to the toolbar dashboard
https://bugs.webkit.org/show_bug.cgi?id=146755
Revert r183328 which removed the page weight and load time from the dashboard. We have space
in the dashboard, we can put these back since we didn't find a better home for them.
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Base/Main.js:
(WebInspector.showNetworkTab):
* UserInterface/Images/Time.svg: Added.
* UserInterface/Images/Weight.svg: Added.
* UserInterface/Images/gtk/Time.svg: Added.
* UserInterface/Images/gtk/Weight.svg: Added.
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard):
(WebInspector.DefaultDashboard.prototype.get resourcesSize):
(WebInspector.DefaultDashboard.prototype.set resourcesSize):
(WebInspector.DefaultDashboard.prototype.get time):
(WebInspector.DefaultDashboard.prototype.set time):
(WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
(WebInspector.DefaultDashboard.prototype._capturingStopped):
(WebInspector.DefaultDashboard.prototype._startUpdatingTime):
(WebInspector.DefaultDashboard.prototype._stopUpdatingTime):
(WebInspector.DefaultDashboard.prototype._updateTime):
* UserInterface/Views/DashboardContainerView.css:
(body.web .toolbar .dashboard-container):
(body.javascript .toolbar .dashboard-container):
(.toolbar.collapsed .dashboard-container):
(.toolbar .dashboard-container): Deleted.
* UserInterface/Views/DefaultDashboardView.css:
(body.web .toolbar.collapsed .dashboard.default > :matches(.resourcesSize, .time, .logs)):
(body.javascript .toolbar .dashboard.default > :matches(.resourcesCount, .resourcesSize, .time)):
(.toolbar .dashboard.default > .resourcesSize):
(.toolbar .dashboard.default > .time > img):
(.toolbar .dashboard.default > .resourcesSize > img):
(body.web .toolbar.collapsed .dashboard.default > .item.resourcesCount): Deleted.
(body.javascript .toolbar .dashboard.default > .item.resourcesCount): Deleted.
* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._updateDisplay):
(WebInspector.DefaultDashboardView.prototype._networkItemWasClicked):
(WebInspector.DefaultDashboardView.prototype._timelineItemWasClicked):
2015-07-08 Devin Rousso <drousso@apple.com>
Web Inspector: Style sidebar is showing incorrect strikethroughs
https://bugs.webkit.org/show_bug.cgi?id=146768
Reviewed by Timothy Hatcher.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._markOverriddenProperties):
No longer sets the effective property as overridden if the overriding property is anonymous (not visible).
2015-07-08 Devin Rousso <drousso@apple.com>
Web Inspector: Color swatches show up in color names in comments
https://bugs.webkit.org/show_bug.cgi?id=146757
Reviewed by Timothy Hatcher.
* UserInterface/Views/CodeMirrorAdditions.js: Color markers now only appear if the color is in a keyword.
2015-07-08 Timothy Hatcher <timothy@apple.com>
Web Inspector: Only record a timeline when the Timelines tab is showing
https://bugs.webkit.org/show_bug.cgi?id=146759
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.get autoCaptureOnPageLoad):
(WebInspector.TimelineManager.prototype.set autoCaptureOnPageLoad):
(WebInspector.TimelineManager.prototype._startAutoCapturing):
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView.prototype.shown):
(WebInspector.TimelineTabContentView.prototype.hidden):
2015-07-08 Timothy Hatcher <timothy@apple.com>
Web Inspector: Details sidebar doesn't activate on first selected resource in Network tab
https://bugs.webkit.org/show_bug.cgi?id=146691
Make sure the SelectionPathComponentsDidChange event is dispatched when the tree elements are selected.
Selecting in the DataGrid selects the TreeElements, but onselect is not fired to avoid an inifinte loop.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView): Hook up _treeElementSelected.
(WebInspector.NetworkGridContentView.prototype._treeElementSelected): Added. Moved from
NetworkSidebarPanel and added dispatch of SelectionPathComponentsDidChange event.
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel): Removed _treeElementSelected.
(WebInspector.NetworkSidebarPanel.prototype.canShowDifferentContentView): Renamed from _canShowDifferentContentView.
(WebInspector.NetworkSidebarPanel.prototype._canShowDifferentContentView): Deleted.
(WebInspector.NetworkSidebarPanel.prototype._treeElementSelected): Moved to NetworkGridContentView.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.treeElementSelected): Dispatch SelectionPathComponentsDidChange event.
2015-07-08 Devin Rousso <drousso@apple.com>
Web Inspector: Confusingly crossed out properties in .sidebar > .panel.navigation.timeline > .title-bar
https://bugs.webkit.org/show_bug.cgi?id=146727
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
The properties map used for refreshing each property now holds a list of properties for each line to ensure that
if a duplicate property exists, it also gets refreshed.
2015-07-08 Devin Rousso <drousso@apple.com>
Web Inspector: Can't select last row in the timeline because it's covered by filter selector
https://bugs.webkit.org/show_bug.cgi?id=146603
Reviewed by Timothy Hatcher.
* UserInterface/Views/ScopeBar.js: Now adds a class to the scope bar if the default item is selected.
* UserInterface/Views/LayoutTimelineView.js:
* UserInterface/Views/NetworkTimelineView.js:
* UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline > .navigation-bar-container): Deleted.
(.data-grid.timeline.has-non-default-filter > .navigation-bar-container): Deleted.
(.data-grid.timeline:hover > .navigation-bar-container): Deleted.
(.data-grid.timeline > .navigation-bar-container > .navigation-bar): Deleted.
(body.window-inactive .data-grid.timeline > .navigation-bar-container > .navigation-bar): Deleted.
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid):
(WebInspector.TimelineDataGrid.createColumnScopeBar):
(WebInspector.TimelineDataGrid.prototype.updateLayout): Deleted.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar > .default-item-selected > .multiple):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events > .title-bar-scope-bar > .default-item-selected > .multiple path):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.set contentTreeOutlineScopeBar):
Clears the title bar scope element and adds the given element as a child node.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineScopeBar):
Returns the scope bar element of the current object if it exists.
2015-07-08 Devin Rousso <drousso@apple.com>
Web Inspector: Clicking style checkbox selects the property name while mouse down
https://bugs.webkit.org/show_bug.cgi?id=146728
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown):
Now returns if the click was not at the end of the line.
2015-07-08 Timothy Hatcher <timothy@apple.com>
REGRESSION (r185629): Web Inspector: Filtering doesn't display any items if folders are used to organize the web page resources
https://bugs.webkit.org/show_bug.cgi?id=146675
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeElement.prototype.revealed): Added ignoreHidden parameter.
(WebInspector.TreeElement.prototype.traverseNextTreeElement.shouldSkip): Pass true to ignore hidden elements.
(WebInspector.TreeElement.prototype.traverseNextTreeElement): Populate up front like the old traverseNextTreeElement.
This is needed to traverse into lazy populated tree elements. Don't call shouldSkip in the loop.
(WebInspector.TreeElement.prototype.traversePreviousTreeElement.shouldSkip): Pass true to ignore hidden elements.
(WebInspector.TreeElement.prototype.traversePreviousTreeElement): Add some newlines.
2015-07-08 Devin Rousso <drousso@apple.com>
Web Inspector: Pressing delete in the styles sidebar with no text causes text to become misaligned
https://bugs.webkit.org/show_bug.cgi?id=146715
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange):
Now returns if the change was in the first character of the first line.
2015-07-07 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Use "hairline" borders on retina screen
https://bugs.webkit.org/show_bug.cgi?id=146619
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section):
(.style-declaration-section.locked):
(.style-declaration-section:not(.locked)):
(.style-declaration-section.last-in-group):
(.style-declaration-section + .style-declaration-section):
(.style-declaration-section.last-in-group + .style-declaration-section):
(@media (-webkit-min-device-pixel-ratio: 2)):
* UserInterface/Views/DetailsSection.css:
(.details-section .details-section):
(.details-section > .content > .group:nth-child(even)):
(@media (-webkit-min-device-pixel-ratio: 2)):
* UserInterface/Views/DividerNavigationItem.css:
(@media (-webkit-min-device-pixel-ratio: 2)):
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label):
(.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section):
(.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .label):
(@media (-webkit-min-device-pixel-ratio: 2)):
2015-07-07 Devin Rousso <drousso@apple.com>
Web Inspector: Pressing tab on a comment in the styles sidebar doesn't highlight the comment
https://bugs.webkit.org/show_bug.cgi?id=146709
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.selectFirstProperty):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.selectLastProperty):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._textAtCursorIsComment):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._insertNewlineAfterCurrentLine):
Determines if the text at the given cursor position in the given line is a comment.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey):
2015-07-07 Devin Rousso <drousso@apple.com>
Web Inspector: spacebar should pause/resume timeline recording when timelines are open
https://bugs.webkit.org/show_bug.cgi?id=143267
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineSidebarPanel): Added two new keyboard shortcuts: space and shift-space.
(WebInspector.TimelineSidebarPanel.prototype.shown): Enables the keyboard shortcuts.
(WebInspector.TimelineSidebarPanel.prototype.hidden): Disables the keyboard shortcuts.
(WebInspector.TimelineSidebarPanel.prototype._toggleRecordingOnSpacebar):
(WebInspector.TimelineSidebarPanel.prototype._toggleNewRecordingOnSpacebar):
(WebInspector.TimelineSidebarPanel.prototype._toggleRecording): Starts/stops recording.
2015-07-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve names for unprefixed animation events
https://bugs.webkit.org/show_bug.cgi?id=146708
Reviewed by Timothy Hatcher.
* UserInterface/Models/ScriptTimelineRecord.js:
2015-07-07 Timothy Hatcher <timothy@apple.com>
Web Inspector: Timeline record bars are not white when the row is selected from the sidebar
https://bugs.webkit.org/show_bug.cgi?id=146694
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TimelineRecordBar.css:
(:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment):
(:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment.inactive):
(:matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
2015-07-07 Devin Rousso <drousso@apple.com>
Web Inspector: Unnecessary space added after -webkit- prefixed property values
https://bugs.webkit.org/show_bug.cgi?id=146671
Reviewed by Joseph Pecoraro.
* Tools/PrettyPrinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value.css: Added.
* Tools/PrettyPrinting/index.html:
* UserInterface/Views/CodeMirrorFormatters.js: Now only adds a space if both the current and previous
tokens are a property, value, or atom.
2015-07-07 Matt Baker <mattbaker@apple.com>
Web Inspector: Pad ruler selection area by 1px in the Rendering Frames timeline overview
https://bugs.webkit.org/show_bug.cgi?id=146248
Reviewed by Timothy Hatcher.
* UserInterface/Views/RenderingFrameTimelineOverview.js:
Enable duration pixel alignment.
* UserInterface/Views/TimelineOverview.css:
(.timeline-overview.frames > .timeline-ruler > .header > .divider):
(.timeline-overview.frames > .timeline-ruler > .selection-handle.right):
(.timeline-overview.frames > .timeline-ruler > .shaded-area.right):
Shift ruler elements 1 pixel to the right, so that selection boundaries and dividers are
positioned inside the gap between frame elements.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get pixelAlignDuration):
(WebInspector.TimelineOverview.prototype.set pixelAlignDuration):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
Added a property to force the overview graph to align duration units on the y-axis to pixel boundaries.
When enabled, frame elements are displayed in integer widths while zooming, preventing subpixel blurring
and maintaining a consistent 1 pixel gap between frames.
2015-07-07 Devin Rousso <drousso@apple.com>
Web Inspector: Tabbing in the styles sidebar doesn't highlight the next section of text
https://bugs.webkit.org/show_bug.cgi?id=146676
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue): Modified the logic to only search the
remaining text after the current cursor position.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey): Now only searches for matches before the colon.
2015-07-07 Devin Rousso <drousso@apple.com>
Web Inspector: Option+Click not jumping to resource
https://bugs.webkit.org/show_bug.cgi?id=146498
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js: Always show the tab which contains the represented object.
(WebInspector._domNodeWasInspected):
(WebInspector._frameWasAdded):
(WebInspector.showConsoleTab):
(WebInspector.showRepresentedObject): Removed forceShowTab parameter.
(WebInspector.showMainFrameDOMTree):
(WebInspector.showContentFlowDOMTree):
(WebInspector.showSourceCodeForFrame):
(WebInspector.showSourceCode):
(WebInspector.showSourceCodeLocation):
(WebInspector.showOriginalUnformattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeTextRange):
(WebInspector.showResourceRequest):
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._mouseButtonWasReleasedOverEditor):
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.showMainResourceForFrame):
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
(WebInspector.ComputedStyleDetailsPanel):
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
(WebInspector.ObjectTreeBaseTreeElement):
2015-07-07 Devin Rousso <drousso@apple.com>
Web Inspector: Regression: CSS autocompletion suggestion applies on pressing delete
https://bugs.webkit.org/show_bug.cgi?id=146672
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): Now returns if completions are showing.
2015-07-07 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Properly align checkboxes in the styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=146673
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-lines input[type=checkbox]):
2015-07-06 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frame bars appear misaligned and contain gaps when displaying small task segments
https://bugs.webkit.org/show_bug.cgi?id=146475
Reviewed by Timothy Hatcher.
Displaying all task segments within a frame in the Rendering Frames graph is impossible, as very short tasks
would result in a bar with a height of less than 1 pixel. Consecutive small tasks, each less than a visible
pixel, appear as gaps in the frame bar. This patch addresses these shortcomings by introducing a minimum
displayable frame height (3 pixels), and setting the height of every frame to a multiple of the minimum height.
* UserInterface/Base/Utilities.js:
(.value):
Added Math.roundTo to simplify rounding to arbitrary intervals.
* UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame):
(.timeline-record-frame > .frame > .duration):
Enforce 3px min height for frames & segments. TimelineRenderingFrame's segment height calculator
creates segments that are always at least 3px, this is just a precaution.
* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.updateDurationRemainder):
(WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.pushCurrentSegment):
(WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.invisibleSegments.forEach):
(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement): Deleted.
Added algorithm for calculating frame segment heights, rather than simply dividing each task's
duration by the frame duration. Results are cached so the segment heights aren't needlessly
recalculated on every scroll/zoom.
2015-07-06 Timothy Hatcher <timothy@apple.com>
Web Inspector: Force show Console tab when supportsSplitContentBrowser is false
https://bugs.webkit.org/show_bug.cgi?id=146661
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.showConsoleTab):
2015-07-06 Devin Rousso <drousso@apple.com>
Web Inspector: Clearing the console does not remove the unread message icon
https://bugs.webkit.org/show_bug.cgi?id=146649
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._clearLog): Removes the "unread" class from all scope bar items.
2015-07-02 Timothy Hatcher <timothy@apple.com>
Web Inspector: Add a dedicated Network tab that is always live
https://bugs.webkit.org/show_bug.cgi?id=146568
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.isTabTypeAllowed):
(WebInspector._tabContentViewForType):
(WebInspector._updateNewTabButtonState):
Add NetworkTabContentView to the right places.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.get persistentNetworkTimeline):
(WebInspector.TimelineManager.prototype._mainResourceDidChange):
(WebInspector.TimelineManager.prototype._resourceWasAdded):
Add a persistent network timeline that always has all resources.
* UserInterface/Images/Network.svg: Added.
* UserInterface/Main.html: Added new files.
* UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .content):
Drive-by fix. The bottom was off by one. This caused misalignment between sidebar and content view when
scrolled all the way to the bottom of the content view.
* UserInterface/Views/NetworkGridContentView.css: Added.
(.content-view.network-grid > .data-grid):
(.content-view.network-grid > .data-grid th):
(.content-view.network-grid > .data-grid td):
(.content-view.network-grid > .data-grid table.data):
Mostly copied from TimelineView.css and NetworkTimelineView.css.
* UserInterface/Views/NetworkGridContentView.js: Added.
(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.get navigationSidebarTreeOutline):
(WebInspector.NetworkGridContentView.prototype.get selectionPathComponents):
(WebInspector.NetworkGridContentView.prototype.get zeroTime):
(WebInspector.NetworkGridContentView.prototype.shown):
(WebInspector.NetworkGridContentView.prototype.hidden):
(WebInspector.NetworkGridContentView.prototype.closed):
(WebInspector.NetworkGridContentView.prototype.updateLayout):
(WebInspector.NetworkGridContentView.prototype.needsLayout):
(WebInspector.NetworkGridContentView.prototype.reset):
(WebInspector.NetworkGridContentView.prototype._processPendingRecords):
(WebInspector.NetworkGridContentView.prototype._networkTimelineReset):
(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
(WebInspector.NetworkGridContentView.prototype._treeElementPathComponentSelected):
(WebInspector.NetworkGridContentView.prototype._dataGridNodeSelected):
Mostly copied from NetworkTimelineView.
* UserInterface/Views/NetworkSidebarPanel.css: Added.
(.sidebar > .panel.navigation.network > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.network > .navigation-bar):
(.sidebar > .panel.navigation.network > .title-bar):
(.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content):
(.sidebar > .panel.navigation.network .item:hover:not(.selected) .status .close.status-button):
(.sidebar > .panel.navigation.network:not(.network-grid-content-view-showing) .status .go-to-arrow.status-button):
(.sidebar > .panel.navigation.network.network-grid-content-view-showing .status .close.status-button):
(.sidebar > .panel.navigation.network.network-grid-content-view-showing .navigation-sidebar-panel-content-tree-outline.network-grid .item .subtitle):
(.sidebar > .panel.navigation.network > .content > .navigation-sidebar-panel-content-tree-outline):
(.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
Mostly copied from TimelineSidebarPanel.css and NetworkTimelineView.css.
* UserInterface/Views/NetworkSidebarPanel.js: Added.
(WebInspector.NetworkSidebarPanel):
(WebInspector.NetworkSidebarPanel.prototype.closed):
(WebInspector.NetworkSidebarPanel.prototype.showDefaultContentView):
(WebInspector.NetworkSidebarPanel.prototype.saveStateToCookie):
(WebInspector.NetworkSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.NetworkSidebarPanel.prototype.hasCustomFilters):
(WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
(WebInspector.NetworkSidebarPanel.prototype._networkTimelineReset):
(WebInspector.NetworkSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
(WebInspector.NetworkSidebarPanel.prototype._treeElementGoToArrowWasClicked):
(WebInspector.NetworkSidebarPanel.prototype._treeElementCloseButtonClicked):
(WebInspector.NetworkSidebarPanel.prototype._canShowDifferentContentView):
(WebInspector.NetworkSidebarPanel.prototype._treeElementSelected):
(WebInspector.NetworkSidebarPanel.prototype._scopeBarSelectionDidChange):
A hybrid of ResourceSidebarPanel and TimelineSidebarPanel.
* UserInterface/Views/NetworkTabContentView.js: Added.
(WebInspector.NetworkTabContentView):
(WebInspector.NetworkTabContentView.prototype.get type):
(WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject):
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView): Add Network tab and sort the tabs by their localized name.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar.prototype._handleNewTabClick):
Drive-by fix. Don't fire the click event if the new tab button is disabled.
2015-07-06 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Mark console filters that have unseen messages by colored dots
https://bugs.webkit.org/show_bug.cgi?id=146616
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.log-scope-bar > li.unread::before):
(.log-scope-bar > li.unread:hover::before):
(.log-scope-bar > li.unread.errors::before):
(.log-scope-bar > li.unread.warnings::before):
(.log-scope-bar > li.unread.logs::before):
(@keyframes unread-background-pulse):
2015-07-06 Timothy Hatcher <timothy@apple.com>
Web Inspector: Exceptions in Network timeline when resource updates and filters are applied
https://bugs.webkit.org/show_bug.cgi?id=146609
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.insertChild):
(WebInspector.DataGrid.prototype.removeChild):
(WebInspector.DataGridNode.prototype.savePosition):
Convert exceptions to asserts and early returns.
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes): Add some asserts and checks.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype.appendChild):
(WebInspector.TreeOutline.prototype.insertChild):
(WebInspector.TreeOutline.prototype.removeChildAtIndex):
(WebInspector.TreeOutline.prototype.removeChild):
Convert exceptions to asserts and early returns.
2015-07-05 Timothy Hatcher <timothy@apple.com>
Web Inspector: Cached resources are missing startTime and size in Network timeline
https://bugs.webkit.org/show_bug.cgi?id=146607
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache): Pass elapsedTime in the right argument order.
Add missing calls to Resource.increaseSize and Resource.increaseTransferSize.
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse): Pass elapsedTime in the right argument order.
2015-07-05 Timothy Hatcher <timothy@apple.com>
Web Inspector: Dim more borders when the window is inactive
https://bugs.webkit.org/show_bug.cgi?id=146608
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DataGrid.css:
(body.window-inactive .data-grid th):
(body.window-inactive .data-grid :matches(th, td):not(:last-child)):
* UserInterface/Views/NavigationSidebarPanel.css:
(body.window-inactive .sidebar > .panel.navigation > .overflow-shadow):
* UserInterface/Views/OverviewTimelineView.css:
(body.window-inactive .timeline-view.overview > .timeline-ruler > .header):
* UserInterface/Views/TimelineDataGrid.css:
(body.window-inactive .data-grid.timeline th):
(body.window-inactive .data-grid.timeline > .navigation-bar-container > .navigation-bar):
* UserInterface/Views/TimelineRuler.css:
(body.window-inactive .timeline-ruler > .header):
(body.window-inactive .timeline-ruler > .header > .divider):
* UserInterface/Views/TimelineSidebarPanel.css:
(body.window-inactive .sidebar > .panel.navigation.timeline > .status-bar):
(body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar):
(body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
2015-07-05 Timothy Hatcher <timothy@apple.com>
Web Inspector: Timeline row selection should have same background color in sidebar and data grid
https://bugs.webkit.org/show_bug.cgi?id=146606
Support a force-focus class name that TreeOutlineDataGridSynchronizer applies when one of the
elements is focused, so the other can look focused too.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DataGrid.css:
(.data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)):
(.data-grid:matches(:focus, .force-focus) tr.parent.selected td.disclosure::before):
(.data-grid:matches(:focus, .force-focus) tr.parent.expanded.selected td.disclosure::before):
(.data-grid:matches(:focus, .force-focus) tr.selected):
(.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
* UserInterface/Views/Main.css:
(:matches(:focus, .force-focus) .selected .go-to-arrow):
(:matches(:focus, .force-focus) .selected .go-to-arrow:active):
* UserInterface/Views/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected):
(.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .subtitle):
* UserInterface/Views/TreeElementStatusButton.css:
(:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .filled):
(:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .stroked):
* UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
(WebInspector.TreeOutlineDataGridSynchronizer):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridGainedFocus): Added.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridLostFocus): Added.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineGainedFocus): Added.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineLostFocus): Added.
2015-07-05 Devin Rousso <drousso@apple.com>
Web Inspector: Deleting in the CSS sidebar causes the warning icon to appear mid-word
https://bugs.webkit.org/show_bug.cgi?id=146617
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): Now removes all marks whenever the user deletes.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): The invalid marker now calculates
it's position based off of where the semicolon is in the property text.
2015-07-05 Devin Rousso <drousso@apple.com>
Web Inspector: CSS rule with 2 pseudo-selectors appears twice
https://bugs.webkit.org/show_bug.cgi?id=146576
Reviewed by Timothy Hatcher.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
Only adds pseudo-elements if the previous pseudo-element has a different selector.
2015-07-04 Devin Rousso <drousso@apple.com>
Web Inspector: Wrong cursor position in styles panel when deleting a line break
https://bugs.webkit.org/show_bug.cgi?id=146577
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): If the change is a deletion at the beginning of a line,
remove all markers on that line to ensure that there is no blank space on the previous line after deleting.
2015-07-04 Devin Rousso <drousso@apple.com>
Web Inspector: Pressing tab on a newline in the console should insert a tab character
https://bugs.webkit.org/show_bug.cgi?id=146612
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt.prototype._handleTabKey): Tabs can now be inserted at the beginning of newlines and before the first
non-space character on any other line.
2015-07-04 Devin Rousso <drousso@apple.com>
Web Inspector: Pressing enter on a newline in the styles sidebar inserts a semicolon
https://bugs.webkit.org/show_bug.cgi?id=146611
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey): Now returns if the line is empty.
2015-07-04 Devin Rousso <drousso@apple.com>
Web Inspector: Console should indicate if you have unseen messages in console due to filters
https://bugs.webkit.org/show_bug.cgi?id=143166
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.updatePreviousMessageRepeatCount): Now returns true/false depending on if
the message count was actually updated.
* UserInterface/Views/LogContentView.css:
(.log-scope-bar > li.unread): Applies the unread-border-pulse keyframe animation.
(.log-scope-bar > li.unread.errors): The pulsing border is colored red.
(.log-scope-bar > li.unread.warnings): The pulsing border is colored yellow(ish).
(.log-scope-bar > li.unread.logs): The pulsing border is colored grey.
(@keyframes unread-border-pulse): Changes the color of the border from transparent to whatever is specificed.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._determineMessageLevel):
(WebInspector.LogContentView.prototype._pulseScopeBarItemBorder): Adds the class "unread" to the scope bar item whose panel
the newest message belongs to, but only if that panel or the All panel is not visible.
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._previousMessageRepeatCountUpdated):
(WebInspector.LogContentView.prototype._scopeBarSelectionDidChange): Clears the "unread" class on the selected scope bar item.
(WebInspector.LogContentView.prototype._filterMessageElements):
* UserInterface/Views/ScopeBar.js:
(WebInspector.ScopeBar.prototype.get items): Returns a list of all the items in the scope bar.
* UserInterface/Views/ScopeBarItem.js:
(WebInspector.ScopeBarItem): Added another parameter to allow for a custom class name.
2015-07-04 Devin Rousso <drousso@apple.com>
Web Inspector: Pseudo Styles Ordering and Media Queries
https://bugs.webkit.org/show_bug.cgi?id=145979
Reviewed by Timothy Hatcher.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) + .label.filter-matching-label:not(.filter-section-non-matching)):
Fix filter label styling with pseudo selectors.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Pseudo-selector rules will now order directly after the last style that
matches the pseudo-selector without the pseudo-element. If no rules match, place the pseudo-selector rules above the first
inherited or UserAgent rule (whichever comes first).
2015-07-04 Devin Rousso <drousso@apple.com>
REGRESSION(r184000): Web Inspector: Multiline CSS in Styles Sidebar is marked as invalid
https://bugs.webkit.org/show_bug.cgi?id=146178
Reviewed by Timothy Hatcher.
First changes made by Tobias Reiss <tobi+webkit@basecode.de>
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-values-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-values.css: Added.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-rules-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-rules.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-newline-between-values-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-newline-between-values.css: Added.
* Tools/PrettyPrinting/index.html:
Add regression tests.
* UserInterface/Views/CodeMirrorFormatters.js:
Remove newlines before values that belong in one line and add whitespace between values.
2015-07-04 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: The arrow that appears for Web Inspector Layout & Rendering records overlaps the category switcher
https://bugs.webkit.org/show_bug.cgi?id=146605
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline > .navigation-bar-container):
2015-07-03 Dan Bernstein <mitz@apple.com>
[Xcode] Update some build settings as recommended by Xcode 7
https://bugs.webkit.org/show_bug.cgi?id=146597
Reviewed by Sam Weinig.
* Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE and
GCC_NO_COMMON_BLOCKS.
* WebInspectorUI.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
2015-07-02 Devin Rousso <drousso@apple.com>
Web Inspector: Show suggest popover on Tab press even if it wasn't showing before
https://bugs.webkit.org/show_bug.cgi?id=146496
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): Pressing tab will try to autocomplete before trying
to add an ending colon/semicolon or highlight the next section of text.
2015-07-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Aggregate profile call information on the backend to drastically reduce profile sizes
https://bugs.webkit.org/show_bug.cgi?id=146536
Reviewed by Timothy Hatcher.
Since we still support legacy backends, the frontend documents where
it is handling legacy backends with compatibility comments.
* UserInterface/Models/ProfileNode.js:
(WebInspector.ProfileNode):
(WebInspector.ProfileNode.prototype.get callInfo):
Handle a ProfileNode created with callInfo or calls. They are mutually exclusive.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
If the profile has per-call information, construct ProfileNodeCall objects, otherwise
just construct the ProfileNode with the aggregate callInfo value.
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.get data):
When we have aggregate call information we cannot easily partition a script,
so we instead treat the entire script as one large atomic unit in the timeline.
If the timeline range has any portion of the script, show the entire script.
Users used to be able to select a portion of a script and view the relevant
functions called in just that sliver, but this doesn't appear to be a well
known feature or commonly used. In fact, given the small ranges of time it
could be confusing for users.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters):
Treat as a discrete unit.
2015-07-01 Devin Rousso <drousso@apple.com>
Web Inspector: When autocompleting, pressing tab twice shouldn't insert a tab character
https://bugs.webkit.org/show_bug.cgi?id=145885
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype.updateCompletions): Resolves the promise as having completions.
(WebInspector.CodeMirrorCompletionController.prototype.hideCompletions): Resolves the promise as not having completions.
(WebInspector.CodeMirrorCompletionController.prototype.completeAtCurrentPositionIfNeeded): Returns a WrappedPromise that allows
callers of this function to determine if the autocomplete had any values or was instead not shown.
(WebInspector.CodeMirrorCompletionController.prototype._resolveUpdatePromise):
* UserInterface/Main.html: Added WrappedPromise class.
* UserInterface/Models/WrappedPromise.js: Added WrappedPromise object to expose resolve and reject functions.
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt.prototype._handleTabKey): Attempts to find completions for current text. If there are none, beep.
2015-07-01 Devin Rousso <drousso@apple.com>
Make the first click on a rule section create a newline for easy property addition
https://bugs.webkit.org/show_bug.cgi?id=146490
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey): Inserts a semicolon if the line is missing one.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown): If the user clicks on a property with the editor being
unfocused, the name/value containing the cursor will be highlighted. If instead the user clicks at the end of a line, the
cursor's position is saved for mouseUp.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp): If the mouseDown cursor position was saved and is equal
to the current cursor's position (the user did not drag), add a newline after the current line and place the cursor on that line.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.highlightNextNameOrValue): Deleted.
2015-06-30 Devin Rousso <drousso@apple.com>
Web Inspector: add " = $0" hint after selected element in main DOMTreeOutline
https://bugs.webkit.org/show_bug.cgi?id=145739
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeOutline.css: Adds a semi-opaque " = $0" to the selected element in the DOM tree.
(.dom-tree-outline li.selected > span::after):
(.dom-tree-outline:focus li.selected > span::after):
2015-06-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ProfileNode cleanup
https://bugs.webkit.org/show_bug.cgi?id=146472
Reviewed by Timothy Hatcher.
* UserInterface/Models/ProfileNode.js:
(WebInspector.ProfileNode):
Use Array.prototype.every instead of reduce.
Correct the name of a function to be what callers expect!
2015-06-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: iOS 8: Profile Nodes not showing in JavaScript Timeline
https://bugs.webkit.org/show_bug.cgi?id=146471
Reviewed by Brian Burg.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeCallFromPayload):
For legacy backends, convert the startTime to the proper timestamp type.
2015-06-30 Matt Baker <mattbaker@apple.com>
Web Inspector: Reduce rendering frames "Other" time by instrumenting compositing
https://bugs.webkit.org/show_bug.cgi?id=146168
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._processRecord):
Added handling for new Composite record type. Paint records with a parent Composite record
are flagged to simplify processing after the event hierarchy is unpacked.
* UserInterface/Images/TimelineRecordComposite.svg: Added.
New composite record icon.
* UserInterface/Models/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord):
(WebInspector.LayoutTimelineRecord.displayNameForEventType):
(WebInspector.LayoutTimelineRecord.prototype.get duringComposite): Added
Composite record support.
* UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.get validRecordForTaskType):
Add compositing time when bucketing runloop tasks, ignoring Paint events that are
contained within a Composite event.
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
Add Composite records to paint timeline row.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords):
Small unrelated fix.
* UserInterface/Views/TimelineIcons.css:
(.composite-record .icon):
* UserInterface/Views/TimelineRecordBar.css:
(.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-composite > .segment):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
New styles and tree element icon.
2015-06-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: iOS 8: Uncaught Exception expanding Object Prototype
https://bugs.webkit.org/show_bug.cgi?id=146427
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype._updateProperties):
We are supposed to receive value properties for __proto__ properties
so that we can immediately start showing information about the property.
When that is not the case, which appeared to only be on legacy
backends for the top level prototype, just ignore it.
2015-06-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Misc. Timeline cleanup
https://bugs.webkit.org/show_bug.cgi?id=146430
Reviewed by Timothy Hatcher.
* UserInterface/Models/Timeline.js:
(WebInspector.Timeline.prototype.reset):
Nobody listens for this event. Just remove it.
* UserInterface/Models/TimelineRecording.js:
Avoiding doing multiple lookups.
* UserInterface/Views/TimelineDataGridNode.js:
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.updateLayout):
Eliminate some unnecessary deletes.
2015-06-29 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Unable to select the text of an inline error message
https://bugs.webkit.org/show_bug.cgi?id=145813
Reviewed by Timothy Hatcher.
* UserInterface/Views/CodeMirrorOverrides.css:
(.CodeMirror-linewidget):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.createWidgetForLine):
2015-06-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove harmless error for not getting named flows
https://bugs.webkit.org/show_bug.cgi?id=146417
Reviewed by Darin Adler.
* UserInterface/Controllers/DOMTreeManager.js:
2015-06-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Network errors (404) are missing location link in console messages
https://bugs.webkit.org/show_bug.cgi?id=146442
Reviewed by Darin Adler.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
Restore behavior of adding a location link for network messages with urls.
2015-06-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: iOS 8: Resources Timeline Data does not show up
https://bugs.webkit.org/show_bug.cgi?id=146433
Reviewed by Timothy Hatcher.
There were a couple issues with initializing the legacy base timestamp
for attempting to dynamically compute monotonically increasing timestamps
for timeline events for legacy backends.
* Sometimes legacy timestamps were in seconds since epochs,
sometimes milliseconds. The frontend did not handle both.
* On navigations, even while resetting the base timestamp for
the first new record received, the main resource still had
a will send request time computed from the previous page's
time system. This patch re-uses the original timestamp for
this main resource as the new base and all future records
are computed relative to this.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):
* UserInterface/Models/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.get originalRequestWillBeSentTimestamp):
For legacy timestamp calculations, save the original request will be sent
timestamp on the Resource in case it is needed.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._loadNewRecording):
When auto-starting a new recording for a navigation / reload, use the
main resource's request will be sent timestamp as the new base.
* UserInterface/Models/TimelineRecording.js:
Address legacy timeline timestamps by handling both legacy timestamps
that may be seconds / milliseconds.
2015-06-29 Joseph Pecoraro <pecoraro@apple.com>
REGRESSION: Web Inspector: Jump to Definition is broken
https://bugs.webkit.org/show_bug.cgi?id=146376
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
Allow changing tabs when jumping to function definition.
2015-06-28 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Wrong border color of console messages when filters are enabled
https://bugs.webkit.org/show_bug.cgi?id=146392
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
(.console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
2015-06-25 Matt Baker <mattbaker@apple.com>
Web Inspector: Wrong timeline selected after switching from Rendering Frames to Timelines
https://bugs.webkit.org/show_bug.cgi?id=146331
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineSidebarPanel.js:
Set previously selected timeline type to null if no tree element is selected when switching
view mode to Rendering Frames.
2015-06-25 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging
https://bugs.webkit.org/show_bug.cgi?id=146324
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
On Mac 10.11 transition to using InspectorFrontendHost.startWindowDrag.
For older Macs continue to use InspectorFrontendHost.moveWindowBy.
* UserInterface/Protocol/InspectorFrontendHostStub.js:
(WebInspector.InspectorFrontendHostStub.prototype.startWindowDrag):
Add the stub for InspectorFrontendHostStub.
2015-06-24 Devin Rousso <drousso@apple.com>
Web Inspector: Pressing tab in the styles sidebar shouldn't insert a tab character
https://bugs.webkit.org/show_bug.cgi?id=146189
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorCompletionController.js: Added variable to control whether semicolons are added to the end of autocompleted css values.
(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype.set noEndingSemicolon):
(WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorSwitchRule):
(WebInspector.CSSStyleDeclarationSection.prototype.focusRuleSelector):
(WebInspector.CSSStyleDeclarationSection.prototype.selectLastProperty):
(WebInspector.CSSStyleDeclarationSection.prototype.get selectorLocked):
(WebInspector.CSSStyleDeclarationSection.prototype.get locked):
(WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor): Added functions for "Tab", "Shift-Tab", and "Shift-Enter" keypresses to improve usability.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.selectFirstProperty): Highlights the first property.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.selectLastProperty): Highlights the last property.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._insertNewlineAfterCurrentLine): Inserts a newline after the currently selected line.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey): Pressing shift-tab will move the cursor to the previous non-word character that is immediately after a word character.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.highlightNextNameOrValue):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): Pressing tab will move the cursor to each space character until the end of the line is reached, at
which point the cursor will move to the beginning of the next line. Once the cursor is at the last line, pressing tab again will insert a newline.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorNextRule): Switches the focused rule to the next section.
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorPrevRule): Switches the focused rule to the previous section.
2015-06-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.group looks poor in console
https://bugs.webkit.org/show_bug.cgi?id=146295
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
String for the default group name if you use console.group() without a name parameter.
* UserInterface/Views/LogContentView.css:
(.console-group-title::before):
Tweak the positioning and eliminate the log level ::before image.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView):
Reorder a bit to reduce a couple branches.
(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
Take a very straightforward approach for group names.
2015-06-24 Devin Rousso <drousso@apple.com>
Web Inspector: Show warning icon for invalid CSS properties and/or values
https://bugs.webkit.org/show_bug.cgi?id=145657
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.prototype.getClosestPropertyName): Calculates the levenshtein distance between a given property and every existing property name. Returns the property name with the smallest distance or, in the case of multiple properties having the same distance, the first property in alphabetical order.
(WebInspector.CSSCompletions.prototype.propertyRequiresWebkitPrefix): Retruns if the property name exists only with a '-webkit-' prefix.
(WebInspector.CSSCompletions):
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker.clickable:hover):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.duplicatePropertyExistsBelow): Determines if there exists a property below (visually) the given property that has the same name.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.generateInvalidMarker): Creates a warning icon marker at the given position with the given title.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.instancesOfProperty): Returns the number of properties in the rule that have the same name.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): A button with a warning icon is now added to the beginning of an invalid property. If this button is clicked, the property is replaced with the closest matching property and the autocomplete menu is opened.
2015-06-24 Devin Rousso <drousso@apple.com>
Web Inspector: Background of Computed Styles is missing
https://bugs.webkit.org/show_bug.cgi?id=146209
Reviewed by Timothy Hatcher.
* UserInterface/Views/ComputedStyleDetailsPanel.css:
(.computed-style-properties.details-section): Added white background.
2015-06-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Right/Left arrow no longer works in console to expand/collapse ObjectTrees
https://bugs.webkit.org/show_bug.cgi?id=141949
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.get expandable):
(WebInspector.ConsoleMessageView.prototype.set expandable): Deleted.
(WebInspector.ConsoleMessageView.prototype._appendExtraParameters):
(WebInspector.ConsoleMessageView.prototype._appendStackTrace):
(WebInspector.ConsoleMessageView.prototype._makeExpandable):
Clarify what makes a ConsoleMessageView expandable or not.
(WebInspector.ConsoleMessageView.prototype.expand):
(WebInspector.ConsoleMessageView.prototype.collapse):
Handle the expand/collapse cases which could apply to the
ConsoleMessageView itself or an inner ObjectTreeView if that is all we contain.
(WebInspector.ConsoleMessageView.prototype._formatParameterAsObject):
Delete out of date comment. A console.log("message", obj) will want the
object tree member variable to handle auto expanding/collapsing of the
single object in the message.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._leftArrowWasPressed):
(WebInspector.LogContentView.prototype._rightArrowWasPressed):
Use the higher level ConsoleMessageView objects accessible from the element
to call through to expand/collapse.
2015-06-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reduce QuickConsole DidResize events if it did not change
https://bugs.webkit.org/show_bug.cgi?id=146258
Reviewed by Timothy Hatcher.
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole.prototype.consoleLogVisibilityChanged):
Do not trigger the event unless there was a change in visibility.
2015-06-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: TextEditor scroll position not correctly restored when switching tabs
https://bugs.webkit.org/show_bug.cgi?id=146254
Reviewed by Timothy Hatcher.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.updateLayout):
Workaround a larger issue with ContentView restoration so that
TextEditors restore their scroll position as expected.
2015-06-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Some brief previews are incorrectly treated as lossless
https://bugs.webkit.org/show_bug.cgi?id=146247
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
When we have a brief preview we may need to override lossless / overflow
if the preview view itself shows less properties than were in the preview.
2015-06-23 Matt Baker <mattbaker@apple.com>
Web Inspector: Layout & Rendering timeline should show paint and layout records in separate rows
https://bugs.webkit.org/show_bug.cgi?id=146119
Reviewed by Timothy Hatcher.
This patch makes the original Layout & Rendering timeline visually consistent with the Rendering Frames
timeline, which uses green to distinguish Paint from Layout. In order to support having record bars with
different colors in the same overview graph, the timeline has been split into two rows.
* UserInterface/Views/LayoutTimelineOverviewGraph.css:
(.timeline-overview-graph.layout > .graph-row):
(.timeline-overview-graph.layout > .graph-row > .timeline-record-bar):
(.timeline-overview-graph.layout > .graph-row > .timeline-record-bar > .segment):
New row styles.
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WebInspector.LayoutTimelineOverviewGraph.prototype.reset.createRecordRow):
(WebInspector.LayoutTimelineOverviewGraph.prototype.reset):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
(WebInspector.LayoutTimelineOverviewGraph.prototype._updateRowLayout.createBar):
(WebInspector.LayoutTimelineOverviewGraph.prototype._updateRowLayout):
(WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
(WebInspector.LayoutTimelineOverviewGraph): Deleted.
Added bookkeeping objects for timeline row elements and their associated records.
* UserInterface/Views/TimelineRecordBar.css:
(.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-paint > .segment):
New style for layout record event types.
* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.prototype.set records):
Add style class for eventType, if present.
2015-06-22 Devin Rousso <drousso@apple.com>
Web Inspector: gaps between sections of the styles sidebar rules tab confusing, should say "Media: all"
https://bugs.webkit.org/show_bug.cgi?id=142918
Reviewed by Timothy Hatcher.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) ~ .label):
Now properly adds padding to filtered labels.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label ~ .label): Deleted.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): If a section of CSS rules has no media or inheritance, add
a label that says "Media: all" above the section.
2015-06-22 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Consider making read-only style rules have a darker background
https://bugs.webkit.org/show_bug.cgi?id=145983
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section:not(.locked)):
(.style-declaration-section): Deleted.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor.read-only > .CodeMirror):
2015-06-22 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Unable to select text of user input messages in the console
https://bugs.webkit.org/show_bug.cgi?id=145888
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.css:
(.console-user-command > .console-message-text):
2015-06-20 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Unable to select parent element in the DOM tree path bar
https://bugs.webkit.org/show_bug.cgi?id=145810
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.get selectionPathComponents):
* UserInterface/Views/HierarchicalPathComponent.js:
(WebInspector.HierarchicalPathComponent.prototype.get selectedPathComponent):
(WebInspector.HierarchicalPathComponent.prototype._selectElementMouseUp):
(WebInspector.HierarchicalPathComponent.prototype._selectElementSelectionChanged):
(WebInspector.HierarchicalPathComponent):
(WebInspector.HierarchicalPathComponent.prototype._selectElementMouseDown): Deleted.
2015-06-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Duplication of style attribute in rules panel for shadow content
https://bugs.webkit.org/show_bug.cgi?id=146176
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
The styleText can be non-empty for a readonly editor if the editor is for
the style attribute of a shadow dom node. Instead of assuming it is empty
we can just clear the editor ourselves and regenerate from properties.
2015-06-19 Devin Rousso <drousso@apple.com>
Web Inspector: Highlight currently edited CSS selector
https://bugs.webkit.org/show_bug.cgi?id=145658
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection): Added event listeners on the selector text for mouseover and mouseout.
(WebInspector.CSSStyleDeclarationSection.prototype._highlightNodesWithSelector): Selector text mouseover action that highlights all nodes that match the selector string in the corresponding frame.
(WebInspector.CSSStyleDeclarationSection.prototype._hideHighlightOnNodesWithSelector): Selector text mouseout action that clears all highlights on matching nodes.
* UserInterface/Views/DOMNode.js:
(WebInspector.DOMNode): If the payload contains a frameId, then save it.
(WebInspector.DOMNode.frameIdentifier):
2015-06-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Overlapping dashboard views causing lots of layers in source view
https://bugs.webkit.org/show_bug.cgi?id=146153
Reviewed by Darin Adler.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard:not(.visible)):
Hide non-visible dashboard views. The !important is used
to override more specific toolbar .dashboard.foo styles.
2015-06-19 Devin Rousso <drousso@apple.com>
Web Inspector: Make rule icon toggle all properties for that selector on and off
https://bugs.webkit.org/show_bug.cgi?id=146031
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section > .header > .icon.toggle-able:hover):
(.style-declaration-section.rule-disabled > .header > .icon):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection): Added event listener to selector icon to toggle commenting of all properties for that rule.
(WebInspector.CSSStyleDeclarationSection.prototype._toggleRuleOnOff): Adds or removes comments to all properties for that rule.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties.uncommentProperties):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties): Uncomments all properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.commentAllProperties): Comments out all properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCheckboxChanged): Moved comment logic to its own function.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCommentCheckboxChanged): Moved uncomment logic to its own function.
2015-06-19 Jon Lee <jonlee@apple.com>
Update font and font-family keyword completions
https://bugs.webkit.org/show_bug.cgi?id=144558
<rdar://problem/20795292>
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSKeywordCompletions.js: Replace -webkit-system-font and
-apple-system-font with -apple-system, which is the recommended token for getting the
system font. Also add -title{1,2,3} for font, as they were missing, but already exist
in font-family.
2015-06-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Avoid getOwnPropertyNames/Symbols on very large lists
https://bugs.webkit.org/show_bug.cgi?id=146141
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
When building completions for a large array, instead of building a list of all the indices
just send a single number back to the frontend and let it generate a list for completion.
We should do even better and avoid building a lookup table here for completion of an index.
2015-06-18 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frames timeline selection should snap to frame boundaries
https://bugs.webkit.org/show_bug.cgi?id=146120
Reviewed by Timothy Hatcher.
* UserInterface/Views/RenderingFrameTimelineOverview.js:
Enable snapping to frame boundaries.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
Updated filtering to account for ruler snapping.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.get snapInterval):
(WebInspector.TimelineRuler.prototype.set snapInterval):
(WebInspector.TimelineRuler.prototype.set selectionStartTime):
(WebInspector.TimelineRuler.prototype.set selectionEndTime):
(WebInspector.TimelineRuler.prototype._snapValue):
(WebInspector.TimelineRuler.prototype._handleMouseMove):
Added support for snapping to a specified interval.
* UserInterface/Views/TimelineSidebarPanel.js:
Removed unnecessary code.
2015-06-18 Devin Rousso <drousso@apple.com>
Web Inspector: Add a filter for CSS properties in the Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=145536
Reviewed by Timothy Hatcher.
* UserInterface/Base/Utilities.js: Added function to Strings that returns an array of all matching indexes of a given string.
(.value):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
(WebInspector.CSSStyleDeclarationSection.prototype.findMatchingPropertiesAndSelectors): Loops through the property list and selectors of each section to find matches to the filtered text.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.findMatchingProperties): Searches through the properties list to find and highlight all matching properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.removeNonMatchingProperties): Removes all properties that do not match and highlights the specific matched text in matching properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.resetFilteredProperties): Restores all properties to full visibility and removes any highlighting.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Classes are added to selections of the text editor of that partiular selection contains text which matches the filter (see CSSStyleDetailsSidebarPanel.css for different classes).
(WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties): If a filter is active, find properties matching the filter instead of all properties.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content.has-filter-bar + .filter-bar):
(.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .filter-bar):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel): Added a filter bar to the CSS sidebar.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels): Switching panels preserves and applies filter bar text.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange): Function called when the filter bar text changes that calls the current panel's filterDidChange function if it exists.
* UserInterface/Views/FilterBar.js: Added function and variable to check if the text in the filter bar had changed.
* UserInterface/Views/MetricsStyleDetailsPanel.js:
(WebInspector.MetricsStyleDetailsPanel.prototype.refresh): Now calls superclass refresh.
(WebInspector.MetricsStyleDetailsPanel): Added delegate variable to constructor.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label ~ .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .new-rule):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-non-matching) ~ .label:not(.filter-section-non-matching)):
(.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section):
(.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .no-filter-results):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results > .no-filter-results-message):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel): Added delegate variable to constructor.
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Now calls superclass refresh.
(WebInspector.RulesStyleDetailsPanel.prototype.filterDidChange): Function to search through the computed styles list and highlight all matched properties and selectors of the filter bar text, turning all non matching properties slightly opaque (unless a selector for that property is a match).
(WebInspector.StyleDetailsPanel): Added delegate variable to constructor.
(WebInspector.StyleDetailsPanel.prototype.refresh): Added event dispatch for panel refresh.
2015-06-18 Devin Rousso <drousso@apple.com>
Web Inspector: Ability to Copy entire CSS Rule from Styles Sidebar
https://bugs.webkit.org/show_bug.cgi?id=138812
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection): Right clicking on the header of a rule will replcae the default context menu to allow copying of the entire rule to the clipboard.
(WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent): Creates a new context menu to copy the entire CSS rule.
(WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Generates a string representing the formatted CSS rule.
2015-06-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve a few more node preview types
https://bugs.webkit.org/show_bug.cgi?id=146048
Reviewed by Timothy Hatcher.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForNodePreview):
2015-06-18 Devin Rousso <drousso@apple.com>
Web Inspector: New Rule button doesn't reveal the newly added rule if not visible upon creation
https://bugs.webkit.org/show_bug.cgi?id=117600
Reviewed by Timothy Hatcher.
* UserInterface/Views/RulesStyleDetailsPanel.js: Made previousFocusedSection into a member variable of the RulesStyleDetailsPanel. This way, when the nodeStyles is refreshed (when a new rule is added), the previousFocusedSection will be scrolled into view.
(WebInspector.RulesStyleDetailsPanel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Deleted.
2015-06-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r185671.
https://bugs.webkit.org/show_bug.cgi?id=146114
Caused frequent flaky failures on profiler tests (Requested by
ap on #webkit).
Reverted changeset:
"Web Inspector: Improve a few more node preview types"
https://bugs.webkit.org/show_bug.cgi?id=146048
http://trac.webkit.org/changeset/185671
2015-06-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve a few more node preview types
https://bugs.webkit.org/show_bug.cgi?id=146048
Reviewed by Timothy Hatcher.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForNodePreview):
2015-06-17 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: Show/Hide sidebar buttons have inconsistent highlighted state
https://bugs.webkit.org/show_bug.cgi?id=145073
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView.prototype._detailsSidebarPanelSelected):
2015-06-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inspector Scripts evaluated in the page should not be searchable
https://bugs.webkit.org/show_bug.cgi?id=146040
Reviewed by Darin Adler.
Any script with a __WebInspector source URL will be hidden by the tools.
There were a number of ways the inspector could evaluate script on the page
without getting the sourceURL and therefore not getting hidden. Audit
all cases of Runtime.evaluate, Runtime.callFunctionOn, and
Debugger.evaluateOnCallFrame, to ensure we have an appropriate source URL.
* UserInterface/Base/Utilities.js:
(appendWebInspectorSourceURL):
Helper to append a __WebInspectorInternal__ sourceURL to a string that may
be evaluated directly on the inspected context.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.domNodeResolved):
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted): Deleted.
* UserInterface/Controllers/RuntimeManager.js:
* UserInterface/Models/DOMTree.js:
(WebInspector.DOMTree.prototype._requestRootDOMNode):
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
Ensure all cases that evaluate directly on the inspected page / context
have the intenral source URL.
2015-06-16 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r171645): up/down key navigation of timeline sidebar tree elements is broken when scope bar filters are applied
https://bugs.webkit.org/show_bug.cgi?id=142315
Reviewed by Timothy Hatcher.
TreeOutline's element traversal algorithms have been rewritten to correctly skip over unrevealed tree elements.
Previously traversal would halt after encountering a hidden element. We now use an iterative approach, with
each iteration producing the next (or previous) element, with respect to the last candidate element. Iteration
begins with the current node, and halts once a valid element is found or candidate elements are exhausted.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeElement.prototype.traverseNextTreeElement.shouldSkip):
(WebInspector.TreeElement.prototype.traverseNextTreeElement):
(WebInspector.TreeElement.prototype.traversePreviousTreeElement.shouldSkip):
(WebInspector.TreeElement.prototype.traversePreviousTreeElement):
2015-06-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Stylize Node Previews
https://bugs.webkit.org/show_bug.cgi?id=145990
Reviewed by Timothy Hatcher.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForNodePreview):
Style a node preview like a DOMNode. It is a simple small snippet.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
Use node previews in ObjectPreviewViews.
2015-06-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve some cases of "Object?" Type Annotations
https://bugs.webkit.org/show_bug.cgi?id=145954
Reviewed by Timothy Hatcher.
* UserInterface/Views/TypeTokenView.js:
(WebInspector.TypeTokenView.prototype._displayTypeName):
The TypeSet inclusions cover all types, so we can use the leastCommonAncestor
name as long as the type set is just object or object and null/undefined.
If the typeset includes other primitives then it will gracefully go down
below to become something like Object or (many).
2015-06-14 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Update icon so Rendering Frames timeline distinguish between layout and painting
https://bugs.webkit.org/show_bug.cgi?id=145956
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/TimelineRecordPaint.svg:
Changed to use green color.
2015-06-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.table() with a list of objects no longer works
https://bugs.webkit.org/show_bug.cgi?id=145952
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
Don't allow expanding a cosole.table message, and don't output the total
object even if the table preview was lossless, as the experience is poor.
2015-06-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS Regions not displaying DOM Trees in inspector
https://bugs.webkit.org/show_bug.cgi?id=145903
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
Fix function inside the assertion to actually return a value.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.update):
For DOMTreeOutlines without a root node, don't clear the tree on updates,
since that will clear the nodes that have already been added explicitly.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):
ResourceTab and sidebar can deal with ContentFlow related views.
2015-06-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: IndexedDB data not showing for MDN example page
https://bugs.webkit.org/show_bug.cgi?id=145851
Reviewed by Anders Carlsson.
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel.prototype._indexedDatabaseWasAdded):
Fix typo in Storage tab refactoring that was causing an
uncaught exception and not showing Indexed DBs.
2015-06-11 Devin Rousso <drousso@apple.com>
Web Inspector: font-family names interpreted as color
https://bugs.webkit.org/show_bug.cgi?id=123468
Reviewed by Timothy Hatcher.
* UserInterface/Views/CodeMirrorAdditions.js: Added logic to prevent color picker buttons from appearing before colors that come after a quote character (both " and ').
2015-06-11 Matt Baker <mattbaker@apple.com>
Web Inspector: Rendering Frames timeline should distinguish between layout and painting
https://bugs.webkit.org/show_bug.cgi?id=145856
Reviewed by Timothy Hatcher.
This patch formalizes the runloop task concept in the frontend, adds new Paint task type to the Rendering
Frames timeline, and reorders UI elements such as chart sections and frame "segments" to match the order in
which tasks are executed within the runloop.
We will need to make UI changes to the standard Timelines view in a follow up patch, since tree element icons
for Paint records now use a different color that those of other Layout records.
* UserInterface/Images/TimelineRecordPaint.svg:
Changed to use green color.
* UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.displayNameForTaskType):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.get validRecordForTaskType):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.set return):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask):
(WebInspector.RenderingFrameTimelineRecord.prototype.get durationRemainder): Deleted.
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForRecords.get var): Deleted.
Added TaskType enum to decouple runloop task types from timeline record types, and removed duration remainder
support now that "Other" has an associated task type.
* UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
Added new grid column for Paint task, reordered columns to be consistent with the rest of the UI.
* UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-script):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-layout):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-paint):
(.timeline-record-frame > .frame > .duration): Deleted.
(.timeline-record-frame > .frame > .duration.timeline-record-type-network): Deleted.
(.timeline-record-frame > .frame > .duration.timeline-record-type-layout): Deleted.
(.timeline-record-frame > .frame > .duration.timeline-record-type-script): Deleted.
Updated styles for Render Frame tasks.
* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
Updated to use Render Frame task types. Frame segment insertion order is now consistent with the rest of the UI.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.chartData.Object.keys.map):
(WebInspector.TimelineSidebarPanel.set this):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.get this):
(WebInspector.TimelineSidebarPanel): Deleted.
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart.durationForRecordType): Deleted.
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart): Deleted.
Updated to use Render Frame task types.
2015-06-11 Matt Baker <mattbaker@apple.com>
Web Inspector: Wrong overview graph shown after switching from Frames to Timelines
https://bugs.webkit.org/show_bug.cgi?id=145778
Reviewed by Timothy Hatcher.
TimelineSidebarPanel stores a reference to the selected timeline before switching to the Rendering Frames view,
which is used to restore the tree selection, overview graph, and content views when switching back to the
standard Timelines view. However if another recording is created before switching, the previously selected
timeline tracked by the sidebar cannot be restored, since it doesn't belong to the active recording.
This is addressed by storing the previously selected timeline type, rather than the timeline object itself.
The type is also updated whenever the selected timeline in the tree outline changes, ensuring that the correct
timeline will always be restored.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
(WebInspector.TimelineSidebarPanel.get else): Deleted.
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if): Deleted.
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject): Deleted.
2015-06-08 Matt Baker <mattbaker@apple.com>
Web Inspector: Clearing active Timeline recording should stop capturing
https://bugs.webkit.org/show_bug.cgi?id=145767
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
Stop capturing if necessary.
2015-06-07 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: Add PrettyPrinter CSSRule tests
https://bugs.webkit.org/show_bug.cgi?id=145740
Reviewed by Brian Burg.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon.css: Added.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma.css: Added.
* Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon.css: Added.
* Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed.css: Added.
* Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property.css: Added.
2015-06-05 Devin Rousso <drousso@apple.com>
Web Inspector: Fixing code style and adding more limitations for bug 141262
https://bugs.webkit.org/show_bug.cgi?id=145668
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.prototype.isValidPropertyName): Loops through the full property list and returns true only if a property exactly matches the given property name.
(WebInspector.CSSCompletions): Added isValidPropertyName function.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property and to prevent invalid style from being applied incorrectly.
2015-06-05 Devin Rousso <drousso@apple.com>
Web Inspector: Highlighting a CSS section does not deselect previously highlighted CSS sections
https://bugs.webkit.org/show_bug.cgi?id=145399
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection): Added delegate variable to constructor.
(WebInspector.CSSStyleDeclarationSection.prototype.clearSelection):
(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorFocused):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor): Added event listener to codeMirror on "focus".
(WebInspector.CSSStyleDeclarationTextEditor.prototype.clearSelection): Sets the cursor of the codeMirror to character 0 on line 0.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._editorFocused): Function that calls the delegate function "editorFocused" when the codeMirror is focused
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Loops through all sections except for the ignoredSection (parameter) and clears the selected text in each of them.
2015-06-05 Joseph Pecoraro <pecoraro@apple.com>
REGRESSION (r185213): TypeError: undefined is not an object (evaluating 'WebInspector.clearLogOnReload.value')
https://bugs.webkit.org/show_bug.cgi?id=145695
Reviewed by Mark Lam.
Move and rename the clear log on reload setting property from
WebInspector (Main.js) to LogManager (shared with tests).
* UserInterface/Base/Main.js:
(WebInspector.loaded): Deleted.
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager):
(WebInspector.LogManager.prototype._delayedMessagesCleared):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
2015-06-05 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: [REGRESSION] Dashboard's resource count does not reset when main resource navigates
https://bugs.webkit.org/show_bug.cgi?id=144553
Add missing _mainResourceDidChange, which was removed after switching to the tabs UI.
Reviewed by Timothy Hatcher.
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard):
_waitingForFirstMainResourceToStartTrackingSize is not used anywhere, remove it.
(WebInspector.DefaultDashboard.prototype._mainResourceDidChange): Added.
(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange): Removed.
Unused.
2015-06-05 Matt Baker <mattbaker@apple.com>
Web Inspector: Switch to doughnut chart and remove idle time in the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=145671
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
"Idle" string no longer used.
* UserInterface/Views/TimelineRecordFrame.js:
Reduced maximum frame width by 2px.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart):
Added inner radius to chart and removed "Idle" value.
2015-06-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Class constructor appearing as Object Tree property does not include parameters
https://bugs.webkit.org/show_bug.cgi?id=145661
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.get functionDescription):
Include the className as only use it for "class" types to override
the normal description string. Stash the actual function description
in a property we can access later.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
Even if this property is a "class" we want to specifically parse it's
function description string. So use functionDescription.
2015-06-04 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Close and open tabs on mouseup, not mousedown
https://bugs.webkit.org/show_bug.cgi?id=145656
Match Safari's behaviour.
Reviewed by Timothy Hatcher.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar):
(WebInspector.TabBar.prototype.set newTabItem):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleClick): Added.
(WebInspector.TabBar.prototype._handleMouseUp):
(WebInspector.TabBar.prototype._handleNewTabClick): Added.
(WebInspector.TabBar.prototype._handleMouseMoved):
2015-06-04 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Decrease tabs height to match Safari's tabs height
https://bugs.webkit.org/show_bug.cgi?id=145647
Reviewed by Timothy Hatcher.
* UserInterface/Views/TabBar.css:
(.tab-bar):
2015-06-04 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: Activity Viewer does not update on "Clear Log on reload"
https://bugs.webkit.org/show_bug.cgi?id=145466
Reviewed by Joseph Pecoraro.
1. Isolate logic within LogManager and remove hacks/logic from all other files
2. Within LogManager: Differentiate "messagesCleared" calls
a) that happen as a result of a "requested clear" by Frontend (e.g. Button)
b) that happen on page reload and install "clear/keep-on-page-reload" logic
c) that happen on frame navigated, console.clear() or clear()
3. Unify "ActiveLogCleared" and "Cleared" events to "Cleared"
For step 2b and 2c it is important to delay the handling and wait until
"_mainResourceDidChange" has determined whether a page reload happened or
not.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
Store "clear-log-on-reload" setting globally.
* UserInterface/Controllers/IssueManager.js:
(WebInspector.IssueManager):
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard): Deleted.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype._trackWeakEntries): Deleted.
(WebInspector.ObjectTreeView.prototype._untrackWeakEntries): Deleted.
(WebInspector.ObjectTreeView): Deleted.
Remove deleted events.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut):
(WebInspector.JavaScriptLogViewController.prototype.clear): Deleted.
Remove delegate function call and call LogManager directly.
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager):
(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._delayedMessagesCleared):
(WebInspector.LogManager.prototype.requestClearMessages):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Isolate "clear log" logic, especially clear/keep-log-on-reload logic.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
(WebInspector.LogContentView.prototype._clearLog):
(WebInspector.LogContentView.prototype.didClearMessages): Deleted.
(WebInspector.LogContentView.prototype._sessionsCleared): Deleted.
(WebInspector.LogContentView.prototype._activeLogCleared): Deleted.
(WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages): Deleted.
Make it a consumer of LogManager and remove special hacks. Simplify code.
2015-06-03 Devin Rousso <drousso@apple.com>
Web Inspector: if a known CSS property has an unsupported value, only strikethrough the value
https://bugs.webkit.org/show_bug.cgi?id=141262
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.prototype.nameMatchesValidPropertyExactly): Loops through the full property list and returns true only if a property exactly matches the given property name.
(WebInspector.CSSCompletions): Added nameMatchesValidPropertyExactly function.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property.
2015-06-03 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Search field bottom border doesn't match the rest of the toolbar
https://bugs.webkit.org/show_bug.cgi?id=145611
Reviewed by Timothy Hatcher.
* UserInterface/Views/Toolbar.css:
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):
2015-06-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception starting a NavigationBar drag and mousing over a different NavigationBar
https://bugs.webkit.org/show_bug.cgi?id=145589
Reviewed by Timothy Hatcher.
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype._mouseDown):
(WebInspector.NavigationBar.prototype._mouseUp):
When mouse dragging for navigation bars, only match against navigation
bar items inside this navigation bar. Also, fix horizontal detection
of navigation bar items by scanning in the middle of the navigation
bar instead of the top, which missed the items.
2015-06-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Debugger Popover for Node object should have go-to-arrow to show the node in DOM tree
https://bugs.webkit.org/show_bug.cgi?id=145594
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.inspectElement):
Previously we could get an exception later on if we tried to
inspect an element that was not in the DOM. Bail if the node
is not in the DOM or not.
* UserInterface/Views/SourceCodeTextEditor.css:
(.popover .debugger-popover-content > .title > .go-to-arrow):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject.data.pushNodeToFrontend):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
For a node type, add a go-to-arrow in the popover if it is in the DOM or not.
2015-06-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove uses of delete in Sidebar related code
https://bugs.webkit.org/show_bug.cgi?id=145592
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
Clear value instead of deleting.
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.performSearch):
Just clear the search identifier. Also assert it (a required string) is always non-falsey.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.resizerDragEnded): Deleted.
This entire callback is unnecessary because whenever we start
a drag we save the value.
2015-06-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Sidebar and sometimes ContentView scroll position is lost when switching between tabs
https://bugs.webkit.org/show_bug.cgi?id=145591
Reviewed by Timothy Hatcher.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.removeSidebarPanel):
When removing a sidebar panel, ensure we call hidden if it was the visible panel.
* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.shown):
(WebInspector.SidebarPanel.prototype.hidden):
Save and restore content element scroll position when sidebar panels are shown / hidden.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.shown):
* UserInterface/Views/DetailsSidebarPanel.js:
(WebInspector.DetailsSidebarPanel.prototype.shown):
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.hidden):
Cleanup. Since sidebar panels are using ES6 classes, have super class calls use `super`!
2015-06-02 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Use non-monospace font for the frame selector
https://bugs.webkit.org/show_bug.cgi?id=145586
Reviewed by Timothy Hatcher.
* UserInterface/Views/HierarchicalPathComponent.css:
(.hierarchical-path-component):
2015-06-02 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Dashboard arrow icon on the right is overlapped by a long function/file name
https://bugs.webkit.org/show_bug.cgi?id=145540
Also, increase clickable area of the arrow icon.
Reviewed by Timothy Hatcher.
* UserInterface/Views/DashboardContainerView.css:
(.dashboard-container .advance-arrow):
(.dashboard-container .advance-arrow.advance-forward):
(.dashboard-container .advance-arrow.advance-backward):
* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger > .location):
(.toolbar .dashboard.debugger):
Increase padding on the right so the content of the dashboard would be never be overlayed by the arrow.
2015-06-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Shift + Cmd + Left/Right shouldn't switch tabs while editing text
https://bugs.webkit.org/show_bug.cgi?id=145562
Reviewed by Timothy Hatcher.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
Only these keyboard shortcuts should check if we are in an editable field.
Remove the implicit prevent default so they can fall back to system behavior
if necessary.
(WebInspector.TabBrowser.prototype._showNextTabCheckingForEditableField):
(WebInspector.TabBrowser.prototype._showPreviousTabCheckingForEditableField):
Bail if we are in an editable field. Otherwise perform the action and prevent default.
2015-06-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ⌘F no longer brings up the find-in-page bar after typing in the quick console
https://bugs.webkit.org/show_bug.cgi?id=145546
Reviewed by Timothy Hatcher.
Scope ContentBrowser keyboard events within the ContentBrowser instead
of global, where they might conflict between ContentBrowsers. The scoped
shortcuts now no longer need to be enabled/disabled.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
Scope the keyboard shortcuts.
(WebInspector.ContentBrowser.prototype.shown):
(WebInspector.ContentBrowser.prototype.hidden):
No longer need to control enabling / disabling these non-global shortcuts.
2015-06-01 Jono Wells <jonowells@apple.com>
Web Inspector: Type token text descenders touch bottom of container
https://bugs.webkit.org/show_bug.cgi?id=145544
Reviewed by Timothy Hatcher.
Move 1px padding from top to bottom of token.
* UserInterface/Views/TypeTokenView.css:
(.type-token):
2015-06-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Better handle keyboard events in the quick console prompt
https://bugs.webkit.org/show_bug.cgi?id=145548
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.saveDataToFile):
Move generic InspectorFrontendHost code here.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._save):
(WebInspector.ContentBrowser.prototype._saveAs):
(WebInspector.ContentBrowser.prototype._saveDataToFile): Deleted.
Use the generic save code.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype._save):
(WebInspector.JavaScriptLogViewController.prototype._saveAs):
Handle save keyboard shortcuts while the prompt is focused.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.focusSearchBar):
(WebInspector.LogContentView.prototype.save):
(WebInspector.LogContentView.prototype.saveAs):
Better handle keyboard shortcut cases in the console prompt for cases
like a collapsed or split console view.
2015-06-01 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Pause/resume button in the debugger dashboard is vertically misaligned
https://bugs.webkit.org/show_bug.cgi?id=145534
Reviewed by Timothy Hatcher.
* UserInterface/Views/ButtonNavigationItem.css:
(.navigation-bar .item.button.suppress-emboss):
Never show borders for the pause/resume button.
* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger .navigation-bar .item.button):
2015-05-31 Yusuke Suzuki <utatane.tea@gmail.com>
Web Inspector: Drop forEach from WeakMap / WeakSet native member function maps
https://bugs.webkit.org/show_bug.cgi?id=145497
Reviewed by Sam Weinig.
WeakMap / WeakSet don't have forEach method.
This patch drops it from the native prototype function parameters map.
* UserInterface/Models/NativeFunctionParameters.js:
2015-05-29 Timothy Hatcher <timothy@apple.com>
Web Inspector: Resources tab navigation sidebar should have a type filter header
https://bugs.webkit.org/show_bug.cgi?id=145474
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Images/UpDownArrows.svg: Make styleable.
* UserInterface/Main.html: Added new files.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView): Drive-by fix. Mark All as exclusive.
* UserInterface/Views/MultipleScopeBarItem.js: Added.
(WebInspector.MultipleScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype.get element):
(WebInspector.MultipleScopeBarItem.prototype.get exclusive):
(WebInspector.MultipleScopeBarItem.prototype.get scopeBarItems):
(WebInspector.MultipleScopeBarItem.set scopeBarItems.createOption):
(WebInspector.MultipleScopeBarItem.prototype.set scopeBarItems):
(WebInspector.MultipleScopeBarItem.prototype.get selected):
(WebInspector.MultipleScopeBarItem.prototype.set selected):
(WebInspector.MultipleScopeBarItem.prototype.get selectedScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype.set selectedScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype._clicked):
(WebInspector.MultipleScopeBarItem.prototype._selectElementSelectionChanged):
(WebInspector.MultipleScopeBarItem.prototype._itemSelectionDidChange):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstFilterFunctions):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.makeVisible):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Improve filtering so non-text filters can choose to auto-expand the tree.
* UserInterface/Views/ResourceSidebarPanel.css: Added.
(.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.resource > .navigation-bar):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.hasCustomFilters):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.ResourceSidebarPanel.prototype._scopeBarSelectionDidChange):
Make a ScopeBar and make it filter the TreeOutline when needed.
* UserInterface/Views/ScopeBar.css:
(.scope-bar > li.multiple):
(.scope-bar > li.multiple > select):
(.scope-bar > li.multiple.selected > select):
(.scope-bar > li.multiple > .arrows):
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .filled):
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .stroked):
* UserInterface/Views/ScopeBar.js:
(WebInspector.ScopeBar): Support shouldGroupNonExclusiveItems which will use MultipleScopeBarItem.
(WebInspector.ScopeBar.prototype._populate):
(WebInspector.ScopeBar.prototype._itemSelectionDidChange):
(WebInspector.ScopeBar.prototype.updateLayout): Deleted. Not needed for our current styles.
* UserInterface/Views/ScopeBarItem.js:
(WebInspector.ScopeBarItem):
(WebInspector.ScopeBarItem.prototype.get id):
(WebInspector.ScopeBarItem.prototype.get label):
(WebInspector.ScopeBarItem.prototype.get exclusive):
(WebInspector.ScopeBarItem.prototype.setSelected):
(WebInspector.ScopeBarItem.prototype._clicked):
(WebInspector.ScopeBarItem.prototype.get element): Deleted.
(WebInspector.ScopeBarItem.prototype._markElementSelected): Deleted.
Cleaned up and modernized a bit.
2015-05-29 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: Activity Viewer does not update on "clear all console messages"
https://bugs.webkit.org/show_bug.cgi?id=144681
Reviewed by Joseph Pecoraro.
Do not apply "ignoreDidClearMessages" hack on "Clear log" Button and Context menu.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages):
(WebInspector.LogContentView.prototype._clearLog): Deleted.
2015-05-29 Matt Baker <mattbaker@apple.com>
Web Inspector: Remove unused expandTreeElementsWhenArrowing property from TreeOutline
https://bugs.webkit.org/show_bug.cgi?id=145470
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype._treeKeyDown):
Replaced uses of removed property with boolean literal.
2015-05-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Tabs should have Context Menus
https://bugs.webkit.org/show_bug.cgi?id=144208
Reviewed by Timothy Hatcher.
Give non-pinned tabs "Close Tab" and "Close Other Tabs" context
menu items to affect other non-pinned tabs.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/TabBarItem.js:
(WebInspector.TabBarItem):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeTab):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeOtherTabs):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent):
2015-05-29 Matt Baker <mattbaker@apple.com>
Web Inspector: Restoring the last selected DOM node fails on reload (DOMAgent: No node with given path found)
https://bugs.webkit.org/show_bug.cgi?id=144231
Reviewed by Timothy Hatcher.
Removed _restoreSelectedNodeIsAllowed flag from DOMTreeContentView. The frontend receives two documentUpdated
events from the DOM Agent during page reload, and the flag was preventing DOMTreeContentView from restoring
the previous selection in response to the second event.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.selectLastSelectedNode):
(WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
2015-05-28 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Update toolbar styles
https://bugs.webkit.org/show_bug.cgi?id=145419
Also, use hairline borders (1 phisical pixel) on retina (DPI >= 2).
Reviewed by Timothy Hatcher.
* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button): Deleted.
(.toolbar.icon-and-label-vertical .item.button): Deleted.
(.toolbar.icon-and-label-horizontal .item.button): Deleted.
(.toolbar .item.button > .glyph): Deleted.
(.toolbar.small-size .item.button > .glyph): Deleted.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container): Deleted.
(.toolbar.collapsed .dashboard-container): Deleted.
(.toolbar.small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container): Deleted.
(.toolbar .dashboard.slide-out-down): Deleted.
(.toolbar .dashboard.slide-in-up): Deleted.
* UserInterface/Views/Toolbar.css:
(.toolbar .search-bar > input[type="search"]):
(.toolbar .search-bar > input[type="search"]::-webkit-textfield-decoration-container):
(body:not(.unknown-mac) .toolbar .dashboard-container):
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]:focus):
(body:not(.unknown-mac) .toolbar .item.button:active):
(body.window-inactive:not(.unknown-mac) .toolbar .dashboard-container):
(body.unknown-mac .toolbar .dashboard-container):
(body.unknown-mac .toolbar .search-bar > input[type="search"]):
(body.unknown-mac .toolbar .search-bar > input[type="search"]:focus):
(@media (-webkit-min-device-pixel-ratio: 2)):
(body.unknown-mac .toolbar .item.button:active):
(body.unknown-mac.window-inactive .toolbar .dashboard-container):
2015-05-28 Devin Rousso <drousso@apple.com>
Web Inspector: Jump from a computed style to the rule it came from
https://bugs.webkit.org/show_bug.cgi?id=120640
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
If the delegate of CSSStyleDeclarationTextEditor has cssStyleDeclarationTextEditorShouldAddPropertyGoToArrows set to true, add a goToArrow to all CSS property entries.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.propertiesMatch):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.hasMatchingLonghandProperty):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty):
Determines if a given CSS property is in the CSS style section and if so, select that CSS property, focus on the section containing that CSS property, and return true.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.highlightProperty):
Searches through the properties of the section for a given property and scrolls to it if found.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
Switches to the rulesStyleDetailsPanel and scrolls to and hightlights a given property in that panel.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._navigationItemSelected):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
Moved this function out of _navigationItemSelected for better reusablity.
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty):
Function that calls the delegate (which should be CSSStyleDetailsSidebarPanel) function computedStyleDetailsPanelShowProperty.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
(WebInspector.RulesStyleDetailsPanel.prototype.scrollToSectionAndHighlightProperty):
Searches through all the sections of the RulesStyleDetailsPanel for a given CSS property.
(WebInspector.RulesStyleDetailsPanel.prototype.shown):
(WebInspector.RulesStyleDetailsPanel.prototype.hidden):
(WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
Added a flag to this function that will highlight and scroll to a given property (_propertyToSelectAndHighlight) if set on load.
* UserInterface/Views/StyleDetailsPanel.js:
(WebInspector.StyleDetailsPanel.prototype.markAsNeedsRefresh):
(WebInspector.StyleDetailsPanel.prototype.nodeStylesRefreshed):
Made into protected function to allow it to be overridden.
(WebInspector.StyleDetailsPanel.prototype._nodeStylesRefreshed): Deleted.
2015-05-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Should have a keyboard shortcut to switch between inspector tabs
https://bugs.webkit.org/show_bug.cgi?id=144207
Reviewed by Timothy Hatcher.
These keyboard shortcuts work well in an undocked inspector window.
Be careful that some keyboard shortcuts, when used inside a text
editor / text field are just text actions. However, some keyboard
shortcuts will work no matter where you trigger them.
* UserInterface/Models/KeyboardShortcut.js:
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar.prototype.selectPreviousTab):
(WebInspector.TabBar.prototype.selectNextTab):
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._showPreviousTab):
(WebInspector.TabBrowser.prototype._showNextTab):
2015-05-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: NewTabContentView should update button disabled state as other tabs are added/removed
https://bugs.webkit.org/show_bug.cgi?id=145448
Reviewed by Timothy Hatcher.
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView):
Always add a click listener and add the type as a private property on the element.
(WebInspector.NewTabContentView.prototype.shown):
(WebInspector.NewTabContentView.prototype.hidden):
Add / remove event listeners for tab changes. Also update the view when shown.
(WebInspector.NewTabContentView.prototype._createNewTab):
A disabled button an now be clicked. Do nothing if a new tab of this type is not allowed.
(WebInspector.NewTabContentView.prototype._updateTabItems):
Refresh the disabled state for each of the buttons.
2015-05-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Show Page Source does not switch to Resources tab if inspector was closed
https://bugs.webkit.org/show_bug.cgi?id=145423
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector._frameWasAdded.delayedWork):
(WebInspector._frameWasAdded):
In the special case where we are holding to show a frame's source code when
the frame becomes available (_frameIdentifierToShowSourceCodeWhenAvailable)
we should be forcing to show the tab.
2015-05-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Toggling an inherited property sometimes stops working
https://bugs.webkit.org/show_bug.cgi?id=145416
Reviewed by Timothy Hatcher.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
Ensure we update the existing model objects with the new state information
before possibly bailing. This may produce changed events that update
parts of the inspector appropriately.
2015-05-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: REGRESSION(r179286) Editing Style Metrics Values no longer works
https://bugs.webkit.org/show_bug.cgi?id=143164
Reviewed by Brian Burg.
* UserInterface/Views/BoxModelDetailsSectionRow.js:
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createElement):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.toggleInlineStyleProperty):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.didToggle):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput):
Make it so editing in the metrics pane just evaluates elem.style.setProperty
on the inspected page. Use "!important" to try and give the maximum priority
possible, which is a change from older behavior. Finally, refresh the sidebar
to update all values, and update the UI if bad input didn't change styles.
2015-05-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Function parameter string parsing improperly handles empty parameter list
https://bugs.webkit.org/show_bug.cgi?id=145391
Reviewed by Darin Adler.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
2015-05-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Array.prototype.copyWithin parameter list
https://bugs.webkit.org/show_bug.cgi?id=145388
Reviewed by Darin Adler.
* UserInterface/Models/NativeFunctionParameters.js:
2015-05-26 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: focus outline of a search field should have a radius
https://bugs.webkit.org/show_bug.cgi?id=145383
Add a focus outline animation to roughly mimic the default focus outline of OS X.
Reviewed by Timothy Hatcher.
* UserInterface/Views/Toolbar.css:
(.toolbar .search-bar > input[type="search"]):
-webkit-focus-ring-color doesn't follow element's curvature (e.g. border-radius)
and it cannot be animated. Replace it with box-shadow.
(.toolbar .search-bar > input[type="search"]:focus):
2015-05-26 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: The bottom part "debugger" is clipped in the tab’s title
https://bugs.webkit.org/show_bug.cgi?id=145381
Reviewed by Timothy Hatcher.
* UserInterface/Views/TabBar.css:
(.tab-bar > .item):
Set line-height to fit "debugger". Setting line-height to 16px, which is the
size of the tabs icons, moves the text one pixel up, so set it to 15px.
2015-05-26 Dan Bernstein <mitz@apple.com>
<rdar://problem/21104551> Update build settings
Reviewed by Anders Carlsson.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:
2015-05-23 Dan Bernstein <mitz@apple.com>
Remove unused definitions of WEBKIT_VERSION_MIN_REQUIRED
https://bugs.webkit.org/show_bug.cgi?id=145345
Reviewed by Sam Weinig.
* Configurations/Base.xcconfig:
2015-05-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove code related with unused style classes
https://bugs.webkit.org/show_bug.cgi?id=145332
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.append):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString):
The "type-string" class has no styles associated with it. So the entire span can be removed.
* UserInterface/Views/DOMTreeElement.js:
Both of these style classes have no styles associated with them. Remove the class names.
2015-05-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve native parameter lists a bit
https://bugs.webkit.org/show_bug.cgi?id=145338
Reviewed by Timothy Hatcher.
* UserInterface/Models/NativeFunctionParameters.js:
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
2015-05-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update CSS Autocompletion properties and values
https://bugs.webkit.org/show_bug.cgi?id=145341
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSKeywordCompletions.js:
2015-05-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Adopt Object.setPrototypeOf
https://bugs.webkit.org/show_bug.cgi?id=145335
Reviewed by Timothy Hatcher.
For a case that won't easily move to ES6 classes use Object.setPrototypeOf.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.create):
2015-05-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inline use once class names and remove some unused class names
https://bugs.webkit.org/show_bug.cgi?id=145334
Reviewed by Timothy Hatcher.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView):
* UserInterface/Views/BoxModelDetailsSectionRow.js:
(WebInspector.BoxModelDetailsSectionRow):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
* UserInterface/Views/ClusterContentView.js:
(WebInspector.ClusterContentView):
* UserInterface/Views/CompletionSuggestionsView.js:
(WebInspector.CompletionSuggestionsView):
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt):
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
* UserInterface/Views/ContentFlowTreeElement.js:
(WebInspector.ContentFlowTreeElement):
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer):
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView):
* UserInterface/Views/CookieStorageTreeElement.js:
(WebInspector.CookieStorageTreeElement):
* UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView):
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
* UserInterface/Views/DashboardView.js:
(WebInspector.DashboardView):
* UserInterface/Views/DatabaseTableContentView.js:
(WebInspector.DatabaseTableContentView):
* UserInterface/Views/DebuggerDashboardView.js:
(WebInspector.DebuggerDashboardView):
(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
* UserInterface/Views/DetailsSection.js:
(WebInspector.DetailsSection):
* UserInterface/Views/DetailsSectionSimpleRow.js:
* UserInterface/Views/FontResourceContentView.js:
(WebInspector.FontResourceContentView):
(WebInspector.FontResourceContentView.prototype.createMetricElement):
(WebInspector.FontResourceContentView.prototype.contentAvailable):
* UserInterface/Views/HierarchicalPathComponent.js:
(WebInspector.HierarchicalPathComponent):
(WebInspector.HierarchicalPathComponent.prototype.set selectorArrows):
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WebInspector.LayoutTimelineOverviewGraph):
* UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WebInspector.NetworkTimelineOverviewGraph):
* UserInterface/Views/OverviewTimelineView.js:
* UserInterface/Views/ProbeSetDetailsSection.js:
* UserInterface/Views/QuickConsole.js:
* UserInterface/Views/ReplayDashboardView.js:
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView):
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph):
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView):
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar):
* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):
2015-05-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DOMTree Keyboard Shortcut 'H' to toggle element visibility is not working
https://bugs.webkit.org/show_bug.cgi?id=145331
Reviewed by Brian Burg.
We no longer have CSSProperty.value setters. Instead of attempting
to toggle and clobber inline style values on the element we:
1. inject a <style> on the page like ".WebInspectorHide { visibility:hidden }"
2. toggle the WebInspectorHide class on the selected element
This approach is inspired by the original WebKit change in the
old inspector frontend: <https://webkit.org/b/110641>.
The old approach toggled a few properties (opacity and pointer events)
while the new approach uses visibility, matching other browsers.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._hideElement.resolvedNode.injectStyleAndToggleClass):
(WebInspector.DOMTreeOutline.prototype._hideElement.resolvedNode):
(WebInspector.DOMTreeOutline.prototype._hideElement):
(WebInspector.DOMTreeOutline.prototype._hideElement.toggleProperties): Deleted.
2015-05-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Give Toolbar buttons an active style
https://bugs.webkit.org/show_bug.cgi?id=145292
Reviewed by Timothy Hatcher.
* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button:active):
2015-05-21 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Dashboard debugger information can be clipped
https://bugs.webkit.org/show_bug.cgi?id=144209
Reviewed by Timothy Hatcher.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
Make dashboard flexible by using vw (viewport width units).
* UserInterface/Views/DefaultDashboardView.css:
(.toolbar .dashboard.default):
Center default dashboard icons in the middle, don't spread them along the dashboard.
2015-05-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve the UI of the type profiler popover
https://bugs.webkit.org/show_bug.cgi?id=140737
Reviewed by Timothy Hatcher.
Display TypeDescriptions in a Tree similiar to ObjectTrees.
Currently the only information we have in a TypeDescription
is the property names, and not their types, so all we can
display in the tree are names.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
* UserInterface/Main.html:
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.updateTypes):
* UserInterface/Models/StructureDescription.js: Added.
(WebInspector.StructureDescription):
(WebInspector.StructureDescription.fromPayload):
(WebInspector.StructureDescription.prototype.get fields):
(WebInspector.StructureDescription.prototype.get optionalFields):
(WebInspector.StructureDescription.prototype.get constructorName):
(WebInspector.StructureDescription.prototype.get prototypeStructure):
(WebInspector.StructureDescription.prototype.get imprecise):
* UserInterface/Models/TypeDescription.js: Added.
(WebInspector.TypeDescription):
(WebInspector.TypeDescription.fromPayload):
(WebInspector.TypeDescription.prototype.get leastCommonAncestor):
(WebInspector.TypeDescription.prototype.get typeSet):
(WebInspector.TypeDescription.prototype.get structures):
(WebInspector.TypeDescription.prototype.get valid):
(WebInspector.TypeDescription.prototype.get truncated):
* UserInterface/Models/TypeSet.js:
(WebInspector.TypeSet):
(WebInspector.TypeSet.prototype.get primitiveTypeNames):
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype._updateChildren):
* UserInterface/Views/Section.css: Removed.
* UserInterface/Views/Section.js: Removed.
* UserInterface/Views/SourceCodeTextEditor.css:
(.popover .expandable):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.showPopoverForTypes):
(WebInspector.SourceCodeTextEditor.prototype._populateWithScriptContent):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation.handler):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
* UserInterface/Views/TypePropertiesSection.js: Removed.
* UserInterface/Views/TypeTokenView.js:
(WebInspector.TypeTokenView):
(WebInspector.TypeTokenView.titleForPopover):
(WebInspector.TypeTokenView.prototype.update):
(WebInspector.TypeTokenView.prototype._setUpMouseoverHandlers):
(WebInspector.TypeTokenView.prototype._shouldShowPopover):
(WebInspector.TypeTokenView.prototype._displayTypeName):
* UserInterface/Views/TypeTreeElement.css: Added.
(.type-tree-element):
(.type-tree-element > .titles):
(.type-tree-element > .disclosure-button):
(.type-tree-element.parent > .disclosure-button):
(.type-tree-element.parent.expanded > .disclosure-button):
(.type-tree-element > .icon):
(.type-tree-element.prototype):
(.type-tree-element.prototype:focus):
(.type-tree-element.prototype + ol):
* UserInterface/Views/TypeTreeElement.js: Added.
(WebInspector.TypeTreeElement):
(WebInspector.TypeTreeElement.prototype.get name):
(WebInspector.TypeTreeElement.prototype.get isPrototype):
(WebInspector.TypeTreeElement.prototype.onpopulate):
(WebInspector.TypeTreeElement.prototype.onexpand):
* UserInterface/Views/TypeTreeView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/PropertiesSection.js.
(.type-tree):
(.type-tree-outline):
(.type-tree-outline li):
(.type-tree-outline ol):
(.type-tree-outline ol.expanded):
(.type-tree-outline li .empty-message):
* UserInterface/Views/TypeTreeView.js: Added.
(WebInspector.TypeTreeView):
(WebInspector.TypeTreeView.prototype.get typeDescription):
(WebInspector.TypeTreeView.prototype.get element):
(WebInspector.TypeTreeView.prototype.get treeOutline):
(WebInspector.TypeTreeView.prototype._populate):
2015-05-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix WebInspector.StackTrace style
https://bugs.webkit.org/show_bug.cgi?id=145240
Reviewed by Timothy Hatcher.
* UserInterface/Models/StackTrace.js:
Reorder and add our usual marker comments.
2015-05-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve Preview for NodeList / array like collections
https://bugs.webkit.org/show_bug.cgi?id=145177
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendPreview):
Show the class name for a non-basic-Array, but still hide
it for a basic Array.
2015-05-19 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Convert stackTrace from raw payload data to an array of CallFrames
https://bugs.webkit.org/show_bug.cgi?id=144982
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/LogManager.js:
* UserInterface/Main.html:
* UserInterface/Models/CallFrame.js:
(WebInspector.CallFrame.fromPayload):
Consider an empty string url as a native code as it was in
WebInspector.ConsoleMessageView.prototype._firstNonNativeCallFrame
* UserInterface/Models/ConsoleMessage.js:
(WebInspector.ConsoleMessage):
Convert _stackTrace from an array of payload objects to WebInspector.StackTrace model.
* UserInterface/Models/StackTrace.js: Added.
(WebInspector.StackTrace):
(WebInspector.StackTrace.prototype.get callFrames):
(WebInspector.StackTrace.prototype.get firstNonNativeCallFrame): Added.
(WebInspector.StackTrace.fromPayload):
* UserInterface/Test.html:
* UserInterface/Views/CallFrameView.js:
(WebInspector.CallFrameView):
Don't show a URL when sourceCodeLocation is missing, fix webkit.org/b/145071.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.toClipboardString):
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
(WebInspector.ConsoleMessageView.prototype._appendStackTrace):
(WebInspector.ConsoleMessageView.prototype._shouldShowStackTrace):
(WebInspector.ConsoleMessageView.prototype._linkifyCallFrame):
(WebInspector.ConsoleMessageView.prototype._firstNonNativeCallFrame): Deleted.
2015-05-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve Reliability of Closing and Reopening Elements Tab
https://bugs.webkit.org/show_bug.cgi?id=145139
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.highlightSearchResults):
(WebInspector.DOMTreeElement.prototype.hideSearchHighlights):
(WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight.animationEnded):
(WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight):
(WebInspector.DOMTreeElement.prototype._updateChildren):
(WebInspector.DOMTreeElement.prototype.adjustCollapsedRange):
(WebInspector.DOMTreeElement.prototype._startEditingAsHTML.dispose):
(WebInspector.DOMTreeElement.prototype._startEditingAsHTML):
(WebInspector.DOMTreeElement.prototype.updateTitle):
Stop using the `delete` operator.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.setVisible):
Trigger an update when the outline is made visible.
* UserInterface/Views/FrameDOMTreeContentView.js:
(WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
Provide a reasonable default selection if there is no body or document element.
For example in an augmented DOM tree.
2015-05-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Tab Restoration incorrectly makes ContentViews "shown" in background tabs
https://bugs.webkit.org/show_bug.cgi?id=145080
Reviewed by Timothy Hatcher.
Many tabs have their own content browser / navigation sidebar. During
state restoration, each tab would immediately try to restore an
appropriate ContentView after the load / navigation. However, in doing
so, we weren't respecting whether or not the Tab the ContentBrowser
was in was hidden or not, so ContentViews in background tags were
still being treated as shown/visible.
This patch changes state restoration to only affect the foreground
tab, and be delayed on all background tabs until that tab is shown.
This reduces the amount of work on load and navigation to just a
single tab instead of all tabs. Most importantly, it avoids having
performing work on ContentBrowsers that are non-visible, so state
restoration only happens for visible ContentBrowsers.
For simplicity, in the case of a delayed tab restoration triggered
by the user switching tabs, we don't try twice (like we occasionally
do on load/reload). We could add back some hueristic here if needed.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.activateExtraDomains):
(WebInspector._mainResourceDidChange):
(WebInspector._restoreCookieForOpenTabs):
* UserInterface/Views/NavigationSidebarPanel.js:
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView.prototype.shown):
(WebInspector.TabContentView.prototype.restoreStateFromCookie):
(WebInspector.TabContentView.prototype.saveStateToCookie):
When asked to restore state, save that logic until the next time the tab is shown.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.get visible):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.editingControllerDidStartEditing):
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState): Deleted.
Although this didn't actually catch the issue, it could potentially
catch other issues in the future. We don't want to enable the annotators
in a non-visible text editor, as it could be a performance issue.
2015-05-15 Matt Baker <mattbaker@apple.com>
Web Inspector: empty timeline should not use previous timeline's zoom interval
https://bugs.webkit.org/show_bug.cgi?id=132754
Reviewed by Joseph Pecoraro.
When a timeline recording is started in response to a provisional load, TimelineManager should check whether
the main resource url is changing before loading a new timeline recording. If the main resource is changing,
set the selection start, selection duration, and duration-per-pixel settings of the TimelineOverview to their
default values.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.isCapturingPageReload):
(WebInspector.TimelineManager.prototype.capturingStopped):
(WebInspector.TimelineManager.prototype.pageDidLoad):
(WebInspector.TimelineManager.prototype._startAutoCapturing):
Added a property for checking whether auto capture was triggered by a page reload.
* UserInterface/Views/LinearTimelineOverview.js:
(WebInspector.LinearTimelineOverview):
Increase default selection time to 15 seconds.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
Reset selection and zoom if TimelineManager isn't capturing in response to a page reload.
(WebInspector.TimelineOverview.prototype.reset):
Reset selection and zoom.
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineOverview.prototype._resetSelection):
Added a helper function for resetting selection and zoom to their default values.
2015-05-15 Matt Baker <mattbaker@apple.com>
Web Inspector: Timeline data grid displays wrong records after switching between Timelines/Frames mode
https://bugs.webkit.org/show_bug.cgi?id=145084
Reviewed by Timothy Hatcher.
Update timeline sidebar filter whenever the view mode changes.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
(WebInspector.TimelineSidebarPanel.get else):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
2015-05-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Bump image format number to force image regeneration
https://bugs.webkit.org/show_bug.cgi?id=145074
Reviewed by Timothy Hatcher.
* UserInterface/Base/ImageUtilities.js:
2015-05-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reduce type annotation update frequency
https://bugs.webkit.org/show_bug.cgi?id=145066
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TypeTokenAnnotator.js:
Reduce the frequency which could commonly be 16-24ms
to a minimum of 100ms and maximum of 2000ms.
2015-05-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix some possible event listener leakers in content views
https://bugs.webkit.org/show_bug.cgi?id=145068
Reviewed by Timothy Hatcher.
Now that some content views can be closed that weren't closable before, ensure
we clean up after global event listeners that may strongly reference "this".
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.closed):
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.close):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype.closed):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.closed):
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.closed):
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView.prototype.closed):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.closed):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.close):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype.closed):
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype.closed):
(WebInspector.TimelineDataGrid.prototype.handleEvent):
2015-05-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Initiator Popovers no longer work in Layout Timeline
https://bugs.webkit.org/show_bug.cgi?id=145067
Reviewed by Timothy Hatcher.
* UserInterface/Views/LayoutTimelineDataGrid.js:
(WebInspector.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
Update the column name, which changed in r183134.
2015-05-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update the New Tab button disabled state after extra domains are activated
https://bugs.webkit.org/show_bug.cgi?id=145028
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.activateExtraDomains):
2015-05-14 Matt Baker <mattbaker@apple.com>
Web Inspector: Current time marker is always at zero in Rendering Frames ruler
https://bugs.webkit.org/show_bug.cgi?id=144518
Reviewed by Timothy Hatcher.
The current and end time values for the rendering frame timeline overview should always be equal to the frame
number of the last record in the rendering frames timeline.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.updateLayout):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
2015-05-11 Brent Fulgham <bfulgham@apple.com>
[Win] Move Windows build target to Windows 7 (or newer)
https://bugs.webkit.org/show_bug.cgi?id=144890
<rdar://problem/20707307>
Reviewed by Anders Carlsson.
Update linked SDK and minimal Windows level to be compatible with
Windows 7 or newer.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
2015-05-11 Timothy Hatcher <timothy@apple.com>
Web Inspector: REGRESSION (Tabs): Issues reloading a resource with breakpoints
https://bugs.webkit.org/show_bug.cgi?id=144650
Fix a number of issues with Debugger tab and navigation/reloading:
- Close old content views in the Debugger tab when main frame navigates.
- Prune old resource tree elements before attempting to restore a cookie that might match an old resource.
- Allow breakpoint selections to be restored from a saved cookie.
- Fix an assert when closing a content view that isn't the current index, but is the current view.
- Avoid calling closed() multiple times when a ContentView is in the back/forward list more than once.
- Make restoreStateFromCookie properly set and use the causedByNavigation argument for a longer restore delay.
- Create a new cookie object per tab instead of it being cumulative from the previous cookie.
Reviewed by Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector._mainResourceDidChange): Delay calling _restoreCookieForOpenTabs to give time for sidebars
and tabs to respond to the main resource change.
(WebInspector._restoreCookieForOpenTabs): Rename causedByReload to causedByNavigation. Nothing special about
reload since we restore on all navigation.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView): Support Breakpoint as a represented object, which happens during a cookie restore.
(WebInspector.ContentView.isViewable): Ditto.
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.closeAllContentViews): Disassociate if the view is current and not just
the current entry index. This matches other close functions. This fixes an assert in _disassociateFromContentView.
(WebInspector.ContentViewContainer.prototype._disassociateFromContentView): Don't disassociate multiple times. This
avoids calling the closed() function on a view more than once.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie):
(WebInspector.DebuggerSidebarPanel.prototype._mainResourceDidChange): Renamed from _mainResourceChanged.
Close all content views if this is the main frame. Also prune all old resources. Doing this now avoids a flash
of having old and new resources in the tree caused by the default delay in NavigationSidebarPanel's _checkForOldResources.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel): Set _autoPruneOldTopLevelResourceTreeElements for later.
(WebInspector.NavigationSidebarPanel.prototype.get contentTreeOutlineToAutoPrune): Deleted.
(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentView): Fix typo.
(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement): Fix whitespace.
(WebInspector.NavigationSidebarPanel.prototype.pruneOldResourceTreeElements): Added. Broken out from
_checkForOldResources.delayedWork so it can be called manually. Also check all visible tree outlines.
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged): Pass treeElement in an array.
(WebInspector.NavigationSidebarPanel.prototype._checkForOldResourcesIfNeeded): Added.
(WebInspector.NavigationSidebarPanel.prototype._checkForOldResources): Call pruneOldResourceTreeElements on a delay.
(WebInspector.NavigationSidebarPanel.prototype._checkForOldResources.delayedWork): Deleted.
(WebInspector.NavigationSidebarPanel.prototype._checkOutlinesForPendingViewStateCookie): Call _checkForOldResourcesIfNeeded.
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie): Remove array folding code.
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView.prototype.restoreStateFromCookie): Rename causedByReload to causedByNavigation.
(WebInspector.TabContentView.prototype.saveStateToCookie): Don't allow the cookie to build on the old cookie.
2015-05-11 Timothy Hatcher <timothy@apple.com>
Web Inspector: NavigationSidebarPanel leaks some event listeners
https://bugs.webkit.org/show_bug.cgi?id=144523
Reviewed by Joseph Pecoraro.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.closed):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.closed):
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.closed):
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel.prototype.closed):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.closed):
2015-05-10 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: In the console, show function name next to the source link
https://bugs.webkit.org/show_bug.cgi?id=144372
Introduce CallFrameView to display counsole message source links. It looks like this:
[f] functionName - filename.js:42
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.createSourceCodeLocationLink):
(WebInspector.linkifyLocation):
(.showSourceCodeLocation):
(WebInspector.linkifyElement):
Abstract this out as it's used in WebInspector.CallFrameView and WebInspector.createSourceCodeLocationLink.
(WebInspector.sourceCodeForURL):
Move this code from Timeline to Main.js as it's used by Console too.
(WebInspector.linkifyURLAsNode):
Remove tooltipText argument as it is never used.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._callFramesFromPayload):
* UserInterface/Main.html:
* UserInterface/Models/CallFrame.js:
(WebInspector.CallFrame.fromPayload):
Abstract this out as it's used in WebInspector.TimelineManager.prototype._callFramesFromPayload and
WebInspector.ConsoleMessageView._appendLocationLink.
(WebInspector.CallFrame):
* UserInterface/Views/CallFrameTreeElement.js:
(WebInspector.CallFrameTreeElement):
Move it to WebInspector.CallFrameView.iconForCallFrame.
* UserInterface/Views/CallFrameView.css: Added.
(.call-frame):
(.call-frame .icon):
(.call-frame .titles):
(.call-frame .title):
(.call-frame .source-link):
(.call-frame .title + .subtitle > .source-link):
(.call-frame .subtitle .source-link):
(.call-frame:focus .subtitle .source-link):
(.call-frame .subtitle:empty):
(.call-frame .subtitle):
(.call-frame .colon):
(.call-frame .title + .subtitle::before):
* UserInterface/Views/CallFrameView.js: Added.
(WebInspector.CallFrameView):
(WebInspector.CallFrameView.iconClassNameForCallFrame):
* UserInterface/Views/ConsoleMessageView.css:
(.console-message .console-message-location):
(.console-message .call-frame):
(.console-message .go-to-link):
(.console-message .go-to-link:focus):
(.console-message .console-message-url::before):
(.console-saved-variable): Deleted.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
* UserInterface/Views/DebuggerDashboardView.js:
* UserInterface/Views/Main.css:
(.hidden): Deleted.
* UserInterface/Views/ProfileNodeTreeElement.js:
(WebInspector.ProfileNodeTreeElement):
* UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.createCellContent):
2015-05-08 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: Styles sidebar editing with incomplete property looks poor in UI
https://bugs.webkit.org/show_bug.cgi?id=141692
Reviewed by Timothy Hatcher.
Add "css-rule" Formatter that breaks CSS declarations into multiple lines,
keeps comments and invalid styles and adds whitespace.
* Tools/PrettyPrinting/css-rule-tests/*.css: Added.
Add test cases.
* Tools/PrettyPrinting/index.html:
Enable Test setup to be able to run "css-rule" Formatter tests.
* UserInterface/Controllers/Formatter.js:
(Formatter.prototype._handleToken):
* UserInterface/Controllers/FormatterContentBuilder.js:
(FormatterContentBuilder.prototype.removeLastNewline):
(FormatterContentBuilder.prototype.removeLastWhitespace):
(FormatterContentBuilder.prototype._popFormattedContent):
(FormatterContentBuilder.prototype._popNewLine): Deleted.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.set this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.get this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.countNewLineCharacters): Deleted.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.else): Deleted.
* UserInterface/Views/CodeMirrorFormatters.js:
2015-05-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Expanding Object with only __proto__ looks poor should have a label
https://bugs.webkit.org/show_bug.cgi?id=144755
Reviewed by Timothy Hatcher.
Better handle cases where expanding an object has only a __proto__
and no other properties.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.mode.prototype.this.children.length):
(WebInspector.ObjectTreePropertyTreeElement):
* UserInterface/Views/ObjectTreeView.css:
(.object-tree-outline li .empty-message):
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.createEmptyMessageElement):
(WebInspector.ObjectTreeView.comparePropertyDescriptors):
(WebInspector.ObjectTreeView.prototype._updateProperties):
2015-05-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix querySelector in ResourceContentView.js, caught by assertion
https://bugs.webkit.org/show_bug.cgi?id=144756
Reviewed by Timothy Hatcher.
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype._hasContent):
Ensure querySelector call is using the class name correctly.
2015-05-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Docking Toolbar Buttons do not respect Docking Availability
https://bugs.webkit.org/show_bug.cgi?id=144714
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.updateDockingAvailability):
(WebInspector._updateDockNavigationItems):
Update the Toolbar UI based on docking availability.
Assume docking is unavailable by default.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setDockingUnavailable):
Add back this API as the backend may be calling it when
docking availability changes. This just calls out to
global WebInspector functions to update the Toolbar UI.
* UserInterface/Base/Test.js:
(WebInspector.updateDockedState):
(WebInspector.updateDockingAvailability):
Do nothing in tests.
2015-05-06 Matt Baker <mattbaker@apple.com>
Web Inspector: The text in the left pane overlaps the "Filter Time Events" field in the Timeline after the Web Inspector is resized
https://bugs.webkit.org/show_bug.cgi?id=144720
Reviewed by Timothy Hatcher.
* UserInterface/Views/FilterBar.css:
(.filter-bar):
(.filter-bar > .navigation-bar):
(.filter-bar > input[type="search"]):
(.filter-bar > .navigation-bar > .item): Deleted.
Filter bar now has opaque background and height updated to the ubiquitous 29px.
2015-05-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DOMStorage exception and issue with sessionStorage
https://bugs.webkit.org/show_bug.cgi?id=144646
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView):
(WebInspector.DOMStorageContentView.prototype._populate):
(WebInspector.DOMStorageContentView.prototype.reset): Deleted.
Always have the datagrid be available with a default sort.
(WebInspector.DOMStorageContentView.prototype._sortDataGrid.comparator):
(WebInspector.DOMStorageContentView.prototype._sortDataGrid):
Simplify and correct the order.
(WebInspector.DOMStorageContentView.prototype.cleanup):
Cleanup some uses of delete.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.sortNodesImmediately):
Provide a way to sort immediately without a visible delay.
(WebInspector.DataGrid.prototype._sortNodesCallback):
Cleanup some dead code to simplify sorting.
(WebInspector.DataGridNode.prototype._attach):
When sorting, the children list does not match the child node list,
so ensure that placeholder nodes are added to the end.
(WebInspector.PlaceholderDataGridNode.prototype.makeNormal):
Cleanup some uses of delete.
2015-05-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: SourceCodeTextEditor shows "undefined" instead of resource content when pausing during resource load
https://bugs.webkit.org/show_bug.cgi?id=144662
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.promise):
Start standardizing on rejecting Promises with Error objects.
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView):
(WebInspector.ResourceContentView.prototype._protocolError):
When there is a protocol error, show a nice UI string for the error.
(WebInspector.ResourceContentView.prototype._contentAvailable):
(WebInspector.ResourceContentView.prototype._contentError):
(WebInspector.ResourceContentView.prototype._hasContent):
Whenever we hit an error case in ResourceContentView, check to make sure
that a subclass hasn't already populated the content view with content.
This can happen when a TextResourceContentView populates a Resource with
Script content while paused, because the Resource content would be
unavailable. We check that content has loaded by checking that the
indeterminate spinner is no longer showing.
2015-05-05 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Further optimize SVG images
https://bugs.webkit.org/show_bug.cgi?id=144441
SVG images optimized with a combination of sed replacements, the
usage of the scour tool (http://www.codedread.com/scour/) and a
forked version of the svgo tool (https://github.com/tanty/svgo).
Also, added the class attribute to the shape elements following
the convention used in Apple's images.
Reviewed by Joseph Pecoraro.
* UserInterface/Images/gtk/BackArrow.svg: Optimized.
* UserInterface/Images/gtk/BreakpointActionAdd.svg: Optimized.
* UserInterface/Images/gtk/BreakpointActionRemove.svg: Optimized.
* UserInterface/Images/gtk/BreakpointButton.svg: Optimized.
* UserInterface/Images/gtk/BreakpointInactiveButton.svg: Optimized.
* UserInterface/Images/gtk/Breakpoints.svg: Optimized.
* UserInterface/Images/gtk/Checkers.svg: Optimized.
* UserInterface/Images/gtk/Circle.svg: Optimized.
* UserInterface/Images/gtk/Close.svg: Optimized.
* UserInterface/Images/gtk/CloseLarge.svg: Optimized.
* UserInterface/Images/gtk/CloseWhite.svg: Optimized.
* UserInterface/Images/gtk/ContentFlow.svg: Optimized.
* UserInterface/Images/gtk/Crosshair.svg: Optimized.
* UserInterface/Images/gtk/DOMCharacterData.svg: Optimized.
* UserInterface/Images/gtk/DOMComment.svg: Optimized.
* UserInterface/Images/gtk/DOMDocument.svg: Optimized.
* UserInterface/Images/gtk/DOMDocumentType.svg: Optimized.
* UserInterface/Images/gtk/DOMElement.svg: Optimized.
* UserInterface/Images/gtk/DOMNode.svg: Optimized.
* UserInterface/Images/gtk/DOMTextNode.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg: Optimized.
* UserInterface/Images/gtk/DockBottom.svg: Optimized.
* UserInterface/Images/gtk/DockRight.svg: Optimized.
* UserInterface/Images/gtk/DownloadArrow.svg: Optimized.
* UserInterface/Images/gtk/Error.svg: Optimized.
* UserInterface/Images/gtk/Errors.svg: Optimized.
* UserInterface/Images/gtk/ErrorsEnabled.svg: Optimized.
* UserInterface/Images/gtk/EventListener.svg: Optimized.
* UserInterface/Images/gtk/Exception.svg: Optimized.
* UserInterface/Images/gtk/Eye.svg: Optimized.
* UserInterface/Images/gtk/FilterFieldGlyph.svg: Optimized.
* UserInterface/Images/gtk/ForwardArrow.svg: Optimized.
* UserInterface/Images/gtk/Function.svg: Optimized.
* UserInterface/Images/gtk/GoToArrow.svg: Optimized.
* UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg: Optimized.
* UserInterface/Images/gtk/Issues.svg: Optimized.
* UserInterface/Images/gtk/IssuesEnabled.svg: Optimized.
* UserInterface/Images/gtk/LayerBorders.svg: Optimized.
* UserInterface/Images/gtk/Locked.svg: Optimized.
* UserInterface/Images/gtk/Logs.svg: Optimized.
* UserInterface/Images/gtk/Native.svg: Optimized.
* UserInterface/Images/gtk/NavigationItemCurleyBraces.svg: Optimized.
* UserInterface/Images/gtk/NavigationItemTrash.svg: Optimized.
* UserInterface/Images/gtk/NavigationItemTypes.svg: Optimized.
* UserInterface/Images/gtk/PaintFlashing.svg: Optimized.
* UserInterface/Images/gtk/Pause.svg: Optimized.
* UserInterface/Images/gtk/PausedBreakpoint.svg: Optimized.
* UserInterface/Images/gtk/Pencil.svg: Optimized.
* UserInterface/Images/gtk/Plus.svg: Optimized. Text element
converted into a shape.
* UserInterface/Images/gtk/PseudoElement.svg: Optimized.
* UserInterface/Images/gtk/Record.svg: Optimized.
* UserInterface/Images/gtk/Reflection.svg: Optimized.
* UserInterface/Images/gtk/ReloadFull.svg: Optimized.
* UserInterface/Images/gtk/ReplayPauseButton.svg: Optimized.
* UserInterface/Images/gtk/ReplayPlayButton.svg: Optimized.
* UserInterface/Images/gtk/ReplayRecordingButton.svg: Optimized.
* UserInterface/Images/gtk/Request.svg: Optimized.
* UserInterface/Images/gtk/Resources.svg: Optimized.
* UserInterface/Images/gtk/Response.svg: Optimized.
* UserInterface/Images/gtk/ResultLine.svg: Optimized.
* UserInterface/Images/gtk/Resume.svg: Optimized.
* UserInterface/Images/gtk/ShadowDOM.svg: Optimized.
* UserInterface/Images/gtk/SortIndicatorDownArrow.svg: Optimized.
* UserInterface/Images/gtk/SortIndicatorUpArrow.svg: Optimized.
* UserInterface/Images/gtk/SplitToggleUp.svg: Optimized.
* UserInterface/Images/gtk/StepInto.svg: Optimized.
* UserInterface/Images/gtk/StepOut.svg: Optimized.
* UserInterface/Images/gtk/StepOver.svg: Optimized.
* UserInterface/Images/gtk/Stop.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleAuthor.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleInherited.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleInheritedElement.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleInspector.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleUser.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleUserAgent.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordAnimation.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordEvent.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordLayout.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordPaint.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordStyle.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordTimer.svg: Optimized.
* UserInterface/Images/gtk/TypeBoolean.svg: Optimized.
* UserInterface/Images/gtk/TypeNull.svg: Optimized.
* UserInterface/Images/gtk/TypeNumber.svg: Optimized.
* UserInterface/Images/gtk/TypeObject.svg: Optimized.
* UserInterface/Images/gtk/TypeRegex.svg: Optimized. Removed
mistaken extra shape.
* UserInterface/Images/gtk/TypeString.svg: Optimized.
* UserInterface/Images/gtk/TypeSymbol.svg: Optimized. Removed
mistaken extra shape.
* UserInterface/Images/gtk/TypeUndefined.svg: Optimized.
* UserInterface/Images/gtk/Undock.svg: Optimized.
* UserInterface/Images/gtk/UpDownArrows.svg: Optimized.
* UserInterface/Images/gtk/UserInputPrompt.svg: Optimized.
* UserInterface/Images/gtk/UserInputPromptPrevious.svg: Optimized.
* UserInterface/Images/gtk/UserInputResult.svg: Optimized.
* UserInterface/Images/gtk/Warning.svg: Optimized.
2015-05-05 Timothy Hatcher <timothy@apple.com>
REGRESSION: Web Inspector: no way to navigate to a resource/source location from overview timeline view
https://bugs.webkit.org/show_bug.cgi?id=144539
Reviewed by Brian Burg.
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.set status): Call didChange() so the onchange event fires. This allows
TimelineSidebarPanel to update the status element when it goes from a spinner to empty for ResourceTreeElements.
(WebInspector.GeneralTreeElement.prototype.onattach): Don't call _updateStatusElement, just append it if needed.
Calling _updateStatusElement caused DOMNodeFragments as status elements to be appended a second time and fail.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.treeElementAddedOrChanged):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.NetworkTimelineView.prototype.treeElementSelected):
(WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
(WebInspector.NetworkTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked): Deleted.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.OverviewTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
(WebInspector.OverviewTimelineView.prototype._treeElementDeselected): Deleted.
(WebInspector.OverviewTimelineView.prototype._treeElementSelected): Deleted.
(WebInspector.OverviewTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.OverviewTimelineView.prototype._closeStatusButtonClicked): Deleted.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.RenderingFrameTimelineView.prototype.showContentViewForTreeElement):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent): Don't show a go-to arrow in the Domain column.
(WebInspector.ResourceTimelineDataGridNode.prototype._goToResource): Deleted.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.ScriptTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.ScriptTimelineView.prototype.treeElementSelected):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement.prototype.get sourceCodeLocation):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline .item:hover:not(.selected) .status .close.status-button):
(.sidebar > .panel.navigation.timeline:not(.timeline-recording-content-view-showing) .status .go-to-arrow.status-button):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .status .close.status-button):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementAddedOrChanged): Added.
(WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
(WebInspector.TimelineSidebarPanel.prototype._treeElementGoToArrowWasClicked): Added.
(WebInspector.TimelineSidebarPanel.prototype._treeElementCloseButtonClicked): Added.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.TimelineView.prototype.showContentViewForTreeElement):
(WebInspector.TimelineView.prototype.treeElementDeselected):
(WebInspector.TimelineView.prototype.treeElementSelected):
(WebInspector.TimelineView.prototype.needsLayout):
(WebInspector.TimelineView.prototype._closeStatusButtonClicked): Deleted.
(WebInspector.TimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
* UserInterface/Views/TreeElementStatusButton.css:
(.item > .status > .status-button): Fix an alignment issue with close and go-to arrows being side-by-side.
Does not happen in the final patch because they are mutually exclusive, but still good to fix.
2015-05-05 Timothy Hatcher <timothy@apple.com>
Web Inspector: Fix some issues with Search tabs
https://bugs.webkit.org/show_bug.cgi?id=144531
Reviewed by Darin Adler.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
Support DOMSearchMatchObject and SourceCodeSearchMatchObject representedObjects. These are usually
handled at a higher level, but cookie restoring requires ContentView to handle them.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype.selectAndRevealDOMNode):
(WebInspector.DOMTreeContentView.prototype.selectLastSelectedNode):
(WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
Don't allow restoring the previous selected node when another not has already been selected.
* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
Allow Script objects to be shown in the Search tab.
2015-05-05 Timothy Hatcher <timothy@apple.com>
Web Inspector: Source/WebInspectorUI/UserInterface/Images/Logs.svg has unknown attribute "fille"
https://bugs.webkit.org/show_bug.cgi?id=144627
Reviewed by Darin Adler.
* UserInterface/Images/Logs.svg: Change "fille" to "fill".
2015-05-05 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: New Images added in r183339, r183338, r183332, r183323, r182660, and r182186
https://bugs.webkit.org/show_bug.cgi?id=144329
Reviewed by Joseph Pecoraro.
* UserInterface/Images/gtk/Console.svg: Added.
* UserInterface/Images/gtk/Debugger.svg: Added.
* UserInterface/Images/gtk/Elements.svg: Added.
* UserInterface/Images/gtk/Gear.svg: Added.
* UserInterface/Images/gtk/NewTab.svg: Added.
* UserInterface/Images/gtk/NewTabPlus.svg: Added.
* UserInterface/Images/gtk/ReloadToolbar.svg: Added.
* UserInterface/Images/gtk/SearchResults.svg: Added.
* UserInterface/Images/gtk/Storage.svg: Added.
* UserInterface/Images/gtk/Timeline.svg: Added.
* UserInterface/Images/gtk/TimelineRecordRenderingFrame.svg: Added.
* UserInterface/Images/gtk/ToggleLeftSidebar.svg: Added.
* UserInterface/Images/gtk/ToggleRightSidebar.svg: Added.
2015-05-05 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: icons for console.info() messages
https://bugs.webkit.org/show_bug.cgi?id=144461
Reviewed by Joseph Pecoraro.
* UserInterface/Images/gtk/Debug.svg: Added.
* UserInterface/Images/gtk/Info.svg: Added.
* UserInterface/Images/gtk/Log.svg: Added.
2015-05-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Always expand initial top level DOM tree nodes when not including the root (frame views)
https://bugs.webkit.org/show_bug.cgi?id=144607
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.update):
2015-05-04 Timothy Hatcher <timothy@apple.com>
Web Inspector: Allow closing and reopening the Debugger tab
https://bugs.webkit.org/show_bug.cgi?id=144536
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector._updateNewTabButtonState):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype.closed):
(WebInspector.DebuggerSidebarPanel.prototype._addIssuesForSourceCode):
(WebInspector.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
(WebInspector.DebuggerSidebarPanel.prototype._resourceAdded):
(WebInspector.DebuggerSidebarPanel.prototype._addResource):
(WebInspector.DebuggerSidebarPanel.prototype._mainResourceChanged):
(WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
(WebInspector.DebuggerSidebarPanel.prototype._addScript):
* UserInterface/Views/DebuggerTabContentView.js:
(WebInspector.DebuggerTabContentView):
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView):
2015-05-04 Timothy Hatcher <timothy@apple.com>
REGRESSION: Web Inspector: FrameTreeElement does not folders properly when loading a page
https://bugs.webkit.org/show_bug.cgi?id=144535
Reviewed by Joseph Pecoraro.
* UserInterface/Views/FolderizedTreeElement.js:
(WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Fix an exception if not in a tree.
(WebInspector.FolderizedTreeElement.prototype.prepareToPopulate):
(WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue):
2015-05-04 Timothy Hatcher <timothy@apple.com>
Web Inspector: Allow closing and reopening the Timelines tab
https://bugs.webkit.org/show_bug.cgi?id=144520
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector._updateNewTabButtonState):
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager): No need for a delay now. Call reset().
(WebInspector.TimelineManager.prototype.reset):
(WebInspector.TimelineManager.delayedWork): Deleted.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView):
(WebInspector.ContentBrowserTabContentView.prototype.closed):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype.closed): Added. Fixed leak.
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.closed): Added. Fixed leak.
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView): Added Timelines.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.closed): Added. Fixed leak.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.closed): Added. Fixed leak.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.closed):
* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView.prototype.closed): Deleted. Made generic
in ContentBrowserTabContentView.prototype.closed.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser.prototype._tabBarItemSelected): Fix a potential exception
when selectedTabBarItem is null.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.closed):
(WebInspector.TimelineSidebarPanel._recordingCreated): Call _addRecording.
(WebInspector.TimelineSidebarPanel._addRecording): Added.
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView):
2015-05-04 Timothy Hatcher <timothy@apple.com>
Web Inspector: Switching recordings in the Timeline navigation bar is broken
https://bugs.webkit.org/show_bug.cgi?id=144519
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._hierarchicalPathComponentWasSelected): Use revealAndSelect
on the TreeElement instead of showing the representedObject directly. This fixes an exception in
TimelineRecordingContentView where it wouldn't be initialized with the TimelineSidebarPanel extra argument.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.get visibleDuration): Fix an annoying assert. We show the view
early in construction, before it is in the document. Future updateLayout calls work and fix this.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype.shown): Call _currentContentViewDidChange
to trigger the sidebar to update when this recording view is shown.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._recordingsTreeElementSelected): Moved code from here...
(WebInspector.TimelineSidebarPanel.prototype._recordingSelected): ... to here. Take two different paths
to state restoration here. If the view existed before, use its state. If now, use the current state that
is captured by the cookie logic and explicitly restore it.
2015-05-03 Timothy Hatcher <timothy@apple.com>
Web Inspector: Exception under ContentViewContainer _disassociateFromContentView
https://bugs.webkit.org/show_bug.cgi?id=144546
Reviewed by Brian Burg.
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showContentView):
Make sure to pass the ContentView to _disassociateFromContentView. Also negate the result
of the _backForwardList.some(), since we don't want to dissociate if the content view is
still in the back-forward list.
2015-05-02 Matt Baker <mattbaker@apple.com>
Web Inspector: Relocate the selected range details in the Rendering Frames timeline UI
https://bugs.webkit.org/show_bug.cgi?id=144346
This patch removes the details sidebar used by the rendering frames view, and relocates the frame selection
chart the Timelines navigation sidebar.
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
RenderingFramesDetailsSidebar is no longer used.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._loadNewRecording):
Reordered timelines.
* UserInterface/Main.html:
Removed references to deleted files.
* UserInterface/Views/ChartDetailsSectionLegendRow.js: Removed.
No longer used. The legend is now a child element of the chart.
* UserInterface/Views/ChartDetailsSectionRow.css:
(.details-section > .content > .group > .row.chart > .title):
(.details-section > .content > .group > .row.chart > .chart-content):
(.details-section > .content > .group > .row.chart > .chart-content > .legend):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label > .color-swatch):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .value):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > *):
New chart and legend styles.
* UserInterface/Views/ChartDetailsSectionRow.js:
(WebInspector.ChartDetailsSectionRow):
(WebInspector.ChartDetailsSectionRow.prototype.set title):
(WebInspector.ChartDetailsSectionRow.prototype.set innerLabel):
(WebInspector.ChartDetailsSectionRow.prototype.set innerRadius):
(WebInspector.ChartDetailsSectionRow.prototype.get total):
(WebInspector.ChartDetailsSectionRow.set data):
(WebInspector.ChartDetailsSectionRow.prototype.set data):
(WebInspector.ChartDetailsSectionRow.prototype._createLegendItem):
(WebInspector.ChartDetailsSectionRow.prototype._refresh):
A few changes have been made to the appearance and behavior of the chart. A chart title can now be set,
and the legend appears to the right of the chart rather than in a separate details group.
The chart now has better support for adding empty data points, ensuring that a meaningful legend is shown even
when no rendering frames are selected in the timeline overview graph. This ensures that the task associated
with each colored frame segment is apparent, without having to make a selection or record a timeline.
* UserInterface/Views/RenderingFrameDetailsSidebarPanel.js: Removed.
No longer used.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
Reduced maximum timeline height to increase the height of short frames.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.shown):
(WebInspector.RenderingFrameTimelineView.prototype.hidden):
RenderingFramesDetailsSidebar is no longer used.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
Improved logic for updating the frame selection.
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > div.header):
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > .content > .group > .row.chart):
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > .content > .group > .row.chart > .chart-content > .chart):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content): Deleted.
New chart styles.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.shown):
(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
(WebInspector.TimelineSidebarPanel.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.get else):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.getSelectedRecords.get var):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.getSelectedRecords):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.durationForRecordType):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.TimelineSidebarPanel.set contentTreeOutlineLabel): Deleted.
(WebInspector.TimelineSidebarPanel._recordingCreated.set this): Deleted.
(WebInspector.TimelineSidebarPanel.get this): Deleted.
Moved the selected frames chart to the navigation sidebar.
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView):
RenderingFramesDetailsSidebar is no longer used.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Removed references to deleted files.
2015-05-02 Timothy Hatcher <timothy@apple.com>
Web Inspector: Allow closing and reopening the Resources tab
https://bugs.webkit.org/show_bug.cgi?id=144513
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector._updateNewTabButtonState):
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.closed):
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView):
2015-05-02 Timothy Hatcher <timothy@apple.com>
Web Inspector: REGRESSION: Resources section doesn't update after changes are made to a local file
https://bugs.webkit.org/show_bug.cgi?id=144512
The content view was being associated with the wrong represented object. This caused the code to use
the old main resource when showing the frame again.
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector._frameWasAdded.delayedWork):
(WebInspector._frameWasAdded):
With the changes in ResourceSidebarPanel, we need to delay showing the frame.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView.prototype.showRepresentedObject):
Avoid restoring state by calling cancelRestoringState(). Not fully related to this bug,
but it was preventing testing the cases.
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.contentViewForRepresentedObject):
This fixes the bug. Don't associate the content view with the Frame, associate it with
the Resource that we actually show.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.cancelRestoringState): Added.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel): Remove unused _waitingForInitialMainFrame.
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.ResourceSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
Clean up how we show the main frame in the sidebar. This was a two step mess before.
2015-04-29 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove FrameContentView.js
https://bugs.webkit.org/show_bug.cgi?id=144415
Reviewed by Joseph Pecoraro.
* UserInterface/Images/DOMTree.svg: Removed.
* UserInterface/Images/SourceCode.svg: Removed.
* UserInterface/Main.html: Removed FrameContentView.js.
* UserInterface/Views/FrameContentView.js: Removed.
* UserInterface/Views/PathComponentIcons.css:
(.source-code-icon .icon): Deleted.
(.dom-tree-icon .icon): Deleted.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
Simplify the code here. We don't need these checks now with tabs and the Storage tab.
2015-04-30 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION: Web Inspector: Console message repeat count overlapped by icon
https://bugs.webkit.org/show_bug.cgi?id=144344
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.css:
(.console-message .repeat-count):
2015-04-30 Jon Davis <jond@apple.com>
Web Inspector: console should show an icon for console.info() messages
https://bugs.webkit.org/show_bug.cgi?id=18530
Reviewed by Timothy Hatcher.
Added icons for console.log, console.info and console.debug messages.
Separated console.info from console.log.
* UserInterface/Images/Debug.svg: Added.
* UserInterface/Images/Info.svg: Added.
* UserInterface/Images/Log.svg: Added.
New icon files.
* UserInterface/Models/ConsoleMessage.js:
* UserInterface/Views/ConsoleMessageView.css:
(.console-log-level::before):
(.console-info-level::before):
(.console-debug-level::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level).console-message):
(:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level)::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message): Deleted.
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before): Deleted.
Include console.info messages in layout adjustments.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype._levelString):
2015-04-30 Timothy Hatcher <timothy@apple.com>
Web Inspector: Scope Chain sidebar should be selected immediately when paused
https://bugs.webkit.org/show_bug.cgi?id=144352
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.showDebuggerTab): Added showScopeChainDetailsSidebarPanel argument.
(WebInspector._debuggerDidPause): Pass true for showScopeChainDetailsSidebarPanel.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView): Wire the event to showDetailsSidebarPanels instead of
_contentBrowserRepresentedObjectsDidChange, allowing subclasses to do work during the event.
(WebInspector.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels): Moved content of
_contentBrowserRepresentedObjectsDidChange here.
(WebInspector.ContentBrowserTabContentView.prototype._contentBrowserRepresentedObjectsDidChange): Deleted.
* UserInterface/Views/DebuggerTabContentView.js:
(WebInspector.DebuggerTabContentView.prototype.showDetailsSidebarPanels): Added. Show the scope sidebar panel
if it is available and it was requested by showScopeChainDetailsSidebarPanel().
(WebInspector.DebuggerTabContentView.prototype.showScopeChainDetailsSidebarPanel): Added.
2015-04-30 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: New Images for ObjectTreeView - Setter
https://bugs.webkit.org/show_bug.cgi?id=143173
Reviewed by Martin Robinson.
* UserInterface/Images/gtk/Pencil.svg: Added.
2015-04-30 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Remove some unused Images
https://bugs.webkit.org/show_bug.cgi?id=144445
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/BottomUpTree.svg: Removed.
* UserInterface/Images/gtk/Log.png: Removed.
* UserInterface/Images/gtk/Log@2x.png: Removed.
* UserInterface/Images/gtk/NavigationItemAngleBrackets.svg: Removed.
* UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg: Removed.
* UserInterface/Images/gtk/NavigationItemBug.svg: Removed.
* UserInterface/Images/gtk/NavigationItemFile.svg: Removed.
* UserInterface/Images/gtk/NavigationItemLayers.svg: Removed.
* UserInterface/Images/gtk/NavigationItemLog.svg: Removed.
* UserInterface/Images/gtk/NavigationItemProbes.svg: Removed.
* UserInterface/Images/gtk/NavigationItemStopwatch.svg: Removed.
* UserInterface/Images/gtk/NavigationItemStorage.svg: Removed.
* UserInterface/Images/gtk/NavigationItemVariable.svg: Removed.
* UserInterface/Images/gtk/Percent.svg: Removed.
* UserInterface/Images/gtk/Reload.svg: Removed.
* UserInterface/Images/gtk/SplitToggleDown.svg: Removed.
* UserInterface/Images/gtk/Time.svg: Removed.
* UserInterface/Images/gtk/Weight.svg: Removed.
2015-04-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Copy not working in Console
https://bugs.webkit.org/show_bug.cgi?id=144354
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector._focusedContentView):
Select the inner most content view to check if handleCopyEvent exists.
Previously we were stopping at the top level TabContentView.
2015-04-29 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove some unused Images
https://bugs.webkit.org/show_bug.cgi?id=144412
Reviewed by Joseph Pecoraro.
* UserInterface/Images/BottomUpTree.svg: Removed.
* UserInterface/Images/Log.png: Removed.
* UserInterface/Images/Log@2x.png: Removed.
* UserInterface/Images/NavigationItemAngleBrackets.svg: Removed.
* UserInterface/Images/NavigationItemBrushAndRuler.svg: Removed.
* UserInterface/Images/NavigationItemBug.svg: Removed.
* UserInterface/Images/NavigationItemDoughnutChart.svg: Removed.
* UserInterface/Images/NavigationItemFile.svg: Removed.
* UserInterface/Images/NavigationItemLayers.svg: Removed.
* UserInterface/Images/NavigationItemLog.svg: Removed.
* UserInterface/Images/NavigationItemProbes.svg: Removed.
* UserInterface/Images/NavigationItemStopwatch.svg: Removed.
* UserInterface/Images/NavigationItemStorage.svg: Removed.
* UserInterface/Images/NavigationItemVariable.svg: Removed.
* UserInterface/Images/NetworkBarLabelCalloutLeft.svg: Removed.
* UserInterface/Images/NetworkBarLabelCalloutRight.svg: Removed.
* UserInterface/Images/NetworkBarLabelCalloutWhiteLeft.svg: Removed.
* UserInterface/Images/NetworkBarLabelCalloutWhiteRight.svg: Removed.
* UserInterface/Images/Percent.svg: Removed.
* UserInterface/Images/Reload.svg: Removed.
* UserInterface/Images/SplitToggleDown.svg: Removed.
* UserInterface/Images/Time.svg: Removed.
* UserInterface/Images/Weight.svg: Removed.
2015-04-29 Timothy Hatcher <timothy@apple.com>
Web Inspector: Split Storage from Resources tab
https://bugs.webkit.org/show_bug.cgi?id=144404
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.isTabTypeAllowed):
(WebInspector._tabContentViewForType):
(WebInspector._updateNewTabButtonState):
(WebInspector.showStorageTab):
(WebInspector._storageWasInspected):
* UserInterface/Controllers/ApplicationCacheManager.js:
(WebInspector.ApplicationCacheManager.prototype.initialize):
(WebInspector.ApplicationCacheManager.prototype.get applicationCacheObjects):
* UserInterface/Controllers/StorageManager.js:
(WebInspector.StorageManager.prototype.get domStorageObjects):
(WebInspector.StorageManager.prototype.get databases):
(WebInspector.StorageManager.prototype.get indexedDatabases):
(WebInspector.StorageManager.prototype.get cookieStorageObjects):
* UserInterface/Images/Storage.svg: Added.
* UserInterface/Main.html:
* UserInterface/Views/DatabaseTableContentView.js:
(WebInspector.DatabaseTableContentView.prototype._queryFinished): Clear _dataGrid,
since it might have been allocated but still be empty. This avoids an exception in
updateLayout next time layout is updated.
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
(WebInspector.ResourceSidebarPanel.prototype._domStorageObjectWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._domStorageObjectWasInspected): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._databaseWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._databaseWasInspected): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._indexedDatabaseWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._cookieStorageObjectWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._frameManifestAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._frameManifestRemoved): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._addStorageChild): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._storageCleared): Deleted.
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView):
(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):
* UserInterface/Views/StorageSidebarPanel.js: Added.
(WebInspector.StorageSidebarPanel):
(WebInspector.StorageSidebarPanel.prototype.showDefaultContentView):
(WebInspector.StorageSidebarPanel.prototype.closed):
(WebInspector.StorageSidebarPanel.prototype._treeElementSelected):
(WebInspector.StorageSidebarPanel.prototype._domStorageObjectWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addDOMStorageObject):
(WebInspector.StorageSidebarPanel.prototype._domStorageObjectWasInspected):
(WebInspector.StorageSidebarPanel.prototype._databaseWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addDatabase):
(WebInspector.StorageSidebarPanel.prototype._databaseWasInspected):
(WebInspector.StorageSidebarPanel.prototype._indexedDatabaseWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addIndexedDatabase):
(WebInspector.StorageSidebarPanel.prototype._cookieStorageObjectWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addCookieStorageObject):
(WebInspector.StorageSidebarPanel.prototype._frameManifestAdded):
(WebInspector.StorageSidebarPanel.prototype._addFrameManifest):
(WebInspector.StorageSidebarPanel.prototype._frameManifestRemoved):
(WebInspector.StorageSidebarPanel.prototype._compareTreeElements):
(WebInspector.StorageSidebarPanel.prototype._addStorageChild):
(WebInspector.StorageSidebarPanel.prototype._storageCleared):
* UserInterface/Views/StorageTabContentView.js: Copied from Source/WebInspectorUI/UserInterface/Views/ResourcesTabContentView.js.
(WebInspector.StorageTabContentView):
(WebInspector.StorageTabContentView.prototype.get type):
(WebInspector.StorageTabContentView.prototype.canShowRepresentedObject):
2015-04-29 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove Legacy images and styles
https://bugs.webkit.org/show_bug.cgi?id=144390
Reviewed by Joseph Pecoraro.
* UserInterface/Base/ImageUtilities.js:
(.generateImage):
(.generateImage.generateLegacyImage): Deleted.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._updateToolbarHeight):
* UserInterface/Base/Platform.js:
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._loadNewRecording):
* UserInterface/Images/Legacy/BackArrow.svg: Removed.
* UserInterface/Images/Legacy/Breakpoints.svg: Removed.
* UserInterface/Images/Legacy/Close.svg: Removed.
* UserInterface/Images/Legacy/CloseLarge.svg: Removed.
* UserInterface/Images/Legacy/Colors.png: Removed.
* UserInterface/Images/Legacy/Colors@2x.png: Removed.
* UserInterface/Images/Legacy/ColorsLarge.png: Removed.
* UserInterface/Images/Legacy/ColorsLarge@2x.png: Removed.
* UserInterface/Images/Legacy/DockBottom.svg: Removed.
* UserInterface/Images/Legacy/DockRight.svg: Removed.
* UserInterface/Images/Legacy/DownloadArrow.svg: Removed.
* UserInterface/Images/Legacy/Errors.svg: Removed.
* UserInterface/Images/Legacy/ErrorsEnabled.svg: Removed.
* UserInterface/Images/Legacy/FilterFieldGlyph.svg: Removed.
* UserInterface/Images/Legacy/FolderGeneric.png: Removed.
* UserInterface/Images/Legacy/FolderGeneric@2x.png: Removed.
* UserInterface/Images/Legacy/ForwardArrow.svg: Removed.
* UserInterface/Images/Legacy/Issues.svg: Removed.
* UserInterface/Images/Legacy/IssuesEnabled.svg: Removed.
* UserInterface/Images/Legacy/LayerBorders.svg: Removed.
* UserInterface/Images/Legacy/Logs.svg: Removed.
* UserInterface/Images/Legacy/NavigationItemCurleyBraces.svg: Removed.
* UserInterface/Images/Legacy/NavigationItemTrash.svg: Removed.
* UserInterface/Images/Legacy/Network.png: Removed.
* UserInterface/Images/Legacy/Network@2x.png: Removed.
* UserInterface/Images/Legacy/NetworkLarge.png: Removed.
* UserInterface/Images/Legacy/NetworkLarge@2x.png: Removed.
* UserInterface/Images/Legacy/Pause.svg: Removed.
* UserInterface/Images/Legacy/Plus.svg: Removed.
* UserInterface/Images/Legacy/Recording.png: Removed.
* UserInterface/Images/Legacy/Recording@2x.png: Removed.
* UserInterface/Images/Legacy/RecordingHovered.png: Removed.
* UserInterface/Images/Legacy/RecordingHovered@2x.png: Removed.
* UserInterface/Images/Legacy/RecordingStopped.png: Removed.
* UserInterface/Images/Legacy/RecordingStopped@2x.png: Removed.
* UserInterface/Images/Legacy/Reload.svg: Removed.
* UserInterface/Images/Legacy/Resources.svg: Removed.
* UserInterface/Images/Legacy/Resume.svg: Removed.
* UserInterface/Images/Legacy/ShadowDOM.svg: Removed.
* UserInterface/Images/Legacy/SortIndicatorDownArrow.svg: Removed.
* UserInterface/Images/Legacy/SortIndicatorUpArrow.svg: Removed.
* UserInterface/Images/Legacy/SplitToggleDown.svg: Removed.
* UserInterface/Images/Legacy/SplitToggleUp.svg: Removed.
* UserInterface/Images/Legacy/StepInto.svg: Removed.
* UserInterface/Images/Legacy/StepOut.svg: Removed.
* UserInterface/Images/Legacy/StepOver.svg: Removed.
* UserInterface/Images/Legacy/Time.svg: Removed.
* UserInterface/Images/Legacy/Undock.svg: Removed.
* UserInterface/Images/Legacy/UpDownArrows.svg: Removed.
* UserInterface/Images/Legacy/Weight.svg: Removed.
* UserInterface/Views/ButtonNavigationItem.css:
(body.mac-platform.legacy .navigation-bar .item.button.text-only): Deleted.
* UserInterface/Views/ButtonToolbarItem.css:
(body.mac-platform.legacy .toolbar .item.button > .label): Deleted.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(body.mac-platform.legacy .style-declaration-section): Deleted.
(body.mac-platform.legacy .style-declaration-section + .style-declaration-section): Deleted.
(body.mac-platform.legacy .style-declaration-section.last-in-group): Deleted.
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section): Deleted.
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:matches(.last-in-group, :last-child)): Deleted.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(body.mac-platform.legacy .sidebar > .panel.details.css-style > .content): Deleted.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
* UserInterface/Views/ControlToolbarItem.css:
(body.mac-platform.legacy .toolbar .item.control): Deleted.
(body.mac-platform.legacy .toolbar .item.control:hover): Deleted.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
* UserInterface/Views/DOMTreeOutline.css:
(body.mac-platform.legacy .dom-tree-outline li.hovered:not(.selected) .selection): Deleted.
(body.mac-platform.legacy .dom-tree-outline li.elements-drag-over .selection): Deleted.
(body.mac-platform.legacy .dom-tree-outline:focus li.selected .selection): Deleted.
* UserInterface/Views/DashboardContainerView.css:
(body.mac-platform.legacy .toolbar .dashboard-container): Deleted.
(body.mac-platform.legacy.window-inactive .toolbar .dashboard-container): Deleted.
(body.mac-platform.legacy.window-inactive .toolbar .dashboard): Deleted.
(body.mac-platform.legacy .dashboard-container .advance-arrow): Deleted.
* UserInterface/Views/DataGrid.css:
(body.mac-platform.legacy .data-grid:focus tr.selected td:not(:last-child)): Deleted.
(body.mac-platform.legacy .data-grid:focus tr.selected): Deleted.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.get _generateSortIndicatorImagesIfNeeded):
* UserInterface/Views/DatabaseTableContentView.js:
(WebInspector.DatabaseTableContentView):
* UserInterface/Views/DebuggerDashboardView.js:
(WebInspector.DebuggerDashboardView):
* UserInterface/Views/DebuggerSidebarPanel.css:
(body.mac-platform.legacy .sidebar > .panel.navigation.debugger > .content): Deleted.
* UserInterface/Views/DebuggerSidebarPanel.js:
* UserInterface/Views/DefaultDashboardView.css:
(body.mac-platform.legacy .toolbar .dashboard.default > .item): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .resourcesCount > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .logs > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .errors > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .errors.enabled > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .issues > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .issues.enabled > img): Deleted.
* UserInterface/Views/DetailsSection.css:
(body.mac-platform.legacy .details-section): Deleted.
(body.mac-platform.legacy .details-section .details-section): Deleted.
(body.mac-platform.legacy .details-section .details-section:first-child): Deleted.
(body.mac-platform.legacy .details-section > .header): Deleted.
(body.mac-platform.legacy .details-section .details-section > .header): Deleted.
(body.mac-platform.legacy .details-section .details-section.collapsed > .header): Deleted.
(body.mac-platform.legacy .details-section:not(.collapsed) .data-grid.inline): Deleted.
(body.mac-platform.legacy .details-section.computed-style-properties:not(.collapsed) > .header): Deleted.
(body.mac-platform.legacy .details-section > .content > .group): Deleted.
(body.mac-platform.legacy .details-section > .content > .group:nth-child(even)): Deleted.
(body.mac-platform.legacy .details-section > .content > .group:matches(:nth-child(even), :last-child) > .row.simple:last-child > *): Deleted.
(body.mac-platform.legacy .details-section > .content > .group > .row:matches(.empty, .text)): Deleted.
* UserInterface/Views/DividerNavigationItem.css:
(.navigation-bar .item.divider):
(body.mac-platform.legacy .navigation-bar .item.divider): Deleted.
* UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]::-webkit-search-decoration):
(body.mac-platform.legacy .filter-bar): Deleted.
(body.mac-platform.legacy .filter-bar > input[type="search"]): Deleted.
(body.mac-platform.legacy .filter-bar > input[type="search"]::-webkit-search-decoration): Deleted.
* UserInterface/Views/FindBanner.css:
(body.mac-platform.legacy .find-banner > input[type="search"]): Deleted.
(body.mac-platform.legacy .find-banner > button > .glyph): Deleted.
(body.mac-platform.legacy .find-banner > button.segmented.left > .glyph): Deleted.
(body.mac-platform.legacy .find-banner > button.segmented.right > .glyph): Deleted.
(body.mac-platform.legacy .find-banner > button.segmented): Deleted.
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
(WebInspector.FindBanner):
* UserInterface/Views/FolderIcon.css:
(.folder-icon .icon):
(body.mac-platform.legacy .folder-icon .icon): Deleted.
* UserInterface/Views/HierarchicalPathComponent.css:
(body.mac-platform.legacy .hierarchical-path-component > .selector-arrows): Deleted.
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
(WebInspector.IndexedDatabaseObjectStoreContentView):
* UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
(body.mac-platform.legacy .sidebar > .panel.details.layer-tree > .content): Deleted.
(body.mac-platform.legacy .panel.details.layer-tree .bottom-bar): Deleted.
(body.mac-platform.legacy .panel.details.layer-tree .bottom-bar > div): Deleted.
(body.mac-platform.legacy .layer-tree-popover): Deleted.
* UserInterface/Views/LogContentView.css:
(body.mac-platform.legacy .search-bar.log-search-bar > input[type="search"]): Deleted.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
* UserInterface/Views/Main.css:
(body.mac-platform.legacy:not(.docked)): Deleted.
(body.docked.bottom.mac-platform.legacy): Deleted.
(body.docked.right.mac-platform.legacy): Deleted.
(body.mac-platform.legacy #split-content-browser > .navigation-bar): Deleted.
* UserInterface/Views/NavigationBar.css:
(.navigation-bar .item):
(body.mac-platform.legacy .navigation-bar): Deleted.
(body.mac-platform.legacy .navigation-bar .item): Deleted.
* UserInterface/Views/NavigationSidebarPanel.css:
(body.mac-platform.legacy .sidebar > .panel.navigation > .content): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow.top): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation > .empty-content-placeholder): Deleted.
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline:focus .item.selected): Deleted.
(body.mac-platform.legacy.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._generateDisclosureTrianglesIfNeeded):
* UserInterface/Views/Popover.js:
* UserInterface/Views/ProbeDetailsSidebarPanel.css:
(body.mac-platform.legacy .details-section.probe-set .options > .probe-clear-samples): Deleted.
(body.mac-platform.legacy .details-section.probe-set .options > .probe-remove): Deleted.
(body.mac-platform.legacy .details-section.probe-set .options > .probe-add): Deleted.
* UserInterface/Views/QuickConsole.css:
(body.mac-platform.legacy .quick-console): Deleted.
* UserInterface/Views/RadioButtonNavigationItem.css:
(.navigation-bar .item.radio.button.text-only.selected:active):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only:hover): Deleted.
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected): Deleted.
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected:active): Deleted.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .label + .style-declaration-section): Deleted.
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule): Deleted.
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section): Deleted.
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule img): Deleted.
* UserInterface/Views/ScopeBar.css:
(.scope-bar > li.selected:active):
(body.mac-platform.legacy .scope-bar > li): Deleted.
(body.mac-platform.legacy .scope-bar > li:hover): Deleted.
(body.mac-platform.legacy .scope-bar > li.selected): Deleted.
(body.mac-platform.legacy .scope-bar > li:active): Deleted.
(body.mac-platform.legacy .scope-bar > li.selected:active): Deleted.
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView):
* UserInterface/Views/SearchBar.css:
(body.mac-platform.legacy .search-bar > input[type="search"]): Deleted.
* UserInterface/Views/SearchSidebarPanel.css:
(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]):
(body.mac-platform.legacy .sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar > input[type="search"]): Deleted.
* UserInterface/Views/Sidebar.css:
(body.window-inactive .sidebar.right):
(body.mac-platform.legacy .sidebar): Deleted.
(body.mac-platform.legacy.window-inactive .sidebar): Deleted.
(body.mac-platform.legacy .sidebar.right): Deleted.
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
* UserInterface/Views/TimelineDataGrid.css:
(body.mac-platform.legacy .data-grid.timeline > .navigation-bar-container > .navigation-bar): Deleted.
* UserInterface/Views/TimelineIcons.css:
(body.mac-platform.legacy .network-icon .icon): Deleted.
(body.mac-platform.legacy .network-icon.large .icon): Deleted.
(body.mac-platform.legacy .colors-icon .icon): Deleted.
(body.mac-platform.legacy .colors-icon.large .icon): Deleted.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
* UserInterface/Views/TimelineRuler.css:
(body.mac-platform.legacy .timeline-ruler > .header): Deleted.
(body.mac-platform.legacy .timeline-ruler > .selection-drag): Deleted.
(body.mac-platform.legacy .timeline-ruler > .selection-handle): Deleted.
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-status): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timelines): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content .close-button): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .content .item > .status > .status-button): Deleted.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
* UserInterface/Views/Toolbar.css:
(body.mac-platform:not(.docked) .toolbar):
(body.mac-platform:not(.legacy, .docked) .toolbar): Deleted.
(body.mac-platform.legacy .toolbar): Deleted.
(body.mac-platform.legacy.docked .toolbar): Deleted.
(body.mac-platform.legacy:not(.docked) .toolbar .item.button > .label): Deleted.
(body.mac-platform.legacy.window-inactive .toolbar): Deleted.
* UserInterface/Views/TreeElementStatusButton.css:
(body.mac-platform.legacy .item > .status > .status-button > svg .filled): Deleted.
(body.mac-platform.legacy .item > .status > .status-button > svg .stroked): Deleted.
2015-04-29 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: Optimize SVG images
https://bugs.webkit.org/show_bug.cgi?id=143476
SVG images optimized with a combination of sed replacements and
the usage of the scour tool (http://www.codedread.com/scour/).
Also, modified the spelling of the license word to use the US one
in the copyright files.
Reviewed by Martin Robinson.
* UserInterface/Images/gtk/BackArrow.svg:
* UserInterface/Images/gtk/BottomUpTree.svg:
* UserInterface/Images/gtk/BreakpointActionAdd.svg:
* UserInterface/Images/gtk/BreakpointActionRemove.svg:
* UserInterface/Images/gtk/BreakpointButton.svg:
* UserInterface/Images/gtk/BreakpointInactiveButton.svg:
* UserInterface/Images/gtk/Breakpoints.svg:
* UserInterface/Images/gtk/COPYING:
* UserInterface/Images/gtk/COPYING_CCBYSA3:
* UserInterface/Images/gtk/Checkers.svg:
* UserInterface/Images/gtk/Circle.svg:
* UserInterface/Images/gtk/Close.svg:
* UserInterface/Images/gtk/CloseLarge.svg:
* UserInterface/Images/gtk/CloseWhite.svg:
* UserInterface/Images/gtk/ContentFlow.svg:
* UserInterface/Images/gtk/Crosshair.svg:
* UserInterface/Images/gtk/DOMCharacterData.svg:
* UserInterface/Images/gtk/DOMComment.svg:
* UserInterface/Images/gtk/DOMDocument.svg:
* UserInterface/Images/gtk/DOMDocumentType.svg:
* UserInterface/Images/gtk/DOMElement.svg:
* UserInterface/Images/gtk/DOMNode.svg:
* UserInterface/Images/gtk/DOMTextNode.svg:
* UserInterface/Images/gtk/DOMTree.svg:
* UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg:
* UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg:
* UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg:
* UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg:
* UserInterface/Images/gtk/DockBottom.svg:
* UserInterface/Images/gtk/DockRight.svg:
* UserInterface/Images/gtk/DownloadArrow.svg:
* UserInterface/Images/gtk/Error.svg:
* UserInterface/Images/gtk/Errors.svg:
* UserInterface/Images/gtk/ErrorsEnabled.svg:
* UserInterface/Images/gtk/EventListener.svg:
* UserInterface/Images/gtk/Exception.svg:
* UserInterface/Images/gtk/Eye.svg:
* UserInterface/Images/gtk/FilterFieldGlyph.svg:
* UserInterface/Images/gtk/ForwardArrow.svg:
* UserInterface/Images/gtk/Function.svg:
* UserInterface/Images/gtk/GoToArrow.svg:
* UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg:
* UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg:
* UserInterface/Images/gtk/Issues.svg:
* UserInterface/Images/gtk/IssuesEnabled.svg:
* UserInterface/Images/gtk/LayerBorders.svg:
* UserInterface/Images/gtk/Locked.svg:
* UserInterface/Images/gtk/Logs.svg:
* UserInterface/Images/gtk/Native.svg:
* UserInterface/Images/gtk/NavigationItemAngleBrackets.svg:
* UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg:
* UserInterface/Images/gtk/NavigationItemBug.svg:
* UserInterface/Images/gtk/NavigationItemCurleyBraces.svg:
* UserInterface/Images/gtk/NavigationItemFile.svg:
* UserInterface/Images/gtk/NavigationItemLayers.svg:
* UserInterface/Images/gtk/NavigationItemLog.svg:
* UserInterface/Images/gtk/NavigationItemProbes.svg:
* UserInterface/Images/gtk/NavigationItemStopwatch.svg:
* UserInterface/Images/gtk/NavigationItemStorage.svg:
* UserInterface/Images/gtk/NavigationItemTrash.svg:
* UserInterface/Images/gtk/NavigationItemTypes.svg:
* UserInterface/Images/gtk/NavigationItemVariable.svg:
* UserInterface/Images/gtk/PaintFlashing.svg:
* UserInterface/Images/gtk/Pause.svg:
* UserInterface/Images/gtk/PausedBreakpoint.svg:
* UserInterface/Images/gtk/Percent.svg:
* UserInterface/Images/gtk/Plus.svg:
* UserInterface/Images/gtk/PseudoElement.svg:
* UserInterface/Images/gtk/Record.svg:
* UserInterface/Images/gtk/Reflection.svg:
* UserInterface/Images/gtk/Reload.svg:
* UserInterface/Images/gtk/ReloadFull.svg:
* UserInterface/Images/gtk/ReplayPauseButton.svg:
* UserInterface/Images/gtk/ReplayPlayButton.svg:
* UserInterface/Images/gtk/ReplayRecordingButton.svg:
* UserInterface/Images/gtk/Request.svg:
* UserInterface/Images/gtk/Resources.svg:
* UserInterface/Images/gtk/Response.svg:
* UserInterface/Images/gtk/ResultLine.svg:
* UserInterface/Images/gtk/Resume.svg:
* UserInterface/Images/gtk/ShadowDOM.svg:
* UserInterface/Images/gtk/SortIndicatorDownArrow.svg:
* UserInterface/Images/gtk/SortIndicatorUpArrow.svg:
* UserInterface/Images/gtk/SourceCode.svg:
* UserInterface/Images/gtk/SplitToggleDown.svg:
* UserInterface/Images/gtk/SplitToggleUp.svg:
* UserInterface/Images/gtk/StepInto.svg:
* UserInterface/Images/gtk/StepOut.svg:
* UserInterface/Images/gtk/StepOver.svg:
* UserInterface/Images/gtk/Stop.svg:
* UserInterface/Images/gtk/StyleRuleAuthor.svg:
* UserInterface/Images/gtk/StyleRuleInherited.svg:
* UserInterface/Images/gtk/StyleRuleInheritedElement.svg:
* UserInterface/Images/gtk/StyleRuleInspector.svg:
* UserInterface/Images/gtk/StyleRuleUser.svg:
* UserInterface/Images/gtk/StyleRuleUserAgent.svg:
* UserInterface/Images/gtk/Time.svg:
* UserInterface/Images/gtk/TimelineRecordAnimation.svg:
* UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg:
* UserInterface/Images/gtk/TimelineRecordEvent.svg:
* UserInterface/Images/gtk/TimelineRecordLayout.svg:
* UserInterface/Images/gtk/TimelineRecordPaint.svg:
* UserInterface/Images/gtk/TimelineRecordProbeSampled.svg:
* UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg:
* UserInterface/Images/gtk/TimelineRecordStyle.svg:
* UserInterface/Images/gtk/TimelineRecordTimer.svg:
* UserInterface/Images/gtk/TypeBoolean.svg:
* UserInterface/Images/gtk/TypeNull.svg:
* UserInterface/Images/gtk/TypeNumber.svg:
* UserInterface/Images/gtk/TypeObject.svg:
* UserInterface/Images/gtk/TypeRegex.svg:
* UserInterface/Images/gtk/TypeString.svg:
* UserInterface/Images/gtk/TypeSymbol.svg:
* UserInterface/Images/gtk/TypeUndefined.svg:
* UserInterface/Images/gtk/Undock.svg:
* UserInterface/Images/gtk/UpDownArrows.svg:
* UserInterface/Images/gtk/UserInputPrompt.svg:
* UserInterface/Images/gtk/UserInputPromptPrevious.svg:
* UserInterface/Images/gtk/UserInputResult.svg:
* UserInterface/Images/gtk/Warning.svg:
* UserInterface/Images/gtk/Weight.svg:
2015-04-29 Timothy Hatcher <timothy@apple.com>
Web Inspector: Navigation bar often looses last button when full
https://bugs.webkit.org/show_bug.cgi?id=144385
Added helpers to get the subpixel width and height of an element.
Adopt them in the NavigationBar layout methods to get precise widths
that don't accumulate rounding errors which lead to items overflowing.
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Utilities.js:
(Element.prototype.realOffsetWidth): Added.
(Element.prototype.realOffsetHeight): Added.
* UserInterface/Views/HierarchicalPathNavigationItem.js:
(WebInspector.HierarchicalPathNavigationItem.prototype.updateLayout):
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype.updateLayout):
(WebInspector.NavigationBar.prototype._calculateMinimumWidth):
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar.prototype._handleMouseMoved):
* UserInterface/Views/Toolbar.js:
(WebInspector.Toolbar.prototype.customUpdateLayout.isOverflowingToolbar):
(WebInspector.Toolbar.prototype.customUpdateLayout):
2015-04-28 Matt Baker <mattbaker@apple.com>
Web Inspector: add a separate overview for the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=144245
Reviewed by Timothy Hatcher.
The Timelines tab now supports two view modes, labeled "Timelines" and "Rendering Frames", with each mode
having a seperate timeline overview and selected range. The Timelines mode displays the original time-based
graphs (Network, Layout, and Script), and switching to the Rendering Frames mode displays a frames graph
with a timeline ruler which shows frame indices.
If the rendering frames timeline is supported by the backend, a navigation bar is added to the timelines
sidebar with controls for switching between view modes. In addition to user-triggered view mode changes, the
timelines sidebar will automatically change the current view mode in response to content view changes that
are triggered elsewhere in the UI (for example, when a timeline that does not belong to the current view
mode is selected via the navigation path).
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.get activeRecording): Deleted.
(WebInspector.TimelineManager.prototype.get recordings): Deleted.
Removed unused code.
* UserInterface/Main.html:
New files.
* UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.resetFrameIndex):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameIndex):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameNumber):
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.reset):
Frame number is now derived from frame index.
* UserInterface/Views/LinearTimelineOverview.js:
(WebInspector.LinearTimelineOverview):
(WebInspector.LinearTimelineOverview.prototype.canShowTimeline):
New overview class for time-based timeline graphs.
* UserInterface/Views/RenderingFrameDetailsSidebarPanel.js:
(WebInspector.RenderingFrameDetailsSidebarPanel):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.updateRangeSelection):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._getSelectedRecords):
Changed type of selected range from time to frame indices.
* UserInterface/Views/RenderingFrameTimelineOverview.js:
(WebInspector.RenderingFrameTimelineOverview.this.timelineRuler.formatLabelCallback):
(WebInspector.RenderingFrameTimelineOverview):
(WebInspector.RenderingFrameTimelineOverview.prototype.canShowTimeline):
New overview class for frame-based timeline graphs.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
(.timeline-overview > .graphs-container > .timeline-overview-graph.rendering-frame):
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):
Updated to use frame index ruler and removed frame combining logic.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
Increased column widths.
* UserInterface/Views/TimelineOverview.css:
(.timeline-overview > .graphs-container):
(body.mac-platform.legacy .timeline-overview > .graphs-container):
Updated for new ruler height.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.set selectionDuration):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype.get timelineRuler):
(WebInspector.TimelineOverview.prototype.canShowTimeline):
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview.prototype._timelineRemoved):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineOverview.prototype.set currentTime): Deleted.
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded): Deleted.
(WebInspector.TimelineOverview.prototype._needsLayout): Deleted.
Converted to base class. Derived classes provide settings and permitted timeline types.
* UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame):
(.timeline-record-frame > .frame):
(.timeline-record-frame > .frame > .duration):
(.timeline-record-frame > .frame > .duration.timeline-record-type-network):
(.timeline-record-frame > .frame > .duration.timeline-record-type-layout):
(.timeline-record-frame > .frame > .duration.timeline-record-type-script):
(.timeline-record-frame > .frame > .duration:last-child): Deleted.
New graph frames styles.
* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame):
(WebInspector.TimelineRecordFrame.prototype.get record):
(WebInspector.TimelineRecordFrame.prototype.set record):
(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
(WebInspector.TimelineRecordFrame.prototype.get element): Deleted.
Updated to use frame index ruler.
Removed dropped frames and frame combining logic.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.updateLayout):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._getRenderingFrameTimeline):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.goForward): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._update): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated): Deleted.
Maintains two timeline overviews, switching between them based on the current content view.
Updated tree element filtering to support both overview rulers.
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler > .header):
(body.mac-platform.legacy .timeline-ruler > .header):
(.timeline-ruler > .header > .divider > .label):
(.timeline-ruler > .selection-drag):
(body.mac-platform.legacy .timeline-ruler > .selection-drag):
(.timeline-ruler > .selection-handle):
(body.mac-platform.legacy .timeline-ruler > .selection-handle):
(.timeline-ruler > .header > .divider): Deleted.
(.timeline-ruler > .selection-drag:active): Deleted.
Updated for new ruler height.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.set formatLabelCallback):
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._formatDividerLabelText):
(WebInspector.TimelineRuler.prototype.set allowsClippedLabels): Deleted.
(WebInspector.TimelineRuler.prototype._updateSelection): Deleted.
Added ability to customize label formatting.
* UserInterface/Views/TimelineSidebarPanel.css:
(.panel.timeline .navigation-bar.timelines-view):
(.sidebar > .panel.navigation.timeline > .title-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timelines):
(.sidebar > .panel.navigation.timeline > .navigation-bar-container):
(.sidebar > .panel.navigation.timeline > .navigation-bar-container > .navigation-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .timelines-content):
(.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
(body.window-inactive .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
Updated for new navigation bar and ruler height.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.get viewMode):
(WebInspector.TimelineSidebarPanel.prototype.canShowTimeline):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.get this):
(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
Added support for two view modes: Timelines and Rendering Frames.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
New files.
2015-04-27 Timothy Hatcher <timothy@apple.com>
Web Inspector: Add new tab button to make it easy to bring a closed tab back
https://bugs.webkit.org/show_bug.cgi?id=144297
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.isTabTypeAllowed):
(WebInspector._tabContentViewForType):
(WebInspector._rememberOpenTabs):
(WebInspector._updateNewTabButtonState):
(WebInspector._newTabItemClicked):
(WebInspector.isNewTabWithTypeAllowed):
(WebInspector.createNewTab):
(WebInspector.activateExtraDomains):
(WebInspector._restoreCookieForOpenTabs):
(WebInspector._saveCookieForOpenTabs):
(WebInspector._isTabTypeAllowed): Deleted.
* UserInterface/Images/NewTab.svg: Added.
* UserInterface/Images/NewTabPlus.svg:
* UserInterface/Main.html:
* UserInterface/Views/NewTabContentView.css: Added.
(.new-tab.tab.content-view):
(.new-tab.tab.content-view > .tab-item):
(.new-tab.tab.content-view > .tab-item.disabled):
(.new-tab.tab.content-view > .tab-item > .box):
(.new-tab.tab.content-view > .tab-item:not(.disabled):active > .box):
(.new-tab.tab.content-view > .tab-item > .box > img):
(.new-tab.tab.content-view > .tab-item > label):
* UserInterface/Views/NewTabContentView.js: Added.
(WebInspector.NewTabContentView):
(WebInspector.NewTabContentView.prototype.get type):
(WebInspector.NewTabContentView.prototype._createNewTab):
* UserInterface/Views/TabBar.css:
(.tab-bar > .item:not(.disabled).selected):
(.tab-bar > .item.new-tab-button:not(.disabled):hover):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover + .item):
(.tab-bar > .item.disabled > .icon):
(.tab-bar > .item.new-tab-button:not(.disabled):hover > .icon):
(.tab-bar > .item.selected): Deleted.
(.tab-bar > .item.new-tab-button:hover): Deleted.
(.tab-bar:not(.animating) > .item:not(.selected):hover + .item): Deleted.
(.tab-bar > .item.new-tab-button:hover > .icon): Deleted.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar.prototype.set selectedTabBarItem):
(WebInspector.TabBar.prototype._handleMouseDown):
* UserInterface/Views/TabBarItem.js:
(WebInspector.TabBarItem.prototype.get disabled):
(WebInspector.TabBarItem.prototype.set disabled):
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.showTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):
2015-04-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Cannot scroll Timeline Overview horizontally, scrollbar cannot be interacted with
https://bugs.webkit.org/show_bug.cgi?id=144302
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineOverview.css:
(.timeline-overview > .scroll-container):
Increase the z-index of the scroll container over anything in the
overview so that it can be interacted with.
2015-04-27 Timothy Hatcher <timothy@apple.com>
Web Inspector: Attempt to workaround exception in TimelineRuler
https://bugs.webkit.org/show_bug.cgi?id=144228
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.updateLayout):
Use firstChild instead of a custom _labelElement property on the dividerElement.
2015-04-27 Timothy Hatcher <timothy@apple.com>
Web Inspector: Elements tab details sidebar becomes non-expandable after using Console tab
https://bugs.webkit.org/show_bug.cgi?id=144212
Show the DOM tree content view again on main resource change. This better matches what we did
in the pre tab user interface with the DOM being off the main resource tree element.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ElementsTabContentView.js:
(WebInspector.ElementsTabContentView): Listen for main resource change. Call _showDOMTreeContentView.
(WebInspector.ElementsTabContentView.prototype.closed): Fix a leak and exception.
The removeEventListener was wrong. Add a new removeEventListener for WebInspector.Frame.
(WebInspector.ElementsTabContentView.prototype._showDOMTreeContentView): Added.
(WebInspector.ElementsTabContentView.prototype._mainFrameDidChange): Call _showDOMTreeContentView.
(WebInspector.ElementsTabContentView.prototype._mainResourceDidChange): Added.
2015-04-27 Timothy Hatcher <timothy@apple.com>
Web Inspector: TabContentView closed() isn't being called when a tab is closed / removed
https://bugs.webkit.org/show_bug.cgi?id=144229
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype._disassociateFromContentView):
TabContentViews don't have a representedObject, so returning early and not
calling closed() was not correct.
2015-04-26 Matt Baker <mattbaker@apple.com>
Web Inspector: Cannot make Timeline time range selection clicking inside Frames Overview
https://bugs.webkit.org/show_bug.cgi?id=143744
Reviewed by Timothy Hatcher.
Fixed frame rate divider element style so that it is no longer a mouse event target.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
(.timeline-overview-graph.rendering-frame > .divider):
2015-04-26 Timothy Hatcher <timothy@apple.com>
Web Inspector: Allow Timeline tab to show resource when a go-to arrow is clicked in a recording
https://bugs.webkit.org/show_bug.cgi?id=144240
Only support showing a resource or script if we have that represented object in the Timeline sidebar.
Reviewed by Darin Adler.
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView.prototype.canShowRepresentedObject):
2015-04-26 Timothy Hatcher <timothy@apple.com>
Web Inspector: Don't use treeElement.revealAndSelect when showing a default content view
https://bugs.webkit.org/show_bug.cgi?id=144239
Using revealAndSelect will end up calling WebInspector.showRepresentedObject. That is not bad
is most cases, but if the select tab supports the same represented object, it can end up showing
the content view in the wrong tab.
Reviewed by Darin Adler.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObjectInNavigationSidebar):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.showContentViewForCurrentSelection): Deleted.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
2015-04-26 Jono Wells <jonowells@apple.com>
Web Inspector: Vertically misaligned text in Object Trees
https://bugs.webkit.org/show_bug.cgi?id=144029
Reviewed by Timothy Hatcher.
Remove top offset for object tree property titles to fix alignment issue since applying -webkit-system-font
font family to these (http://trac.webkit.org/changeset/182982).
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property > .titles):
2015-04-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception ReferenceError: Can't find variable: message LogContentView.js
https://bugs.webkit.org/show_bug.cgi?id=144210
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._reappendProvisionalMessages):
With recent refactorings this change was missed.
2015-04-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception using WebInspector.contentBrowser
https://bugs.webkit.org/show_bug.cgi?id=144206
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
Use the current tab's content browser since a global one no longer exists.
2015-04-25 Timothy Hatcher <timothy@apple.com>
Update localized strings.
* Localizations/en.lproj/localizedStrings.js: Updated.
2015-04-25 Timothy Hatcher <timothy@apple.com>
Web Inspector: Make JSContext debugging work with Tabs UI
https://bugs.webkit.org/show_bug.cgi?id=144203
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._isTabTypeAllowed):
(WebInspector.activateExtraDomains):
(WebInspector._updateReloadToolbarButton):
(WebInspector._updateDownloadToolbarButton):
2015-04-25 Timothy Hatcher <timothy@apple.com>
Web Inspector: Save and restore tab state on reload and between sessions
https://bugs.webkit.org/show_bug.cgi?id=144202
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._mainResourceDidChange):
(WebInspector._provisionalLoadStarted):
(WebInspector._restoreCookieForOpenTabs):
(WebInspector._saveCookieForOpenTabs):
(WebInspector._pageHidden):
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.restoreStateFromCookie):
(WebInspector.TabContentView.prototype.saveStateToCookie):
2015-04-25 Timothy Hatcher <timothy@apple.com>
Web Inspector: Split search from ResourceSidebarPanel into a Search tab and sidebar
https://bugs.webkit.org/show_bug.cgi?id=144197
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._tabContentViewForType):
(WebInspector._searchTextDidChange):
(WebInspector._focusSearchField):
(WebInspector._domNodeWasInspected):
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
* UserInterface/Images/SearchResults.svg: Added.
* UserInterface/Main.html:
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
(WebInspector.ResourceSidebarPanel.prototype._addStorageChild):
(WebInspector.ResourceSidebarPanel.prototype._extraDomainsActivated):
(WebInspector.ResourceSidebarPanel.prototype.get contentTreeOutlineToAutoPrune): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholderSoon): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholder): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.forEachMatch): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.resourceCallback): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.resourcesCallback): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.searchScripts.scriptCallback): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.searchScripts): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.domSearchResults): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.domCallback): Deleted.
(WebInspector.ResourceSidebarPanel.prototype.performSearch): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._showResourcesContentTreeOutline): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._showSearchContentTreeOutline): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._searchFieldChanged): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._searchFieldInput): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._searchTreeElementForResource): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._searchTreeElementForScript): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._focusSearchField): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._scriptsToSearch): Deleted.
* UserInterface/Views/SearchBar.js:
(WebInspector.SearchBar):
* UserInterface/Views/SearchSidebarPanel.css: Renamed from Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.css.
(.sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)):
(body.mac-platform.legacy .sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.search > .search-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar):
(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]):
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar > input[type="search"]):
* UserInterface/Views/SearchSidebarPanel.js: Added.
(WebInspector.SearchSidebarPanel):
(WebInspector.SearchSidebarPanel.prototype.closed):
(WebInspector.SearchSidebarPanel.prototype.focusSearchField):
(WebInspector.SearchSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholderSoon):
(WebInspector.SearchSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholder):
(WebInspector.SearchSidebarPanel.prototype.performSearch.forEachMatch):
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourceCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.searchScripts.scriptCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.searchScripts):
(WebInspector.SearchSidebarPanel.prototype.performSearch.domSearchResults):
(WebInspector.SearchSidebarPanel.prototype.performSearch.domCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch):
(WebInspector.SearchSidebarPanel.prototype._searchFieldChanged):
(WebInspector.SearchSidebarPanel.prototype._searchFieldInput):
(WebInspector.SearchSidebarPanel.prototype._searchTreeElementForResource):
(WebInspector.SearchSidebarPanel.prototype._searchTreeElementForScript):
(WebInspector.SearchSidebarPanel.prototype._mainResourceDidChange.delayedWork):
(WebInspector.SearchSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.SearchSidebarPanel.prototype._treeElementSelected):
* UserInterface/Views/SearchTabContentView.js: Added.
(WebInspector.SearchTabContentView):
(WebInspector.SearchTabContentView.prototype.get type):
(WebInspector.SearchTabContentView.prototype.shown):
(WebInspector.SearchTabContentView.prototype.closed):
(WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
(WebInspector.SearchTabContentView.prototype.focusSearchField):
(WebInspector.SearchTabContentView.prototype.performSearch):
* UserInterface/Views/Toolbar.css:
(.toolbar .item-section.center-right):
(.toolbar .item-section.right):
(.toolbar .search-bar):
(.toolbar .search-bar > input[type="search"]):
(.toolbar .search-bar > input[type="search"]::-webkit-textfield-decoration-container):
(body.window-inactive .toolbar .search-bar > input[type="search"]):
(.toolbar .item): Deleted.
2015-04-25 Timothy Hatcher <timothy@apple.com>
Web Inspector: New Toolbar UI for tabs
https://bugs.webkit.org/show_bug.cgi?id=144185
Reviewed by Joseph Pecoraro.
* UserInterface/Base/ImageUtilities.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.updateDockedState):
(WebInspector._captureDidStart):
(WebInspector._debuggerDidPause):
(WebInspector._debuggerDidResume):
(WebInspector._mainFrameDidChange):
(WebInspector._mainResourceDidChange):
(WebInspector._windowKeyDown):
(WebInspector._windowKeyUp):
(WebInspector._pageHidden):
(WebInspector._undock):
(WebInspector._dockBottom):
(WebInspector._dockRight):
(WebInspector._updateDockNavigationItems):
(WebInspector._domNodeWasInspected):
(WebInspector._inspectModeStateChanged):
(WebInspector._toggleInspectMode):
(WebInspector._downloadWebArchive):
(WebInspector._reloadPageClicked):
(WebInspector._updateDownloadToolbarButton):
(WebInspector.archiveMainFrame):
(WebInspector.canArchiveMainFrame):
* UserInterface/Images/Crosshair.svg:
* UserInterface/Images/DockBottom.svg:
* UserInterface/Images/DockRight.svg:
* UserInterface/Images/DownloadArrow.svg:
* UserInterface/Images/ReloadToolbar.svg: Added.
* UserInterface/Images/Undock.svg:
* UserInterface/Views/ActivateButtonToolbarItem.js:
(WebInspector.ActivateButtonToolbarItem):
(WebInspector.ActivateButtonToolbarItem.prototype.set label):
* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button):
(body.window-inactive .toolbar .item.button):
(.toolbar.small-size .item.button > .glyph):
* UserInterface/Views/ButtonToolbarItem.js:
(WebInspector.ButtonToolbarItem):
(WebInspector.ButtonToolbarItem.prototype.set label):
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
* UserInterface/Views/Main.css:
(body.docked.bottom):
* UserInterface/Views/Toolbar.css:
(.toolbar):
(body.mac-platform:not(.legacy, .docked) .toolbar):
(.toolbar .control-section):
(.toolbar .item-section):
(.toolbar .item-section.left):
(.toolbar .item-section.center-left):
(.toolbar .item-section.center-right):
(.toolbar .item-section.right):
* UserInterface/Views/Toolbar.js:
(WebInspector.Toolbar):
(WebInspector.Toolbar.prototype.customUpdateLayout.isOverflowingToolbar):
(WebInspector.Toolbar.prototype.customUpdateLayout):
(WebInspector.Toolbar.prototype.addToolbarItem):
2015-04-25 Timothy Hatcher <timothy@apple.com>
Web Inspector: Add NavigationBar to the details sidebar
https://bugs.webkit.org/show_bug.cgi?id=144191
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
* UserInterface/Views/DetailsSidebarPanel.js:
(WebInspector.DetailsSidebarPanel):
(WebInspector.DetailsSidebarPanel.prototype.get navigationItem):
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype.removeNavigationItem):
Remove unused index argument.
* UserInterface/Views/Sidebar.css:
(.sidebar > .navigation-bar):
(.sidebar.has-navigation-bar > .panel):
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar):
(WebInspector.Sidebar.prototype.addSidebarPanel):
(WebInspector.Sidebar.prototype.removeSidebarPanel):
(WebInspector.Sidebar.prototype.set selectedSidebarPanel):
(WebInspector.Sidebar.prototype.get minimumWidth):
(WebInspector.Sidebar.prototype.set width):
(WebInspector.Sidebar.prototype.set collapsed):
2015-04-24 Timothy Hatcher <timothy@apple.com>
Web Inspector: Switch over to a tab based UI
https://bugs.webkit.org/show_bug.cgi?id=144154
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector._tabContentViewForType):
(WebInspector._rememberOpenTabs):
(WebInspector._windowResized):
(WebInspector._tabBrowserSizeDidChange):
(WebInspector._quickConsoleDidResize):
(WebInspector._sidebarWidthDidChange):
(WebInspector._tabBrowserSelectedTabContentViewDidChange):
(WebInspector._inspectModeStateChanged):
(WebInspector._focusedContentView):
* UserInterface/Main.html:
* UserInterface/Views/Main.css:
(#tab-browser):
2015-04-23 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove Main.js code we don't need for Tabs
https://bugs.webkit.org/show_bug.cgi?id=144126
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded):
2015-04-23 Timothy Hatcher <timothy@apple.com>
Web Inspector: Change more places that changed WebInspector.navigationSidebar.selectedSidebarPanel to tabs
https://bugs.webkit.org/show_bug.cgi?id=144125
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.toggleDetailsSidebar):
(WebInspector.tabContentViewClassForRepresentedObject):
(WebInspector._updateModifierKeys):
(WebInspector._consoleResizerMouseDown.dockedResizerDragEnd):
(WebInspector._consoleResizerMouseDown):
(WebInspector.linkifyURLAsNode):
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setTimelineProfilingEnabled):
(InspectorFrontendAPI.showConsole):
(InspectorFrontendAPI.showResources):
* UserInterface/Protocol/InspectorObserver.js:
(WebInspector.InspectorObserver.prototype.inspect):
* UserInterface/Views/DebuggerTabContentView.js:
(WebInspector.DebuggerTabContentView.prototype.canShowRepresentedObject):
(WebInspector.DebuggerTabContentView.prototype.revealAndSelectBreakpoint):
* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._resourcesWasClicked):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.revealInSidebar):
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser.bestTabContentViewForClass):
2015-04-23 Timothy Hatcher <timothy@apple.com>
Web Inspector: Make Console work in a tab world
https://bugs.webkit.org/show_bug.cgi?id=144112
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.isShowingConsoleTab):
(WebInspector.UIString):
(WebInspector.toggleNavigationSidebar):
(WebInspector.toggleDetailsSidebar):
(WebInspector.tabContentViewClassForRepresentedObject):
(WebInspector.linkifyStringAsFragment):
* UserInterface/Images/Console.svg: Added.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.showConsole):
* UserInterface/Views/ConsoleTabContentView.js: Added.
(WebInspector.ConsoleTabContentView):
(WebInspector.ConsoleTabContentView.prototype.shown):
(WebInspector.ConsoleTabContentView.prototype.showRepresentedObject):
(WebInspector.ConsoleTabContentView.prototype.canShowRepresentedObject):
(WebInspector.ConsoleTabContentView.prototype.get supportsSplitContentBrowser):
* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView.prototype._consoleItemWasClicked):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype.get navigationItems):
(WebInspector.LogContentView.prototype.shown):
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype._showConsoleTab):
* UserInterface/Views/LogIcon.css:
(.log-icon .icon):
* UserInterface/Views/Main.css:
(#split-content-browser .hierarchical-path-component.log-icon .icon):
(#split-content-browser .hierarchical-path-component.log-icon .title):
(#split-content-browser .hierarchical-path-component.log-icon select):
2015-04-23 Timothy Hatcher <timothy@apple.com>
Web Inspector: Make showing a content view work in the tab world
https://bugs.webkit.org/show_bug.cgi?id=144110
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.hideSplitConsole):
(WebInspector.showSourceCodeLocation):
(WebInspector.showOriginalUnformattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeTextRange):
(WebInspector.showResourceRequest):
(WebInspector.debuggerToggleBreakpoints):
(WebInspector.debuggerPauseResumeToggle):
(WebInspector.debuggerStepOver):
(WebInspector.debuggerStepInto):
(WebInspector.debuggerStepOut):
(WebInspector._focusChanged):
(WebInspector._mouseWasClicked):
(WebInspector._dragOver):
(WebInspector._captureDidStart):
(WebInspector._debuggerDidPause):
(WebInspector._debuggerDidResume):
(WebInspector._frameWasAdded):
(WebInspector._undock):
(WebInspector._updateDockNavigationItems):
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype.appendContextMenuItems.revealOriginalSourceCodeLocation):
(WebInspector.Breakpoint.prototype.appendContextMenuItems):
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.showMainResourceForFrame):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype._goToRegionFlowArrowWasClicked):
(WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
(WebInspector.ComputedStyleDetailsPanel):
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype.updateHierarchicalPathForCurrentContentView):
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.restoreFromCookie):
* UserInterface/Views/DOMTreeDataGridNode.js:
(WebInspector.DOMTreeDataGridNode.prototype._goToArrowWasClicked):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
(WebInspector.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToContentTreeOutline):
(WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssueAdded):
* UserInterface/Views/LayerTreeDataGridNode.js:
(WebInspector.LayerTreeDataGridNode.prototype._goToArrowWasClicked):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.get contentBrowser):
(WebInspector.NavigationSidebarPanel.prototype.set contentBrowser):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype._treeElementSelected):
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
(WebInspector.ObjectTreeBaseTreeElement):
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._goToRequestDataClicked):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
(WebInspector.ResourceSidebarPanel.prototype._storageCleared):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype._goToResource):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeElementSelected):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.shown):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline):
2015-04-22 Timothy Hatcher <timothy@apple.com>
Web Inspector: Make debugger keyboard shortcuts global
https://bugs.webkit.org/show_bug.cgi?id=144068
We wont always have a DebuggerSidebarPanel to listen for the shortcuts.
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.showSourceCodeForFrame):
(WebInspector.showSourceCode):
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.pause):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidResume):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssueAdded):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssuesCleared):
(WebInspector.DebuggerSidebarPanel):
2015-04-22 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove Reload and Download Web Archive buttons from FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=144064
The will be global toolbar items soon.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/FrameTreeElement.js:
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._updateStatus):
2015-04-22 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove time and weight from the dashboard
https://bugs.webkit.org/show_bug.cgi?id=144063
These two items were the odd ones out since they are only available
when recording a timeline. We will need the toolbar space soon, so make
this lets us make the dashboard skinnier.
This also removes the exception catching in DashboardContainerView. It doesn't really
help us and it makes debugging an exception harder.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
* UserInterface/Views/DashboardContainerView.js:
(WebInspector.DashboardContainerView.prototype._dashboardViewForRepresentedObject):
* UserInterface/Views/DefaultDashboardView.css:
(body.web .toolbar.collapsed .dashboard.default > .item.resourcesCount):
(body.javascript .toolbar .dashboard.default > .item.resourcesCount):
* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._updateDisplay):
2015-04-22 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove sidebar panel shortcut and image
https://bugs.webkit.org/show_bug.cgi?id=144061
Sidebar panels no longer need a keyboard shortcut or a toolbar image.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
(WebInspector.ApplicationCacheDetailsSidebarPanel):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
* UserInterface/Views/DOMDetailsSidebarPanel.js:
(WebInspector.DOMDetailsSidebarPanel):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel):
* UserInterface/Views/DebuggerSidebarPanel.js:
* UserInterface/Views/DetailsSidebarPanel.js:
(WebInspector.DetailsSidebarPanel):
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
(WebInspector.NavigationSidebarPanel.prototype.show):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
* UserInterface/Views/ProbeDetailsSidebarPanel.js:
(WebInspector.ProbeDetailsSidebarPanel):
* UserInterface/Views/RenderingFrameDetailsSidebarPanel.js:
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.added):
(WebInspector.SidebarPanel.prototype.removed):
(WebInspector.SidebarPanel.prototype.visibilityDidChange):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForTimeline):
2015-04-22 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove allowedNavigationSidebarPanels, it isn't needed
https://bugs.webkit.org/show_bug.cgi?id=144056
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
* UserInterface/Views/ContentView.js:
* UserInterface/Views/CookieStorageContentView.js:
* UserInterface/Views/DOMStorageContentView.js:
* UserInterface/Views/DOMTreeContentView.js:
* UserInterface/Views/DatabaseContentView.js:
* UserInterface/Views/DatabaseTableContentView.js:
* UserInterface/Views/FontResourceContentView.js:
* UserInterface/Views/FrameDOMTreeContentView.js:
* UserInterface/Views/LogContentView.js:
* UserInterface/Views/ResourceClusterContentView.js:
* UserInterface/Views/TimelineRecordingContentView.js:
2015-04-22 Timothy Hatcher <timothy@apple.com>
Web Inspector: Support passing extra arguments to ContentViews during construction
https://bugs.webkit.org/show_bug.cgi?id=144055
This allows us to pass the TimelineSidebarPanel to Timeline views since in the future
there could be multiple timeline sidebars, one per tab. So the global instance will
be going away.
This also removes the exception catching in ContentViewContainer. It doesn't really
help us and it makes debugging an exception harder.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype.showContentViewForRepresentedObject):
(WebInspector.ContentBrowser.prototype.contentViewForRepresentedObject):
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.contentViewForRepresentedObject):
(WebInspector.ContentViewContainer.prototype.showContentViewForRepresentedObject):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
(WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.NetworkTimelineView.prototype._treeElementSelected):
(WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):
(WebInspector.OverviewTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):
(WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
* UserInterface/Views/TimelineSidebarPanel.js:
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.get timelineSidebarPanel):
2015-04-18 Timothy Hatcher <timothy@apple.com>
Web Inspector: Disable global keyboard shortcuts for background tabs
https://bugs.webkit.org/show_bug.cgi?id=143918
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
(WebInspector.ContentBrowser.prototype.shown): Added.
(WebInspector.ContentBrowser.prototype.hidden): Added.
Disable shortcuts on the browser and find banner.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView.prototype.shown): Added.
(WebInspector.ContentBrowserTabContentView.prototype.hidden): Added.
Tell the content browser we were shown or hidden.
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner):
(WebInspector.FindBanner.prototype.show):
(WebInspector.FindBanner.prototype.enableKeyboardShortcuts): Added.
(WebInspector.FindBanner.prototype.disableKeyboardShortcuts): Added.
Support disabling or enabling the keyboard shortcuts.
2015-04-17 Timothy Hatcher <timothy@apple.com>
Web Inspector: Add TabBrowser and TabContentView
https://bugs.webkit.org/show_bug.cgi?id=143886
Reviewed by Joseph Pecoraro.
* UserInterface/Images/Debugger.svg: Added.
* UserInterface/Images/Elements.svg: Added.
* UserInterface/Images/Gear.svg: Added.
* UserInterface/Images/NewTabPlus.svg: Added.
* UserInterface/Images/Resources.svg:
* UserInterface/Images/Timeline.svg: Added.
* UserInterface/Images/ToggleLeftSidebar.svg: Added.
* UserInterface/Images/ToggleRightSidebar.svg: Added.
* UserInterface/Views/ContentBrowserTabContentView.css: Added.
(.content-browser.tab.content-view > .content-browser):
* UserInterface/Views/ContentBrowserTabContentView.js: Added.
(WebInspector.ContentBrowserTabContentView):
(WebInspector.ContentBrowserTabContentView.prototype.get contentBrowser):
(WebInspector.ContentBrowserTabContentView.prototype.shown):
(WebInspector.ContentBrowserTabContentView.prototype.hidden):
(WebInspector.ContentBrowserTabContentView.prototype.closed):
(WebInspector.ContentBrowserTabContentView.prototype.updateLayout):
(WebInspector.ContentBrowserTabContentView.prototype.get managesDetailsSidebarPanels):
(WebInspector.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels):
(WebInspector.ContentBrowserTabContentView.prototype.contentBrowserTreeElementForRepresentedObject):
(WebInspector.ContentBrowserTabContentView.prototype._navigationSidebarCollapsedStateDidChange):
(WebInspector.ContentBrowserTabContentView.prototype._detailsSidebarCollapsedStateDidChange):
(WebInspector.ContentBrowserTabContentView.prototype._detailsSidebarPanelSelected):
(WebInspector.ContentBrowserTabContentView.prototype._contentBrowserRepresentedObjectsDidChange):
(WebInspector.ContentBrowserTabContentView.prototype._contentBrowserCurrentContentViewDidChange):
(WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObjectInNavigationSidebar):
* UserInterface/Views/DebuggerTabContentView.js: Added.
(WebInspector.DebuggerTabContentView):
* UserInterface/Views/ElementsTabContentView.js: Added.
(WebInspector.ElementsTabContentView):
(WebInspector.ElementsTabContentView.prototype._mainFrameDidChange):
* UserInterface/Views/ResourcesTabContentView.js: Added.
(WebInspector.ResourcesTabContentView):
* UserInterface/Views/SettingsTabContentView.js: Added.
(WebInspector.SettingsTabContentView):
* UserInterface/Views/TabBrowser.css: Added.
(.tab-browser):
(.tab-browser > .tab-bar):
(.tab-browser > .content-view-container):
(.tab-browser > .tab-bar + .content-view-container):
* UserInterface/Views/TabBrowser.js: Added.
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.get tabBar):
(WebInspector.TabBrowser.prototype.get navigationSidebar):
(WebInspector.TabBrowser.prototype.get detailsSidebar):
(WebInspector.TabBrowser.prototype.get selectedTabContentView):
(WebInspector.TabBrowser.prototype.updateLayout):
(WebInspector.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.showTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):
(WebInspector.TabBrowser.prototype._tabBarItemSelected):
(WebInspector.TabBrowser.prototype._sidebarPanelSelected):
(WebInspector.TabBrowser.prototype._sidebarCollapsedStateDidChange):
(WebInspector.TabBrowser.prototype._showNavigationSidebarPanelForTabContentView):
(WebInspector.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):
* UserInterface/Views/TabContentView.js: Added.
(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get parentTabBrowser):
(WebInspector.TabContentView.prototype.set parentTabBrowser):
(WebInspector.TabContentView.prototype.get tabBarItem):
(WebInspector.TabContentView.prototype.get managesDetailsSidebarPanels):
(WebInspector.TabContentView.prototype.showDetailsSidebarPanels):
(WebInspector.TabContentView.prototype.canShowRepresentedObject):
(WebInspector.TabContentView.prototype.get navigationSidebarPanel):
(WebInspector.TabContentView.prototype.get navigationSidebarCollapsedSetting):
(WebInspector.TabContentView.prototype.get detailsSidebarPanels):
(WebInspector.TabContentView.prototype.get detailsSidebarCollapsedSetting):
(WebInspector.TabContentView.prototype.get detailsSidebarSelectedPanelSetting):
* UserInterface/Views/TimelineTabContentView.js: Added.
(WebInspector.TimelineTabContentView):
2015-04-06 Timothy Hatcher <timothy@apple.com>
Web Inspector: Add a WebInspector.TabBar class
https://bugs.webkit.org/show_bug.cgi?id=143442
Reviewed by Joseph Pecoraro.
* UserInterface/Main.html:
Added new files.
* UserInterface/Protocol/InspectorFrontendHostStub.js:
(window.Symbol):
(WebInspector.InspectorFrontendHostStub.prototype.showContextMenu):
Added some stubs needed to work standalone.
* UserInterface/Views/TabBar.css: Added.
(.tab-bar):
(body.window-inactive .tab-bar):
(.tab-bar > .top-border):
(body.window-inactive .tab-bar > .top-border):
(.tab-bar > .item):
(.tab-bar > :nth-child(n + 2 of .item)):
(.tab-bar > .item.pinned):
(.tab-bar > .item.selected):
(.tab-bar > .item.new-tab-button:hover):
(.tab-bar:not(.animating) > .item:not(.selected):hover + .item):
(body.window-inactive .tab-bar > .item):
(body.window-inactive .tab-bar > .item.selected):
(.tab-bar > .item > .close):
(body:not(.window-inactive) .tab-bar:not(.single-tab) > .item:hover > .close):
(.tab-bar.single-tab > .item > .close):
(.tab-bar > .item > .close:hover):
(.tab-bar > .item > .close:active):
(.tab-bar > .item > .flex-space):
(.tab-bar > .item > .flex-space:last-child):
(.tab-bar > .item > .icon):
(.tab-bar > .item.selected > .icon):
(.tab-bar > .item.new-tab-button:hover > .icon):
(.tab-bar > .item > .title):
(.tab-bar > .item > .title > .content):
(.tab-bar:not(.animating) > .item:not(.selected):hover > .title):
(.tab-bar > .item.selected > .title):
(.tab-bar.collapsed > .item):
(.tab-bar.collapsed > .item > .flex-space):
(.tab-bar.collapsed > .item > .close):
(.tab-bar.hide-titles > .item > .title):
(.tab-bar.hide-titles > .item.selected:hover > .icon):
(.tab-bar.hide-titles > .item.selected:hover > .close):
(.tab-bar.static-layout):
(.tab-bar.static-layout > .item):
(.tab-bar.animating.closing-tab > .item):
(.tab-bar.animating:matches(.expanding-tabs, .inserting-tab) > .item):
(.tab-bar.animating.inserting-tab > .item.being-inserted):
(.tab-bar.animating.closing-tab > .item.selected):
(body.window-inactive .tab-bar.animating.closing-tab > .item.selected):
(.tab-bar.dragging-tab > .item.selected):
* UserInterface/Views/TabBar.js: Added.
(WebInspector.TabBar):
(WebInspector.TabBar.prototype.get newTabItem):
(WebInspector.TabBar.prototype.set newTabItem):
(WebInspector.TabBar.prototype.addTabBarItem):
(WebInspector.TabBar.prototype.insertTabBarItem.animateTabs):
(WebInspector.TabBar.prototype.insertTabBarItem.removeStyles):
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.insertTabBarItem.set else):
(WebInspector.TabBar.prototype.insertTabBarItem.set this):
(WebInspector.TabBar.animateTabs.get if):
(WebInspector.TabBar.animateTabs):
(WebInspector.TabBar.removeStyles):
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.updateLayoutSoon.update):
(WebInspector.TabBar.prototype.updateLayoutSoon):
(WebInspector.TabBar.prototype.updateLayout):
(WebInspector.TabBar.prototype.get selectedTabBarItem):
(WebInspector.TabBar.prototype.set selectedTabBarItem):
(WebInspector.TabBar.prototype.get tabBarItems):
(WebInspector.TabBar.prototype.get element):
(WebInspector.TabBar.prototype._findTabBarItem):
(WebInspector.TabBar.prototype._hasMoreThanOneNormalTab):
(WebInspector.TabBar.prototype._recordTabBarItemSizesAndPositions):
(WebInspector.TabBar.prototype._clearTabBarItemSizesAndPositions):
(WebInspector.TabBar.prototype._finishExpandingTabsAfterClose.):
(WebInspector.TabBar.prototype._finishExpandingTabsAfterClose):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleMouseMoved):
(WebInspector.TabBar.prototype._handleMouseUp):
(WebInspector.TabBar.prototype._handleMouseLeave):
(WebInspector.TabBar.prototype._handleNewTabMouseEnter):
* UserInterface/Views/TabBarItem.js: Added.
(WebInspector.TabBarItem):
(WebInspector.TabBarItem.prototype.get identifier):
(WebInspector.TabBarItem.prototype.get element):
(WebInspector.TabBarItem.prototype.get parentTabBar):
(WebInspector.TabBarItem.prototype.set parentTabBar):
(WebInspector.TabBarItem.prototype.get selected):
(WebInspector.TabBarItem.prototype.set selected):
(WebInspector.TabBarItem.prototype.get pinned):
(WebInspector.TabBarItem.prototype.get image):
(WebInspector.TabBarItem.prototype.set image):
(WebInspector.TabBarItem.prototype.get title):
(WebInspector.TabBarItem.prototype.set title):
(WebInspector.TabBarItem.prototype.updateLayout):
2015-04-25 Timothy Hatcher <timothy@apple.com>
Web Inspector: Make closing ContentViews more leak proof
https://bugs.webkit.org/show_bug.cgi?id=144200
Remove all listeners on the target objects in close that match the this object.
This makes things more foolproof when something changes or a new listener is
added to the same object. TimelineRecordingContentView also had a leak where
TimelineManager and DebuggerManager listeners were not being removed.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype.closed):
* UserInterface/Views/ClusterContentView.js:
(WebInspector.ClusterContentView.prototype.closed):
* UserInterface/Views/ContentFlowDOMTreeContentView.js:
(WebInspector.ContentFlowDOMTreeContentView.prototype.closed):
* UserInterface/Views/FrameDOMTreeContentView.js:
(WebInspector.FrameDOMTreeContentView.prototype.closed):
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype.closed):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype.closed):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype.closed):
2015-04-25 Timothy Hatcher <timothy@apple.com>
Web Inspector: Make closing ContentViews more leak proof
https://bugs.webkit.org/show_bug.cgi?id=144200
Remove all listeners on the target objects in close that match the this object.
This makes things more foolproof when something changes or a new listener is
added to the same object. TimelineRecordingContentView also had a leak where
TimelineManager and DebuggerManager listeners were not being removed.
Reviewed by Darin Adler.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype.closed):
* UserInterface/Views/ClusterContentView.js:
(WebInspector.ClusterContentView.prototype.closed):
* UserInterface/Views/ContentFlowDOMTreeContentView.js:
(WebInspector.ContentFlowDOMTreeContentView.prototype.closed):
* UserInterface/Views/FrameDOMTreeContentView.js:
(WebInspector.FrameDOMTreeContentView.prototype.closed):
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype.closed):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype.closed):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype.closed):
2015-04-25 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: assertion failure when editing inline styles
https://bugs.webkit.org/show_bug.cgi?id=143939
Reviewed by Timothy Hatcher.
Prevent "_updateResourceContent" from being called on inline style changes.
Introduce a flag that marks a CSSStyleSheet as a representation of an
"ElementCSSInlineStyle" (DOM Level 2 spec) and return early.
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager.prototype.styleSheetChanged):
* UserInterface/Models/CSSStyleSheet.js:
(WebInspector.CSSStyleSheet):
(WebInspector.CSSStyleSheet.isInlineStyle):
(WebInspector.CSSStyleSheet.prototype.markAsInlineStyle):
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
2015-04-24 Timothy Hatcher <timothy@apple.com>
REGRESSION: Web Inspector: Start Timeline Recording in Develop menu broken
https://bugs.webkit.org/show_bug.cgi?id=144150
Reviewed by Brian Burg.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setTimelineProfilingEnabled): Change !== to === when
checking enabled to isCapturing().
2015-04-23 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: run a customizable bootstrap function after the UI has fully loaded
https://bugs.webkit.org/show_bug.cgi?id=144124
Reviewed by Joseph Pecoraro.
It can be really annoying to click through the Inspector UI dozens of times to debug one
interaction or iterate on a specific widget.
This patch adds a blank "bootstrap" function that can be used to hard-wire commands to
automate repetitive UI state setup. The function is run immediately after the inspector loads.
Setup commands can be shared as bug report reproduction steps.
* UserInterface/Base/Bootstrap.js: Added.
(WebInspector.runBootstrapOperations): Added.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded): Bootstrap after setting up everything and restoring view state from cookie.
* UserInterface/Main.html:
2015-04-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Adopt Object.assign and improve its display in Console
https://bugs.webkit.org/show_bug.cgi?id=144135
Reviewed by Darin Adler.
* UserInterface/Models/NativeFunctionParameters.js:
2015-04-23 Timothy Hatcher <timothy@apple.com>
Web Inspector: DebuggerSidebarPanel's _callStackContentTreeOutline should suppress filtering
https://bugs.webkit.org/show_bug.cgi?id=144114
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
2015-04-23 Timothy Hatcher <timothy@apple.com>
Web Inspector: Fix layering issues with ApplicationCacheFrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=144113
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ApplicationCacheFrameTreeElement.js:
(WebInspector.ApplicationCacheFrameTreeElement.prototype.updateTitles):
(WebInspector.ApplicationCacheFrameTreeElement):
2015-04-22 Matt Baker <mattbaker@apple.com>
Web Inspector: clicking Timelines tree view nodes should not change the current content view
https://bugs.webkit.org/show_bug.cgi?id=132202
Reviewed by Brian Burg.
TimelineSidebarPanel now prevents timeline views from switching to another content view while the content
browser is showing the TimelineRecordingContentView. Code responsible for creating and updating the tree
element close button, which was duplicated in multiple derived TimelineView classes, has been moved to the
TimelineView base class.
* UserInterface/Views/LayoutTimelineView.js:
Updated name of location column, which was broken in a recent patch.
(WebInspector.LayoutTimelineView.prototype.treeElementDeselected):
(WebInspector.LayoutTimelineView.prototype.treeElementSelected):
Added overrides of new base class methods to handle view-specific highlight logic.
(WebInspector.LayoutTimelineView.prototype._treeElementDeselected): Deleted.
(WebInspector.LayoutTimelineView.prototype._treeElementSelected): Deleted.
(WebInspector.LayoutTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked): Deleted.
Removed tree element close button logic.
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.NetworkTimelineView.prototype.treeElementSelected):
Added overrides of new base class methods.
(WebInspector.NetworkTimelineView.prototype._treeElementDeselected): Deleted.
(WebInspector.NetworkTimelineView.prototype._treeElementSelected): Deleted.
Removed tree element close button logic.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.RenderingFrameTimelineView.prototype.treeElementSelected):
Added overrides of new base class methods.
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.get data):
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
Removed unused Name column and added "go to" button to the Domain column to show the selected resource.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.ScriptTimelineView.prototype.treeElementSelected):
Added overrides of new base class methods.
(WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
(WebInspector.ScriptTimelineView.prototype._treeElementDeselected): Deleted.
(WebInspector.ScriptTimelineView.prototype._treeElementSelected): Deleted.
(WebInspector.ScriptTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked): Deleted.
Removed tree element close button logic.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
Prevent navigating to a different content view when showing the TimelineRecordingContentView.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.showContentViewForTreeElement):
(WebInspector.TimelineView.prototype.treeElementDeselected):
(WebInspector.TimelineView.prototype.treeElementSelected):
Tree element selection handlers are now protected methods, which derived classes may override as needed.
(WebInspector.TimelineView.prototype.needsLayout):
(WebInspector.TimelineView.prototype._closeStatusButtonClicked):
(WebInspector.TimelineView.prototype._updateTreeElementWithCloseButton):
Encapsulated logic related to close button creation and behavior.
2015-04-22 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove an unused index argument from Sidebar.removeSidebarPanel
https://bugs.webkit.org/show_bug.cgi?id=144054
Reviewed by Darin Adler.
* UserInterface/Views/Sidebar.js:
2015-04-22 Timothy Hatcher <timothy@apple.com>
Web Inspector: Fix an exception preventing switching timelines
https://bugs.webkit.org/show_bug.cgi?id=144053
Reviewed by Darin Adler.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeElement.prototype.select): Store treeOutline in a local so
we have a reference to it when we go to reset processingSelectionChange.
The calls to onselect was removing the tree element from the outline, causing
"delete this.treeOutline.processingSelectionChange" to throw an exception.
This patch changes the delete to a set to false for good measure too.
2015-04-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Use String.prototype.startsWith in more places
https://bugs.webkit.org/show_bug.cgi?id=144025
Reviewed by Timothy Hatcher.
* UserInterface/Models/Gradient.js:
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
2015-04-21 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Make formatted nodes more consistent with formatted objects
https://bugs.webkit.org/show_bug.cgi?id=142159
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline ol):
Keep indentation exactly two spaces of Menlo.
(.dom-tree-outline li):
(.dom-tree-outline li.parent):
(.dom-tree-outline li .html-tag.close):
(.dom-tree-outline li.parent::before):
(.dom-tree-outline:focus li.parent.selected::before):
(.dom-tree-outline li.parent.expanded::before):
(.dom-tree-outline:focus li.parent.expanded.selected::before):
* UserInterface/Views/FormattedValue.css:
(.formatted-node > .dom-tree-outline ol):
Keep indentation exactly two spaces of Menlo.
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property > .disclosure-button):
Disclosure triangle is 13 by 13 pixels. Having it in the middle of 16 by 16
pixels block makes it look bloory on non-retina screen, because:
(16 - 13) / 2 = 1.5px. Replacing 16 with 15 fixes the problem.
* UserInterface/Views/ObjectTreeView.css:
(.object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
2015-04-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Unify PrettyPrinting Tool and UserInterface resources
https://bugs.webkit.org/show_bug.cgi?id=143969
Reviewed by Timothy Hatcher.
Have the PrettyPrinting tool just use the CodeMirror and WebInspector
resources from the relative UserInterface directory. This avoids
having duplicate resources in the tree which offered few advantages.
* Scripts/update-pretty-printer.rb: Removed.
* Tools/PrettyPrinting/CodeMirrorFormatters.js: Removed.
* Tools/PrettyPrinting/Formatter.js: Removed.
* Tools/PrettyPrinting/FormatterContentBuilder.js: Removed.
* Tools/PrettyPrinting/codemirror.css: Removed.
* Tools/PrettyPrinting/codemirror.js: Removed.
* Tools/PrettyPrinting/css.js: Removed.
* Tools/PrettyPrinting/index.html:
* Tools/PrettyPrinting/javascript.js: Removed.
* UserInterface/Views/CodeMirrorFormatters.js:
Fix style issues.
2015-04-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve Support for WeakSet in Console
https://bugs.webkit.org/show_bug.cgi?id=143951
Reviewed by Darin Adler.
* UserInterface/Models/NativeFunctionParameters.js:
WeakSet has the same APIs and parameters as Set for the functions it implements.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.isCollectionType):
(WebInspector.RemoteObject.prototype.isWeakCollection):
(WebInspector.RemoteObject.prototype.getCollectionEntries):
(WebInspector.RemoteObject.prototype._weakCollectionObjectGroup):
WeakSet is a weak collection.
* UserInterface/Models/ObjectPreview.js:
(WebInspector.ObjectPreview.prototype.hasSize):
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._formatParameter):
* UserInterface/Views/FormattedValue.css:
(.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap, .formatted-weakset):
(:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap, .formatted-weakset) > .size):
(.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap): Deleted.
(:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap) > .size): Deleted.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForTypesAndValue):
Treat a WeakSet like a set in more places.
2015-04-18 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Pass multiple arguments to classList.add and classList.remove
https://bugs.webkit.org/show_bug.cgi?id=143914
classList.add and classList.remove can accept multiple arguments, use that.
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.updateDockedState):
* UserInterface/Views/DOMTreeDataGrid.js:
(WebInspector.DOMTreeDataGrid):
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode.prototype.set hasChildren):
* UserInterface/Views/DatabaseContentView.js:
(WebInspector.DatabaseContentView):
* UserInterface/Views/DetailsSection.js:
(WebInspector.DetailsSection):
* UserInterface/Views/DetailsSectionPropertiesRow.js:
(WebInspector.DetailsSectionPropertiesRow):
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.set classNames):
* UserInterface/Views/NavigationItem.js:
(WebInspector.NavigationItem):
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar):
* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel):
* UserInterface/Views/SourceCodeTextEditor.js:
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
* UserInterface/Views/TimelineRuler.js:
2015-04-18 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Make prototype pill’s background semi-transparent
https://bugs.webkit.org/show_bug.cgi?id=143928
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property.prototype-property):
(.object-tree-property.prototype-property:hover, .object-tree-property.prototype-property:focus):
Slightly highlight the prototype pill when hovering over.
2015-04-17 Jono Wells <jonowells@apple.com>
Web Inspector: All sans-serif font family rules should be set the same way.
https://bugs.webkit.org/show_bug.cgi?id=143909
Reviewed by Timothy Hatcher.
Update styles so that all uses of sans-serif font use -webkit-system-font consistently.
* UserInterface/Views/DefaultDashboardView.css:
(body.mac-platform.legacy .toolbar .dashboard.default > .item):
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property .prototype-name):
* UserInterface/Views/ObjectTreeView.css:
(.object-tree-outline li .empty-message):
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
(.timeline-overview-graph.rendering-frame > .divider > .label):
2015-04-17 Timothy Hatcher <timothy@apple.com>
Web Inspector: Have better inactive window color for pixel borders
https://bugs.webkit.org/show_bug.cgi?id=143888
Reviewed by Joseph Pecoraro.
* UserInterface/Views/FindBanner.css:
(body.window-inactive .find-banner):
* UserInterface/Views/Main.css:
(body.window-inactive.docked.bottom):
(body.window-inactive.docked.right):
(body.window-inactive #split-content-browser):
* UserInterface/Views/NavigationBar.css:
(body.window-inactive .navigation-bar):
* UserInterface/Views/QuickConsole.css:
(body.window-inactive .quick-console):
(.quick-console.showing-log):
* UserInterface/Views/Sidebar.css:
(body.window-inactive .sidebar.left):
(body.window-inactive .sidebar.right):
2015-04-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Unexpected background at top of console when rubber-banding with selection
https://bugs.webkit.org/show_bug.cgi?id=140710
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.console-messages):
Remove the focus ring on the console's log view, only visible when rubber-banding.
2015-04-16 Jono Wells <jonowells@apple.com>
Web Inspector: Breakpoint icons should not get pushed off of debugger sidebar due to long resource names
https://bugs.webkit.org/show_bug.cgi?id=142714
Reviewed by Timothy Hatcher.
Modify the styles for content and group containers inside the debugger sidebar panel's detail sections
such that the rules "display: table" and "display: table-row-group" no longer apply. This will make
the file names which use the rule "text-overflow: ellipsis" truncate as expected.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .details-section > .content):
(.sidebar > .panel.navigation.debugger .details-section.collapsed > .content):
(.sidebar > .panel.navigation.debugger .details-section > .content > .group):
(.sidebar > .panel.navigation.debugger .details-section.scripts):
(.sidebar > .panel.navigation.debugger .details-section.scripts .header):
(.sidebar > .panel.navigation.debugger .details-section.scripts.collapsed > .content):
2015-04-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Should include "Log Value" context menu item in Preview and Collapsed ObjectTree
https://bugs.webkit.org/show_bug.cgi?id=143845
Reviewed by Timothy Hatcher.
Give previews the same "Log Value" context menu so that if you just log
a bunch of objects to the console you can quickly turn that entire object
into a $n reference in the console to interact with.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype.setOriginatingObjectInfo):
(WebInspector.ObjectPreviewView.prototype._contextMenuHandler):
Provide API to refer to a RemoteObject and optional PropertyPath
that can be used to give the preview a "Log Value" context menu.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
Include the RemoteObject without a path for a preview context menu.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView):
Include the RemoteObject with a path if we knew it for a preview context menu.
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement):
The context menu can never be empty, since we always added at least one item above.
2015-04-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: "Log Value" of a value inside of an array, does not log the innermost value
https://bugs.webkit.org/show_bug.cgi?id=143793
Reviewed by Brian Burg.
Context menu handlers were being handled in the capturing event phase, so
the outer most handler, instead of the inner most handler, was getting
first access. Change this so the events happen in the bubbling phase.
DOM Nodes may appear inside of Object Trees, for instance when shown
in a collection like an array or set. In an effort to standardize on
"inner most" behavior, change the DOMTreeOutline context handler
to also be in bubbling.
In the rare instances where a node object is in the console but
not displayed in an outline (console.dir(node)), then include a
Copy as HTML context menu like you would expect in a DOM tree.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.onattach):
(WebInspector.GeneralTreeElement.prototype.ondetach):
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
(WebInspector.ObjectTreeBaseTreeElement):
2015-04-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Allow toggling the edibility of a DOMTreeOutline
https://bugs.webkit.org/show_bug.cgi?id=143814
Reviewed by Brian Burg.
By default a DOMTreeOutline will not be editable, but it will
provide a setter to enable editability for DOMTreeContentViews.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
Content Views always have editable DOM trees.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.get editable):
(WebInspector.DOMTreeElement.prototype.onattach):
(WebInspector.DOMTreeElement.prototype.ondelete):
(WebInspector.DOMTreeElement.prototype.onenter):
(WebInspector.DOMTreeElement.prototype.ondblclick):
(WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
(WebInspector.DOMTreeElement.prototype._populateTextContextMenu):
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
(WebInspector.DOMTreeElement.prototype._startEditing):
Do not provide editability options for shadow DOM or non-editable DOM tree.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
(WebInspector.DOMTreeOutline.prototype.get editable):
(WebInspector.DOMTreeOutline.prototype.set editable):
New state.
* UserInterface/Views/FormattedValue.css:
(.formatted-node > .dom-tree-outline li):
Nodes inside object trees were showing text selection when you right
clicked them. Normal selection is not possible. So force no selection.
2015-04-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Give DOM Nodes a Context Menu to Log Element to the console
https://bugs.webkit.org/show_bug.cgi?id=143813
Reviewed by Brian Burg.
Always give DOM Nodes a "Log Element" context menu to log it to the console.
This will give a $n reference, and is a convenient alternative to $0 or
the now removed $1-$9.
* Localizations/en.lproj/localizedStrings.js:
New "Log Element" and "Selected Element" strings.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
(WebInspector.DOMTreeOutline.prototype._contextMenuEventFired):
(WebInspector.DOMTreeOutline.prototype._updateModifiedNodes):
(WebInspector.DOMTreeOutline.prototype._populateContextMenu.revealElement):
(WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement):
(WebInspector.DOMTreeOutline.prototype._populateContextMenu):
Always include the "Log Element" context menu/
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForNode):
This uses all the defaults.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
This enables all the extra behavior.
2015-04-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unnecessary intermediate object from DOMTreeOutline
https://bugs.webkit.org/show_bug.cgi?id=143811
Reviewed by Brian Burg.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
(WebInspector.DOMTreeOutline.prototype._selectedNodeChanged):
(WebInspector.DOMTreeOutline.prototype.addEventListener): Deleted.
(WebInspector.DOMTreeOutline.prototype.removeEventListener): Deleted.
This object used to be used to handle event dispatching, but
TreeOutlines themselves are now WebInspector.Objects so we
can remove the intermediary.
2015-04-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: InspectorTest frontend console methods redirected to the frontend are wrong
https://bugs.webkit.org/show_bug.cgi?id=143801
Reviewed by Brian Burg.
* UserInterface/Base/Test.js:
(InspectorTest.evaluateInPage):
Properly if check for the existence of an agent.
(global):
Properly hook up console redirect handlers so they
will output the right type and arguments strings.
2015-04-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Handle all possible Console message Source types in IssueMessage
https://bugs.webkit.org/show_bug.cgi?id=143803
Reviewed by Brian Burg.
* UserInterface/Models/IssueMessage.js:
(WebInspector.IssueMessage):
Update the switch to handle all possible console message sources.
"wml" was legacy and no longer supported.
2015-04-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception in JSContext inspector when opening
https://bugs.webkit.org/show_bug.cgi?id=143741
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.shouldShowViewForTimeline):
(WebInspector.TimelineManager.prototype._loadNewRecording):
Before using TimelineAgent, check for its existence first. It may
not exist in JSContext inspection.
2015-04-14 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Align array's indices and set's bullet points under the property icon
https://bugs.webkit.org/show_bug.cgi?id=143698
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
(.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name):
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
(.object-tree-array-index .index-name):
Right align array's and set's indices.
(.object-tree-map-entry):
Overwrite left property from .object-tree-array-index.
(.object-tree-property + ol .object-tree-map-entry):
Overwrite left property from .object-tree-property + ol .object-tree-array-index.
2015-04-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Expanding window.navigator.mimeTypes in ObjectTree shows no native properties
https://bugs.webkit.org/show_bug.cgi?id=143690
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement):
Fix a typo that resulted in hiding properties of native objects
in the Properties section of an Object Tree.
2015-04-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unnecessary 3 second delay when archiving page
https://bugs.webkit.org/show_bug.cgi?id=143688
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.archiveMainFrame):
The delay is unnecessary and was probably just debugging code.
2015-04-11 Matt Baker <mattbaker@apple.com>
Web Inspector: Hide Frames Timeline if the backend doesn't support it
https://bugs.webkit.org/show_bug.cgi?id=142800
Reviewed by Timothy Hatcher.
Fallback to showing the layout timeline if the backend doesn't support the rendering frames timeline.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.shouldShowViewForTimeline):
(WebInspector.TimelineManager.prototype._loadNewRecording):
Added iOS 8 compatibility check for RenderingFrame timeline record type.
* UserInterface/Views/LayoutTimelineDataGridNode.js:
(WebInspector.LayoutTimelineDataGridNode.prototype.get data):
Restored fields used by Layout timeline view.
* UserInterface/Views/LayoutTimelineView.js:
Updated to be compatible with both RenderingFrame and Layout timeline views.
2015-04-11 Jono Wells <jonowells@apple.com>
Web Inspector: Debugger sidebar should show errors underneath scripts
https://bugs.webkit.org/show_bug.cgi?id=143464
Reviewed by Timothy Hatcher.
Add a new tree element called IssueTreeElement. This shows warnings and errors in the debugger sidebar. These
can be clicked to jump to the line of source code for which the error was thrown. BreakpointTreeElement and
IssueTreeElement now inherit from DebuggerTreeElement to support any needed commonalities among the interfaces
of elements in the debugger sidebar panel.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Main.html: Add new files.
* UserInterface/Models/IssueMessage.js:
(WebInspector.IssueMessage):
(WebInspector.IssueMessage.prototype.get source):
(WebInspector.IssueMessage.prototype.get lineNumber):
(WebInspector.IssueMessage.prototype.get columnNumber):
(WebInspector.IssueMessage.prototype.get displayLineNumber):
(WebInspector.IssueMessage.prototype.get displayColumnNumber):
(WebInspector.IssueMessage.prototype.get sourceCodeLocation):
(WebInspector.IssueMessage.prototype.saveIdentityToCookie):
(WebInspector.IssueMessage.prototype._sourceCodeLocationDisplayLocationChanged):
Convert to use a backing SourceCodeLocation. Expand API.
* UserInterface/Views/BreakpointTreeElement.js: Inherits now from DebuggerTreeElement.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.showResourcesWithBreakpointsOnlyFilterFunction):
(WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointRemoved):
(WebInspector.DebuggerSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
(WebInspector.DebuggerSidebarPanel.prototype._compareDebuggerTreeElements):
(WebInspector.DebuggerSidebarPanel.prototype._addDebuggerObject):
(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssueAdded):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssuesCleared):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointDisplayLocationDidChange): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._removeBreakpointTreeElement): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._compareBreakpointTreeElements): Deleted.
Add IssueTreeElements to the sidebar whenever a warning or error corresponding to a line of code is found.
Add a filter function and button to filter down to just these. Ensure issue and breakpoint elements can be
properly compared.
* UserInterface/Views/DebuggerTreeElement.js: Added.
(WebInspector.DebuggerTreeElement):
(WebInspector.DebuggerTreeElement.prototype.get debuggerObject):
* UserInterface/Views/IssueTreeElement.css: Added.
(.issue .icon):
(.issue.error .icon):
(.navigation-sidebar-panel-content-tree-outline .item.small.issue .icon):
* UserInterface/Views/IssueTreeElement.js: Added.
(WebInspector.IssueTreeElement):
(WebInspector.IssueTreeElement.prototype.get issueMessage):
(WebInspector.IssueTreeElement.prototype._updateTitles):
2015-04-11 Matt Baker <mattbaker@apple.com>
Web Inspector: create content view and details sidebar for Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=143533
Reviewed by Timothy Hatcher.
Added new Rendering Frames timeline content view and details sidebar, and added minor visual tweeks to the
timeline graph such as ensuring 60 FPS budget line is always visible, and large combined frames are split
up once they reach a maximum pixel width.
* Localizations/en.lproj/localizedStrings.js:
New UI strings.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Support for new details sidebar panel.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.shouldShowViewForTimeline):
(WebInspector.TimelineManager.prototype._processRecord):
(WebInspector.TimelineManager.prototype._loadNewRecording):
Layout timeline is no longer added to timeline graphs, skip Rendering Frame records that have no child events.
* UserInterface/Images/NavigationItemDoughnutChart.svg: Added.
* UserInterface/Images/TimelineRecordRenderingFrame.svg: Added.
New artwork.
* UserInterface/Main.html:
* UserInterface/Test.html:
New files.
* UserInterface/Models/RenderingFrameTimelineRecord.js: Renamed from Source/WebInspectorUI/UserInterface/Models/RunLoopTimelineRecord.js.
(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.resetFrameNumber):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameNumber):
(WebInspector.RenderingFrameTimelineRecord.prototype.get children):
(WebInspector.RenderingFrameTimelineRecord.prototype.get durationRemainder):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForRecords.get var):
Added frame numbering and improved the accuracy of sub-frame duratation calculation.
Refactoring: RunLoop prefix changed to RenderingFrame.
* UserInterface/Models/Timeline.js:
(WebInspector.Timeline):
(WebInspector.Timeline.create):
(WebInspector.Timeline.prototype.get recording):
(WebInspector.Timeline.prototype.get displayName):
(WebInspector.Timeline.prototype.get iconClassName):
Added up-pointer to parent recording.
* UserInterface/Models/TimelineRecord.js:
Refactoring: RunLoop prefix changed to RenderingFrame.
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.reset):
Support for new timeline type.
* UserInterface/Views/ChartDetailsSectionLegendRow.js: Added.
(WebInspector.ChartDetailsSectionLegendRow):
New details section row type for chart legend items.
* UserInterface/Views/ChartDetailsSectionRow.css: Added.
(.details-section .row.chart):
(.details-section .row.chart canvas):
(.details-section .row.chart.empty canvas):
(.details-section > .content > .group > .row.legend-item > .label > .color-swatch):
* UserInterface/Views/ChartDetailsSectionRow.js: Added.
(WebInspector.ChartDetailsSectionRow):
(WebInspector.ChartDetailsSectionRow.prototype.get legendGroup):
(WebInspector.ChartDetailsSectionRow.prototype.set innerLabel):
(WebInspector.ChartDetailsSectionRow.prototype.addChartValue):
(WebInspector.ChartDetailsSectionRow.prototype.clearChart):
(WebInspector.ChartDetailsSectionRow.prototype._refresh.drawSlice):
(WebInspector.ChartDetailsSectionRow.prototype._refresh):
New details section row type for pie/doughnut charts.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
Support for new timeline view type.
* UserInterface/Views/LayoutTimelineDataGridNode.js:
(WebInspector.LayoutTimelineDataGridNode.prototype.get data):
(WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
Updated for use in rendering frame timeline view.
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
Removed references to old RunLoop objects.
* UserInterface/Views/RenderingFrameDetailsSidebarPanel.js: Added.
(WebInspector.RenderingFrameDetailsSidebarPanel.formatChartValue):
(WebInspector.RenderingFrameDetailsSidebarPanel):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.inspect):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.updateRangeSelection):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.get renderingFrameTimeline):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.set renderingFrameTimeline):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.refresh.durationForRecordType):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.refresh):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._resetAll):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._recordAdded):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._timelineReset):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._getSelectedRecords):
New sidebar panel for showing time breakdown for current frame selection.
* UserInterface/Views/RenderingFrameTimelineDataGridNode.js: Added.
(WebInspector.RenderingFrameTimelineDataGridNode):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.get record):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.get records):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
New data grid row type.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.css: Renamed from Source/WebInspectorUI/UserInterface/Views/RunLoopTimelineOverviewGraph.css.
(.timeline-overview-graph.rendering-frame > .divider):
(.timeline-overview-graph.rendering-frame > .divider > .label):
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js: Renamed from Source/WebInspectorUI/UserInterface/Views/RunLoopTimelineOverviewGraph.js.
(WebInspector.RenderingFrameTimelineOverviewGraph):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.get graphHeightSeconds):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.updateLayout.createFrame):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):
* UserInterface/Views/RenderingFrameTimelineView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/RunLoopTimelineOverviewGraph.css.
(.timeline-view.rendering-frame > .data-grid):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.rendering-frame .item .subtitle):
Visual tweeks.
Refactoring: RunLoop prefix changed to RenderingFrame.
* UserInterface/Views/RenderingFrameTimelineView.js: Added.
(WebInspector.RenderingFrameTimelineView):
(WebInspector.RenderingFrameTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.RenderingFrameTimelineView.prototype.shown):
(WebInspector.RenderingFrameTimelineView.prototype.hidden):
(WebInspector.RenderingFrameTimelineView.prototype.updateLayout):
(WebInspector.RenderingFrameTimelineView.prototype.get selectionPathComponents):
(WebInspector.RenderingFrameTimelineView.prototype.filterDidChange):
(WebInspector.RenderingFrameTimelineView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.RenderingFrameTimelineView.prototype.reset):
(WebInspector.RenderingFrameTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.RenderingFrameTimelineView.prototype.dataGridNodeForTreeElement):
(WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords):
(WebInspector.RenderingFrameTimelineView.prototype._renderingFrameTimelineRecordAdded):
(WebInspector.RenderingFrameTimelineView.prototype._dataGridNodeSelected):
New content view type.
* UserInterface/Views/TimelineIcons.css:
(.rendering-frame-icon .icon):
(.rendering-frame-icon.large .icon):
(.rendering-frame-record .icon):
(.runloop-record .icon):
(.runloop-icon .icon): Deleted.
(.runloop-icon.large .icon): Deleted.
Refactoring: runloop prefix changed to rendering-frame.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype._timelineRemoved):
Support for timelines without associated views.
* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
Refactoring: RunLoop prefix changed to RenderingFrame.
* UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame):
(.timeline-record-frame > .frame):
* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame.createCombinedFrames):
Visual tweeks, splitting up large combined frames.
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
Refactoring: runloop prefix changed to rendering-frame.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
Added support for new details sidebar and timelines without associated views.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
Support for timelines without associated views.
Refactoring: runloop prefix changed to rendering-frame.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
New files.
2015-04-11 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Use semi-transparent map item dividers
https://bugs.webkit.org/show_bug.cgi?id=143630
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
(.object-tree-map-entry.key:not(:first-child)):
(.object-tree-map-entry.key): Deleted.
(.object-tree-map-entry.key:first-of-type): Deleted.
Use one selector instead of two.
2015-04-11 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Objects are vertically misaligned by 1px
https://bugs.webkit.org/show_bug.cgi?id=143629
Reviewed by Timothy Hatcher.
* UserInterface/Views/FormattedValue.css:
(.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
2015-04-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix Console Message Toggle
Unreviewed. Correct a post-review comment fix that went too far.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype.set expandable):
The handler needed to be bound to the object.
2015-04-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix Console Filter Search, Uncaught Exception
Rubber-stamped by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._performSearch):
This regressed with recent refactoring. Fix up the property and class names.
2015-04-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve Console Message Formatting
https://bugs.webkit.org/show_bug.cgi?id=143623
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
Misc.
* UserInterface/Views/ConsoleMessageView.css: Added.
(.console-message.expandable .console-top-level-message::before):
(.console-message.expandable.expanded .console-top-level-message::before):
(.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider)):
(.console-message-preview-divider):
(.console-message-enclosed):
(.console-message .console-message-stack-trace-container):
(.console-message.expandable.expanded .console-message-stack-trace-container):
(.console-message .console-message-stack-trace-container > li):
(.console-message .console-message-extra-parameters-container > li::before):
New styles for the new ConsoleMessageView children.
Handle console message expansion, a list of extra parameters
and a potential list of stack frames.
(.console-message, .console-user-command):
(.console-message .repeat-count):
(.console-message-text):
(.console-message-text > span):
(.console-error-level):
(.console-error-level .console-message-text):
(.console-debug-level .console-message-text):
(.console-warning-level):
(.console-warning-level .console-message-text):
(.console-user-command .console-message):
(.console-error-level::before):
(.console-warning-level::before):
(.console-user-command::before):
(.console-debug-level::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message):
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before):
(.console-user-command > .console-message-text):
(.console-message-url):
(.console-saved-variable):
(.console-user-command-result):
(.console-user-command-result.console-log-level::before):
Moved from LogContentView.css to here where it is more appropriate
since ConsoleMessageView added them.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.get expandable):
(WebInspector.ConsoleMessageView.set expandable.this._boundExpandClickHandler):
(WebInspector.ConsoleMessageView.prototype.set expandable):
(WebInspector.ConsoleMessageView.prototype.expand):
(WebInspector.ConsoleMessageView.prototype.collapse):
(WebInspector.ConsoleMessageView.prototype.toggle):
Provide high level constructs for making a ConsoleMessageView
expandable, and APIs to expand/collapse.
(WebInspector.ConsoleMessageView.prototype._appendExtraParameters):
Add and style the new list of extra parameters.
(WebInspector.ConsoleMessageView.prototype._appendStackTrace):
Add and style the new list stack frames.
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
(WebInspector.ConsoleMessageView.prototype._shouldConsiderObjectLossless):
Handling the top level message text line for all the different cases.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._startEditingTarget):
(WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline .add-attribute): Deleted.
CSS class .add-attribute was not used. Remove all references.
(.webkit-html-fragment.shadow):
Moved from LogContentView.css to a more appropriate place.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createObjectPreviewOrFormattedValueForRemoteObject):
Helper to create a preview or a formatted value for a given object.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._updateMessagesSelection):
(WebInspector.LogContentView.prototype._leftArrowWasPressed):
(WebInspector.LogContentView.prototype._rightArrowWasPressed):
(WebInspector.LogContentView.prototype._rightArrowWasPressed.else.outlineTitle.treeElement.onexpand): Deleted.
(WebInspector.LogContentView.prototype._propertiesSectionDidUpdateContent): Deleted.
Lots of this code no longer makes sense. Delete some and put FIXMEs
where it makes sense to re-add back useful features.
* UserInterface/Views/ObjectPreviewView.css:
(.object-preview > .size):
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
(.object-tree-array-index .index-value .object-tree): Deleted.
* UserInterface/Views/ObjectTreeView.css:
(.object-tree):
Tweak styles. Opacity instead of a specific gray to better work
with other colors. Always make objects be inline-block.
* UserInterface/Views/LogContentView.css:
(.console-error-level + .console-item):
(.console-warning-level + .console-item):
(.console-item::before):
(.console-user-command-result): Deleted.
(.console-user-command-result.console-log-level::before): Deleted.
(.console-message, .console-user-command): Deleted.
(.console-message .repeat-count): Deleted.
(.console-message-text): Deleted.
(.console-message-text > span): Deleted.
(.console-error-level): Deleted.
(.console-error-level .section .header .title): Deleted.
(.console-debug-level .console-message-text): Deleted.
(.console-debug-level::before): Deleted.
(.console-error-level::before): Deleted.
(.console-warning-level): Deleted.
(.console-warning-level .console-message-text): Deleted.
(.console-warning-level::before): Deleted.
(.console-user-command .console-message): Deleted.
(.console-user-command::before): Deleted.
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message): Deleted.
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before): Deleted.
(.console-user-command > .console-message-text): Deleted.
(.console-saved-variable): Deleted.
(.console-message-url): Deleted.
(.console-group-messages .section): Deleted.
(.console-group-messages .section .header): Deleted.
(.console-group-messages .section .header::before): Deleted.
(.console-group-messages .section .header .title): Deleted.
(.console-group-messages .section .properties li .info): Deleted.
(.console-group-messages .outline-disclosure): Deleted.
(.console-group-messages .outline-disclosure > ol): Deleted.
(.console-group-messages .outline-disclosure li .selection): Deleted.
(.console-group-messages .add-attribute): Deleted.
(.error-message): Deleted.
(.auto-complete-text, .editing .auto-complete-text): Deleted.
(.outline-disclosure li.hovered:not(.selected) .selection): Deleted.
(.outline-disclosure li.highlighted .highlight): Deleted.
(.outline-disclosure li.selected.highlighted .highlight): Deleted.
(.outline-disclosure li .selection): Deleted.
(.outline-disclosure li.selected .selection): Deleted.
(.outline-disclosure li.elements-drag-over .selection): Deleted.
(.outline-disclosure ol:focus li.selected .selection): Deleted.
(.outline-disclosure ol.search-match-not-found li.selected .selection): Deleted.
(.outline-disclosure > ol): Deleted.
(.outline-disclosure, .outline-disclosure ol): Deleted.
(.outline-disclosure li): Deleted.
(.outline-disclosure .expanded li): Deleted.
(.outline-disclosure > li.parent): Deleted.
(.outline-disclosure li .webkit-html-tag.close): Deleted.
(.outline-disclosure > li.parent::before): Deleted.
(.outline-disclosure li.parent.expanded::before): Deleted.
(.outline-disclosure ol.children): Deleted.
(.outline-disclosure ol.children.expanded): Deleted.
(.webkit-html-fragment.shadow): Deleted.
Delete now unused styles and move other styles to more appropriate places.
2015-04-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception using console.table with filter argument
https://bugs.webkit.org/show_bug.cgi?id=143579
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._userProvidedColumnNames):
Reordering in the refactoring would have already converted this argument
to a RemoteObject. Assert that here instead of trying to convert.
2015-04-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ObjectTree Property Path tooltip has a few issues
https://bugs.webkit.org/show_bug.cgi?id=143587
Reviewed by Timothy Hatcher.
* UserInterface/Models/PropertyPath.js:
(WebInspector.PropertyPath.prototype.appendSymbolProperty):
(WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
Handle Symbol properties. They are treated as an impossible path
because we cannot guarentee a reference to the Symbol right now.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._rootPropertyPathForObject):
The savedResultIndex is on message.
* UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
(WebInspector.ObjectTreeMapEntryTreeElement):
(WebInspector.ObjectTreeMapKeyTreeElement):
(WebInspector.ObjectTreeMapValueTreeElement):
In order for "key" to be available setup the mainTitle after
the call to the base's constructor.
2015-04-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Simplify Legacy Tips support
https://bugs.webkit.org/show_bug.cgi?id=143551
Reviewed by Timothy Hatcher.
* UserInterface/Models/ConsoleMessage.js:
* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype._levelString):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._filterMessageElements):
2015-04-08 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed Test Fix after r182579. Add missing include.
* UserInterface/Test.html:
Missing file was causing inspector/page/main-frame-resource.html to fail.
2015-04-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Split ConsoleMessageImpl into the View and the Model
https://bugs.webkit.org/show_bug.cgi?id=142599
Reviewed by Timothy Hatcher.
* UserInterface/Models/ConsoleMessage.js: Added.
(WebInspector.ConsoleMessage):
(WebInspector.ConsoleMessage.prototype.get source):
(WebInspector.ConsoleMessage.prototype.get level):
(WebInspector.ConsoleMessage.prototype.get messageText):
(WebInspector.ConsoleMessage.prototype.get type):
(WebInspector.ConsoleMessage.prototype.get url):
(WebInspector.ConsoleMessage.prototype.get line):
(WebInspector.ConsoleMessage.prototype.get column):
(WebInspector.ConsoleMessage.prototype.get repeatCount):
(WebInspector.ConsoleMessage.prototype.get parameters):
(WebInspector.ConsoleMessage.prototype.get stackTrace):
(WebInspector.ConsoleMessage.prototype.get request):
New readonly model object for console messages.
* UserInterface/Main.html:
* UserInterface/Test.html:
* UserInterface/Base/Test.js:
(WebInspector.loaded):
Load the new files in the main / test page.
* UserInterface/Views/LegacyConsoleMessage.js: Removed.
* UserInterface/Views/LegacyConsoleMessageImpl.js: Removed.
Remove Legacy versions.
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.startNewSession):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult.saveResultCallback):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
(WebInspector.JavaScriptLogViewController.prototype.appendConsoleMessage):
(WebInspector.JavaScriptLogViewController.prototype.updatePreviousMessageRepeatCount):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted.printResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessageView):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage): Deleted.
Update LogViewController to create ConsoleMessageViews from ConsoleMessages when applicable.
Also clarify when we have a view versus model object.
* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager.prototype.messageWasAdded):
(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Create model objects and issue events for the model objects.
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._consoleMessageAdded):
(WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
Update now that the event gives us a model object.
* UserInterface/Views/ConsoleMessageView.js: Added.
(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.get element):
(WebInspector.ConsoleMessageView.prototype.get message):
(WebInspector.ConsoleMessageView.prototype.get repeatCount):
(WebInspector.ConsoleMessageView.prototype.set repeatCount):
(WebInspector.ConsoleMessageView.prototype.toClipboardString):
(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
(WebInspector.ConsoleMessageView.prototype._appendSavedResultIndex):
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
(WebInspector.ConsoleMessageView.prototype._appendParameters):
(WebInspector.ConsoleMessageView.prototype._appendStackTrace):
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
(WebInspector.ConsoleMessageView.prototype._formatParameter):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsValue):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageView.prototype._rootPropertyPathForObject):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.parameterFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.stringFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.floatFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.integerFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.styleFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.isWhitelistedProperty):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.append):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString):
(WebInspector.ConsoleMessageView.prototype._shouldShowStackTrace):
(WebInspector.ConsoleMessageView.prototype._shouldHideURL):
(WebInspector.ConsoleMessageView.prototype._firstNonNativeCallFrame):
(WebInspector.ConsoleMessageView.prototype._linkifyLocation):
(WebInspector.ConsoleMessageView.prototype._linkifyCallFrame):
(WebInspector.ConsoleMessageView.prototype._userProvidedColumnNames):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
(WebInspector.ConsoleMessageView.prototype._levelString):
(WebInspector.ConsoleMessageView.prototype._enforcesClipboardPrefixString):
(WebInspector.ConsoleMessageView.prototype._clipboardPrefixString):
New View class for a ConsoleMessage. This is a near direct port of the old code
to a view class that has a root element.
* UserInterface/Models/ConsoleCommandResultMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleCommandResult.js.
(WebInspector.ConsoleCommandResultMessage):
(WebInspector.ConsoleCommandResultMessage.clearMaximumSavedResultIndex):
(WebInspector.ConsoleCommandResultMessage.prototype.get savedResultIndex):
Rename, as this is a ConsoleMessage subclass with a specific type for console evaluation results.
* UserInterface/Views/ConsoleCommandView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleCommand.js.
(WebInspector.ConsoleCommandView):
(WebInspector.ConsoleCommandView.prototype.get element):
(WebInspector.ConsoleCommandView.prototype.get commandText):
(WebInspector.ConsoleCommandView.prototype.get message):
(WebInspector.ConsoleCommandView.prototype.toClipboardString):
* UserInterface/Views/ConsoleGroup.js:
(WebInspector.ConsoleGroup):
(WebInspector.ConsoleGroup.prototype.get parentGroup):
(WebInspector.ConsoleGroup.prototype.render):
(WebInspector.ConsoleGroup.prototype.addMessageView):
(WebInspector.ConsoleGroup.prototype.append):
(WebInspector.ConsoleGroup.prototype._titleMouseDown):
(WebInspector.ConsoleGroup.prototype.addMessage): Deleted.
(WebInspector.ConsoleGroup.prototype._titleClicked): Deleted.
* UserInterface/Views/ConsoleSession.js:
(WebInspector.ConsoleSession):
(WebInspector.ConsoleSession.prototype.addMessageView):
(WebInspector.ConsoleSession.prototype.append):
(WebInspector.ConsoleSession.prototype.addMessage): Deleted.
(WebInspector.ConsoleSession.prototype.hasMessages): Deleted.
Convert to classes, and clarify these deal with View objects.
* UserInterface/Views/LogContentView.css:
(.console-message .repeat-count):
(.console-message .bubble): Deleted.
Better class name for the repeat count element.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype._formatMessagesAsData):
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._updateMessagesSelection):
(WebInspector.LogContentView.prototype._selectAllMessages):
(WebInspector.LogContentView.prototype._allMessageElements):
(WebInspector.LogContentView.prototype._unfilteredMessageElements):
(WebInspector.LogContentView.prototype._visibleMessageElements):
(WebInspector.LogContentView.prototype._scopeBarSelectionDidChange):
(WebInspector.LogContentView.prototype._filterMessageElements):
(WebInspector.LogContentView.prototype._upArrowWasPressed):
(WebInspector.LogContentView.prototype._downArrowWasPressed):
(WebInspector.LogContentView.prototype._previousMessage):
(WebInspector.LogContentView.prototype._nextMessage):
(WebInspector.LogContentView.prototype._performSearch):
(WebInspector.LogContentView.prototype._highlightRanges):
(WebInspector.LogContentView.prototype._reappendProvisionalMessages):
(WebInspector.LogContentView.prototype.didAppendConsoleMessage): Deleted.
(WebInspector.LogContentView.prototype._allMessages): Deleted.
(WebInspector.LogContentView.prototype._unfilteredMessages): Deleted.
(WebInspector.LogContentView.prototype._visibleMessages): Deleted.
(WebInspector.LogContentView.prototype._filterMessages): Deleted.
Rename lots of things to make it clear when we are dealing with
elements, model objects, or view objects. This class is still heavily
dealing with elements, and needs to be cleaned up later.
2015-04-08 Joseph Pecoraro <pecoraro@apple.com>
Fix uncaught exception seen in Inspector.
Reviewed by Timothy Hatcher.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype.removeChild):
Add a null check. Everywhere else null checks this member variable
which may not exist yet, this case was missing the check.
2015-04-08 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: Regression: Showing of color swatches no longer works in Details Sidebar
https://bugs.webkit.org/show_bug.cgi?id=143539
Reviewed by Timothy Hatcher.
Fix a regression where due to an ESLint error the whole line instead of just
the variable declaration was removed.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
2015-04-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ES6: Show Symbol properties on Objects
https://bugs.webkit.org/show_bug.cgi?id=141279
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/PropertyDescriptor.js:
(WebInspector.PropertyDescriptor.get symbol):
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.wrappedCallback):
Update new PropertyDescriptor call site.
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement._logSymbolProperty):
Provide a context menu for rows with Symbol properties to log
the Symbol property, and therefore get a reference to it.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.comparePropertyDescriptors):
Better handle symbol properties in sorting.
* UserInterface/Views/TypePropertiesSection.js:
(WebInspector.TypePropertiesSection.PropertyComparator):
Return better value when values are equal.
2015-04-07 Timothy Hatcher <timothy@apple.com>
Web Inspector: HierarchicalPathNavigationItem's additionalClassNames should be _additionalClassNames
https://bugs.webkit.org/show_bug.cgi?id=143487
Reviewed by Joseph Pecoraro.
* UserInterface/Views/HierarchicalPathNavigationItem.js:
(WebInspector.HierarchicalPathNavigationItem.prototype.get _additionalClassNames):
2015-04-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add String/Array "includes" parameter display string
https://bugs.webkit.org/show_bug.cgi?id=143434
Reviewed by Darin Adler.
* UserInterface/Models/NativeFunctionParameters.js:
2015-04-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Regression: Map instances don't expand
https://bugs.webkit.org/show_bug.cgi?id=143428
Reviewed by Brian Burg.
Fix uses of "this" in super() calls. Also fix a style name
that no longer exists and was intended to be inlined.
* UserInterface/Views/IndexedDatabaseObjectStoreTreeElement.js:
(WebInspector.IndexedDatabaseObjectStoreTreeElement):
* UserInterface/Views/IndexedDatabaseTreeElement.js:
(WebInspector.IndexedDatabaseTreeElement):
* UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
(WebInspector.ObjectTreeMapEntryTreeElement):
2015-04-05 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: ObjectTree array index hints are clipped when shown in popover
https://bugs.webkit.org/show_bug.cgi?id=143309
Reviewed by Brian Burg.
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
(.object-tree-array-index .index-name):
Add left margin that equals the width of the expand/collapse icon.
2015-03-31 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: console.error(object) has double disclosure triangles
https://bugs.webkit.org/show_bug.cgi?id=142069
Use inline-block instead of "float: left" or "position: absolute" to
make layout more predictable and easier to understand.
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.outline-disclosure, .outline-disclosure ol):
(.outline-disclosure > li.parent):
(.outline-disclosure > li.parent::before):
(.outline-disclosure li.parent): Deleted.
(.outline-disclosure li.parent::before): Deleted.
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property > .titles):
(.object-tree-property > .disclosure-button):
(.object-tree-property > .icon):
* UserInterface/Views/ObjectTreeView.css:
(.object-tree > :matches(.title, .object-preview)::before):
(.object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
2015-03-31 Jono Wells <jonowells@apple.com>
Web Inspector: REGRESSION: Filtering no longer works
https://bugs.webkit.org/show_bug.cgi?id=143099
Reviewed by Brian Burg.
Add a check for an empty array of filter functions and return true in this case to ensure text
and timeline filters work correctly.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstFilterFunctions):
2015-03-31 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r182186.
https://bugs.webkit.org/show_bug.cgi?id=143270
it crashes all the WebGL tests on the Debug bots (Requested by
dino on #webkit).
Reverted changeset:
"Web Inspector: add 2D/WebGL canvas instrumentation
infrastructure"
https://bugs.webkit.org/show_bug.cgi?id=137278
http://trac.webkit.org/changeset/182186
2015-03-31 Matt Baker <mattbaker@apple.com>
Web Inspector: add 2D/WebGL canvas instrumentation infrastructure
https://bugs.webkit.org/show_bug.cgi?id=137278
Reviewed by Timothy Hatcher.
Added models, views, and controller classes for 2D and WebGL canvas inspection. Each canvas is shown in the
Resources navigation sidebar under its parent frame. Shader programs are displayed as child nodes of
their respective canvas. Canvases will get an associated content view and details sidebar in a later patch
(see https://bugs.webkit.org/show_bug.cgi?id=138941).
Shader programs will get an associated content view for editing shader source in a later patch (see
https://bugs.webkit.org/show_bug.cgi?id=138593). Individual shaders are not shown in the Resource navigation
sidebar, and at this time there are no plans to instrument shaders that aren't attached to a program.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.sidebarPanelForRepresentedObject):
* UserInterface/Base/Test.js:
(WebInspector.loaded):
* UserInterface/Main.html:
* UserInterface/Test.html:
Updated for new canvas/shader program types.
* UserInterface/Controllers/CanvasManager.js: Added.
(WebInspector.CanvasManager):
(WebInspector.CanvasManager.prototype.canvasesForFrame):
(WebInspector.CanvasManager.prototype.canvasAdded.set this):
(WebInspector.CanvasManager.prototype.canvasAdded):
(WebInspector.CanvasManager.prototype.canvasRemoved):
(WebInspector.CanvasManager.programDeleted.get console):
(WebInspector.CanvasManager.prototype.programCreated.get console):
(WebInspector.CanvasManager.prototype.programCreated):
(WebInspector.CanvasManager.prototype._mainResourceDidChange):
Frontend controller for canvases and their shader programs.
* UserInterface/Images/Canvas.svg: Added.
* UserInterface/Images/DocumentGL.png: Added.
* UserInterface/Images/DocumentGL@2x.png: Added.
New art for canvas and shader program tree elements.
* UserInterface/Models/Canvas.js: Added.
(WebInspector.Canvas):
(WebInspector.Canvas.prototype.set fromPayload):
(WebInspector.Canvas.displayNameForContextType):
(WebInspector.Canvas.resetUniqueDisplayNameNumbers):
(WebInspector.Canvas.prototype.get id):
(WebInspector.Canvas.prototype.get parentFrame):
(WebInspector.Canvas.prototype.get name):
(WebInspector.Canvas.prototype.get cssCanvas):
(WebInspector.Canvas.prototype.get contextType):
(WebInspector.Canvas.prototype.get contextAttributes):
(WebInspector.Canvas.prototype.get programs):
(WebInspector.Canvas.prototype.get displayName):
(WebInspector.Canvas.programForId):
(WebInspector.Canvas.get programWasCreated.set this):
(WebInspector.Canvas.prototype.get programWasCreated):
(WebInspector.Canvas.prototype.programWasDeleted):
(WebInspector.Canvas.prototype.saveIdentityToCookie):
Model for DOM or CSS canvas (2D or WebGL).
* UserInterface/Models/ShaderProgram.js: Added.
(WebInspector.ShaderProgram):
(WebInspector.ShaderProgram.prototype.get id):
(WebInspector.ShaderProgram.prototype.get canvas):
(WebInspector.ShaderProgram.prototype.get displayName):
(WebInspector.ShaderProgram.prototype.saveIdentityToCookie):
(WebInspector.ShaderProgram.prototype.updateCanvas):
* UserInterface/Models/WebGLContextAttributes.js: Added.
(WebInspector.WebGLContextAttributes):
(WebInspector.WebGLContextAttributes.fromPayload):
(WebInspector.WebGLContextAttributes.prototype.get alpha):
(WebInspector.WebGLContextAttributes.prototype.get depth):
(WebInspector.WebGLContextAttributes.prototype.get stencil):
(WebInspector.WebGLContextAttributes.prototype.get antialias):
(WebInspector.WebGLContextAttributes.prototype.get premultipliedAlpha):
(WebInspector.WebGLContextAttributes.prototype.get preserveDrawingBuffer):
Model for WebGL canvas context attributes.
* UserInterface/Protocol/CanvasObserver.js: Added.
(WebInspector.CanvasObserver.prototype.canvasAdded):
(WebInspector.CanvasObserver.prototype.canvasRemoved):
(WebInspector.CanvasObserver.prototype.programCreated):
(WebInspector.CanvasObserver.prototype.programDeleted):
(WebInspector.CanvasObserver):
Model for WebGL canvas shader program.
* UserInterface/Views/CanvasTreeElement.js: Added.
(WebInspector.CanvasTreeElement.validateRepresentedObject):
(WebInspector.CanvasTreeElement.countChildren):
(WebInspector.CanvasTreeElement):
(WebInspector.CanvasTreeElement.prototype.onexpand):
(WebInspector.CanvasTreeElement.prototype.oncollapse):
(WebInspector.CanvasTreeElement.prototype.onpopulate):
(WebInspector.CanvasTreeElement.prototype._programWasCreated):
(WebInspector.CanvasTreeElement.prototype._programWasDeleted):
Folderized tree element for canvases and their child objects (shader programs).
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement.prototype.onattach):
(WebInspector.FrameTreeElement.prototype.ondetach):
(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype._canvasesAvailable):
(WebInspector.FrameTreeElement.prototype._canvasWasAdded):
(WebInspector.FrameTreeElement.prototype._canvasWasRemoved):
Updated to support canvas tree elements.
* UserInterface/Views/ResourceIcons.css:
(.canvas-icon .icon):
(.shader-program-icon .icon):
Styles for new canvas and shader program icons.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
Updated for new tree element types.
* UserInterface/Views/ShaderProgramTreeElement.js: Added.
(WebInspector.ShaderProgramTreeElement):
Tree element for shader programs. Shown as children of CanvasTreeElement.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2015-03-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Regression: null shouldn't be expandable in object outline
https://bugs.webkit.org/show_bug.cgi?id=143209
Reviewed by Mark Lam.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
When creating an object tree or formatted value, choose just a formatted value
for "null", since it does not have properties.
2015-03-30 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: Add more ESLint rules that reflect the current state of the code base
https://bugs.webkit.org/show_bug.cgi?id=143212
Reviewed by Timothy Hatcher.
* .eslintrc:
Define some utilities as globals.
Replace "no-comma-dangle" with "comma-dangle". "no-comma-dangle" is deprecated and does not trigger in ESLint v.0.17.1
Set "new-cap" to 0 due to the usage of "WebInspector.UIString".
Disable "no-redeclare" for now and enable it back as soon as block scoped `let` is used.
Disable "dot-notation", "no-shadow" and "no-use-before-define" due to a lot of hits.
Disable "no-inner-declarations" as this is a common pattern to save memory.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
* UserInterface/Models/SourceCodeLocation.js:
It's not necessary to initialize x to undefined.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
* UserInterface/Views/TextEditor.js:
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
Remove unused variable x.
* UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
* UserInterface/Models/PropertyPath.js:
* UserInterface/Views/RadioButtonNavigationItem.js:
* UserInterface/Views/ReplayDashboardView.js:
* UserInterface/Models/ScriptSyntaxTree.js:
* UserInterface/Views/SourceCodeTextEditor.js:
* UserInterface/Views/SourceCodeTreeElement.js:
Remove trailing and unexpected whitespace.
* UserInterface/Views/ProbeSetDataGrid.js:
* UserInterface/Views/TimelineRuler.js:
Add missing semicolon.
* UserInterface/Views/TimelineDataGrid.js:
* UserInterface/Views/TimelineRecordFrame.js:
Add missing var statement.
* UserInterface/Views/TypeTokenView.js:
Remove unnecessary `bind`.
2015-03-28 Saam Barati <saambarati1@gmail.com>
Web Inspector: ES6: Better support for Symbol types in Type Profiler
https://bugs.webkit.org/show_bug.cgi?id=141257
Reviewed by Joseph Pecoraro.
The Web Inspector's visualization of JSC's type profiler
should have support for the Symbol type.
* UserInterface/Models/TypeSet.js:
(WebInspector.TypeSet):
(WebInspector.TypeSet.prototype.get primitiveTypeNames):
* UserInterface/Views/TypeTokenView.css:
TypeTokenView will display Symbol type tokens using the same color that
Symbol values are displayed as formatted values.
(.type-token-symbol):
* UserInterface/Views/TypeTokenView.js:
(WebInspector.TypeTokenView.prototype._displayTypeName):
(WebInspector.TypeTokenView):
2015-03-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Adopt Array.prototype.includes and String.prototype.includes
https://bugs.webkit.org/show_bug.cgi?id=143176
Reviewed by Timothy Hatcher.
* UserInterface/Base/Utilities.js:
Remove our custom implementations of Array/String contains functions.
* UserInterface/Base/Main.js:
(WebInspector._updateContentViewForCurrentNavigationSidebar):
(WebInspector._contentBrowserCurrentContentViewDidChange):
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions.):
(WebInspector.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions):
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
(WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype._extraDomainsActivated):
(WebInspector.FrameResourceManager):
* UserInterface/Controllers/LayerTreeManager.js:
(WebInspector.LayerTreeManager.prototype.layerTreeMutations):
* UserInterface/Controllers/StorageManager.js:
(WebInspector.StorageManager.prototype._extraDomainsActivated):
(WebInspector.StorageManager):
* UserInterface/Models/Branch.js:
(WebInspector.Branch.prototype.addRevision):
* UserInterface/Models/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.get matchedSelectors):
* UserInterface/Models/CSSStyleDeclaration.js:
* UserInterface/Models/Color.js:
(WebInspector.Color.fromString):
* UserInterface/Models/DOMNode.js:
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes):
(WebInspector.CSSStyleDetailsSidebarPanel):
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._updateContentViewSelectionPathNavigationItem):
* UserInterface/Views/DOMTreeElement.js:
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._resourceAdded):
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.addClassName):
(WebInspector.GeneralTreeElement.prototype.removeClassName):
* UserInterface/Views/LegacyConsoleMessageImpl.js:
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._updateMessagesSelection):
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype._findNavigationItem):
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.findSidebarPanel):
Replace contains with includes where appropriate.
2015-03-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Tweak node styles in ObjectTreeView
https://bugs.webkit.org/show_bug.cgi?id=143179
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.console-group-messages .outline-disclosure.single-node li):
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline.single-node li):
This style makes sense as a generic DOMTreeOutline style.
* UserInterface/Views/FormattedValue.css:
(.formatted-node > .dom-tree-outline):
(.formatted-node > .dom-tree-outline ol):
(.formatted-node > .dom-tree-outline li.hovered:not(.selected) .selection):
Style for nodes in ObjectTreeView.
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
(.object-tree-array-index .index-value .formatted-node .dom-tree-outline):
Styles for node in Array value.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForNode):
Address the FIXME.
2015-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: TypeProfiler doesn't work on files with ES6 Class Syntax
https://bugs.webkit.org/show_bug.cgi?id=143169
Reviewed by Timothy Hatcher.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
Add basic support for Esprima's ES6 Class/Method/Spread nodes.
There are more ES6 features that should be covered, but this
covers all the features we use in Web Inspector source, so
Type Profiling can work with our own source.
Treat Methods like getters / setters right now because their
syntax is very similiar to getters/setters. There is a bug
handling generic ES6 cleanup to better name things.
2015-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught TDZ Exception with Type Profiler
https://bugs.webkit.org/show_bug.cgi?id=143167
Reviewed by Timothy Hatcher.
* UserInterface/Views/TypePropertiesSection.js:
(WebInspector.TypePropertyTreeElement):
Avoid TDZ issue by not using "this" before "super".
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
Better handle unsupported node types by returning null and avoiding an exception.
* UserInterface/Views/SourceCodeTextEditor.js:
Fix an issue I saw once where the sourceCode was a Script itself.
2015-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception while debugging, after performSearch callback line does not exists
https://bugs.webkit.org/show_bug.cgi?id=143172
Reviewed by Timothy Hatcher.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.customPerformSearch.searchResultCallback):
(WebInspector.SourceCodeTextEditor.prototype.customPerformSearch):
Gracefully handle if the line does not exist.
2015-03-27 Ryosuke Niwa <rniwa@webkit.org>
ES6 Classes: Runtime error in JIT'd class calling super() with arguments and superclass has default constructor
https://bugs.webkit.org/show_bug.cgi?id=142862
Reviewed by Benjamin Poulain.
Removed the workaround for the bug since it has been fixed by r181993.
* UserInterface/Base/Object.js:
* UserInterface/Models/DebuggerDashboard.js:
* UserInterface/Models/NetworkTimeline.js:
* UserInterface/Models/ReplayDashboard.js:
* UserInterface/Models/Revision.js:
2015-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Setter Icon for ObjectTreeView
https://bugs.webkit.org/show_bug.cgi?id=143129
Reviewed by Timothy Hatcher.
* UserInterface/Images/Pencil.svg: Added.
New icon used to indicate setter properties.
* Localizations/en.lproj/localizedStrings.js:
Remove "Read only" and replace with "Setter".
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeArrayIndexTreeElement):
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
Update cases that created setter / getter elements.
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createInteractiveGetterElement): Deleted.
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property :matches(.getter, .setter)):
(.object-tree-property .spacer):
(.object-tree-property .getter):
(.object-tree-property .setter):
(.object-tree-property .getter + .setter):
New setter element and styles. Setters are always non-interactable right now.
2015-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exceptions with Context Menus
https://bugs.webkit.org/show_bug.cgi?id=143162
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.contextMenuCleared):
2015-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Disable editing in Metrics section while it is not working
https://bugs.webkit.org/show_bug.cgi?id=143165
Reviewed by Timothy Hatcher.
* UserInterface/Views/BoxModelDetailsSectionRow.js:
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createElement):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput):
Disable double click to edit while it is not working. The value setter
and add methods no longer exist.
2015-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exceptions evaluating code while paused
https://bugs.webkit.org/show_bug.cgi?id=143163
Reviewed by Timothy Hatcher.
* UserInterface/Models/CallFrame.js:
(WebInspector.CallFrame.prototype.collectScopeChainVariableNames):
We define a property named "valueForCaseInsensitiveKey" on Object.prototype
that is readonly. So we should avoid Object.prototype when building our
result list. This should probably move to a Map object eventually.
2015-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused testing properties
https://bugs.webkit.org/show_bug.cgi?id=143156
Reviewed by Timothy Hatcher.
* UserInterface/Views/LegacyConsoleMessageImpl.js:
(WebInspector.LegacyConsoleMessageImpl.prototype._formatMessage):
* UserInterface/Views/Section.js:
(WebInspector.Section.prototype.get subtitleAsTextForTest): Deleted.
2015-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exception: TypeError: Attempted to assign to readonly - DOMNodeDetailsSidebarPanel.js
https://bugs.webkit.org/show_bug.cgi?id=143139
Reviewed by Timothy Hatcher.
DataGridNodes do not have a selectable setter. TreeElements do.
DataGridNodes are always selectable. Match current behavior by
removing all instances of attempting to set the selectability
which would, under strict mode, result in an error.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype._populateDataGrid):
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype._rebuildTable):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._createAttributesDataGrid):
(WebInspector.DOMNodeDetailsSidebarPanel):
* UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView.prototype.reset):
* UserInterface/Views/DataGrid.js:
2015-03-26 Timothy Hatcher <timothy@apple.com>
Web Inspector: Convert more misc View classes to ES6
https://bugs.webkit.org/show_bug.cgi?id=143128
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CompletionSuggestionsView.js:
* UserInterface/Views/ComputedStyleDetailsPanel.js:
* UserInterface/Views/DashboardContainerView.js:
* UserInterface/Views/DashboardView.js:
* UserInterface/Views/DebuggerDashboardView.js:
* UserInterface/Views/DefaultDashboardView.js:
* UserInterface/Views/FilterBarButton.js:
* UserInterface/Views/MetricsStyleDetailsPanel.js:
* UserInterface/Views/ObjectPreviewView.js:
* UserInterface/Views/ObjectTreeView.js:
* UserInterface/Views/QuickConsole.js:
* UserInterface/Views/ReplayDashboardView.js:
* UserInterface/Views/RulesStyleDetailsPanel.js:
* UserInterface/Views/StyleDetailsPanel.js:
Converted to ES6 classes.
2015-03-26 Timothy Hatcher <timothy@apple.com>
Web Inspector: Convert TextEditor classes to ES6
https://bugs.webkit.org/show_bug.cgi?id=143127
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
Removed a comment about const, we can't use it in strict mode / classes.
* UserInterface/Views/SourceCodeTextEditor.js:
* UserInterface/Views/TextEditor.js:
Converted to ES6 classes.
2015-03-26 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: clicking on console record while REPL is focused does not select a new record
https://bugs.webkit.org/show_bug.cgi?id=142171
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._mousedown):
2015-03-26 Andres Gomez <agomez@igalia.com>
[GTK] Web Inspector: New Images for Console Types
https://bugs.webkit.org/show_bug.cgi?id=142301
Reviewed by Joseph Pecoraro.
Add more free icons and for the Web Inspector in GTK+.
* UserInterface/Images/gtk/Eye.svg: Added.
* UserInterface/Images/gtk/Frames.png: Added.
* UserInterface/Images/gtk/Frames@2x.png: Added.
* UserInterface/Images/gtk/FramesLarge.png: Added.
* UserInterface/Images/gtk/FramesLarge@2x.png: Added.
* UserInterface/Images/gtk/Reload.svg:
* UserInterface/Images/gtk/ReloadFull.svg: Added.
* UserInterface/Images/gtk/TypeBoolean.svg: Added.
* UserInterface/Images/gtk/TypeNull.svg: Added.
* UserInterface/Images/gtk/TypeNumber.svg: Added.
* UserInterface/Images/gtk/TypeObject.svg: Added.
* UserInterface/Images/gtk/TypeRegex.svg: Added.
* UserInterface/Images/gtk/TypeString.svg: Added.
* UserInterface/Images/gtk/TypeSymbol.svg: Added.
* UserInterface/Images/gtk/TypeUndefined.svg: Added.
2015-03-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ES6: Provide a better view for Classes in the console
https://bugs.webkit.org/show_bug.cgi?id=142999
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.get classPrototype):
(WebInspector.RemoteObject.prototype.isClass):
Update our RemoteObject model object for the new subtype
and its unique properties.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForTypesAndValue):
(WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
Better handle "class", as it is a new function subtype.
* UserInterface/Views/LegacyConsoleMessageImpl.js:
(WebInspector.LegacyConsoleMessageImpl):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsObject):
Format a "class" with ObjectTreeView.
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property .getter.disabled):
(.object-tree-property .getter:not(.disabled):hover):
(.object-tree-property .getter:hover): Deleted.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
In ClassAPI mode, you cannot invoke a getter since we don't have
an instance to invoke it on. So disable interactivity with getters.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView):
Update the modes to include an API mode for instances and classes.
(WebInspector.ObjectTreeView.defaultModeForObject):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
Simplify ObjectTree construction to automatically determine mode based
on the RemoteObject that was provided.
* Localizations/en.lproj/localizedStrings.js:
"Getter" tooltip.
2015-03-26 Timothy Hatcher <timothy@apple.com>
Web Inspector: Convert TreeElement classes to ES6
https://bugs.webkit.org/show_bug.cgi?id=143111
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ApplicationCacheFrameTreeElement.js:
* UserInterface/Views/ApplicationCacheManifestTreeElement.js:
* UserInterface/Views/BreakpointTreeElement.js:
* UserInterface/Views/CallFrameTreeElement.js:
* UserInterface/Views/ContentFlowTreeElement.js:
* UserInterface/Views/CookieStorageTreeElement.js:
* UserInterface/Views/DOMStorageTreeElement.js:
* UserInterface/Views/DOMTreeElement.js:
* UserInterface/Views/DOMTreeOutline.js:
* UserInterface/Views/DatabaseHostTreeElement.js:
* UserInterface/Views/DatabaseTableTreeElement.js:
* UserInterface/Views/DatabaseTreeElement.js:
* UserInterface/Views/FolderTreeElement.js:
* UserInterface/Views/FolderizedTreeElement.js:
* UserInterface/Views/FrameTreeElement.js:
* UserInterface/Views/GeneralTreeElement.js:
* UserInterface/Views/IndexedDatabaseHostTreeElement.js:
* UserInterface/Views/IndexedDatabaseObjectStoreIndexTreeElement.js:
* UserInterface/Views/IndexedDatabaseObjectStoreTreeElement.js:
* UserInterface/Views/IndexedDatabaseTreeElement.js:
* UserInterface/Views/LegacyConsoleMessageImpl.js:
* UserInterface/Views/LogTreeElement.js:
* UserInterface/Views/NavigationSidebarPanel.js:
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
* UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
* UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
* UserInterface/Views/ObjectTreeView.js:
* UserInterface/Views/ProfileNodeTreeElement.js:
* UserInterface/Views/PropertiesSection.js:
* UserInterface/Views/ResourceTreeElement.js:
* UserInterface/Views/ScriptTreeElement.js:
* UserInterface/Views/SearchResultTreeElement.js:
* UserInterface/Views/SourceCodeTimelineTreeElement.js:
* UserInterface/Views/SourceCodeTreeElement.js:
* UserInterface/Views/SourceMapResourceTreeElement.js:
* UserInterface/Views/StorageTreeElement.js:
* UserInterface/Views/TimelineDataGrid.js:
* UserInterface/Views/TimelineRecordTreeElement.js:
* UserInterface/Views/TreeElementStatusButton.js:
* UserInterface/Views/TreeOutline.js:
* UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
* UserInterface/Views/TypePropertiesSection.js:
Converted to ES6 classes where possible.
2015-03-26 Timothy Hatcher <timothy@apple.com>
Web Inspector: Convert sidebar classes to ES6
https://bugs.webkit.org/show_bug.cgi?id=143108
Reviewed by Joseph Pecoraro.
* UserInterface/Models/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut._handleKeyDown): Continue if callback is null.
(WebInspector.KeyboardShortcut.prototype.set callback): Added.
* UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
* UserInterface/Views/DOMDetailsSidebarPanel.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
* UserInterface/Views/DebuggerSidebarPanel.js:
* UserInterface/Views/DetailsSidebarPanel.js:
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
* UserInterface/Views/NavigationSidebarPanel.js:
* UserInterface/Views/ProbeDetailsSidebarPanel.js:
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
* UserInterface/Views/ResourceSidebarPanel.js:
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
* UserInterface/Views/Sidebar.js:
* UserInterface/Views/SidebarPanel.js:
* UserInterface/Views/TimelineSidebarPanel.js:
Converted to ES6 classes.
2015-03-26 Timothy Hatcher <timothy@apple.com>
Web Inspector: Convert some View classes to ES6 classes
https://bugs.webkit.org/show_bug.cgi?id=143107
Reviewed by Joseph Pecoraro.
* UserInterface/Protocol/InspectorBackend.js:
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.contextMenuItemSelected): Updated to the right function path.
* UserInterface/Views/BoxModelDetailsSectionRow.js:
* UserInterface/Views/BreakpointActionView.js:
* UserInterface/Views/CodeMirrorAdditions.js:
* UserInterface/Views/ColorPicker.js:
* UserInterface/Views/ColorWheel.js:
* UserInterface/Views/ContextMenu.js:
* UserInterface/Views/DOMTreeElementPathComponent.js:
* UserInterface/Views/DetailsSection.js:
* UserInterface/Views/DetailsSectionDataGridRow.js:
* UserInterface/Views/DetailsSectionGroup.js:
* UserInterface/Views/DetailsSectionPropertiesRow.js:
* UserInterface/Views/DetailsSectionRow.js:
* UserInterface/Views/DetailsSectionSimpleRow.js:
* UserInterface/Views/DetailsSectionTextRow.js:
* UserInterface/Views/EditingSupport.js:
* UserInterface/Views/EventListenerSection.js:
* UserInterface/Views/EventListenerSectionGroup.js:
* UserInterface/Views/FilterBar.js:
* UserInterface/Views/FindBanner.js:
* UserInterface/Views/GeneralTreeElementPathComponent.js:
* UserInterface/Views/GoToLineDialog.js:
* UserInterface/Views/GradientSlider.js:
* UserInterface/Views/HierarchicalPathComponent.js:
* UserInterface/Views/HierarchicalPathNavigationItem.js:
* UserInterface/Views/HoverMenu.js:
* UserInterface/Views/Popover.js:
* UserInterface/Views/ProbeSetDetailsSection.js:
* UserInterface/Views/ResourceTimelineDataGridNodePathComponent.js:
* UserInterface/Views/SearchBar.js:
* UserInterface/Views/Slider.js:
Converted to ES6 classes.
2015-03-26 Timothy Hatcher <timothy@apple.com>
Web Inspector: Convert Base and Protocol files to ES6 classes
https://bugs.webkit.org/show_bug.cgi?id=143106
Reviewed by Joseph Pecoraro.
* UserInterface/Base/EventListener.js:
* UserInterface/Base/EventListenerSet.js:
* UserInterface/Protocol/ApplicationCacheObserver.js:
* UserInterface/Protocol/CSSObserver.js:
* UserInterface/Protocol/ConsoleObserver.js:
* UserInterface/Protocol/DOMObserver.js:
* UserInterface/Protocol/DOMStorageObserver.js:
* UserInterface/Protocol/DatabaseObserver.js:
* UserInterface/Protocol/DebuggerObserver.js:
* UserInterface/Protocol/InspectorBackend.js:
* UserInterface/Protocol/InspectorObserver.js:
* UserInterface/Protocol/LayerTreeObserver.js:
* UserInterface/Protocol/MessageDispatcher.js:
* UserInterface/Protocol/NetworkObserver.js:
* UserInterface/Protocol/PageObserver.js:
* UserInterface/Protocol/RemoteObject.js:
* UserInterface/Protocol/ReplayObserver.js:
* UserInterface/Protocol/RuntimeObserver.js:
* UserInterface/Protocol/TimelineObserver.js:
Converted to ES6 classes where possible.
2015-03-25 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: Add ESLint "Disallow Undeclared Variables" rule and enable ES6 env
https://bugs.webkit.org/show_bug.cgi?id=143062
Reviewed by Joseph Pecoraro.
ESLint: Add support for es6 environment and "no-undef" rule which disallows
use of undeclared variables unless mentioned in a /*global */ block.
* .eslintrc:
2015-03-25 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: console.table with source code location look poor
https://bugs.webkit.org/show_bug.cgi?id=142068
Reviewed by Timothy Hatcher.
* UserInterface/Views/LegacyConsoleMessageImpl.js:
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
Remove dataGridContainer as it is an unnecessary span element.
* UserInterface/Views/LogContentView.css:
(.console-messages .data-grid):
2015-03-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: IndexedDB / Databases ContentViews should have refresh button
https://bugs.webkit.org/show_bug.cgi?id=142996
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
Remove unused strings.
* UserInterface/Images/ReloadFull.svg: Added.
This is the same as Reload.svg but adjusted to fill the viewbox edge to edge.
The only change is to the viewbox.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.release):
Some clients would call release not knowing if this was an object or not.
Act gracefully in the case that this was not an object that needs a
remote release.
* UserInterface/Views/DatabaseTableContentView.js:
(WebInspector.DatabaseTableContentView):
(WebInspector.DatabaseTableContentView.prototype.get navigationItems):
(WebInspector.DatabaseTableContentView.prototype._queryError):
(WebInspector.DatabaseTableContentView.prototype._refreshButtonClicked):
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
(WebInspector.IndexedDatabaseObjectStoreContentView):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype.get navigationItems):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._refreshButtonClicked):
Give the storage content views a refresh button to reload the content.
2015-03-24 Joseph Pecoraro <pecoraro@apple.com>
Setter should have a single formal parameter, Getter no parameters
https://bugs.webkit.org/show_bug.cgi?id=142903
Reviewed by Geoffrey Garen.
* UserInterface/Views/GradientSlider.js:
(WebInspector.GradientSliderKnob.prototype.get wellColor):
Fix a getter that was incorrectly taking a parameter.
2015-03-24 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: REGRESSION (r179286): ReferenceError: Can't find variable: selector
https://bugs.webkit.org/show_bug.cgi?id=143022
Reviewed by Timothy Hatcher.
Fix a regression where a missing variable statement causes a ReferenceError.
* UserInterface/Models/DOMNodeStyles.js:
2015-03-24 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: Adopt ES6 Class Syntax for CSSStyleDeclarationTextEditor
https://bugs.webkit.org/show_bug.cgi?id=143019
Reviewed by Timothy Hatcher.
- Convert CSSStyleDeclarationTextEditor to use class syntax
- Convert constructor functions to constructor methods
- Convert "constructor.method" to class static methods where possible
- Convert all methods to method syntax, eliminate commas between methods
- Convert all superclass calls in classes to use "super"
- Removed FIXME from WebInspector.Object subclasses, added calls to super.
- Fixed strict mode issues now that classes enforce strict mode (see below).
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
Many function declarations modified.
2015-03-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Workaround issue causing uncaught exception in Inspector
https://bugs.webkit.org/show_bug.cgi?id=143015
Reviewed by Timothy Hatcher.
Workaround <https://webkit.org/b/143012> and avoid early returning in constructors.
* UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.class.ReplayManager):
2015-03-06 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: unify resizer implementations used by DataGrid and Sidebar
https://bugs.webkit.org/show_bug.cgi?id=142407
Reviewed by Timothy Hatcher.
Both of these implementations do the same thing slightly differently. Unify the code
and use the "glass pane" technique to preserve cursor while dragging over links or text.
This patch implements vertical and horizontal rule orientations. Further refactorings
to use this class may need to add "Indeterminate" orientation to support moving the inspector
window by its fake toolbar element.
* UserInterface/Main.html:
* UserInterface/Views/DataGrid.css:
(.data-grid .resizer):
(.data-grid-resizer): Deleted.
* UserInterface/Views/DataGrid.js: Store Resizer instances rather than resizer elements.
Use symbols to secretly store neighbor column ids on the resizer objects. Stop using
WebInspector.elementDragStart, as I would like to deprecate it in favor of Resizer instances.
(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype._positionResizerElements):
(WebInspector.DataGrid.prototype.resizerDragStarted):
(WebInspector.DataGrid.prototype.resizerDragging):
(WebInspector.DataGrid.prototype.resizerDragEnded):
(WebInspector.DataGrid.prototype._startResizerDragging): Deleted.
(WebInspector.DataGrid.prototype._resizerDragging): Deleted.
(WebInspector.DataGrid.prototype._endResizerDragging): Deleted.
* UserInterface/Views/Resizer.css:
(.resizer):
(.resizer.vertical-rule):
(.resizer.horizontal-rule):
(.glass-pane-for-drag):
* UserInterface/Views/Resizer.js: Added.
(WebInspector.Resizer):
(WebInspector.Resizer.prototype.get element):
(WebInspector.Resizer.prototype.get orientation):
(WebInspector.Resizer.prototype.get initialPosition):
(WebInspector.Resizer.prototype._currentPosition):
(WebInspector.Resizer.prototype._resizerMouseDown):
(WebInspector.Resizer.prototype._resizerMouseMoved):
(WebInspector.Resizer.prototype._resizerMouseUp):
* UserInterface/Views/Sidebar.css:
(.sidebar > .resizer): Deleted.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar):
(WebInspector.Sidebar.prototype.resizerDragStarted):
(WebInspector.Sidebar.prototype.resizerDragging):
(WebInspector.Sidebar.prototype.resizerDragEnded):
(WebInspector.Sidebar.prototype._navigationItemSelected):
(WebInspector.Sidebar.prototype._resizerMouseDown): Deleted.
(WebInspector.Sidebar.prototype._resizerMouseMoved): Deleted.
(WebInspector.Sidebar.prototype._resizerMouseUp): Deleted.
2015-03-17 Jono Wells <jonowells@apple.com>
Web Inspector: Debugger sidebar should have a filter button for breakpoints
https://bugs.webkit.org/show_bug.cgi?id=142779
Reviewed by Timothy Hatcher.
Add the infrastructure for activation filter buttons that can appear next to the text filters at the bottom
of any navigation sidebar panel. These filter bar buttons have defined within them a function that returns
a boolean value that indicates whether the input, typically a tree element, should be filtered or not.
This infrastructure is then used to create a filter for the debugger sidebar that, when applied, only shows
scripts that have breakpoints set on them.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Main.html: Files added.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.showResourcesWithChildrenOnlyFilterFunction):
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint): Drive-by fix.
Add filter button to filter bar.
* UserInterface/Views/FilterBar.css:
(.filter-bar > .navigation-bar > .item):
Style filter button.
* UserInterface/Views/FilterBar.js:
(WebInspector.FilterBar):
(WebInspector.FilterBar.prototype.get filters):
(WebInspector.FilterBar.prototype.set filters):
(WebInspector.FilterBar.prototype.hasActiveFilters):
(WebInspector.FilterBar.prototype._handleFilterChanged):
(WebInspector.FilterBar.prototype._inputFieldChanged): Deleted.
Create space for filter bar buttons and set up event handlers to deal with them.
* UserInterface/Views/FilterBarButton.js: Copied from Source/WebInspectorUI/UserInterface/Views/FilterBar.css.
(WebInspector.FilterBarButton):
(WebInspector.FilterBarButton.prototype.get filterFunction):
(WebInspector.FilterBarButton.prototype.toggle):
Create class for a filter bar button that stores a filter function.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstFilterFunctions):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
(WebInspector.NavigationSidebarPanel.prototype._filterDidChange):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._textFilterDidChange): Deleted.
Add functionality to support button filters and process their corresponding functions correctly when filtering.
2015-03-22 Matt Baker <mattbaker@apple.com>
Web Inspector: Adopt ES6 Class Syntax for all Controller Objects
https://bugs.webkit.org/show_bug.cgi?id=142890
Reviewed by Joseph Pecoraro.
- Convert all UserInterface/Controllers objects to classes
- Convert constructor functions to constructor methods
- Convert "constructor.method" to class static methods where possible
- Convert all methods to method syntax, eliminate commas between methods
- Convert all superclass calls in classes to use "super"
- Removed FIXME from WebInspector.Object subclasses, added calls to super.
- Fixed strict mode issues now that classes enforce strict mode (see below).
* Tools/PrettyPrinting/Formatter.js:
* Tools/PrettyPrinting/FormatterContentBuilder.js:
Updated to match corresponding files in UserInterface/Controllers.
* UserInterface/Controllers/*.js:
Many files modified mostly mechanically (regex find-replace).
* UserInterface/Controllers/CodeMirrorCompletionController.js:
* UserInterface/Controllers/FormatterContentBuilder.js:
Replaced const usage with var. Use of const is prohibited in strict mode, which is implicit within a class.
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
* UserInterface/Controllers/DOMTreeManager.js:
Moved function declarations out of if statements. Strict mode does not allow function declarations in a lexically nested statement.
2015-03-20 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Fast typing lags in the Styles sidebar or Console
https://bugs.webkit.org/show_bug.cgi?id=142919
Asynchronous autocomplete causes a race condition in CodeMirror,
which results in skipped characters in while typing. Completing immediately
fixes the issues.
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController.prototype.hideCompletions):
(WebInspector.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
(WebInspector.CodeMirrorCompletionController.prototype.):
2015-03-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Adopt ES6 Class Syntax for all Model Objects
https://bugs.webkit.org/show_bug.cgi?id=142858
Reviewed by Timothy Hatcher.
- Convert WebInspector.Object to a class
- Convert all UserInterface/Models objects to classes
- Convert constructor functions to constructor methods
- Convert "constructor.method" to class static methods where possible
- Convert all methods to method syntax, eliminate commas between methods
- Convert all superclass calls in classes to use "super"
- Workaround <https://webkit.org/b/142862> and add empty constructors
- Added "deprecated" prefix to addConstructorFunctions, since it is not needed with classes
- Added many missing calls to super in constructors
- Added FIXME to WebInspector.Object subclasses not yet moved to classes.
- Cleaned up SourceMap global properties, moved to constructor instead of prototype
- Cleaned up Timeline factory constructor to static "create" factory method
- Fixed any style issues noticed in the mass edit
- Fixed strict mode issues now that classes enforce strict mode
- RunLoopTimelineRecord.js was missing a `var` for a local variable
- "const" is not allowed, converted to "var"
- "arguments.callee" is not allowed in strict mode
* UserInterface/**/*.js:
Many files modified mostly mechanically.
2015-03-19 Jono Wells <jonowells@apple.com>
Web Inspector: Debugger sidebar header should say "Scripts" instead of "Breakpoints", appear only on pause
https://bugs.webkit.org/show_bug.cgi?id=142847
Reviewed by Timothy Hatcher.
Add a `paused` class on the debugger sidebar panel. Use that class to adjust the sidebar styles so that, when
the debugger is not paused: there is no header for the scripts section, there is no border beneath the scripts
section, and the scripts section cannot be collapsed (which could be done while the debugger is paused). The
header has changed to say "Scripts" instead of "Breakpoints" when it is showing.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .details-section.scripts):
(.sidebar > .panel.navigation.debugger .details-section.scripts .header):
(.sidebar > .panel.navigation.debugger .details-section.scripts.collapsed > .content):
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts):
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts .header):
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts.collapsed > .content):
Adjust styles to hide header and border.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidResume):
Add a `paused` class to the debugger sidebar when it is paused.
2015-03-19 Jono Wells <jonowells@apple.com>
Web Inspector: FilterBar for debugger sidebar hides breakpoints for displayed resources
https://bugs.webkit.org/show_bug.cgi?id=142777
Reviewed by Brian Burg.
Typing into the text input on the filter bar for the debugger sidebar no longer incorrectly hides the
breakpoints for scripts that match the text input.
* UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype.get filterableData): Added.
2015-03-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Replace last use of ObjectPropertiesSection with ObjectTreeView
https://bugs.webkit.org/show_bug.cgi?id=142834
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties):
Use properties only ObjectTreeView instead of ObjectPropertiesSection.
This doesn't fix the functionality issues, but fixes the appearance.
* UserInterface/Views/DetailsSection.css:
(.details-section > .content > .group:first-child > .row.simple:first-child > *): Deleted.
(body.mac-platform.legacy .details-section > .content > .group:first-child > .row.simple:first-child > *): Deleted.
(.details-section > .content > .group > .row.properties:not(.empty)): Deleted.
(body.mac-platform.legacy .details-section > .content > .group > .row.properties:not(.empty)): Deleted.
Re-add back the small padding at the top of sections. This actually
broke padding in a few sections (Event Listeners) at the expense
of eliminating a few pixels of whitespace at the top of other sections.
We should focus on addressing the extra whitespace separately.
* UserInterface/Main.html:
* UserInterface/Views/ObjectPropertiesSection.js: Removed.
* UserInterface/Views/TypePropertiesSection.js:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Remove new unused class.
2015-03-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Debugger Popovers and Probes should use FormattedValue/ObjectTreeView instead of Custom/ObjectPropertiesSection
https://bugs.webkit.org/show_bug.cgi?id=142830
Reviewed by Timothy Hatcher.
* UserInterface/Views/ProbeSetDataGrid.css:
(.details-section.probe-set .data-grid .object-tree > :matches(.title, .object-preview)::before):
Another line-height fix for object tree disclosure triangles.
* UserInterface/Views/ProbeSetDataGridNode.js:
(WebInspector.ProbeSetDataGridNode.prototype.createCellContent):
Create an ObjectTree / FormattedValue for the RemoteObject.
* UserInterface/Views/SourceCodeTextEditor.css:
(.popover .debugger-popover-content > .title):
(.popover .debugger-popover-content > .body):
(.popover .debugger-popover-content.function > .body):
Be more specific and don't accidentally style ".title" within the body.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
Show a properties only ObjectTree instead of an ObjectPropertiesSection.
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForString): Deleted.
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp): Deleted.
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForNumber): Deleted.
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForBoolean): Deleted.
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForNull): Deleted.
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForUndefined): Deleted.
(WebInspector.SourceCodeTextEditor.prototype._showPopoverWithFormattedValue):
Reduce most of these to a single popover for formatted values.
2015-03-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Scopes sidebar should use new ObjectTreeView and not ObjectPropertiesSection
https://bugs.webkit.org/show_bug.cgi?id=142808
Reviewed by Timothy Hatcher.
* UserInterface/Models/PropertyPath.js:
(WebInspector.PropertyPath):
(WebInspector.PropertyPath.emptyPropertyPathForScope):
Allow a special property empty path for "Scopes". This way for a
"<scopeObject>.property" we can show just the tooltip "property".
* UserInterface/Views/ObjectTreeView.css:
(.object-tree.properties-only > :matches(.title, .object-preview)):
(.object-tree.properties-only .object-tree-outline):
(.object-tree.properties-only .object-tree-property .property-name):
Tweak styles for only properties view, which won't have a top-level
preview and doesn't fade out enumerable properties.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype.get treeOutline):
Access the TreeOutline.
(WebInspector.ObjectTreeView.prototype.showOnlyProperties):
Properties only view modifies the display slightly.
(WebInspector.ObjectTreeView.prototype.appendExtraPropertyDescriptor):
(WebInspector.ObjectTreeView.prototype._updateProperties):
Allow the client to add its own property descriptors to display
as a property in this ObjectTreeView.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
Switch to using an ObjectTreeView.
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._propertyPathIdentifierForTreeElement):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeAddHandler):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler):
Keep track of what properties were expanded so we can auto-expand
them again when the sidebar refreshes.
* UserInterface/Main.html:
* UserInterface/Views/ScopeVariableTreeElement.js: Removed.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Remove the now unused ScopeVariableTreeElement.js.
2015-03-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Debugger Sidebar Icons Misaligned
https://bugs.webkit.org/show_bug.cgi?id=142654
Reviewed by Timothy Hatcher.
The debugger sidebar content was accidentally 1px too small. The
TreeOutline being inside of a .detail-section was getting a smaller
font-size. We should just have the normal font-size for the
debugger navigation sidebar. This matches the Resources sidebar
in the TreeOutline, and icons line up better.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .details-section):
2015-03-17 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: Removal of multiline completion hint broken in Details sidebar
https://bugs.webkit.org/show_bug.cgi?id=142796
Reviewed by Joseph Pecoraro.
Prioritize CodeMirrorCompletionController over CSSStyleDeclarationTextEditor.
Both classes control the current CodeMirror instance of the Details Sidebar.
This change prevents possible race conditions during complete or delete-complete phases,
especially during operations on multiple styles in one line.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor):
2015-03-17 Matt Baker <mattbaker@apple.com>
Web Inspector: Show rendering frames (and FPS) in Layout and Rendering timeline
https://bugs.webkit.org/show_bug.cgi?id=142029
Reviewed by Timothy Hatcher.
Add UI for showing runloop records and their child records as a frame histogram,
with the recording time on the x-axis and the frame duration on the y-axis. Each frame
is comprised of colored regions representing the time spent in various activities (script,
layout, etc).
Eventually the Frames timeline will replace the Layout & Rendering timeline. Until the views
for the new timeline are finalized the Layout & Rendering timeline will remain in place.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
New string and files.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded):
(WebInspector.TimelineManager.prototype.pageDidLoad):
(WebInspector.TimelineManager.prototype._processNestedRecords):
(WebInspector.TimelineManager.prototype._processRecord):
(WebInspector.TimelineManager.prototype._processEvent):
(WebInspector.TimelineManager.prototype._loadNewRecording):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Deleted.
Added support for new runloop record type and nested record handling.
* UserInterface/Images/Frames.png: Added.
* UserInterface/Images/Frames@2x.png: Added.
* UserInterface/Images/FramesLarge.png: Added.
* UserInterface/Images/FramesLarge@2x.png: Added.
New images for runloop timeline overview graph and runloop tree records.
* UserInterface/Models/RunLoopTimelineRecord.js: Added.
(WebInspector.RunLoopTimelineRecord):
(WebInspector.RunLoopTimelineRecord.prototype.get children):
(WebInspector.RunLoopTimelineRecord.prototype.get durationRemainder):
(WebInspector.RunLoopTimelineRecord.prototype.durationForRecords.get var):
Extends TimelineRecord to add child records and subframe duration details.
* UserInterface/Models/Timeline.js:
(WebInspector.Timeline.prototype.get displayName):
(WebInspector.Timeline.prototype.get iconClassName):
New UI strings and icons.
* UserInterface/Models/TimelineRecord.js:
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
Added support for new runloop record type.
* UserInterface/Views/RunLoopTimelineOverviewGraph.css: Added.
(.timeline-overview-graph.runloop > .divider):
(.timeline-overview-graph.runloop > .divider > span):
New styles for runloop timeline graph.
* UserInterface/Views/RunLoopTimelineOverviewGraph.js: Added.
(WebInspector.RunLoopTimelineOverviewGraph):
(WebInspector.RunLoopTimelineOverviewGraph.prototype.updateLayout.createFrame):
(WebInspector.RunLoopTimelineOverviewGraph.prototype.get graphHeightSeconds.this):
(WebInspector.RunLoopTimelineOverviewGraph.prototype.get graphHeightSeconds):
(WebInspector.RunLoopTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):
New overview graph for displaying TimelineRecordFrames and horizontal frame budget dividers.
* UserInterface/Views/TimelineIcons.css:
(.runloop-icon .icon):
(.runloop-icon.large .icon):
(.runloop-record .icon):
* UserInterface/Views/TimelineSidebarPanel.js:
New runloop icon styles.
* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
Updated factory to support creation of the new overview graph.
* UserInterface/Views/TimelineRecordFrame.css: Added.
(.timeline-record-frame):
(.timeline-record-frame > .frame):
(.timeline-record-frame > .dropped):
(.timeline-record-frame > .frame > .duration):
(.timeline-record-frame > .frame > .duration:first-child):
(.timeline-record-frame > .frame > .duration:last-child):
(.timeline-record-frame > .frame > .duration.timeline-record-type-network):
(.timeline-record-frame > .frame > .duration.timeline-record-type-layout):
(.timeline-record-frame > .frame > .duration.timeline-record-type-script):
New styles for frame bars in the runloop timeline graph.
* UserInterface/Views/TimelineRecordFrame.js: Added.
(WebInspector.TimelineRecordFrame):
(WebInspector.TimelineRecordFrame.createCombinedFrames):
(WebInspector.TimelineRecordFrame.prototype.get element):
(WebInspector.TimelineRecordFrame.prototype.get duration):
(WebInspector.TimelineRecordFrame.prototype.get records):
(WebInspector.TimelineRecordFrame.prototype.set records):
(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
New view representing a single frame within the runloop overview graph.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
New files.
2015-03-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add more DOM Native Function parameter strings
https://bugs.webkit.org/show_bug.cgi?id=142760
Reviewed by Timothy Hatcher.
* UserInterface/Models/NativeFunctionParameters.js:
Add native parameter strings generated and hand modified
for DOM built-in classes.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
For native constructors "FooConstructor" the description is just
the name of the Constructor not the function string.
2015-03-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Object Previews in Indexed DB tables
https://bugs.webkit.org/show_bug.cgi?id=140813
Reviewed by Timothy Hatcher.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
Add a boolean param for ObjectTree construction if it should force allowing object expansion.
* UserInterface/Views/IndexedDatabaseEntryDataGridNode.js:
(WebInspector.IndexedDatabaseEntryDataGridNode.prototype.createCellContent):
Switch to creating an ObjectTree or FormattedValue.
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
(.content-view.indexed-database-object-store > .data-grid tr.selected):
Change row selection color to match the console's lighter blue instead of dark blue.
(.content-view.indexed-database-object-store > .data-grid .object-tree > :matches(.title, .object-preview)::before):
Adjust object tree disclosure triangle placement for larger line heights.
(.content-view.indexed-database-object-store > .data-grid td .section .header): Deleted.
(.content-view.indexed-database-object-store > .data-grid td .section .header::before): Deleted.
(.content-view.indexed-database-object-store > .data-grid td .section .header .title): Deleted.
(.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .section .header::before): Deleted.
(.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .section.expanded .header::before): Deleted.
(.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .properties-tree li.parent::before): Deleted.
(.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .properties-tree li.parent.expanded::before): Deleted.
(.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .properties-tree li *): Deleted.
Remove now unnecessary styles.
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
(.object-tree .object-tree-array-index > .icon):
Increase the specificity to override ".data-grid td .icon" styles.
2015-03-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Better Console Previews for Arrays / Small Objects
https://bugs.webkit.org/show_bug.cgi?id=142322
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectPreviewView.js:
If there is a sub-preview, show the sub-preview.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView):
For an ObjectTree that is not a root (e.g. one inside of
an array/set/map property tree element) allow it to be
expanded even if the preview is lossless.
2015-03-16 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl to LegacyConsoleMessage and LegacyConsoleMessageImpl respectively
https://bugs.webkit.org/show_bug.cgi?id=142712
As a first step of ConsoleMessage refactoring (https://bugs.webkit.org/show_bug.cgi?id=142599):
- Rename WebInspector.ConsoleMessage class to WebInspector.LegacyConsoleMessage
- Rename WebInspector.ConsoleMessageImpl class to WebInspector.LegacyConsoleMessageImpl
- Rename ConsoleMessage.js file to LegacyConsoleMessage.js
- Rename ConsoleMessageImpl file to LegacyConsoleMessageImpl.js
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager.prototype.messageWasAdded):
* UserInterface/Main.html:
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
* UserInterface/Views/ConsoleCommandResult.js:
(WebInspector.ConsoleCommandResult):
(WebInspector.ConsoleCommandResult.prototype.toMessageElement):
* UserInterface/Views/ConsoleGroup.js:
(WebInspector.ConsoleGroup.prototype.render):
* UserInterface/Views/LegacyConsoleMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessage.js.
(WebInspector.LegacyConsoleMessage):
(WebInspector.LegacyConsoleMessage.prototype.isErrorOrWarning):
(WebInspector.LegacyConsoleMessage.prototype.updateRepeatCount):
(WebInspector.LegacyConsoleMessage.prototype.clone):
(WebInspector.LegacyConsoleMessage.create):
* UserInterface/Views/LegacyConsoleMessageImpl.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessageImpl.js.
(WebInspector.LegacyConsoleMessageImpl):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatMessage):
(WebInspector.LegacyConsoleMessageImpl.prototype._shouldDumpStackTrace):
(WebInspector.LegacyConsoleMessageImpl.prototype._shouldHideURL):
(WebInspector.LegacyConsoleMessageImpl.prototype._firstNonNativeCallFrame):
(WebInspector.LegacyConsoleMessageImpl.prototype.get message):
(WebInspector.LegacyConsoleMessageImpl.prototype.get formattedMessage):
(WebInspector.LegacyConsoleMessageImpl.prototype._linkifyLocation):
(WebInspector.LegacyConsoleMessageImpl.prototype._linkifyCallFrame):
(WebInspector.LegacyConsoleMessageImpl.prototype.isErrorOrWarning):
(WebInspector.LegacyConsoleMessageImpl.prototype._format):
(WebInspector.LegacyConsoleMessageImpl.prototype._isExpandable):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameter):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsValue):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsString):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsNode):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.LegacyConsoleMessageImpl.prototype._rootPropertyPathForObject):
(WebInspector.LegacyConsoleMessageImpl.prototype._userProvidedColumnNames):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
(WebInspector.LegacyConsoleMessageImpl.prototype.):
(WebInspector.LegacyConsoleMessageImpl.prototype.stringFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.floatFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.integerFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.styleFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.isWhitelistedProperty):
(WebInspector.LegacyConsoleMessageImpl.prototype.append):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatWithSubstitutionString):
(WebInspector.LegacyConsoleMessageImpl.prototype.decorateMessageElement):
(WebInspector.LegacyConsoleMessageImpl.prototype.toMessageElement):
(WebInspector.LegacyConsoleMessageImpl.prototype._populateStackTraceTreeElement):
(WebInspector.LegacyConsoleMessageImpl.prototype.updateRepeatCount):
(WebInspector.LegacyConsoleMessageImpl.prototype.toString):
(WebInspector.LegacyConsoleMessageImpl.prototype.get text):
(WebInspector.LegacyConsoleMessageImpl.prototype.isEqual):
(WebInspector.LegacyConsoleMessageImpl.prototype.get stackTrace):
(WebInspector.LegacyConsoleMessageImpl.prototype.clone):
(WebInspector.LegacyConsoleMessageImpl.prototype.get levelString):
(WebInspector.LegacyConsoleMessageImpl.prototype.get clipboardPrefixString):
(WebInspector.LegacyConsoleMessageImpl.prototype.toClipboardString):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessage):
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._filterMessages):
(WebInspector.LogContentView.prototype._reappendProvisionalMessages):
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2015-03-16 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r181517.
https://bugs.webkit.org/show_bug.cgi?id=142718
This patch broke GTK+ build (Requested by NVI on #webkit).
Reverted changeset:
"Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl
to LegacyConsoleMessage and LegacyConsoleMessageImpl
respectively"
https://bugs.webkit.org/show_bug.cgi?id=142712
http://trac.webkit.org/changeset/181517
2015-03-15 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Console Scrolls Unexpectedly when Clicking inside un-selected Expanding Object
https://bugs.webkit.org/show_bug.cgi?id=142655
Don't scroll when selection change is triggered by clicking, e.g.
only scroll on arrow up and down key press events.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._mousemove):
(WebInspector.LogContentView.prototype._updateMessagesSelection):
(WebInspector.LogContentView.prototype._upArrowWasPressed):
(WebInspector.LogContentView.prototype._downArrowWasPressed):
2015-03-15 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl to LegacyConsoleMessage and LegacyConsoleMessageImpl respectively
https://bugs.webkit.org/show_bug.cgi?id=142712
As a first step of ConsoleMessage refactoring (https://bugs.webkit.org/show_bug.cgi?id=142599):
- Rename WebInspector.ConsoleMessage class to WebInspector.LegacyConsoleMessage
- Rename WebInspector.ConsoleMessageImpl class to WebInspector.LegacyConsoleMessageImpl
- Rename ConsoleMessage.js file to LegacyConsoleMessage.js
- Rename ConsoleMessageImpl file to LegacyConsoleMessageImpl.js
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager.prototype.messageWasAdded):
* UserInterface/Main.html:
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
* UserInterface/Views/ConsoleCommandResult.js:
(WebInspector.ConsoleCommandResult):
(WebInspector.ConsoleCommandResult.prototype.toMessageElement):
* UserInterface/Views/ConsoleGroup.js:
(WebInspector.ConsoleGroup.prototype.render):
* UserInterface/Views/LegacyConsoleMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessage.js.
(WebInspector.LegacyConsoleMessage):
(WebInspector.LegacyConsoleMessage.prototype.isErrorOrWarning):
(WebInspector.LegacyConsoleMessage.prototype.updateRepeatCount):
(WebInspector.LegacyConsoleMessage.prototype.clone):
(WebInspector.LegacyConsoleMessage.create):
* UserInterface/Views/LegacyConsoleMessageImpl.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessageImpl.js.
(WebInspector.LegacyConsoleMessageImpl):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatMessage):
(WebInspector.LegacyConsoleMessageImpl.prototype._shouldDumpStackTrace):
(WebInspector.LegacyConsoleMessageImpl.prototype._shouldHideURL):
(WebInspector.LegacyConsoleMessageImpl.prototype._firstNonNativeCallFrame):
(WebInspector.LegacyConsoleMessageImpl.prototype.get message):
(WebInspector.LegacyConsoleMessageImpl.prototype.get formattedMessage):
(WebInspector.LegacyConsoleMessageImpl.prototype._linkifyLocation):
(WebInspector.LegacyConsoleMessageImpl.prototype._linkifyCallFrame):
(WebInspector.LegacyConsoleMessageImpl.prototype.isErrorOrWarning):
(WebInspector.LegacyConsoleMessageImpl.prototype._format):
(WebInspector.LegacyConsoleMessageImpl.prototype._isExpandable):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameter):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsValue):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsString):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsNode):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.LegacyConsoleMessageImpl.prototype._rootPropertyPathForObject):
(WebInspector.LegacyConsoleMessageImpl.prototype._userProvidedColumnNames):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
(WebInspector.LegacyConsoleMessageImpl.prototype.):
(WebInspector.LegacyConsoleMessageImpl.prototype.stringFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.floatFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.integerFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.styleFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.isWhitelistedProperty):
(WebInspector.LegacyConsoleMessageImpl.prototype.append):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatWithSubstitutionString):
(WebInspector.LegacyConsoleMessageImpl.prototype.decorateMessageElement):
(WebInspector.LegacyConsoleMessageImpl.prototype.toMessageElement):
(WebInspector.LegacyConsoleMessageImpl.prototype._populateStackTraceTreeElement):
(WebInspector.LegacyConsoleMessageImpl.prototype.updateRepeatCount):
(WebInspector.LegacyConsoleMessageImpl.prototype.toString):
(WebInspector.LegacyConsoleMessageImpl.prototype.get text):
(WebInspector.LegacyConsoleMessageImpl.prototype.isEqual):
(WebInspector.LegacyConsoleMessageImpl.prototype.get stackTrace):
(WebInspector.LegacyConsoleMessageImpl.prototype.clone):
(WebInspector.LegacyConsoleMessageImpl.prototype.get levelString):
(WebInspector.LegacyConsoleMessageImpl.prototype.get clipboardPrefixString):
(WebInspector.LegacyConsoleMessageImpl.prototype.toClipboardString):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessage):
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._filterMessages):
(WebInspector.LogContentView.prototype._reappendProvisionalMessages):
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2015-03-12 Jono Wells <jonowells@apple.com>
Web Inspector: Debugger sidebar should group global breakpoints together
https://bugs.webkit.org/show_bug.cgi?id=142607
Reviewed by Timothy Hatcher.
Update the DebuggerSidebarPanel class to hold global breakpoints such as "All Exceptions" in one container. This
will be the place future such breakpoints are added.
* Localizations/en.lproj/localizedStrings.js: Added string.
* UserInterface/Main.html: Small rearrangement.
* UserInterface/Views/DebuggerSidebarPanel.js: Change how exception breaking options are displayed.
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
* UserInterface/Views/FolderTreeElement.js: Support additional classes for icons.
* UserInterface/Views/ResourceSidebarPanel.js: Change call to FolderTreeElement constructor.
2015-03-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Console Errors during provisional document loads get lost with "Clear Log on Reload"
https://bugs.webkit.org/show_bug.cgi?id=142603
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._provisionalLoadStarted):
Detect a provisional load has started to start save messages that come in at this time.
(WebInspector.LogContentView.prototype._sessionStarted):
Reappend provisional load messages if we auto-cleared.
(WebInspector.LogContentView.prototype._reappendProvisionalMessages):
(WebInspector.LogContentView.prototype._clearProvisionalState):
Helpers for dealing with the provisional loading state.
2015-03-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS parser errors in the console should include column numbers
https://bugs.webkit.org/show_bug.cgi?id=114313
Reviewed by Darin Adler.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
Column numbers in console messages are also 1 based and should be adjusted.
2015-03-11 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r181367.
https://bugs.webkit.org/show_bug.cgi?id=142581
Caused crashes on the debug bots (Requested by cdumez on
#webkit).
Reverted changeset:
"Web Inspector: CSS parser errors in the console should
include column numbers"
https://bugs.webkit.org/show_bug.cgi?id=114313
http://trac.webkit.org/changeset/181367
2015-03-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reload after Global Search results in empty Resources Sidebar.
https://bugs.webkit.org/show_bug.cgi?id=142572
Reviewed by Timothy Hatcher.
If you reload when the search content tree outline is showing, break out
to show the resource tree outline.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._showResourcesContentTreeOutline):
(WebInspector.ResourceSidebarPanel.prototype._showSearchContentTreeOutline):
2015-03-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: SearchResultTreeElement.representedObject is missing a saveIdentityToCookie implementation
https://bugs.webkit.org/show_bug.cgi?id=134698
Reviewed by Timothy Hatcher.
This will restore selection of a global search tree element if you
close and reopen the inspector in such a case.
* UserInterface/Models/DOMSearchMatchObject.js:
(WebInspector.DOMSearchMatchObject.prototype.get resource):
(WebInspector.DOMSearchMatchObject.titleForDOMNode):
Cookie has the resource URL, DOM Node title, and text range.
* UserInterface/Models/SourceCodeSearchMatchObject.js:
(WebInspector.SourceCodeSearchMatchObject.prototype.get sourceCodeTextRange):
Cookie has the source code URL and text range.
2015-03-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS parser errors in the console should include column numbers
https://bugs.webkit.org/show_bug.cgi?id=114313
Reviewed by Benjamin Poulain.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
Column numbers in console messages are also 1 based and should be adjusted.
2015-03-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.error output broken, does not produce ObjectTree
https://bugs.webkit.org/show_bug.cgi?id=142554
Reviewed by Timothy Hatcher.
* UserInterface/Models/IssueMessage.js:
(WebInspector.IssueMessage):
* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
2015-03-10 Saam Barati <saambarati1@gmail.com>
Web Inspector: Destructuring function parameters should show type information
https://bugs.webkit.org/show_bug.cgi?id=142233
Reviewed by Joseph Pecoraro.
JSC supports a function's formal parameter being a destructuring pattern,
and so should the type profiler in the Inspector. This was just an oversight
not to have this in bug 141215.
This patch also does a bit of refactoring to not have duplicate code
that traverses AST nodes in TypeTokenAnnotator and ScriptSyntaxTree.
Before, both of these classes were responsible for traversing the AST
in an identical way, this is bad. Now, ScriptSyntaxTree contains the
canonical implementation of how the AST should be traversed and which
AST nodes should be collected for type profiling. ScriptSyntaxTree will
pass this information back to TypeTokenAnnotator.
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
(WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode): Deleted.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.):
(WebInspector.ScriptSyntaxTree.prototype.updateTypes):
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
(WebInspector.ScriptSyntaxTree.prototype.gatherIdentifiersInVariableDeclaration): Deleted.
2015-03-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inline Error / Warning message for Issues
https://bugs.webkit.org/show_bug.cgi?id=142520
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
New strings and new files.
* UserInterface/Controllers/IssueManager.js:
(WebInspector.IssueManager.prototype.issueWasAdded):
* UserInterface/Models/IssueMessage.js:
(WebInspector.IssueMessage):
(WebInspector.IssueMessage.prototype.get columnNumber):
* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
Correctly pass the column number into IssueMessage.
* UserInterface/Models/LineWidget.js:
(WebInspector.LineWidget):
(WebInspector.LineWidget.prototype.get codeMirrorLineWidget):
(WebInspector.LineWidget.prototype.get widgetElement):
Create a new Model class for a LineWidget. The root element
should never change, but its children can be updated.
* UserInterface/Views/SourceCodeTextEditor.css:
(.source-code.text-editor .CodeMirror-linewidget):
Override styles so that widgets can overlap line content.
(.source-code.text-editor > .CodeMirror .issue-widget):
(.source-code.text-editor > .CodeMirror .issue-widget.inline):
Float issue widgets to the right side of the editor.
(.source-code.text-editor > .CodeMirror .issue-widget > .arrow):
(.source-code.text-editor > .CodeMirror .issue-widget.inline > .arrow):
Pure CSS arrow for widgets on the same line as their issue.
(.source-code.text-editor > .CodeMirror .issue-widget > .icon):
(.source-code.text-editor > .CodeMirror .issue-widget > .icon.icon-warning):
(.source-code.text-editor > .CodeMirror .issue-widget > .icon.icon-error):
Issue icon styles for the different issue types.
(.source-code.text-editor > .CodeMirror .issue-widget.warning):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow):
(.source-code.text-editor > .CodeMirror .issue-widget.error):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow):
Different colors for the different issue types.
(.source-code.text-editor > .CodeMirror .issue-widget > .text):
(.source-code.text-editor > .CodeMirror .issue-widget.inline > .text):
Text positioning when on the same line or when expanded.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._addIssue):
(WebInspector.SourceCodeTextEditor.prototype._iconClassNameForIssueLevel):
(WebInspector.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues):
(WebInspector.SourceCodeTextEditor.prototype._isWidgetToggleable):
(WebInspector.SourceCodeTextEditor.prototype._handleWidgetClick):
Create widgets for issues.
(WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
(WebInspector.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting):
(WebInspector.SourceCodeTextEditor.prototype._clearWidgets):
(WebInspector.SourceCodeTextEditor.prototype._reinsertAllIssues):
Update all widgets in certain cases.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.addStyleClassToLine):
This assertion is known to happen for issues added to an editor
before the content has loaded.
(WebInspector.TextEditor.prototype.createWidgetForLine):
Create a widget for a line.
2015-03-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JS Pretty Printing: "case" or "default" outside of switch causes unbalanced indentation
https://bugs.webkit.org/show_bug.cgi?id=142428
Reviewed by Timothy Hatcher.
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* UserInterface/Views/CodeMirrorFormatters.js:
Fix "case" and "default" indentation rules to only happen inside a switch.
* Tools/PrettyPrinting/js-tests/switch-case-default-expected.js:
* Tools/PrettyPrinting/js-tests/switch-case-default.js:
Add tests for "case" and "default" nested inside and outside of switches.
2015-03-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ES6: Improved Support for Iterator Objects
https://bugs.webkit.org/show_bug.cgi?id=142420
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl):
Treat an iterator like an object.
* UserInterface/Views/ObjectPreviewView.js:
Output iterator previews with []s, not {}s.
2015-03-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Adopt Object Literal Method Property Syntax
https://bugs.webkit.org/show_bug.cgi?id=142409
Reviewed by Timothy Hatcher.
Mechanical change touching lots of files.
2015-03-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Adopt Object Literal Shorthand Property Construction Syntax
https://bugs.webkit.org/show_bug.cgi?id=142374
Reviewed by Timothy Hatcher.
Mechanical change touching lots of files.
2015-03-06 Jono Wells <jonowells@apple.com>
Web Inspector: Populate Debugger sidebar with all debuggable resources
https://bugs.webkit.org/show_bug.cgi?id=141232
Reviewed by Timothy Hatcher.
All debuggable resources now show in the debugger sidebar. The _resourceAdded handler now adds a script resource
to the sidebar regardless of whether it has any breakpoints set on it. The new function
_getTreeElementForSourceCodeAndAddToContentTreeOutline adds the element to the debugger sidebar before
_addBreakpointsForSourceCode is called. Removing all breakpoints from a resource no longer removes that
resource from the debugger sidebar. TreeOutline.prototype.removeChild has been updated so the disclosure
button will disappear and reappear correctly when removing/adding breakpoints.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint): Expand resource if first breakpoint is added.
(WebInspector.DebuggerSidebarPanel.prototype._getTreeElementForSourceCodeAndAddToContentTreeOutline): Created.
(WebInspector.DebuggerSidebarPanel.prototype._resourceAdded): Checks resource type and adds scripts to sidebar.
(WebInspector.DebuggerSidebarPanel.prototype._mainResourceChanged):
(WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
(WebInspector.DebuggerSidebarPanel.prototype._removeBreakpointTreeElement): No longer removes empty parent.
(WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected): Displays scripts without breakpoints now.
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.get disclosureButton): Drive-by fix. Unused. Deleted.
* UserInterface/Views/TreeOutline.js:
(TreeOutline.prototype.removeChild):
Remove parent class and set hasChildren to false if necessary to properly hide and reveal disclosure button
for elements whose children have been removed.
2015-03-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Follow-up fixes to ObjectTreeBaseTreeElement
https://bugs.webkit.org/show_bug.cgi?id=142367
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
(WebInspector.ObjectTreeMapEntryTreeElement.prototype.propertyPathType):
* UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
(WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValuePropertyPath):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
2015-03-05 Tobias Reiss <tobi+webkit@basecode.de>
Web Inspector: console.debug/info should show up in Log Console Filter
https://bugs.webkit.org/show_bug.cgi?id=142300
Reviewed by Joseph Pecoraro.
Add WebInspector.ConsoleMessage.MessageLevel.Debug case that allows console.debug/info
to show up in Log Console Filter.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._filterMessages):
2015-03-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add ObjectTreeBaseTreeElement to share functionality
https://bugs.webkit.org/show_bug.cgi?id=142323
Reviewed by Timothy Hatcher.
By making this change:
- Share lots of duplicated code.
- Array / Set / Map tree elements get context menu support
* UserInterface/Main.html:
* UserInterface/Views/ObjectTreeBaseTreeElement.js: Added.
(WebInspector.ObjectTreeBaseTreeElement):
(WebInspector.ObjectTreeBaseTreeElement.prototype.get property):
(WebInspector.ObjectTreeBaseTreeElement.prototype.get propertyPath):
(WebInspector.ObjectTreeBaseTreeElement.prototype.oncontextmenu):
(WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValue):
(WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValuePropertyPath):
(WebInspector.ObjectTreeBaseTreeElement.prototype.thisPropertyPath):
(WebInspector.ObjectTreeBaseTreeElement.prototype.hadError):
(WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathType):
(WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathString):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createInteractiveGetterElement):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createReadOnlyIconElement):
New file, copying most of the code from PropertyTreeElement so it can be shared.
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
(WebInspector.ObjectTreeArrayIndexTreeElement):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype.invokedGetter):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement): Deleted.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement):
(WebInspector.ObjectTreePropertyTreeElement.prototype.invokedGetter):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
(WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
(WebInspector.ObjectTreePropertyTreeElement.prototype.get property): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype): Deleted.
Subclass ObjectTreeBaseTreeElement and eliminate the code now
automatically handled by the base class.
* UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
(WebInspector.ObjectTreeMapEntryTreeElement):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype.resolvedValue):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString): Deleted.
* UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
(WebInspector.ObjectTreeSetIndexTreeElement):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValue):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
Override resolved value since these are not about PropertyDescriptors.
This will make context menus work automatically.
2015-03-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve display of previews with overflow
https://bugs.webkit.org/show_bug.cgi?id=142321
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
2015-03-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Array/Collection Sizes should be visible and distinct
https://bugs.webkit.org/show_bug.cgi?id=142254
Reviewed by Timothy Hatcher.
* UserInterface/Models/ObjectPreview.js:
(WebInspector.ObjectPreview):
(WebInspector.ObjectPreview.fromPayload):
(WebInspector.ObjectPreview.prototype.get size):
(WebInspector.ObjectPreview.prototype.hasSize):
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.get size):
(WebInspector.RemoteObject.prototype.hasSize):
Check if this type has a size and get the size.
Gracefully handle construction for legacy protocols.
* UserInterface/Views/ObjectPreviewView.css:
(.object-preview > .size):
* UserInterface/Views/FormattedValue.css:
(:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap) > .size):
Style the array/collection size.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView):
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForTypesAndValue):
(WebInspector.FormattedValue.createElementForRemoteObject):
(WebInspector.FormattedValue.createElementForObjectPreview):
(WebInspector.FormattedValue.createElementForPropertyPreview):
Add an element showing the array/collection size.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype):
Remove special handling for Array sizes now that this is handled earlier.
* UserInterface/Controllers/StorageManager.js:
(WebInspector.StorageManager.prototype.processData):
(WebInspector.StorageManager.prototype.requestIndexedDatabaseData):
Fix what looks like broken RemoteObject construction.
2015-03-04 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: TimelineViews should be displayed in a ContentViewContainer
https://bugs.webkit.org/show_bug.cgi?id=142290
Reviewed by Timothy Hatcher.
TimelineRecordingContentView has a bunch of logic to manage the currently visible TimelineView.
This could be delegated to a ContentViewContainer to simplify the logic. It also opens the possibility
for other views to be displayed beneath the timeline overview graphs when it makes sense to do so.
In order to be displayable in the container, TimelineView and its subclasses have been upgraded to
be ContentView subclasses. This also reduces some code duplication for basic view management.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView): Move base class instantiation pattern from TimelineView to here.
(WebInspector.ContentView.isViewable):
* UserInterface/Views/LayoutTimelineView.js: Use ContentView events and base methods.
(WebInspector.LayoutTimelineView.prototype.shown):
(WebInspector.LayoutTimelineView.prototype.hidden):
(WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):
* UserInterface/Views/NetworkTimelineView.js: Use ContentView events and base methods.
(WebInspector.NetworkTimelineView.prototype.shown):
(WebInspector.NetworkTimelineView.prototype.hidden):
(WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
* UserInterface/Views/OverviewTimelineView.js: Use ContentView events and base methods.
(WebInspector.OverviewTimelineView.prototype.shown):
(WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):
* UserInterface/Views/ScriptTimelineView.js: Use ContentView events and base methods.
(WebInspector.ScriptTimelineView.prototype.shown):
(WebInspector.ScriptTimelineView.prototype.hidden):
(WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
* UserInterface/Views/TimelineRecordingContentView.css: Use WebInspector.ContentViewContainer class.
(.content-view.timeline-recording > .content-view-container):
(.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid td):
(.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid table.data):
(.content-view.timeline-recording > .view-container): Deleted.
(.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td): Deleted.
(.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data): Deleted.
* UserInterface/Views/TimelineRecordingContentView.js:
Many of the changes here mirror the implementation of ClusterContentView. Searching is disabled since
none of the timeline views are currently searchable using ContentViewContainer's full-text search.
In cases where we update the current timeline view, the currentTimelineView accessor returns the
content view if a TimelineView is shown in the content view container, otherwise null.
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
(WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
(WebInspector.TimelineRecordingContentView.prototype.get supplementalRepresentedObjects):
(WebInspector.TimelineRecordingContentView.prototype.get handleCopyEvent):
(WebInspector.TimelineRecordingContentView.prototype.get supportsSave):
(WebInspector.TimelineRecordingContentView.prototype.get saveData):
(WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.closed):
(WebInspector.TimelineRecordingContentView.prototype.canGoBack):
(WebInspector.TimelineRecordingContentView.prototype.canGoForward):
(WebInspector.TimelineRecordingContentView.prototype.goBack):
(WebInspector.TimelineRecordingContentView.prototype.goForward):
(WebInspector.TimelineRecordingContentView.prototype.updateLayout):
(WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
(WebInspector.TimelineRecordingContentView.prototype.get filterDidChange):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype.filterDidChange): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._showTimelineView): Deleted.
* UserInterface/Views/TimelineView.js: Remove duplicated functionality and use ContentView equivalents instead.
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.filterUpdated):
(WebInspector.TimelineView.prototype.needsLayout):
(WebInspector.TimelineView.prototype.get representedObject): Deleted.
(WebInspector.TimelineView.prototype.get visible): Deleted.
(WebInspector.TimelineView.prototype.shown): Deleted.
(WebInspector.TimelineView.prototype.hidden): Deleted.
2015-03-03 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: selecting overview timeline tree elements without source locations doesn't update selection components
https://bugs.webkit.org/show_bug.cgi?id=142248
Reviewed by Timothy Hatcher.
Add a missing event dispatch to trigger recalculation of path components when showing the overview timeline view.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):
2015-03-03 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Refactoring: separate ConsoleSession from ConsoleGroup
https://bugs.webkit.org/show_bug.cgi?id=142141
ConsoleSession doesn't have a title and it's not collapsible either.
Simplify ConsoleSession by removing excessive markup.
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.startNewSession):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
(WebInspector.JavaScriptLogViewController.prototype.get topConsoleGroup): Deleted.
* UserInterface/Main.html:
* UserInterface/Views/ConsoleGroup.js:
(WebInspector.ConsoleGroup):
(WebInspector.ConsoleGroup.prototype.render):
(WebInspector.ConsoleGroup.prototype.addMessage):
(WebInspector.ConsoleGroup.prototype.append):
(WebInspector.ConsoleGroup.prototype.hasMessages): Deleted.
* UserInterface/Views/ConsoleSession.js: Added.
(WebInspector.ConsoleSession):
(WebInspector.ConsoleSession.prototype.addMessage):
(WebInspector.ConsoleSession.prototype.append):
(WebInspector.ConsoleSession.prototype.hasMessages):
* UserInterface/Views/LogContentView.css:
(.console-session + .console-session):
(.console-group.new-session .console-group-messages .console-item:first-child): Deleted.
(.console-group.new-session): Deleted.
2015-03-03 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: popover should use requestAnimationFrame to drive move/resize animations
https://bugs.webkit.org/show_bug.cgi?id=142218
Reviewed by Timothy Hatcher.
Remove setTimeout workaround now that Inspector runs in its own process.
* UserInterface/Views/Popover.js:
(WebInspector.Popover.prototype.drawBackground):
(WebInspector.Popover.prototype._animateFrame):
2015-03-03 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: Console log level selector loses selection on reload
https://bugs.webkit.org/show_bug.cgi?id=142199
Reviewed by Timothy Hatcher.
The selected items in the console scope bar were being saved as settings,
but the "All" scope is forcibly selected on reload due to a logic bug.
* UserInterface/Base/Main.js:
(WebInspector.showFullHeightConsole):
The scope bar may already have selected items restored from WebInspector.Settings.
Don't select a scope unless explicitly requested (i.e., clicking on dashboard buttons)
or if no scopes are selected at all. (In the latter case, "All" is the default scope.)
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView): Don't specify a default value here to avoid trampling
settings. The "All" scope is selected by default in showFullHeightConsole if
nothing else is selected.
2015-03-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove native extensions now built-in
https://bugs.webkit.org/show_bug.cgi?id=142203
Reviewed by Timothy Hatcher.
* UserInterface/Base/Utilities.js:
2015-03-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Context Menu to Log a Particular Object
https://bugs.webkit.org/show_bug.cgi?id=142198
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.saveResultCallback):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
Add a way to show an execution and result immediately in the Log View.
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt.prototype.pushHistoryItem):
(WebInspector.ConsolePrompt.prototype.commitTextOrInsertNewLine):
(WebInspector.ConsolePrompt.prototype._handleEnterKey):
(WebInspector.ConsolePrompt.prototype._commitHistoryEntry):
Add a way to append a history item to the console prompt history.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype):
Add a context menu item to object tree properties to log the value.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.createCallArgument):
(WebInspector.RemoteObject.prototype.callFunction):
(WebInspector.RemoteObject.prototype.asCallArgument):
Simplify CallArgument creation.
* UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.mycallback):
(WebInspector.RuntimeManager.prototype.saveResult):
Wrap RuntimeAgent.saveResult. If supported, run the backend command
and fetch a saved result index from the backend for the given value.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.get logViewController):
Misc.
2015-03-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Context Menus to Object Tree properties
https://bugs.webkit.org/show_bug.cgi?id=142125
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
(WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
Fix legacy implementation.
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
Give prototype buttons a tooltip.
(WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu):
(WebInspector.ObjectTreePropertyTreeElement.prototype._contextMenuHandler):
(WebInspector.ObjectTreePropertyTreeElement.prototype._appendMenusItemsForObject):
Context Menus based on the selected object.
2015-02-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Use Maps in ResourceCollection instead of objects
https://bugs.webkit.org/show_bug.cgi?id=142101
Reviewed by Timothy Hatcher.
* UserInterface/Models/ResourceCollection.js:
(WebInspector.ResourceCollection):
(WebInspector.ResourceCollection.prototype.resourcesWithType):
(WebInspector.ResourceCollection.prototype.removeAllResources):
(WebInspector.ResourceCollection.prototype.resourceForURL):
(WebInspector.ResourceCollection.prototype._associateWithResource):
(WebInspector.ResourceCollection.prototype._disassociateWithResource):
(WebInspector.ResourceCollection.prototype._resourceURLDidChange):
(WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
Use Maps instead of objects.
2015-02-26 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Add a subtle blue background for selected console messages
https://bugs.webkit.org/show_bug.cgi?id=142073
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.console-item.selected::after):
(.console-messages:focus .console-item.selected):
(.console-messages:focus .console-item.selected + .console-item):
(.console-error-level + .console-item):
(.console-error-level .section .header .title):
(.console-warning-level):
(.console-warning-level + .console-item):
2015-02-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Colored console messages apply text color to object tree properties
https://bugs.webkit.org/show_bug.cgi?id=142051
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectPreviewView.css:
(.object-preview):
* UserInterface/Views/ObjectTreeView.css:
(.object-tree):
Default the color to black within Object Tree and Object Preview views.
2015-02-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Clear Log on Reload clears some logs that were after reload
https://bugs.webkit.org/show_bug.cgi?id=142070
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._sessionStarted):
We can bail after calling clearLog, since that will already start
a new session for us.
(WebInspector.LogContentView.prototype._clearLog):
Don't trigger a backend clear messages, since that will cause us to
clear messages received between the request and response.
2015-02-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Save Console Evaluations into Command Line variables $1-$99 ($n)
https://bugs.webkit.org/show_bug.cgi?id=142061
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evalCallback):
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
Add a saveResult parameter for the new protocol command in parameter.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageImpl.prototype._rootPropertyPathForObject):
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype.appendTitleSuffix):
For console evaluation results, show a "= $n" when the evaluation was
given a saved result index.
* UserInterface/Views/LogContentView.css:
(.console-saved-variable):
* UserInterface/Views/ObjectPreviewView.css:
(.object-preview-name):
Make $n and class names in previews always non-italics.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.printResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Try to provide better autocompletion for $n, by populating autocompletion menus
from $1-$n where n is the maximum saved result index seen. Clear the maximum
when we clear the console.
* UserInterface/Views/ConsoleCommandResult.js:
(WebInspector.ConsoleCommandResult):
(WebInspector.ConsoleCommandResult.clearMaximumSavedResultIndex):
Keep track of the maximum savedResultIndex for console evaluation results.
2015-02-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Set/Map appear as lossless when they have lossy entries
https://bugs.webkit.org/show_bug.cgi?id=142050
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
Take into account the lossless states of entry keys and values.
2015-02-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: New ObjectTree UI for Arrays / Maps / Sets
https://bugs.webkit.org/show_bug.cgi?id=142037
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
Miscellaneous changes.
* UserInterface/Models/PropertyDescriptor.js:
(WebInspector.PropertyDescriptor.prototype.isIndexProperty):
Useful for quickly checking if this property is numeric and possibly
an array index.
* UserInterface/Models/PropertyPath.js:
(WebInspector.PropertyPath.prototype.appendMapKey):
(WebInspector.PropertyPath.prototype.appendMapValue):
(WebInspector.PropertyPath.prototype.appendSetIndex):
Be specific about property paths into maps / sets. Note that a map
value may be displayable if the key is simple.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.hasValue):
A simple value RemoteObject may have the value "undefined". So provide
a falsey proof helper that actually checks if we have a value.
(WebInspector.RemoteObject.prototype.isArray):
(WebInspector.RemoteObject.prototype.backendGetOwnPropertyDescriptor):
(WebInspector.RemoteObject.prototype.wrappedCallback):
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor):
Currently backend APIs exist only to get all properties. In the case
of collections, we often want to get only one property (__proto__).
This is a simple implementation on top of callFunctionOn.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageImpl.prototype.appendUndefined): Deleted.
(WebInspector.ConsoleMessageImpl.prototype._printArray): Deleted.
(WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry): Deleted.
Simplify array formatted to just use an ObjectTreeView. Add fixmes
that we should seed the ObjectTreeView with a starting property path.
* UserInterface/Views/FormattedValue.css:
(.formatted-node > ol):
Sometimes, a node's display was getting overridden by various console styles.
Force a node to always display block. We may be able to remove this later.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
Helper for formatting a node / object / value more easily. This
is used by all collection types.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
We lost the nice sparse array support when switching to the new preview path,
we should add it back.
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
(.object-tree-array-index):
(.object-tree-array-index > .titles):
(.object-tree-array-index > .icon):
(.object-tree-array-index .index-name):
(.object-tree-array-index .index-value .object-tree):
(.object-tree-array-index .index-value .object-tree .object-tree-outline):
(.object-tree-property + ol .object-tree-array-index):
New styles specific to array index tree elements.
* UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
(.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name):
(.object-tree-map-entry.key):
(.object-tree-map-entry.key:first-of-type):
(.object-tree-map-entry):
New styles specific to map key/value tree elements.
* UserInterface/Views/ObjectTreeCollectionTreeElement.js: Removed.
Remove old collection implementation.
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.js: Added.
(WebInspector.ObjectTreeArrayIndexTreeElement):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement):
Index followed by formatted value. Unfortunately a page can hack up an array
with getter properties, so also support getter values in an array. This ends
up copying a lot of ObjectTreePropertyTreeElement as a result.
* UserInterface/Views/ObjectTreeMapEntryTreeElement.js: Added.
(WebInspector.ObjectTreeMapEntryTreeElement):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype.get object):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeMapKeyTreeElement):
(WebInspector.ObjectTreeMapKeyTreeElement.prototype.displayPropertyName):
(WebInspector.ObjectTreeMapKeyTreeElement.prototype.resolvedValuePropertyPath):
(WebInspector.ObjectTreeMapValueTreeElement):
(WebInspector.ObjectTreeMapValueTreeElement.prototype.displayPropertyName):
(WebInspector.ObjectTreeMapValueTreeElement.prototype.resolvedValuePropertyPath):
Key/value followed by formatted value.
* UserInterface/Views/ObjectTreeSetIndexTreeElement.js: Added.
(WebInspector.ObjectTreeSetIndexTreeElement):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype.get object):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
Dot followed by formatted value.
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property > .titles):
Reformat.
* UserInterface/Views/ObjectTreeView.css:
(.object-tree-property :matches(.formatted-string, .formatted-regexp)):
Upgrade generic styles.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView):
(WebInspector.ObjectTreeView.emptyMessageElement):
(WebInspector.ObjectTreeView.prototype.expand):
(WebInspector.ObjectTreeView.prototype.collapse):
(WebInspector.ObjectTreeView.prototype.update):
(WebInspector.ObjectTreeView.prototype._updateChildren):
(WebInspector.ObjectTreeView.prototype._updateEntries):
(WebInspector.ObjectTreeView.prototype._updateProperties):
(WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
Both ObjectTreeView and ObjectTreePropertyTreeElement will fetch only collection
entries or properties depending on the type of the object being expanded.
(WebInspector.ObjectTreeView.prototype._trackWeakEntries):
(WebInspector.ObjectTreeView.prototype._untrackWeakEntries):
Allow WeakMap entries to be Garbage Collected when the ObjectTreeView
collapses or the console is cleared. FIXME for handling sub-tree WeakMaps.
2015-02-26 Brent Fulgham <bfulgham@apple.com>
[Win] Make build logs more legible by reducing noise
https://bugs.webkit.org/show_bug.cgi?id=142034
Reviewed by Alexey Proskuryakov.
Modify batch files, makefiles, and DOS commands to remove
uninteresting/unhelpful output.
* WebInspectorUI.vcxproj/WebInspectorUI.make:
2015-02-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve Regex/Error output in Object Tree and Previews
https://bugs.webkit.org/show_bug.cgi?id=142010
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView):
(WebInspector.ObjectPreviewView.prototype._initTitleElement):
Since some object types may be formatted as simple values, ensure they get
the formatted style even in the title view.
(WebInspector.ObjectPreviewView.prototype._appendPreview):
Those object types that can be formatted as simple values should skip
to the value formatting phase.
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
Do not show property previews for error objects. Always assume lossy
so that it can be expanded.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView):
Make a similiar improvement for ObjectTree titles when previews are
unavailable. This will make dir(value) show a stylized value in the
title of the Object Tree.
2015-02-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve PropertyPath display strings for getters / values
https://bugs.webkit.org/show_bug.cgi?id=142008
Reviewed by Timothy Hatcher.
* UserInterface/Base/Utilities.js:
(doubleQuotedString):
Helper to double quote a string and escape double quotes with-in it.
* UserInterface/Models/PropertyPath.js:
(WebInspector.PropertyPath.prototype.get reducedPath):
Compute the path eliminating unnecessary __proto__s. Note we don't
property handle the case where a .__proto__.x is override earlier
by a .x, but that case is rare.
(WebInspector.PropertyPath.prototype.displayPath):
Helper for choosing fullPath or reducedPath display strings.
(WebInspector.PropertyPath.prototype.appendPropertyName):
(WebInspector.PropertyPath.prototype.appendGetterPropertyName):
(WebInspector.PropertyPath.prototype.appendSetterPropertyName):
(WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
When appending a descriptor, specify if it is for a getter/setter or value.
For getters / setters the actual function can be directly fetched via
__lookupGetter__/__lookupSetter__. Continue to use the property name for values.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForTypesAndValue):
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType):
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
(WebInspector.ObjectTreePropertyTreeElement.prototype):
2015-02-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Eliminate console-formatted-* class names in favor of formatted-*
https://bugs.webkit.org/show_bug.cgi?id=141948
Reviewed by Timothy Hatcher.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForNode):
Helper for formatting a node as a DOMTreeOutline.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatParameter):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessageImpl.prototype.appendUndefined):
(WebInspector.ConsoleMessageImpl.prototype._printArray):
(WebInspector.ConsoleMessageImpl.prototype.): Deleted.
* UserInterface/Views/LogContentView.css:
(.console-user-command-result):
(.console-formatted-object): Deleted.
(.console-object-preview): Deleted.
(.expanded .console-object-preview): Deleted.
(.console-object-preview .name): Deleted.
(.expanded .console-object-preview > .console-object-preview-body): Deleted.
(.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap): Deleted.
(:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section): Deleted.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._leftArrowWasPressed):
(WebInspector.LogContentView.prototype._rightArrowWasPressed):
Add FIXMEs since this will no longer work with ObjectTree.
* UserInterface/Views/ObjectPreviewView.css:
(.object-preview):
* UserInterface/Views/ObjectTreeView.css:
(.object-tree):
Copy over the font styles from console-formatted-object.
* UserInterface/Views/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.prototype.update):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForString):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForNumber):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForBoolean):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForNull):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForUndefined):
Convert to formatted value class names.
2015-02-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Make Getter/Setter RemoteObject property and ObjectPreview handling consistent
https://bugs.webkit.org/show_bug.cgi?id=141587
Reviewed by Timothy Hatcher.
* UserInterface/Models/CallFrame.js:
(WebInspector.CallFrame.prototype.collectScopeChainVariableNames):
* UserInterface/Models/PropertyDescriptor.js:
(WebInspector.PropertyDescriptor.prototype.get nativeGetter):
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
(WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
(WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
(WebInspector.RemoteObject.prototype._getPropertyDescriptors):
(WebInspector.RemoteObject.prototype.if):
(WebInspector.RemoteObject.prototype.deprecatedGetOwnProperties):
(WebInspector.RemoteObject.prototype.deprecatedGetAllProperties):
(WebInspector.RemoteObject.prototype._deprecatedGetProperties):
(WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors): Deleted.
(WebInspector.RemoteObject.prototype.callback): Deleted.
(WebInspector.RemoteObject.prototype.getOwnProperties): Deleted.
(WebInspector.RemoteObject.prototype.getOwnAndGetterProperties): Deleted.
(WebInspector.RemoteObject.prototype.getAllProperties): Deleted.
(WebInspector.RemoteObject.prototype.set else): Deleted.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
* UserInterface/Views/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection.prototype.update):
(WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype.):
(WebInspector.ObjectTreePropertyTreeElement.prototype):
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype.update):
2015-02-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: New Object Tree View UI
https://bugs.webkit.org/show_bug.cgi?id=141932
Reviewed by Timothy Hatcher.
Part 1: Majority of the UI.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Images/Eye.svg: Added.
* UserInterface/Images/TypeBoolean.svg: Added.
* UserInterface/Images/TypeNull.svg: Added.
* UserInterface/Images/TypeNumber.svg: Added.
* UserInterface/Images/TypeObject.svg: Added.
* UserInterface/Images/TypeRegex.svg: Added.
* UserInterface/Images/TypeString.svg: Added.
* UserInterface/Images/TypeSymbol.svg: Added.
* UserInterface/Images/TypeUndefined.svg: Added.
* UserInterface/Main.html:
Miscellaneous.
* UserInterface/Views/FormattedValue.css:
(.formatted-boolean):
Give booleans a light purple color.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.createElementForTypesAndValue):
Previously we were truncating function value logging in the console. E.g.
js> multiLineFunction
<- function multiLineFunction() {
No longer truncate so we display the full string.
* UserInterface/Models/PropertyPath.js: Added.
(WebInspector.PropertyPath):
(WebInspector.PropertyPath.prototype.get object):
(WebInspector.PropertyPath.prototype.get parent):
(WebInspector.PropertyPath.prototype.get isPrototype):
(WebInspector.PropertyPath.prototype.get rootObject):
(WebInspector.PropertyPath.prototype.get lastNonPrototypeObject):
(WebInspector.PropertyPath.prototype.get pathComponent):
(WebInspector.PropertyPath.prototype.get fullPath):
(WebInspector.PropertyPath.prototype.isRoot):
(WebInspector.PropertyPath.prototype.isPathComponentImpossible):
(WebInspector.PropertyPath.prototype.isFullPathImpossible):
(WebInspector.PropertyPath.prototype.appendPropertyName):
(WebInspector.PropertyPath.prototype.appendPropertySymbol):
(WebInspector.PropertyPath.prototype.appendInternalPropertyName):
(WebInspector.PropertyPath.prototype.appendArrayIndex):
(WebInspector.PropertyPath.prototype.appendCollectionIndex):
(WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
(WebInspector.PropertyPath.prototype._canPropertyNameBeDotAccess):
PropertyPaths are a linked list of remote object / patch component pairs.
For a property like "foo['property 1'].__proto__.baz" we will have a PropertyPath
chain with the RemoteObject for each component. This allows us to accurately
select the RemoteObject on which we should invoke a getter. It also allows
us to display the property path string from the root object, if possible.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.callFunction):
(WebInspector.RemoteObject.prototype.backendInvokeGetter):
(WebInspector.RemoteObject.prototype.invokeGetter):
Provide a way to invoke a getter function on a remote object if we
have a reference to the getter function. At the same time, improve
the mostly unused callFunction API to automatically convert
RemoteObjects / values to their Runtime.CallArgument format.
* UserInterface/Views/ObjectTreePropertyTreeElement.css: Added.
(.object-tree-property):
(.object-tree-property > .disclosure-button):
(.object-tree-property.parent > .disclosure-button):
(.object-tree-property.parent.expanded > .disclosure-button):
(.object-tree-property > .titles):
Focused styles for the ObjectTree property GeneralTreeElements.
Reuse navigation sidebar disclosure-triangles.
(.object-tree-property > .icon):
(.object-tree-property.boolean > .icon):
(.object-tree-property.function > .icon):
(.object-tree-property.number > .icon):
(.object-tree-property.object > .icon):
(.object-tree-property.object.null > .icon):
(.object-tree-property.object.node > .icon):
(.object-tree-property.regex > .icon):
(.object-tree-property.string > .icon):
(.object-tree-property.symbol > .icon):
(.object-tree-property.undefined > .icon):
Use different icons for different object types. Special case
"accessor" to be undefined.
(.object-tree-property .prototype-name):
(.object-tree-property .property-name.not-enumerable):
Style property names in sans-serif font.
Give non-enumerable properties a slightly transparent look.
(.object-tree-property.prototype-property):
(.object-tree-property.prototype-property > .icon):
(.object-tree-property.prototype-property + ol):
Special styles for prototype properties and their children.
(.object-tree-property .getter):
(.object-tree-property .getter:hover):
(.object-tree-property .read-only):
Styles for clickable getter button and non-interactive read-only indicator.
(.object-tree-property :matches(.formatted-string, .formatted-regexp)):
Do not allow wrapping for values that previously allowed wrapping.
(.object-tree-property .value.error):
If getting a value resulted in an error, display that error in red.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement):
Extend from GeneralTreeElement and set up class names on the root <li> object.
(WebInspector.ObjectTreePropertyTreeElement.prototype.onattach): Deleted.
No longer needed by using GeneralTreeElement.
(WebInspector.ObjectTreePropertyTreeElement.prototype.onexpand):
(WebInspector.ObjectTreePropertyTreeElement.prototype.oncollapse):
Expand / collapse an associated ObjectPreview if we have one.
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
This PropertyTreeElement may be displaying for a value, or a getter that has
gotten a value. Refer to this as the "resolvedValue".
(WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
A PropertyPath leaf used for tooltips.
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
Helpers for updating small parts of the UI. When a getter is invoked,
we need to update the entire UI of this TreeElement.
(WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
Create the UI for the mainTitle of this PropertyTreeElement.
(WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement):
Helpers for creating the small components of the title UI.
(WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
Establish when a property should still be displayed as a "property" even when in API mode.
For example a value property on a prototype, should still display as an expandable property.
* UserInterface/Views/ObjectTreeView.css:
(.object-tree > :matches(.title, .object-preview)::before):
(.object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
(.object-tree.expanded > :matches(.title, .object-preview)::before):
(.object-tree .object-tree-outline):
(.object-tree-outline ol):
(.object-tree-outline li .empty-message):
(:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
(.object-tree > .title): Deleted.
(.object-tree-outline): Deleted.
(.object-tree-outline li): Deleted.
(.object-tree-outline li.parent): Deleted.
(.object-tree-outline li.parent::before): Deleted.
(.object-tree-outline li.parent.expanded::before): Deleted.
(.object-tree-property .name): Deleted.
(.object-tree-property .name.not-enumerable): Deleted.
(.object-tree-property .value.error): Deleted.
(.console-group-messages .object-tree:not(.lossless-preview)): Deleted.
(.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)): Deleted.
(.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before): Deleted.
(.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree): Deleted.
(.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline): Deleted.
Move most PropertyTreeElement specific styles into ObjectPropertyTreeElement.css.
Plenty of console specific files were eliminated.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype.update):
(WebInspector.ObjectTreeView.prototype._updateProperties):
Part 2: Provide better parameter lists for native functions.
When expanding an object's prototype chain, with authored code
you will accurately see parameter lists for user authored functions
because we can get this by parsing Function.prototype.toString.
For native code, we don't get any parameter information. In such cases
we can detect we are a native function, and provide our own strings.
This fills in most of the JavaScript built-ins and some DOM
functions, however we should autogenerate the rest of the DOM.
* UserInterface/Base/Utilities.js:
(isFunctionStringNativeCode):
Helper to check if a function is native or not based on its string.
* UserInterface/Main.html:
* UserInterface/Models/NativeFunctionParameters.js: Added.
Dictionary of parameter lists for native constructor functions
and prototype functions.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement):
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionPropertyString):
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
(WebInspector.ObjectTreePropertyTreeElement.prototype):
When we have a native function, try to provide a better parameter string.
Part 3: Better handle errors when invoking getters.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.callFunction):
(WebInspector.RemoteObject.prototype.invokeGetter):
Pass the error, wasThrown, and result through to the caller so they can
act on all the information possible. Provide encapsulation though
and auto-convert the result to a RemoteObject for the callback.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._createTooltipForNode.setTooltip):
(WebInspector.DOMTreeElement.prototype._createTooltipForNode.resolvedNode):
(WebInspector.DOMTreeElement.prototype._createTooltipForNode):
Update current users of callFunctionOn for the new callback parameters.
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property.had-error > .icon):
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.):
Better style getters with errors.
2015-02-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Do not show "{}" after Date description in Object Previews
https://bugs.webkit.org/show_bug.cgi?id=141898
Reviewed by Timothy Hatcher.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
Only show "{...}" section for Date objects that have user
defined properties. Otherwise, Dates do not have properties.
2015-02-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused console-object-preview styles - replaced by ObjectPreviewView
https://bugs.webkit.org/show_bug.cgi?id=141945
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.console-object-preview): Deleted.
(.expanded .console-object-preview): Deleted.
(.console-object-preview .name): Deleted.
(.expanded .console-object-preview > .console-object-preview-body): Deleted.
(.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
2015-02-23 Saam Barati <saambarati1@gmail.com>
Web Inspector: BasicBlockAnnotator ranges should be inclusive of both the start and end offset
https://bugs.webkit.org/show_bug.cgi?id=141334
Reviewed by Timothy Hatcher.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.addStyleToTextRange):
2015-02-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Lazily Create GeneralTreeElement Status Elements
https://bugs.webkit.org/show_bug.cgi?id=141873
Reviewed by Timothy Hatcher.
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.set status):
(WebInspector.GeneralTreeElement.prototype.onattach):
(WebInspector.GeneralTreeElement.prototype._createElementsIfNeeded):
(WebInspector.GeneralTreeElement.prototype._updateStatusElement):
Lazily create and attach the status element container if
"this.status" is actually used by a GeneralTreeElement subclass.
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._updateStatus):
Set to the empty string instead of null to avoid inadvertently
creating status elements for no reason.
2015-02-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Give ObjectPreviewView a showTitle/showPreview toggle
https://bugs.webkit.org/show_bug.cgi?id=141874
Reviewed by Timothy Hatcher.
Refactor ObjectTree/ObjectPreview a bit to make it easier
to use expanding/collapsing previews in other places.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView):
(WebInspector.ObjectPreviewView.prototype.showTitle):
(WebInspector.ObjectPreviewView.prototype.showPreview):
Maintain both a titleElement and previewElement. Show only
one at a time based on showTitle/showPreview APIs.
* UserInterface/Views/ObjectTreeView.css:
(.object-tree.expanded .object-preview):
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView):
(WebInspector.ObjectTreeView.prototype.expand):
(WebInspector.ObjectTreeView.prototype.collapse):
If we have a preview, let PreviewView handle toggling
between a title and preview display.
2015-02-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Make Console UI icons / lines slightly larger
https://bugs.webkit.org/show_bug.cgi?id=141876
Reviewed by Timothy Hatcher.
In preparation for a new ObjectTree design with larger icons,
increase the size of existing output in the Console / Log
so they don't look so small in comparison. This:
- bumps minimum height of lines from 16px to 21px
- 10x10 icons to be 12x12
- recenters icons to match console prompt
- realigns icons with console log / object output
* UserInterface/Views/LogContentView.css:
(.console-user-command-result.console-log-level::before):
(.console-message, .console-user-command):
(.console-item::before):
(.console-user-command::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message):
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before):
(.outline-disclosure li):
(.outline-disclosure .expanded li):
Fix a case breaking single-line message height.
Only add padding to expanded trees, not collapsed trees.
* UserInterface/Views/QuickConsole.css:
(.quick-console > .console-prompt::before):
2015-02-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Generate Previews more often for RemoteObject interaction
https://bugs.webkit.org/show_bug.cgi?id=141875
Reviewed by Timothy Hatcher.
* UserInterface/Models/PropertyDescriptor.js:
(WebInspector.PropertyDescriptor.fromPayload):
Fix InternalPropertyDescriptor ingestion. There was no ".internal"
property on these objects, so take a flag.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype._getPropertyDescriptors):
Fix InternalPropertyDescriptor ingestion by specifying during
importing the internal properties. Also, get previews.
(WebInspector.RemoteObject.prototype.callFunction):
Always get previews when using callFunctionOn.
2015-02-20 Ronald Jett <rjett@apple.com>
Web Inspector: Add a setting for clearing the console on page reload
https://bugs.webkit.org/show_bug.cgi?id=134414
Reviewed by Timothy Hatcher.
Created a new setting "clear-log-on-reload", which defaults to true.
Users can toggle this setting with an item added to the console's context menu.
When enabled, the console will clear on page reload. When disabled, the console
content will remain during page reloads.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
2015-02-19 Saam Barati <saambarati1@gmail.com>
Web Inspector: merge in upstream Esprima to support parsing more of ES6
https://bugs.webkit.org/show_bug.cgi?id=141215
Reviewed by Timothy Hatcher.
This patch merges in a new esprima that has some ES6 support.
Specifically, the ES6 support ScriptSyntaxTree now has is:
- ForOf loops
- Object destructuring
- Array destructuring
ScriptSyntaxTree now uses Symbols for identifying AST node types
instead of strings. This will prevent any direct usage of strings
for node types instead of a direct property access off the
ScriptSyntaxTree constructor.
This patch also does some gardening work:
- TypeTokenAnnotator only walks over the incoming type information
data once to be more efficient.
- TypeTokenView is now smarter about updating its associated DOM node
only if its display name has changed.
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
* UserInterface/External/Esprima/esprima.js:
(.):
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.gatherIdentifiersInVariableDeclaration):
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
* UserInterface/Views/TypeTokenView.js:
(WebInspector.TypeTokenView.prototype.update):
2015-02-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Use of Array.from for NodeList/Arguments to Array conversion
https://bugs.webkit.org/show_bug.cgi?id=141819
Reviewed by Timothy Hatcher.
Array.from is clearer than Array.prototype.slice.call(arrayLike).
* UserInterface/Base/Test.js:
(.console.logType):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.promise):
(InspectorBackend.Command.prototype._invokeWithArguments):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._allMessages):
2015-02-19 Joseph Pecoraro <pecoraro@apple.com>
Follow-up fix to r180371. formatParameterAsValue expects full object, not just a description.
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2015-02-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Introduce FormattedValue helpers and use them in Console/ObjectTree
https://bugs.webkit.org/show_bug.cgi?id=141812
Reviewed by Timothy Hatcher.
There were a few different ways to get styled values. Try to consolidate them
all in FormattedValue. That is also a convenient place to have the styles.
* UserInterface/Main.html:
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._formatParameter):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsValue):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
(WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
(WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
(WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement): Deleted.
Fix console.table after renaming ObjectPreview.properties to ObjectPreview.propertyPreviews.
Also, use FormattedValue to create the value elements. Also, remove class
"source-code" as I do not see it actually being used in a meaningful way.
* UserInterface/Views/FormattedValue.css: Added.
(.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
(.formatted-number):
(.formatted-string, .formatted-regexp):
(.formatted-string):
(.formatted-regexp):
(.formatted-symbol):
(.formatted-null, .formatted-undefined):
* UserInterface/Views/FormattedValue.js: Added.
(WebInspector.FormattedValue.classNameForTypes):
(WebInspector.FormattedValue.classNameForObject):
(WebInspector.FormattedValue.createLinkifiedElementString):
(WebInspector.FormattedValue.createElementForTypesAndValue):
(WebInspector.FormattedValue.createElementForRemoteObject):
(WebInspector.FormattedValue.createElementForObjectPreview):
(WebInspector.FormattedValue.createElementForPropertyPreview):
Styles and formatted value element creation.
* UserInterface/Views/LogContentView.css:
(.expandable.source-code): Deleted.
Remove ".source-code". I do not see it actually being used in a meaningful way.
* UserInterface/Views/ObjectPreviewView.js:
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
(WebInspector.ObjectPreviewView.prototype._appendValuePreview):
(WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview): Deleted.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString): Deleted.
* UserInterface/Views/ObjectTreeView.css:
(.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap): Deleted.
(.formatted-number): Deleted.
(.formatted-string, .formatted-regexp): Deleted.
(.formatted-string): Deleted.
(.formatted-regexp): Deleted.
(.formatted-symbol): Deleted.
(.formatted-null, .formatted-undefined): Deleted.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.classNameForObject): Deleted.
Extract styles and value formatting to FormattedValue helpers.
2015-02-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
https://bugs.webkit.org/show_bug.cgi?id=141793
Unreviewed follow-up. Fix prototypes.
* UserInterface/Views/ObjectPreviewView.js:
* UserInterface/Views/ObjectTreeView.js:
2015-02-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Create Separate Model and View Objects for RemoteObjects / ObjectPreview / PropertyDescriptor
https://bugs.webkit.org/show_bug.cgi?id=141696
Reviewed by Timothy Hatcher.
* UserInterface/Main.html:
Add new files.
* UserInterface/Models/CollectionEntry.js: Added.
(WebInspector.CollectionEntry):
(WebInspector.CollectionEntry.fromPayload):
(WebInspector.CollectionEntry.prototype.get key):
(WebInspector.CollectionEntry.prototype.get value):
* UserInterface/Models/CollectionEntryPreview.js: Added.
(WebInspector.CollectionEntryPreview):
(WebInspector.CollectionEntryPreview.fromPayload):
(WebInspector.CollectionEntryPreview.prototype.get keyPreview):
(WebInspector.CollectionEntryPreview.prototype.get valuePreview):
* UserInterface/Models/ObjectPreview.js: Added.
(WebInspector.ObjectPreview):
(WebInspector.ObjectPreview.fromPayload):
(WebInspector.ObjectPreview.prototype.get type):
(WebInspector.ObjectPreview.prototype.get subtype):
(WebInspector.ObjectPreview.prototype.get description):
(WebInspector.ObjectPreview.prototype.get lossless):
(WebInspector.ObjectPreview.prototype.get overflow):
(WebInspector.ObjectPreview.prototype.get properties):
(WebInspector.ObjectPreview.prototype.get entries):
* UserInterface/Models/PropertyPreview.js: Added.
(WebInspector.PropertyPreview):
(WebInspector.PropertyPreview.fromPayload):
(WebInspector.PropertyPreview.prototype.get name):
(WebInspector.PropertyPreview.prototype.get type):
(WebInspector.PropertyPreview.prototype.get subtype):
(WebInspector.PropertyPreview.prototype.get value):
(WebInspector.PropertyPreview.prototype.get valuePreview):
* UserInterface/Models/PropertyDescriptor.js: Added.
(WebInspector.PropertyDescriptor.fromPayload):
(WebInspector.PropertyDescriptor.prototype.get name):
(WebInspector.PropertyDescriptor.prototype.get value):
(WebInspector.PropertyDescriptor.prototype.get writable):
(WebInspector.PropertyDescriptor.prototype.get configurable):
(WebInspector.PropertyDescriptor.prototype.get enumerable):
(WebInspector.PropertyDescriptor.prototype.get isOwnProperty):
(WebInspector.PropertyDescriptor.prototype.get wasThrown):
(WebInspector.PropertyDescriptor.prototype.get isInternalProperty):
(WebInspector.PropertyDescriptor.prototype.hasValue):
(WebInspector.PropertyDescriptor.prototype.hasGetter):
(WebInspector.PropertyDescriptor.prototype.hasSetter):
New Model objects for different Protocol types.
The only customizations right now are compatibility modifications
and PropertyDescriptor's "hasValue", "hasGetter", and "hasSetter"
functions to return reliable checks based on the descriptors contents.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.resolveNode):
(WebInspector.RemoteObject.prototype.get value):
(WebInspector.RemoteObject.prototype._isSymbol):
(WebInspector.RemoteObject.prototype.isCollectionType):
(WebInspector.RemoteObject.prototype.isWeakCollection):
(WebInspector.RemoteObject.prototype.getCollectionEntries):
(WebInspector.RemoteObject.prototype.arrayLength):
Clean up the existing code to enforce more checks and use our
style of member variables and public accessors.
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
(WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors):
(WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
(WebInspector.RemoteObject.prototype.callback):
Provide a new way of getting properties that returns Model objects
instead of raw protocol types.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._format):
(WebInspector.ConsoleMessageImpl.prototype._formatParameter):
(WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
(WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
Always include a preview when possible. Now, when forced to be an object,
force expansion even if the preview is lossless.
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
Use an ObjectTreeView instead of ObjectPropertiesSection.
(WebInspector.ConsoleMessageImpl.prototype._appendPreview): Deleted.
(WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews): Deleted.
(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews): Deleted.
(WebInspector.ConsoleMessageImpl.prototype._appendValuePreview): Deleted.
This code is moved into ObjectPreviewView.
* UserInterface/Views/ObjectPropertiesSection.js:
(WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
(WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
These types are now converted to Model types in Model objects, so do not do it here.
* UserInterface/Views/ObjectPreviewView.css: Added.
(.object-preview):
(.object-preview.lossless):
(.object-preview .name):
* UserInterface/Views/ObjectPreviewView.js: Added.
(WebInspector.ObjectPreviewView):
(WebInspector.ObjectPreviewView.prototype.get preview):
(WebInspector.ObjectPreviewView.prototype.get element):
(WebInspector.ObjectPreviewView.prototype.get mode):
(WebInspector.ObjectPreviewView.prototype.get lossless):
(WebInspector.ObjectPreviewView.prototype._numberOfPropertiesToShowInMode):
(WebInspector.ObjectPreviewView.prototype._appendPreview):
(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
(WebInspector.ObjectPreviewView.prototype._appendValuePreview):
(WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview):
An ObjectPreviewView can create a full/brief view given a ObjectPreview.
The view will contain formatted values everywhere possible.
* UserInterface/Views/ObjectTreePropertyTreeElement.js: Added.
(WebInspector.ObjectTreePropertyTreeElement):
(WebInspector.ObjectTreePropertyTreeElement.prototype.get property):
(WebInspector.ObjectTreePropertyTreeElement.prototype.onpopulate):
(WebInspector.ObjectTreePropertyTreeElement.prototype.onattach):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString):
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
(WebInspector.ObjectTreePropertyTreeElement.prototype.mode):
(WebInspector.ObjectTreePropertyTreeElement.prototype):
* UserInterface/Views/ObjectTreeView.js: Added.
(WebInspector.ObjectTreeView):
(WebInspector.ObjectTreeView.classNameForObject):
(WebInspector.ObjectTreeView.ComparePropertyDescriptors):
(WebInspector.ObjectTreeView.prototype.get object):
(WebInspector.ObjectTreeView.prototype.get element):
(WebInspector.ObjectTreeView.prototype.get expanded):
(WebInspector.ObjectTreeView.prototype.expand):
(WebInspector.ObjectTreeView.prototype.collapse):
(WebInspector.ObjectTreeView.prototype.update):
(WebInspector.ObjectTreeView.prototype._updateProperties):
(WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
Re-implementation of ObjectPropertiesSection for our Model objects
without "Section" semantics / dependencies. An ObjectTree will creates
an expandable tree for a RemoteObject. The top level clickable item
will be an ObjectPreview if possible, otherwise just a title element.
* UserInterface/Views/ObjectTreeView.css: Added.
(.object-tree):
(.object-tree > .title):
(.object-tree > :matches(.title, .object-preview)::before):
(.object-tree.expanded > :matches(.title, .object-preview)::before):
(.object-tree.lossless-preview > :matches(.title, .object-preview)::before):
(.object-tree-outline):
(.object-tree.expanded > .object-tree-outline):
(.object-tree-outline li):
(.object-tree-outline li.parent):
(.object-tree-outline li.parent::before):
(.object-tree-outline li.parent.expanded::before):
(.object-tree-outline ol):
(.object-tree-outline ol.expanded):
(.object-tree-outline li .empty-message):
(.object-tree-property .name):
(.object-tree-property .name.not-enumerable):
(.object-tree-property .value.error):
(.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
(.formatted-number):
(.formatted-string, .formatted-regexp):
(.formatted-string):
(.formatted-regexp):
(.formatted-symbol):
(.formatted-null, .formatted-undefined):
(.console-group-messages .object-tree:not(.lossless-preview)):
(.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
(.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before):
(.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree):
(.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
All styles for ObjectTree / ObjectPreview. Independent from
other styles in the inspector. Most of this is a copy of
the styles applied to ObjectPropertiesSection, renamed.
* UserInterface/Views/ObjectTreeCollectionTreeElement.js: Added.
(WebInspector.ObjectTreeCollectionTreeElement):
(WebInspector.ObjectTreeCollectionTreeElement.propertyDescriptorForEntry):
(WebInspector.ObjectTreeCollectionTreeElement.prototype.get remoteObject):
(WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand.callback):
(WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand):
(WebInspector.ObjectTreeCollectionTreeElement.prototype.oncollapse):
(WebInspector.ObjectTreeCollectionTreeElement.prototype.ondetach):
(WebInspector.ObjectTreeCollectionTreeElement.prototype._trackWeakEntries):
(WebInspector.ObjectTreeCollectionTreeElement.prototype._untrackWeakEntries):
(WebInspector.ObjectTreeCollectionEntryTreeElement):
(WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onpopulate):
(WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onattach):
(WebInspector.ObjectTreeEmptyCollectionTreeElement):
Essentially a copy of ObjectPropertiesSection Collection handling using
the ObjectTree class names.
* UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
Fix prototype typo.
2015-02-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DOMTree / Node Details Sidebar do not update as <input> content changes
https://bugs.webkit.org/show_bug.cgi?id=141790
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._characterDataModified):
Update Node "Value" details if character data changes.
* UserInterface/Views/DOMTreeUpdater.js:
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
Update the title of the parent. If the parent had a single text node child
and now doesn't, it will need to update its display.
2015-02-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
https://bugs.webkit.org/show_bug.cgi?id=141793
Reviewed by Timothy Hatcher.
Currently the backend disallows editing of Shadow DOM nodes,
so the frontend should not provide options that do not work.
Long term we should allow editing Shadow DOM nodes.
* UserInterface/Models/CSSStyleDeclaration.js:
(WebInspector.CSSStyleDeclaration.prototype.get editable):
Inline styles on a Shadow DOM node are not editable.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.ondelete):
(WebInspector.DOMTreeElement.prototype._startEditingTarget):
(WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
(WebInspector.DOMTreeElement.prototype._populateTextContextMenu):
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
(WebInspector.DOMTreeElement.prototype._startEditing):
Disable context menus and keyboard shortcuts on Shadow DOM nodes.
Only Context Menu item we keep is "Copy as HTML".
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._contextMenuEventFired):
(WebInspector.DOMTreeOutline.prototype.populateContextMenu):
Eliminate double look-up.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton):
Do not add the New Rule Button to the Styles Sidebar of Shadow DOM Nodes.
Instead this will just be an empty divider.
2015-02-18 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: REGRESSION: Missing Divider line between console.log and console evaluation
https://bugs.webkit.org/show_bug.cgi?id=141770
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.console-item):
(.console-message): Deleted.
2015-02-18 Jono Wells <jonowells@apple.com>
Web Inspector: Inspecting a page where resources are in folders forces folder organization on every subsequent page
https://bugs.webkit.org/show_bug.cgi?id=141397
Reviewed by Timothy Hatcher.
When removeChildren is called on an instance of a FolderizedTreeElement, the element's _groupedIntoFolders flag
will now be set to false. This will prevent unnecessary folderization upon a frame navigation. Also during an
onpopulate event, addChildForRepresentedObject is called repeatedly and much of the work done during each call
was unnecessary. That work has now been partially removed and partially relocated to a function that is only
called at the beginning of an onpopulate event.
* UserInterface/Views/FolderizedTreeElement.js:
(WebInspector.FolderizedTreeElement.prototype.set removeChildren): Set _groupedIntoFolders to false.
(WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Remove unnecessary treeOutline
emptiness check, and move _shouldGroupIntoFolders() check to new function prepareToPopulate().
(WebInspector.FolderizedTreeElement.prototype.prepareToPopulate): Create.
(WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue): Call prepareToPopulate().
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement.prototype.onpopulate): Call prepareToPopulate().
* UserInterface/Views/GeneralTreeElement.js: Drive-by inheritance style fix.
* UserInterface/Views/ResourceTreeElement.js: Drive-by inheritance style fix.
2015-02-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ES6: Improved Console Support for Promise Objects
https://bugs.webkit.org/show_bug.cgi?id=141634
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/RemoteObject.js:
For now just add Internal Properties and regular properties.
We will address the UI later.
2015-02-16 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Tweak the styles on the Console
https://bugs.webkit.org/show_bug.cgi?id=140580
- Use non-monospace (default sans-serif) font for console messages, but keep using monospace font
for objects, functions, and anything else that presumably code.
- Display all expandable objects on a separate row.
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleCommand.js:
(WebInspector.ConsoleCommand.prototype.decorateMessageElement):
(WebInspector.ConsoleCommand.prototype.toMessageElement):
* UserInterface/Views/ConsoleGroup.js:
(WebInspector.ConsoleGroup.prototype.addMessage):
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._format):
(WebInspector.ConsoleMessageImpl.prototype._isExpandable):
(WebInspector.ConsoleMessageImpl.prototype._formatParameter):
(WebInspector.ConsoleMessageImpl.prototype.append):
(WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
(WebInspector.ConsoleMessageImpl.prototype.decorateMessageElement):
(WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString): Deleted.
* UserInterface/Views/LogContentView.css:
(.console-messages):
(.console-formatted-object):
(.expandable.source-code):
(.console-message):
(.console-item.selected::after):
(.console-messages:focus .console-item.selected::after):
(.console-user-command-result.console-log-level::before):
(.console-item::before):
(.console-message .bubble):
(.console-error-level):
(.console-error-level .section .header .title):
(.console-error-level::before):
(.console-warning-level):
(.console-warning-level .console-message-text):
(.console-warning-level::before):
(.console-user-command::before):
(.console-group-messages .section):
(.console-group-messages .section .header::before):
(.console-group-messages .section .header .title):
(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
(.outline-disclosure li):
(.outline-disclosure li.parent::before):
(.console-item): Deleted.
(.console-item.selected): Deleted.
(.console-messages:focus .console-item.selected): Deleted.
(.console-item.selected .console-message::after): Deleted.
(.console-messages:focus .console-item.selected .data-grid tr.selected): Deleted.
(.console-messages:focus .console-item.selected .console-message::after): Deleted.
(.console-message, .console-user-command): Deleted.
(.console-message::before, .console-user-command::before, .javascript-prompt::before, .console-group-title::before): Deleted.
(.console-group): Deleted.
(.console-debug-level .console-message-text): Deleted.
(.console-debug-level::before): Deleted.
(.console-group-messages .section .header): Deleted.
(.console-group-messages .outline-disclosure): Deleted.
(.console-group-messages .outline-disclosure > ol): Deleted.
(.outline-disclosure li.elements-drag-over .selection): Deleted.
(.outline-disclosure ol:focus li.selected .selection): Deleted.
(.outline-disclosure > ol): Deleted.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._mousemove):
(WebInspector.LogContentView.prototype._updateMessagesSelection):
(WebInspector.LogContentView.prototype._isMessageVisible):
(WebInspector.LogContentView.prototype._isMessageSelected):
(WebInspector.LogContentView.prototype._selectAllMessages):
(WebInspector.LogContentView.prototype._unfilteredMessages):
(WebInspector.LogContentView.prototype._visibleMessages):
(WebInspector.LogContentView.prototype._filterMessages):
(WebInspector.LogContentView.prototype._leftArrowWasPressed):
(WebInspector.LogContentView.prototype._propertiesSectionDidUpdateContent):
(WebInspector.LogContentView.prototype._performSearch):
* UserInterface/Views/Section.css:
(.section .header .title::before):
(.section.expanded .header .title::before):
(.section .header .title, .event-bar .header .title):
(.properties-tree li.parent::before):
(.section .header::before): Deleted.
(.section.expanded .header::before): Deleted.
2015-02-15 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: remove unused XHR replay code
https://bugs.webkit.org/show_bug.cgi?id=141622
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
2015-02-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove specificity approximation
https://bugs.webkit.org/show_bug.cgi?id=141600
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
2015-02-13 Timothy Hatcher <timothy@apple.com>
Web Inspector: support better git diff of localizedStrings.js
https://bugs.webkit.org/show_bug.cgi?id=137237
Reviewed by Joseph Pecoraro.
* .gitattributes: Added.
2015-02-12 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: add keyboard shortcut to enable/disable all breakpoints
https://bugs.webkit.org/show_bug.cgi?id=141527
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel): Bind Command/Control + Y to toggle breakpoints button.
2015-02-12 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: support adding and removing timelines to the timeline sidebar panel and overview
https://bugs.webkit.org/show_bug.cgi?id=138434
Reviewed by Timothy Hatcher.
A timeline recording's timelines should not be static. This patch adds relevant machinery to
dynamically add and remove timelines from the Timeline model object and its various views.
From the model side, this is a simple change that adds TimelineAdded and TimelineRemoved events.
The timeline views and timeline sidebar require more extensive changes to support this functionality.
Instead of keeping a fixed set of timeline tree elements, the sidebar view now adds and removes
tree elements to reflect the available timelines for the displayed timeline recording.
This change also includes several minor cleanups, such as appending 'Element' to view properties that
are DOM elements, and renaming TimelineContentView to TimelineRecordingContentView.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._loadNewRecording):
Populate predefined network, layout, and script timelines here after constructing the recording.
* UserInterface/Main.html:
* UserInterface/Models/Timeline.js:
Move hardcoded class names and localized strings to these base class methods. This is not implemented
using overridden methods because not all timeline types have their own subclasses. Add a dummy
implementation of saveIdentityToCookie() to avoid warnings when saving sidebar panel selection state.
(WebInspector.Timeline.prototype.get type):
(WebInspector.Timeline.prototype.get displayName): Added.
(WebInspector.Timeline.prototype.get iconClassName): Added.
(WebInspector.Timeline.prototype.addRecord):
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording):
(WebInspector.TimelineRecording.prototype.addTimeline.set timeline): Added.
(WebInspector.TimelineRecording.prototype.addTimeline): Added.
(WebInspector.TimelineRecording.prototype.removeTimeline.get this): Added.
(WebInspector.TimelineRecording.prototype.removeTimeline): Added.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
* UserInterface/Views/LayoutTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle): Deleted.
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
(WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie): Fix error message formatting.
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
* UserInterface/Views/NetworkTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle): Deleted.
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/ScriptTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle): Deleted.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):
(WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/TimelineOverview.js:
Convert this class to use the representedObject class pattern. It manages its own mapping from timelines
to overview graph views. Append 'Element' to some properties holding DOM elements.
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.reset):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview.prototype._timelineRemoved):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
* UserInterface/Views/TimelineRecordingContentView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.css.
Remove hard-coded top offsets and heights that need to be dynamically calculated.
(.content-view.timeline-recording > .timeline-overview):
(.content-view.timeline-recording > .view-container):
(.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td):
(.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data):
* UserInterface/Views/TimelineRecordingContentView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.js.
Manage timeline views and path components dynamically. Adjust view heights as necessary. Append 'Element'
to some properties holding DOM elements.
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
(WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
(WebInspector.TimelineRecordingContentView.prototype.get allowedNavigationSidebarPanels):
(WebInspector.TimelineRecordingContentView.prototype.get supportsSplitContentBrowser):
(WebInspector.TimelineRecordingContentView.prototype.get navigationItems):
(WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.filterDidChange):
(WebInspector.TimelineRecordingContentView.prototype.updateLayout):
(WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
(WebInspector.TimelineRecordingContentView.prototype.restoreFromCookie):
(WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters.checkTimeBounds):
(WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters):
(WebInspector.TimelineRecordingContentView.prototype._pathComponentSelected):
(WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange):
(WebInspector.TimelineRecordingContentView.prototype._showTimelineView):
(WebInspector.TimelineRecordingContentView.prototype._update):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
(WebInspector.TimelineRecordingContentView.prototype._stopUpdatingCurrentTime):
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
Fix a minor regression where we make a useless call to stop updating the time.
(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
(WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
(WebInspector.TimelineRecordingContentView.prototype._recordingUnloaded):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content):
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content): Deleted.
* UserInterface/Views/TimelineSidebarPanel.js:
Manage timeline tree elements dynamically. Adjust view heights as necessary. Append 'Element'
to some properties holding DOM elements. Keep track of the displayed recording and view explicitly.
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.shown):
(WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
(WebInspector.TimelineSidebarPanel.prototype.updateFilter):
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
(WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
(WebInspector.TimelineSidebarPanel.prototype.get if):
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
(WebInspector.TimelineSidebarPanel.prototype._recordingCountChanged):
(WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
(WebInspector.TimelineSidebarPanel.prototype._recordingLoaded):
(WebInspector.TimelineSidebarPanel.prototype._timelineRemoved):
(WebInspector.TimelineSidebarPanel.prototype._timelineCountChanged):
(WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Deleted.
(WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
* UserInterface/Views/TimelineView.css:
(.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
(.panel.navigation.timeline.timeline-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
2015-02-12 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: Large background image fails to load in inspector
https://bugs.webkit.org/show_bug.cgi?id=141405
Reviewed by Timothy Hatcher.
Convert base64-encoded resource data to binary data using Uint8Array and Blobs.
Use object URLs for blobs instead of data URLs when setting image 'src' attribute
and in @font-face urls. This conversion happens when the backend indicates that
resource content is base64-encoded.
Update image and font clients of resource-fetching functionality so that they use
object URLs correctly. Add some plumbing so that Blobs can be constructed with
the correct mime-type.
* UserInterface/Base/Utilities.js:
(decodeBase64ToBlob): Added.
* UserInterface/Models/CSSStyleSheet.js:
(WebInspector.CSSStyleSheet.prototype.get mimeType): Added.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.createObjectURL): Added.
(WebInspector.Resource.prototype.getImageSize.imageDidLoad):
(WebInspector.Resource.prototype.getImageSize):
(WebInspector.Resource.prototype.get contentURL): Deleted.
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype.get mimeType): Added.
* UserInterface/Models/SourceCode.js:
(WebInspector.SourceCode.prototype.get mimeType): Added.
(WebInspector.SourceCode.prototype._processContent):
(WebInspector.SourceCode.prototype.get contentIsBase64Encoded): Deleted.
* UserInterface/Models/SourceCodeRevision.js:
(WebInspector.SourceCodeRevision):
(WebInspector.SourceCodeRevision.prototype.copy):
(WebInspector.SourceCodeRevision.prototype.get contentIsBase64Encoded): Deleted.
(WebInspector.SourceCodeRevision.prototype.set contentIsBase64Encoded): Deleted.
* UserInterface/Views/FontResourceContentView.js:
(WebInspector.FontResourceContentView.prototype.hidden):
(WebInspector.FontResourceContentView.prototype.closed):
* UserInterface/Views/ImageResourceContentView.js:
(WebInspector.ImageResourceContentView.prototype.contentAvailable):
2015-02-11 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: REGRESSION: Clicking selected item in the sidebar second time should scroll to the corresponding line
https://bugs.webkit.org/show_bug.cgi?id=140280
Reviewed by Brian Burg.
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showContentView):
Perform scolling regardless of the navigation history. Since scrolling source code doesn't introduce a BackForwardEntry,
it's possible that the actual content view has a different scroll position.
2015-02-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Better handle unknown release versions
https://bugs.webkit.org/show_bug.cgi?id=141454
Reviewed by Timothy Hatcher.
* UserInterface/Base/Platform.js:
If given an unknown Mac OS X version, at least parse
the version number in WebInspector.Platform.
2015-02-10 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Make collapsed sidebars undraggable
https://bugs.webkit.org/show_bug.cgi?id=140664
Reviewed by Timothy Hatcher.
* UserInterface/Views/Sidebar.css:
(.sidebar.collapsed):
(.sidebar.collapsed.right > .resizer): Deleted.
(.sidebar.collapsed.left > .resizer): Deleted.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar):
(WebInspector.Sidebar.prototype._resizerMouseDown):
(WebInspector.Sidebar.prototype._resizerMouseMoved):
(WebInspector.Sidebar.prototype._resizerDoubleClicked): Deleted.
2015-02-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS Pretty Printing: still fails fails to put space between rgb(...) and numbers in minified gradients
https://bugs.webkit.org/show_bug.cgi?id=141411
Reviewed by Timothy Hatcher.
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* UserInterface/Views/CodeMirrorFormatters.js:
Token actually was "number m-css" so we should check token strings
more robustly, like elsewhere in the formatters.
2015-02-09 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: Uncaught exception when reporting wrong backend command call signature
https://bugs.webkit.org/show_bug.cgi?id=141401
Reviewed by Joseph Pecoraro.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype._invokeWithArguments): Fix wrong variable name.
2015-02-06 Jono Wells <jonowells@apple.com>
Web Inspector: REGRESSION: CSS Resource appears as empty after editing it via Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=140586
Reviewed by Timothy Hatcher.
Update SourceCode#_processContent to properly handle the promise returned from CSSAgent so that the content
will properly update when a style has changed. Properly clear the existing _requestContentPromise on the
stylesheet so that the content will update correctly.
* UserInterface/Controllers/CSSStyleManager.js: Drive-by style updates.
(WebInspector.CSSStyleManager.prototype._fetchInfoForAllStyleSheets):
* UserInterface/Models/CSSStyleSheet.js: Drive-by inheritance style update.
(WebInspector.CSSStyleSheet.prototype.requestContentFromBackend): Remove unnecessary backend promise function call.
* UserInterface/Models/Resource.js: Drive-by removal of unused variable.
* UserInterface/Models/SourceCode.js:
(WebInspector.SourceCode.prototype.markContentAsStale): Clear _requestContentPromise.
(WebInspector.SourceCode.prototype._processContent): Handle `parameters.text` correctly.
2015-02-04 Jono Wells <jonowells@apple.com>
Web Inspector: REGRESSION: Inline SourceMap resources show empty content when opened.
https://bugs.webkit.org/show_bug.cgi?id=141225
Reviewed by Timothy Hatcher.
Change WebInspector.SourceMapResource.prototype.requestContentFromBackend to correctly and consistently handle
calls to NetworkAgent. The helper function sourceMapResourceLoaded will now properly handle parameters as a single
payload, including manual calls in the case where the source map content is in a data URI. Also
WebInspector.SourceCode.prototype._processContent now properly handles an error string used for displaying
resource loading error messages in the resource content view.
* UserInterface/Models/Resource.js: drive-by style fix.
* UserInterface/Models/SourceCode.js:
(WebInspector.SourceCode.prototype._processContent):
Properly handle error string.
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource.prototype.requestContentFromBackend):
(WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
Formerly sourceMapResourceLoadError, now handles parameters from the NetworkAgent correctly.
(WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
This function now handles NetworkAgent errors only.
2015-02-05 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: eliminate some unnecessary layout/painting in timeline overview and ruler
https://bugs.webkit.org/show_bug.cgi?id=141293
Reviewed by Timothy Hatcher.
The timeline overview's ruler was forcing repaints of divider labels even if the labels
had not changed since the last requestAnimationFrame. Bail out early if nothing changed.
The timeline overview and its graphs were updating layout using requestAnimationFrame
even when the TimelineContentView is not visible. Fix this by propagating visibility
changes to subviews, and not updating layout when hidden.
The above change also fixes an assertion sometimes encountered when the timeline view
tries to cache an element's offset width, but cannot because it isn't visible.
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.shown):
(WebInspector.TimelineContentView.prototype.hidden):
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.get visible):
(WebInspector.TimelineOverview.prototype.shown):
(WebInspector.TimelineOverview.prototype.hidden):
(WebInspector.TimelineOverview.prototype._needsLayout):
* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph.prototype.get visible):
(WebInspector.TimelineOverviewGraph.prototype.shown):
(WebInspector.TimelineOverviewGraph.prototype.hidden):
(WebInspector.TimelineOverviewGraph.prototype.needsLayout):
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.updateLayout):
2015-02-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ES6: Improved Console Support for Symbol Objects
https://bugs.webkit.org/show_bug.cgi?id=141173
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.prototype._isSymbol):
Symbols have an objectId because it is a non-primitive that cannot be passed
by value, however it cannot have properties, so handle some cases.
* UserInterface/Views/LogContentView.css:
(.console-formatted-symbol):
Give Symbol's their own color.
2015-02-04 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Insertion bar (caret) is hidden behind the placeholder text in the style editor
https://bugs.webkit.org/show_bug.cgi?id=139659
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
Use non-monospace font to fit the placeholder text on a single line and
match the color if the native placeholder.
2015-02-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.table with columnName filter for non-existent property should still show column
https://bugs.webkit.org/show_bug.cgi?id=141066
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
(WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
If a second argument was provided to console.table, try to extract a list
of string names to use for the object properties. Output a table with
the provided column names, in the specified order. Also, use this
opportunity to mark missing properties with an em dash.
2015-02-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS Autocompletion: Autodetect many color supporting properties
https://bugs.webkit.org/show_bug.cgi?id=141166
Reviewed by Timothy Hatcher.
* UserInterface/Base/Utilities.js:
Add String.prototype.endsWith. Group String extensions together.
* UserInterface/Models/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
If a property name ends in "color", provide CSS color completions.
(WebInspector.CSSKeywordCompletions.isColorAwareProperty): Deleted.
This was unused and disagrees slightly with the implementation above.
2015-02-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Support console.table
https://bugs.webkit.org/show_bug.cgi?id=141058
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
New "Index", "(Index)", "Value", table header strings.
* UserInterface/Views/ConsoleMessage.js:
Add "Table", but add FIXMEs to consider using the protocol generated enums.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._format):
Special case console.table messages.
(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
(WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
Factor out ProjectPreview printing. Also, replace newlines in strings
with return characters, like we did elsewhere.
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
Ultimately try to create a DataGrid from the output. Search first
for rich object data in the list. If no rich object data is found
just check for simple values. If the table is lossy, also do
a log of the object in case the user wants to see more data.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid):
The for..in enumeration is unordered and may not give us the
column ordering we wanted. So include an optional preferred
column names list to get the preferred order.
(WebInspector.DataGrid.createSortableDataGrid):
Numerous bug fixes here. Accidental globals, typos, and sorting failures.
(WebInspector.DataGrid.prototype.autoSizeColumns):
(WebInspector.DataGrid.prototype.textForDataGridNodeColumn):
(WebInspector.DataGrid.prototype._copyTextForDataGridNode):
Create a generic method to get the text for a datagrid node in a column.
This is important for getting the text from console.table previews which
contains Nodes.
* UserInterface/Views/LogContentView.css:
(.console-messages:focus .console-item.selected .data-grid tr.selected):
(.console-item .data-grid tr.selected):
DataGrid selection colors while in the console which may or may
not have selected console items.
2015-02-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Extend CSS.getSupportedCSSProperties to provide values for properties for CSS Augmented JSContext
https://bugs.webkit.org/show_bug.cgi?id=141064
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSCompletions.js:
* UserInterface/Models/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.addCustomCompletions):
(WebInspector.CSSKeywordCompletions.addPropertyCompletionValues):
If a property is specified with custom values, extend the
keyword completions map to make those values available
in autocompletion.
2015-01-30 Joseph Pecoraro <pecoraro@apple.com>
Remote Web Inspector should not show undock toolbar buttons
https://bugs.webkit.org/show_bug.cgi?id=141061
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Be sure to update the toolbar's dock navigation icons because they
may need to be hidden (the default state).
2015-01-29 Saam Barati <saambarati1@gmail.com>
Web Inspector: Allow text selection when the BasicBlockAnnotator is enabled
https://bugs.webkit.org/show_bug.cgi?id=140987
Reviewed by Timothy Hatcher.
Because the BasicBlockAnnotator no longer sets the background color of
lines that haven't executed to gray, text selection while the
BasicBlockAnnotator is enabled no longer results in a bad user interface.
This patch both allows text selection while the BasicBlockAnnotator is
enabled and also removes the now unused listeners to CodeMirror's focus
and blur events.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
(WebInspector.SourceCodeTextEditor.prototype.gainedFocus): Deleted.
(WebInspector.SourceCodeTextEditor.prototype.lostFocus): Deleted.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.gainedFocus): Deleted.
(WebInspector.TextEditor.prototype.lostFocus): Deleted.
2015-01-29 Saam Barati <saambarati1@gmail.com>
Web Inspector: Make BasicBlockAnnotator lessen the saturation of syntax highlighting instead of graying out unexecuted code
https://bugs.webkit.org/show_bug.cgi?id=141011
Reviewed by Timothy Hatcher.
This patch removes a lot of the complicated logic associated around
determining which code can be grayed out by the BasicBlockAnnotator.
Instead, the BasicBlockAnnotator now applies a CSS class to all the
code that has not executed which lessens the saturation of the
syntax coloring for the code. This creates both a nicer user
interface and a nicer user experience because it makes reading
source code with the BasicBlockAnnotator enabled more pleasant.
* UserInterface/Controllers/BasicBlockAnnotator.js:
(WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
(WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
(WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
(WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyWhitespace): Deleted.
(WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyClosingBrace): Deleted.
(_canGrayOutEntireLine): Deleted.
(_grayOutLine): Deleted.
(_clearRangeForBasicBlockMarker.get marker): Deleted.
(_clearRangeForBasicBlockMarker): Deleted.
* UserInterface/Views/SourceCodeTextEditor.css:
(.hover-menu.color > img):
(.basic-block-has-not-executed): Deleted.
(.basic-block-has-not-executed-prepend::before): Deleted.
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(.cm-s-default .basic-block-has-not-executed):
(.cm-s-default .basic-block-has-not-executed.cm-comment):
(.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-3, .cm-property)):
(.cm-s-default .basic-block-has-not-executed:matches(.cm-number, .cm-atom.cm-hex-color)):
(.cm-s-default .basic-block-has-not-executed.cm-string):
(.cm-s-default .basic-block-has-not-executed.cm-m-xml.cm-meta):
(.cm-s-default .basic-block-has-not-executed.cm-m-xml.cm-attribute):
2015-01-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ES6: Improved Console Format for Set and Map Objects (like Arrays)
https://bugs.webkit.org/show_bug.cgi?id=122867
Reviewed by Timothy Hatcher.
This includes Set/Map/WeakMap previews:
- Set previews: Set {1, 2, 3}
- Map/WeakMap previews: Map {1 => 2, "key" => "value"}
For WeakMaps:
- the preview itself shows up to 5 key/value pairs from when the object was logged
- the previews are strings only, and thus do not retain the actual keys/values
- when expanding, we get RemoteObjects and strongly retain the keys/values
- when collapsing / clearing, we release the RemoteObjects so they can get collected
Currently you collapse the <entries> section, and re-expand later the
collection may show you knew keys/values. The UI for this will change.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.isCollectionType):
(WebInspector.RemoteObject.prototype.isWeakCollection):
(WebInspector.RemoteObject.prototype.getCollectionEntries):
(WebInspector.RemoteObject.prototype.releaseWeakCollectionEntries):
(WebInspector.RemoteObject.prototype.arrayLength):
(WebInspector.RemoteObject.prototype._weakCollectionObjectGroup):
High level functions for dealing with a RemoteObject that may be a
collection / weak collection.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
Include default formatters for collection types.
(WebInspector.ConsoleMessageImpl.prototype._appendPreview):
(WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews):
(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
(WebInspector.ConsoleMessageImpl.prototype._appendValuePreview):
(WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview): Deleted.
Refactor preview generation a bit and include a specific path for
generation the output of a preview with "entries".
* UserInterface/Views/LogContentView.css:
(.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object):
With nested Object previews ("Map {{a:1} => 1}") don't show "Object" for the inner
object preview. Only show it if it has a unique type ("Map {Foo {a:1} => 1}")
(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
(:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section):
(:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .properties):
Make map/set/weakmap display like Objects.
* UserInterface/Views/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection.prototype.update):
(WebInspector.ObjectPropertiesSection.prototype.updateProperties):
(WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
(WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
(WebInspector.CollectionEntriesMainTreeElement):
(WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
(WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
(WebInspector.CollectionEntriesMainTreeElement.prototype.oncollapse):
(WebInspector.CollectionEntriesMainTreeElement.prototype.ondetach):
(WebInspector.CollectionEntriesMainTreeElement.prototype._trackWeakEntries):
(WebInspector.CollectionEntriesMainTreeElement.prototype._untrackWeakEntries):
(WebInspector.CollectionEntryTreeElement):
(WebInspector.CollectionEntryTreeElement.prototype.onpopulate):
(WebInspector.CollectionEntryTreeElement.prototype.onattach):
(WebInspector.EmptyCollectionTreeElement):
(WebInspector.ObjectPropertiesSection.prototype.update.callback): Deleted.
Add a quick UI for exploring the entries of a collection. We are actively
changing the styles of objects in the Console, so this should change soon.
2015-01-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Change Main Frame Status Buttons when debugging Augmented JSContext
https://bugs.webkit.org/show_bug.cgi?id=141006
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
New "Restart" string.
* UserInterface/Base/Main.js:
(WebInspector.canArchiveMainFrame):
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
(WebInspector.FrameTreeElement.prototype._updateDownloadButton):
Update the tooltip when in a non-Web debuggable, and only show
the Download button when in a Web debuggable.
* UserInterface/Views/TreeElementStatusButton.js:
(WebInspector.TreeElementStatusButton.prototype.set hidden):
Oops! The implementation was backwards. Simplify with classList.toggle.
2015-01-28 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: remove CSS.setPropertyText, CSS.toggleProperty and related dead code
https://bugs.webkit.org/show_bug.cgi?id=140961
Reviewed by Timothy Hatcher.
Setters for CSSProperty (except override) are not used, so delete them. These setters
and their callees in DOMNodeStyles were the only clients of the removed protocol commands.
* UserInterface/Models/CSSProperty.js:
(WebInspector.CSSProperty.prototype.update):
(WebInspector.CSSProperty.prototype.get name):
(WebInspector.CSSProperty.prototype.get value):
(WebInspector.CSSProperty.prototype.get priority):
(WebInspector.CSSProperty.prototype.hasOtherVendorNameOrKeyword):
(WebInspector.CSSProperty.prototype.set text): Deleted.
(WebInspector.CSSProperty.prototype.set name): Deleted.
(WebInspector.CSSProperty.prototype.set value): Deleted.
(WebInspector.CSSProperty.prototype.set important): Deleted.
(WebInspector.CSSProperty.prototype.set priority): Deleted.
(WebInspector.CSSProperty.prototype.set enabled): Deleted.
(WebInspector.CSSProperty.prototype.add): Deleted.
(WebInspector.CSSProperty.prototype.remove): Deleted.
(WebInspector.CSSProperty.prototype._updatePropertySoon.performUpdate): Deleted.
(WebInspector.CSSProperty.prototype._updatePropertySoon): Deleted.
(WebInspector.CSSProperty.prototype._cancelPendingUpdate): Deleted.
* UserInterface/Models/CSSStyleDeclaration.js:
(WebInspector.CSSStyleDeclaration.prototype.addProperty): Deleted.
(WebInspector.CSSStyleDeclaration.prototype.removeProperty): Deleted.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.addEmptyRule):
(WebInspector.DOMNodeStyles.prototype.addRule): Deleted.
(WebInspector.DOMNodeStyles.prototype.changeProperty): Deleted.
(WebInspector.DOMNodeStyles.prototype.changePropertyText): Deleted.
(WebInspector.DOMNodeStyles.prototype.changePropertyEnabledState): Deleted.
(WebInspector.DOMNodeStyles.prototype.addProperty): Deleted.
(WebInspector.DOMNodeStyles.prototype.removeProperty): Deleted.
(WebInspector.DOMNodeStyles.prototype._handlePropertyChange): Deleted.
* UserInterface/Protocol/Legacy/6.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype._newRuleClicked):
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
2015-01-28 Dana Burkart <dburkart@apple.com>
Move ASan flag settings from DebugRelease.xcconfig to Base.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=136765
Reviewed by Alexey Proskuryakov.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
2015-01-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Object Previews in the Console
https://bugs.webkit.org/show_bug.cgi?id=129204
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
Update RuntimeManager callsites that do not need object previews.
* UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evalCallback):
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
Update the main evaluate method to include a boolean parameter for
object previews. Most callers do not need them. Also, since previews
were not available on iOS 6, switch to invoke, to conditionally
include the command parameter.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.get preview):
Store the preview from the payload.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._format):
(WebInspector.ConsoleMessageImpl.prototype._formatParameter):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
(WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
Pass an explicit false for most formatters to not use a preview if available.
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
Currently only object types are previewed. Though we request previews
for arrays, we don't use the preview because we show a better preview
by just immediately requesting for a full non-preview property list.
(WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
Quickly output an object preview into the title element. The format
is "ClassName {prop: value...}". Elide the class name if it is "Object".
Also skip over certain preview properties that may not be useful
at a glance (like constructor, or accessors without values).
* UserInterface/Views/LogContentView.css:
(.console-object-preview):
(.console-formatted-array .console-object-preview):
(.console-object-preview-lossless):
(.expanded .console-object-preview):
Show lossy previews in italics.
Show lossless previews and array previews without italics.
Do not show the class name in the preview in italics when expanded.
(.console-object-preview .name):
Give preview property names the same color as ObjectPropertiesSection property names.
(.expanded .console-object-preview > .console-object-preview-body):
When expanding an object, hide the preview.
(.console-object-preview > .console-object-preview-name.console-object-preview-name-Object):
(.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object):
For "Object" previews, hide the name "Object" when not expanded, and show it when expanded.
2015-01-23 Saam Barati <saambarati1@gmail.com>
Web Inspector: Disable *Annotators on minified files that aren't pretty printed
https://bugs.webkit.org/show_bug.cgi?id=140550
Reviewed by Timothy Hatcher.
When SourceCodeTextEditor speculates that a file is minified it
sets a flag on itself that the Annotators will notice when pretty
printing and turning on type profiling.
SourceCodeTextEditor enforces the following two behaviors:
1. Always pretty print a file if we think it's minified while
viewing type annotations. So, while viewing a minified file,
if you press the type profiling button, the pretty printer will
first reformat the file, then the type profiler will insert type annotations.
2. If the type profiler is enabled and we're viewing a pretty
printed file that we think originally was minified, and the
pretty printer is disabled via pressing the button, then the
type profiler will also be disabled.
These two behaviors maintain a good user experience because
it prevents a bad visual representation of profiler data and
also prevents bad performance.
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations): Deleted.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.shown):
(WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
(WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
(WebInspector.SourceCodeTextEditor.prototype._contentWillPopulate):
(WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
2015-01-22 Jonathan Wells <jonowells@apple.com>
Web Inspector: ResourceContentView.js incorrectly contains call to WebInspector.UIString with a variable parameter
https://bugs.webkit.org/show_bug.cgi?id=140268
Reviewed by Timothy Hatcher.
UIString no longer incorrectly used around variables. Drive-by fixes to prototype inheritance style.
Use of Promises corrected such that requesting content for a resource resolves rather than rejects if
a resource can't be found or has another error that isn't a web inspector error.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Models/Resource.js: Change reject to resolve.
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype.requestContentFromBackend): Proper use of Error object.
* UserInterface/Models/SourceCode.js: Use correct inheritance style.
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype._contentAvailable): Handle error now that promise resolves.
(WebInspector.ResourceContentView.prototype._contentError): Remove incorrect use of UIString.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._contentAvailable): Handle error now that promise resolves.
2015-01-22 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Expected gutter highlight when selecting console input line, just like output line
https://bugs.webkit.org/show_bug.cgi?id=140696
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
2015-01-21 Saam Barati <saambarati1@gmail.com>
Web Inspector: Change Annotator's isActive getter into an isActive() function.
https://bugs.webkit.org/show_bug.cgi?id=140729
Reviewed by Timothy Hatcher.
This patch also makes the child classes of Annotator use
the function instead of accessing the property directly.
* UserInterface/Controllers/Annotator.js:
(WebInspector.Annotator.prototype.isActive):
(WebInspector.Annotator.prototype.get isActive): Deleted.
* UserInterface/Controllers/BasicBlockAnnotator.js:
(WebInspector.BasicBlockAnnotator.prototype.insertAnnotations):
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
(WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
2015-01-21 Saam Barati <saambarati1@gmail.com>
Web Inspector: Don't allow the BasicBlockAnnotator to highlight a section if it's only a closing brace
https://bugs.webkit.org/show_bug.cgi?id=140727
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/BasicBlockAnnotator.js:
(WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
(WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyClosingBrace):
BasicBlockAnnotator tries to no longer highlight a basic block if it is only
whitespace and a closing brace. These ranges are often after statements
that make these basic blocks unreachable, such as a return/break/continue
statement occurring inside a if/else/while/for block. This check won't
match every highlighted empty closing brace, but catches most of them
because it only does intra block analysis instead of inter block analysis.
2015-01-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Use spread operator in a few places
https://bugs.webkit.org/show_bug.cgi?id=140699
Reviewed by Geoffrey Garen.
* UserInterface/Controllers/ProbeManager.js:
(WebInspector.ProbeManager.prototype.get probeSets):
Simplify by using the spread operator.
* UserInterface/Models/TimelineRecording.js:
This actually fixes an issue. The one place this was used was expecting
an array and called ".length" on the result. However, the iterator being
returned does not have a ".length" property so it was always undefined.
2015-01-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Expanding event objects in console shows undefined for most values, it should have real values
https://bugs.webkit.org/show_bug.cgi?id=137306
Reviewed by Timothy Hatcher.
When first expanding an object, show all the object's own properties and any
getter properties that may be on its prototype chain. Now, we only fetch
own properties, for __proto__ properties.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.getOwnProperties):
(WebInspector.RemoteObject.prototype.getOwnAndGetterProperties):
(WebInspector.RemoteObject.prototype.getAllProperties):
(WebInspector.RemoteObject.prototype.get hasChildren): Deleted.
* UserInterface/Views/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection):
(WebInspector.ObjectPropertiesSection.prototype.update):
(WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
2015-01-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Should show dynamic specificity values
https://bugs.webkit.org/show_bug.cgi?id=140647
Reviewed by Benjamin Poulain.
For dynamic selectors, provide text in the tooltip describing that the
specificity is dynamic and may change, and pointing out the element
the current value was calculated against.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/CSSSelector.js:
(WebInspector.CSSSelector):
(WebInspector.CSSSelector.prototype.get specificity):
(WebInspector.CSSSelector.prototype.get dynamic):
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload.return):
(WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
2015-01-19 Saam Barati <saambarati1@gmail.com>
Web Inspector: Provide a front end for JSC's Control Flow Profiler
https://bugs.webkit.org/show_bug.cgi?id=138454
Reviewed by Timothy Hatcher.
This patch creates a user interface for JSC's control flow profiler.
The Web Inspector gets basic block ranges from JSC, and displays
basic blocks that have not executed as having a gray background.
BasicBlockAnnotator is the class responsible for this UI logic.
It also does a few nifty things when presenting a UI for this gray
background color: if an entire line of code is within the basic
block's boundary, the annotator will not just highlight the background
behind the text, but the background of the entire line itself. This
provides a nicer experience when glancing through large JavaScript files.
This patch also adds some necessary wrapper methods inside TextEditor
for accessing CodeMirror's text highlighting functionality. It also
creates a way for TextEditor and SourceCodeTextEditor to listen
for focus events inside CodeMirror.
* UserInterface/Controllers/AnnotatorManager.js: Removed.
* UserInterface/Controllers/BasicBlockAnnotator.js: Added.
(WebInspector.BasicBlockAnnotator):
(WebInspector.BasicBlockAnnotator.prototype.clearAnnotations):
(WebInspector.BasicBlockAnnotator.prototype.insertAnnotations):
(WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
(WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
(WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
(WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyWhitespace):
(WebInspector.BasicBlockAnnotator.prototype._canGrayOutEntireLine):
(WebInspector.BasicBlockAnnotator.prototype._grayOutLine):
(WebInspector.BasicBlockAnnotator.prototype._clearRangeForBasicBlockMarker.get marker):
(WebInspector.BasicBlockAnnotator.prototype._clearRangeForBasicBlockMarker):
* UserInterface/Main.html:
* UserInterface/Views/SourceCodeTextEditor.css:
(.basic-block-has-not-executed):
(.basic-block-has-not-executed-prepend::before):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.shown):
(WebInspector.SourceCodeTextEditor.prototype.hidden):
(WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
(WebInspector.SourceCodeTextEditor.prototype.gainedFocus):
(WebInspector.SourceCodeTextEditor.prototype.lostFocus):
(WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
(WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
(WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._makeBasicBlockAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.getTextInRange):
(WebInspector.TextEditor.prototype.addStyleToTextRange):
(WebInspector.TextEditor.prototype.gainedFocus):
(WebInspector.TextEditor.prototype.lostFocus):
2015-01-16 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Make message selection in the console more readable
https://bugs.webkit.org/show_bug.cgi?id=140385
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.console-item.selected):
(.console-messages:focus .console-item.selected):
(.console-item.selected .console-message::after):
(.console-messages:focus .console-item.selected .console-message::after):
(.console-messages:focus .console-item.selected .go-to-link):
* UserInterface/Views/Main.css:
(.go-to-link):
!important statements seem to be unnecessary, remove them.
2015-01-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused WebInspector.LocalJSONObject
https://bugs.webkit.org/show_bug.cgi?id=140570
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.fromLocalObject): Deleted.
(WebInspector.LocalJSONObject): Deleted.
(WebInspector.LocalJSONObject.prototype.get description.switch.case.string_appeared_here): Deleted.
(WebInspector.LocalJSONObject.prototype.get description.switch.default): Deleted.
(WebInspector.LocalJSONObject.prototype.get description): Deleted.
(WebInspector.LocalJSONObject.prototype._concatenate): Deleted.
(WebInspector.LocalJSONObject.prototype.get type): Deleted.
(WebInspector.LocalJSONObject.prototype.get subtype): Deleted.
(WebInspector.LocalJSONObject.prototype.get hasChildren): Deleted.
(WebInspector.LocalJSONObject.prototype.getOwnProperties): Deleted.
(WebInspector.LocalJSONObject.prototype.getAllProperties): Deleted.
(WebInspector.LocalJSONObject.prototype._children.buildProperty): Deleted.
(WebInspector.LocalJSONObject.prototype._children): Deleted.
(WebInspector.LocalJSONObject.prototype.isError): Deleted.
2015-01-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exceptions, attempting to dispatch unimplemented Network WebSocket methods
https://bugs.webkit.org/show_bug.cgi?id=140532
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.webSocketFrameReceived):
(WebInspector.NetworkObserver.prototype.webSocketFrameError):
(WebInspector.NetworkObserver.prototype.webSocketFrameSent):
Add stubs to prevent an exception when trying to dispatch the event.
2015-01-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reopening the inspector can selects a sub-frame instead of the Main Frame's DOM
https://bugs.webkit.org/show_bug.cgi?id=140513
Reviewed by Timothy Hatcher.
* UserInterface/Models/Frame.js:
(WebInspector.Frame.prototype.saveIdentityToCookie):
Specifically identify the main frame, so that any sub-frames with the same
URL, don't get choosen over the main frame when restoring state from cookie.
2015-01-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: selecting Paint timeline records from sidebar does not trigger preview of paint quad
https://bugs.webkit.org/show_bug.cgi?id=139151
Reviewed by Brian Burg.
* UserInterface/Views/LayoutTimelineDataGrid.js:
(WebInspector.LayoutTimelineDataGrid):
(WebInspector.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
(WebInspector.LayoutTimelineDataGrid.prototype.reset): Deleted.
(WebInspector.LayoutTimelineDataGrid.prototype.hidden): Deleted.
(WebInspector.LayoutTimelineDataGrid.prototype._layoutDataGridSelectedNodeChanged): Deleted.
(WebInspector.LayoutTimelineDataGrid.prototype._hideHighlightIfNeeded): Deleted.
Move the node highlight from the datagrid to the timeline view because
we want this to happen on both the Navigation sidebar and the datagrid.
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype.shown):
(WebInspector.LayoutTimelineView.prototype.hidden):
(WebInspector.LayoutTimelineView.prototype.filterDidChange):
(WebInspector.LayoutTimelineView.prototype.reset):
(WebInspector.LayoutTimelineView.prototype._treeElementDeselected):
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
Update the highlight for major view updates.
(WebInspector.LayoutTimelineView.prototype._updateHighlight):
(WebInspector.LayoutTimelineView.prototype._showHighlightForRecord):
(WebInspector.LayoutTimelineView.prototype._hideHighlightIfNeeded):
(WebInspector.LayoutTimelineView.prototype._hoveredOrSelectedRecord):
Show a highlight for what we are hovering, or what is selected.
Note the selected node may not be visible due to filtering.
(WebInspector.LayoutTimelineView.prototype._mouseOverDataGrid):
(WebInspector.LayoutTimelineView.prototype._mouseLeaveDataGrid):
(WebInspector.LayoutTimelineView.prototype._mouseOverTreeOutline):
(WebInspector.LayoutTimelineView.prototype._mouseLeaveTreeOutline):
Update hovered information mousing over the datagrid and tree outline.
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.filterDidChange):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.updateFilter):
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.filterDidChange):
Include a "filterDidChange" TimelineView method that gets called after
updateFilter (things like the filter bar or timeline range changes).
* UserInterface/Views/TreeOutline.js:
(TreeOutline.prototype.treeElementFromNode):
(TreeOutline.prototype.treeElementFromPoint):
Provide a helper to get a tree element from an event target.
2015-01-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: TextEditor doesn't update when resizing console, white space instead of content
https://bugs.webkit.org/show_bug.cgi?id=140240
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector._consoleResizerMouseDown.dockedResizerDrag):
Dispatch the event that signals the console has changed size.
2015-01-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: I do not expect to see the same rule multiple times in styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=138185
Reviewed by Timothy Hatcher.
In the styles sidebar, don't show a duplicate, lesser-specificity rule even
if it matches the selected element multiple times with different selectors
in the list.
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.isEqualTo):
CSSRule identifiers are objects.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
Remove duplicates from the ordered list of style declarations.
2015-01-12 Jonathan Wells <jonowells@apple.com>
Web Inspector: Timeline: when Network Requests view is selected, in progress requests are absent.
https://bugs.webkit.org/show_bug.cgi?id=140090
Reviewed by Timothy Hatcher.
TimelineContentView#_updateTimes() changed to call WebInspector.timelineSidebarPanel.updateFilter() in addition
to updating the layout of the current timeline view. TimelineSidebarPanel.updateFilter() now responsible for
updating filtered resources in a TimelineView.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
Now handles updating the UI associated with filtering of navigation sidebar tree elements.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.updateLayout):
No longer handles updating other UI along with the navigation sidebar tree elements. That is now handled by
WebInspector.TimelineView.prototype.filterUpdated.
(WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails): Drive-by fix. Missing vars.
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._updateTimes): Add call to updateFilter().
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.filterUpdated):
Function added to dispatch a SelectionPathComponentsDidChange event.
2015-01-09 Enrica Casucci <enrica@apple.com>
[iOS] Support additional text styles.
https://bugs.webkit.org/show_bug.cgi?id=140310
rdar://problem/18568864
Reviewed by Joseph Pecoraro.
Add support for three new text styles.
* UserInterface/Models/CSSKeywordCompletions.js:
2015-01-09 Timothy Hatcher <timothy@apple.com>
Web Inspector: REGRESSION: Navigation sidebar can show blank next to the Console view
https://bugs.webkit.org/show_bug.cgi?id=140291
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded): Don't restore collapsed false if selectedSidebarPanel is null.
(WebInspector._sidebarCollapsedStateDidChange): Support a _ignoreNavigationSidebarPanelCollapsedEvent flag
to avoid setting _navigationSidebarCollapsedSetting.
(WebInspector._navigationSidebarPanelSelected): Force collapsed if selectedSidebarPanel is null.
(WebInspector._contentBrowserCurrentContentViewDidChange): Set _ignoreNavigationSidebarPanelCollapsedEvent
when forcing the collapsed state to avoid setting _navigationSidebarCollapsedSetting and calling
_updateContentViewForCurrentNavigationSidebar.
2015-01-08 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: REGRESSION Showing debugger sidebar shouldn't change selected JS file
https://bugs.webkit.org/show_bug.cgi?id=139526
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
When switching to Debugger, show last selected JS or HTML resource.
(WebInspector.showSplitConsole):
(WebInspector.showFullHeightConsole):
(WebInspector.toggleConsoleView):
(WebInspector._sidebarCollapsedStateDidChange):
(WebInspector._updateContentViewForCurrentNavigationSidebar):
(WebInspector._navigationSidebarPanelSelected):
(WebInspector._contentBrowserCurrentContentViewDidChange):
(WebInspector._updateNavigationSidebarForCurrentContentView): Deleted.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/DatabaseContentView.js:
(WebInspector.DatabaseContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/DatabaseTableContentView.js:
(WebInspector.DatabaseTableContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/FontResourceContentView.js:
(WebInspector.FontResourceContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/FrameDOMTreeContentView.js:
(WebInspector.FrameDOMTreeContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.prototype.get allowedNavigationSidebarPanels):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
(WebInspector.ResourceSidebarPanel.prototype.showMainFrame):
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.removeSidebarPanel):
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.get allowedNavigationSidebarPanels):
2015-01-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Phantom breakpoint appears on empty line after reload of minified file with a breakpoint
https://bugs.webkit.org/show_bug.cgi?id=140276
Reviewed by Timothy Hatcher.
Styles being set on lines (e.g. breakpoint styles) before content loaded can
carry forward with the empty line. It is safe for us to just remove all
the styles from the intial empty line before we load the initial content.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.set string.update):
(WebInspector.TextEditor.prototype.set string):
2015-01-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Pause Reason Improvements (Breakpoint, Debugger Statement, Pause on Next Statement)
https://bugs.webkit.org/show_bug.cgi?id=138991
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
New UI strings for Pause Reasons.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.breakpointForIdentifier):
Provide a way to get the breakpoint with an identifier.
* UserInterface/Images/PausedBreakpoint.svg: Added.
* UserInterface/Images/gtk/PausedBreakpoint.svg: Added.
Copy PseudoElement.svg icon and give it a new name.
* UserInterface/Views/BreakpointTreeElement.css:
(.breakpoint-paused-icon .icon):
New icon for a breakpoint causing a pause.
* UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype.removeStatusImage):
(WebInspector.BreakpointTreeElement.prototype._updateStatus):
Give API to remove the breakpoint status icon from a BreakpointTreeElement.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype.get hasSelectedElement):
(WebInspector.DebuggerSidebarPanel.prototype.deselectBreakpointContentTreeElements):
(WebInspector.DebuggerSidebarPanel.prototype.deselectPauseReasonContentTreeElements):
(WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
Give DebuggerSidebarPanel an optional pause reason tree outline. When available
include it in the pattern of ensuring a single exclusive selection.
(WebInspector.DebuggerSidebarPanel.prototype._breakpointRemoved):
When a breakpoint is removed, check if we should update the pause reason tree outline.
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReason):
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Update Pause Reason section contents depending on the reason.
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonGotoArrow):
Always try to include a goto arrow to jump to the original pause location
if it is available at the time of pausing.
2015-01-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Expected UserAgent styles to be crossed-out if overridden
https://bugs.webkit.org/show_bug.cgi?id=140154
Reviewed by Timothy Hatcher.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseStylePropertyPayload):
Add a comment about anonymous styles. The getter is no longer used, and it is not
clear if we really care about this state, or if "anonymous" is an appropriate name.
(WebInspector.DOMNodeStyles.prototype._markOverriddenProperties):
Allow browser styles (user agent / html attributes) to be overridden.
(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
When refreshing styles after changes, the Style object backing HTML attributes
was being completely replaced. Allow it to be remembered by a unique key.
2015-01-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Do not create rulesMap entries for rules without identifiers
https://bugs.webkit.org/show_bug.cgi?id=140237
Reviewed by Timothy Hatcher.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
We were accidentally converting a null into a string with a loose string
concatenation. Only do this if the mapKey is not-null.
2015-01-07 Saam Barati <saambarati1@gmail.com>
Web Inspector: Abstract common functions from TypeTokenAnnotator into a parent class and introduce an AnnotatorManager
https://bugs.webkit.org/show_bug.cgi?id=139426
Reviewed by Timothy Hatcher.
This patch creates a parent class, Annotator, that TypeTokenAnnotator
inherits from. Annotator defines a common set of functionality
that a text editor annotator can use to mark up UI. This
is in preparation other classes that will inherit from Annotator.
This patch also introduces AnnotatorManager which controls a
set of Annotators and provides a single interface for
controlling them.
* UserInterface/Controllers/Annotator.js: Added.
(WebInspector.Annotator):
(WebInspector.Annotator.prototype.get sourceCodeTextEditor):
(WebInspector.Annotator.prototype.get isActive):
(WebInspector.Annotator.prototype.pause):
(WebInspector.Annotator.prototype.resume):
(WebInspector.Annotator.prototype.refresh):
(WebInspector.Annotator.prototype.reset):
(WebInspector.Annotator.prototype.clear):
(WebInspector.Annotator.prototype.insertAnnotations):
(WebInspector.Annotator.prototype.clearAnnotations):
(WebInspector.Annotator.prototype._clearTimeoutIfNeeded):
* UserInterface/Controllers/AnnotatorManager.js: Added.
(WebInspector.AnnotatorManager):
(WebInspector.AnnotatorManager.prototype.addAnnotator):
(WebInspector.AnnotatorManager.prototype.isAnnotatorActive):
(WebInspector.AnnotatorManager.prototype.pauseAll):
(WebInspector.AnnotatorManager.prototype.resumeAll):
(WebInspector.AnnotatorManager.prototype.refreshAllIfActive):
(WebInspector.AnnotatorManager.prototype.resetAllIfActive):
(WebInspector.AnnotatorManager.prototype.clearAll):
(WebInspector.AnnotatorManager.prototype.removeAllAnnotators):
(WebInspector.AnnotatorManager.prototype._getAnnotators):
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator):
(WebInspector.TypeTokenAnnotator.prototype.insertAnnotations.):
(WebInspector.TypeTokenAnnotator.prototype.clearAnnotations):
(WebInspector.TypeTokenAnnotator.prototype._insertToken):
(WebInspector.TypeTokenAnnotator.prototype.get isActive): Deleted.
(WebInspector.TypeTokenAnnotator.prototype.get sourceCodeTextEditor): Deleted.
(WebInspector.TypeTokenAnnotator.prototype.pause): Deleted.
(WebInspector.TypeTokenAnnotator.prototype.resume): Deleted.
(WebInspector.TypeTokenAnnotator.prototype.refresh): Deleted.
(WebInspector.TypeTokenAnnotator.prototype.reset): Deleted.
(WebInspector.TypeTokenAnnotator.prototype._insertAnnotations.): Deleted.
(WebInspector.TypeTokenAnnotator.prototype._clearTimeoutIfNeeded): Deleted.
* UserInterface/Main.html:
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.shown):
(WebInspector.SourceCodeTextEditor.prototype.hidden):
(WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
(WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
(WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
(WebInspector.SourceCodeTextEditor.prototype._getAssociatedScript):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
2015-01-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Do not style implicit CSS properties in the Style Rules section
https://bugs.webkit.org/show_bug.cgi?id=140161
Reviewed by Timothy Hatcher.
Previously, implicit properties being transparent in the Rules section
was confusing and not useful. Lets simplify what transparency means:
- Rules: transparency means a non-inheritable property in an inherited rule
- Computed: transparency means an implicit value
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.not-inherited):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.implicit, .not-inherited)): Deleted.
2015-01-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exception when dismissing Go To Line dialog
https://bugs.webkit.org/show_bug.cgi?id=139663
Reviewed by Timothy Hatcher.
Calling removeChild would trigger the blur event handler and do a
nested call of dismiss(), re-entering and removing while in the middle
of removing. Avoid re-entrancy to avoid the exception.
* UserInterface/Views/GoToLineDialog.js:
(WebInspector.GoToLineDialog):
(WebInspector.GoToLineDialog.prototype.dismiss):
2015-01-01 Darin Adler <darin@apple.com>
We often misspell identifier as "identifer"
https://bugs.webkit.org/show_bug.cgi?id=140025
Reviewed by Michael Saboff.
* UserInterface/Base/Main.js:
(WebInspector._updateNavigationSidebarForCurrentContentView):
(WebInspector._contentBrowserCurrentContentViewDidChange):
Fix misspellings.
2014-12-29 Jonathan Wells <jonowells@apple.com>
Web Inspector: SourceCode.requestContent should return a promise
https://bugs.webkit.org/show_bug.cgi?id=135777
Reviewed by Brian Burg.
Change SourceCode.js to request content from the backend using Promises. Change Resource.js to use this new
approach when determining whether a resource load has finished. Change all calls to the older
SourceCode#requestContentFromBackendIfNeeded to simply use requestContent and use a catch function
if a content request error needs to be handled. Fix a bug where the appropriate error message for an
invalid resource wasn't showing in the resource content view.
* UserInterface/Controllers/AnalyzerManager.js:
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode.):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode):
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager.prototype._updateResourceContent.fetchedStyleSheetContent):
(WebInspector.CSSStyleManager.prototype._updateResourceContent.styleSheetReady):
* UserInterface/Models/CSSStyleSheet.js:
(WebInspector.CSSStyleSheet.prototype.requestContentFromBackend):
(WebInspector.CSSStyleSheet.prototype.canRequestContentFromBackend): Deleted.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.changeStyleText):
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.canRequestContent):
(WebInspector.Resource.prototype.requestContentFromBackend):
(WebInspector.Resource.prototype.markAsFinished):
(WebInspector.Resource.prototype.markAsFailed):
(WebInspector.Resource.prototype.getImageSize):
(WebInspector.Resource.prototype.canRequestContentFromBackend): Deleted.
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype.requestContentFromBackend):
(WebInspector.Script.prototype.requestScriptSyntaxTree.catch):
(WebInspector.Script.prototype.canRequestContentFromBackend): Deleted.
* UserInterface/Models/SourceCode.js:
(WebInspector.SourceCode):
(WebInspector.SourceCode.prototype.requestContent):
(WebInspector.SourceCode.prototype.requestContentFromBackend):
(WebInspector.SourceCode.prototype._processContent):
(WebInspector.SourceCode.prototype.canRequestContentFromBackend): Deleted.
(WebInspector.SourceCode.prototype.requestContentFromBackendIfNeeded): Deleted.
(WebInspector.SourceCode.prototype.servicePendingContentRequests): Deleted.
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource):
(WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
(WebInspector.SourceMapResource.prototype.requestContentFromBackend):
(WebInspector.SourceMapResource.prototype.canRequestContentFromBackend): Deleted.
(WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded): Deleted.
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView):
(WebInspector.ResourceContentView.prototype._contentAvailable):
(WebInspector.ResourceContentView.prototype._contentError):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype._contentAvailable):
(WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent.scriptContentAvailable):
(WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent):
(WebInspector.SourceCodeTextEditor.prototype._populateWithScriptContent):
2014-12-26 Dan Bernstein <mitz@apple.com>
<rdar://problem/19348208> REGRESSION (r177027): iOS builds use the wrong toolchain
https://bugs.webkit.org/show_bug.cgi?id=139950
Reviewed by David Kilzer.
* Configurations/Base.xcconfig: Only define TOOLCHAINS when building for OS X, doing so
in a manner that works with Xcode 5.1.1.
2014-12-20 David Kilzer <ddkilzer@apple.com>
Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
<http://webkit.org/b/139463>
Reviewed by Mark Rowe.
* Configurations/Base.xcconfig:
- Only set TOOLCHAINS on OS X.
* Configurations/DebugRelease.xcconfig:
- Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
* Configurations/Version.xcconfig:
- Set SYSTEM_VERSION_PREFIX separately for iOS and OS X.
* Configurations/WebInspectorUIFramework.xcconfig:
- Set NORMAL_PRODUCTION_FRAMEWORKS_DIR,
PRODUCTION_FRAMEWORKS_DIR and
JAVASCRIPTCORE_PRIVATE_HEADERS_DIR_Production by SDK.
2014-12-19 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r177574.
https://bugs.webkit.org/show_bug.cgi?id=139821
"Broke Production builds by installing
libWebCoreTestSupport.dylib in the wrong directory" (Requested
by ddkilzer on #webkit).
Reverted changeset:
"Switch from using PLATFORM_NAME to SDK selectors in WebCore,
WebInspectorUI, WebKit, WebKit2"
https://bugs.webkit.org/show_bug.cgi?id=139463
http://trac.webkit.org/changeset/177574
2014-12-19 David Kilzer <ddkilzer@apple.com>
Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
<http://webkit.org/b/139463>
Reviewed by Mark Rowe.
* Configurations/Base.xcconfig:
- Only set TOOLCHAINS on OS X.
* Configurations/DebugRelease.xcconfig:
- Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
* Configurations/Version.xcconfig:
- Set SYSTEM_VERSION_PREFIX separately for iOS and OS X.
* Configurations/WebInspectorUIFramework.xcconfig:
- Set NORMAL_PRODUCTION_FRAMEWORKS_DIR,
PRODUCTION_FRAMEWORKS_DIR and
JAVASCRIPTCORE_PRIVATE_HEADERS_DIR_Production by SDK.
2014-12-16 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION: Dragging undocked web inspector causes mouse to change from pointer to i-bar cursor over window title
https://bugs.webkit.org/show_bug.cgi?id=139720
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
Prevent default handling of the mouse event when clicking in the titlebar area. WebCore won't continue handling the event,
but docking buttons/context menu still function.
2014-12-15 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Clicking on the expand object arrow should always expand an object
https://bugs.webkit.org/show_bug.cgi?id=139382
Reviewed by Joseph Pecoraro.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._click): Deleted.
stopPropagation was preventing the object expansion from happening as expecting.
2014-12-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSSStyleDeclarationTextEditor fails to update if computed properties changed from empty to non-empty
https://bugs.webkit.org/show_bug.cgi?id=139610
Reviewed by Timothy Hatcher.
The CSSStyleDeclarationTextEditor for Computed Style Properties always has
empty DOMNodeStyles text. However we would not reset contents if properties
changed and the actualy content was empty. So once empty, we could never
recover. In fact, we should always refresh for Computed Styles.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertiesChanged):
2014-12-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Hide Compositing Borders Button if backend returns an error that it is unsupported
https://bugs.webkit.org/show_bug.cgi?id=139307
Reviewed by Darin Adler.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):
2014-12-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exceptions when attempting to show Content Flow
https://bugs.webkit.org/show_bug.cgi?id=139276
Reviewed by Brian Burg.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
LegacyJavaScriptProfileObject no longer exists, these references should be removed.
* UserInterface/Views/FolderizedTreeElement.js:
(WebInspector.FolderizedTreeElement.prototype._insertChildTreeElement):
This sort function references "this" and needed to be bound.
2014-12-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Network Timeline Filter Bar only has "All", missing Resource Type filters
https://bugs.webkit.org/show_bug.cgi?id=139268
Reviewed by Brian Burg.
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.createColumnScopeBar):
Users of createColumnScopeBar pass a Map object now instead of a dictionary.
Iterate over the map appropriately.
2014-12-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: LayoutTests/inspector tests fail in Production builds due to missing test resources
https://bugs.webkit.org/show_bug.cgi?id=138898
Reviewed by Mark Rowe.
In Production builds, if FORCE_TOOL_INSTALL=YES is in the environment
we will copy all resources (for Tests) and still do the combine and
optimize phase for normal Production inspection resources.
* Scripts/copy-user-interface-resources.pl:
2014-12-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Missing getter, clients never see DragToAdjustController is enabled
https://bugs.webkit.org/show_bug.cgi?id=139228
Reviewed by Simon Fraser.
* UserInterface/Controllers/DragToAdjustController.js:
(WebInspector.DragToAdjustController.prototype.get enabled):
2014-12-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS Minification breaks some selectors with colons
https://bugs.webkit.org/show_bug.cgi?id=139206
Reviewed by Simon Fraser.
Do not remove spaces preceeding colons, as they may change the semantics
of selectors with colon prefixes (e.g. "a :not(b)").
At the same time, we can strip spaces around "!" characters, for example
a space is not required before "!important" priority.
* Scripts/cssmin.py:
(cssminify):
2014-12-01 Benjamin Poulain <benjamin@webkit.org>
Web Inspector: add more :not() and :matches() awesomeness
https://bugs.webkit.org/show_bug.cgi?id=138997
Reviewed by Joseph Pecoraro.
Simplify the Inspector's CSS when possible.
* UserInterface/Views/DatabaseContentView.css:
(:matches(.database-user-query, .database-query-prompt, .database-query-result)::before):
(.database-user-query::before, .database-query-prompt::before, .database-query-result::before): Deleted.
* UserInterface/Views/GradientSlider.css:
(.gradient-slider-knob > :matches(img, div)):
(.gradient-slider-knob > div): Deleted.
* UserInterface/Views/HoverMenu.css:
(.hover-menu > svg > :matches(path, rect)):
(.hover-menu > svg > rect): Deleted.
* UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
(.panel.details.layer-tree .name-column :matches(.pseudo-element, .reflection)):
(.panel.details.layer-tree tr.selected .name-column :matches(.pseudo-element, .reflection)):
(.panel.details.layer-tree .name-column .reflection): Deleted.
(.panel.details.layer-tree tr.selected .name-column .reflection): Deleted.
* UserInterface/Views/ProbeDetailsSidebarPanel.css:
(.details-section.probe-set .options > :matches(.probe-remove, .probe-clear-samples, .probe-add)):
(.details-section.probe-set .options > .probe-add): Deleted.
* UserInterface/Views/ResourceSidebarPanel.css:
(.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
(body.mac-platform.legacy .sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.resource > .empty-content-placeholder): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.resource > .empty-content-placeholder): Deleted.
* UserInterface/Views/ScopeBar.css:
(.scope-bar > li:matches(.selected, :active)):
(.scope-bar > li:active): Deleted.
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(.syntax-highlighted :matches(.css-comment, .javascript-comment, .html-comment)):
(.syntax-highlighted :matches(.css-keyword, .css-tag, .css-at-rule, .css-important, .javascript-keyword, .html-tag)):
(.syntax-highlighted :matches(.css-number, .javascript-number)):
(.syntax-highlighted :matches(.css-property, .css-selector, .javascript-ident)):
(.syntax-highlighted :matches(.css-string, .javascript-string, .javascript-regexp, .html-attribute-value)):
(.syntax-highlighted :matches(.html-doctype, .html-processing-instruction)):
(.syntax-highlighted .html-comment): Deleted.
(.syntax-highlighted .html-tag): Deleted.
(.syntax-highlighted .javascript-number): Deleted.
(.syntax-highlighted .javascript-ident): Deleted.
(.syntax-highlighted .html-attribute-value): Deleted.
(.syntax-highlighted .html-processing-instruction): Deleted.
It looks like ".cm-tag.cm-bracket" was there only to override the rule below.
From basic testing, it looks like "cm-tag" and "cm-bracket" always appear together. I removed the "cm-bracket" rule
from the second rule, and simplified the first rule.
* UserInterface/Views/TimelineSidebarPanel.css:
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .empty-content-placeholder): Deleted.
* UserInterface/Views/Toolbar.css:
(body.mac-platform:not(.legacy, .docked) .toolbar):
(body.mac-platform:not(.legacy, .docked) .toolbar.icon-and-label-vertical):
(body.mac-platform:not(.legacy, .docked) .toolbar.icon-and-label-vertical.small-size):
(body.mac-platform:not(.legacy, .docked) .toolbar:matches(.icon-and-label-horizontal, .icon-only)):
(body.mac-platform:not(.legacy, .docked) .toolbar:matches(.icon-and-label-horizontal.small-size, .icon-only.small-size, .label-only)):
(.toolbar:matches(.icon-and-label-horizontal.small-size, .icon-only.small-size, .label-only) .control-section):
(body.mac-platform:not(.legacy):not(.docked) .toolbar): Deleted.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical): Deleted.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical.small-size): Deleted.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only): Deleted.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.label-only): Deleted.
(.toolbar.label-only .control-section): Deleted.
2014-11-27 Andres Gomez <agomez@igalia.com>
Web Inspector: Update NavigationItemProbes icon for the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=139074
Reviewed by Carlos Garcia Campos.
NavigationItemProbes was updated for the Mac port and we are now
having a similar ideogram in GTK+.
* UserInterface/Images/gtk/NavigationItemProbes.svg: Updated.
2014-11-21 Benjamin Poulain <bpoulain@apple.com>
Start using the new :not() and :matches() in the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=138978
Reviewed by Joseph Pecoraro.
Start simpifying some definitions by using modern CSS.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:matches(.last-in-group, :last-child)):
(.style-declaration-section:matches(.locked, .selector-locked) > .header > .selector):
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child): Deleted.
(.style-declaration-section.selector-locked > .header > .selector): Deleted.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.disabled, .invalid, .other-vendor, .not-inherited, .overridden)):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.implicit, .not-inherited)):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property:matches(.disabled, .other-vendor, .not-inherited, .overridden)):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.overridden): Deleted.
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.not-inherited): Deleted.
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property.overridden): Deleted.
* UserInterface/Views/ControlToolbarItem.css:
(.toolbar:matches(.icon-and-label-horizontal, .toolbar.icon-only) .item.control):
(.toolbar.icon-only .item.control): Deleted.
* UserInterface/Views/DOMStorageContentView.css:
* UserInterface/Views/DashboardContainerView.css:
(.toolbar.icon-and-label-vertical:matches(.small-size, .normal-size) .dashboard-container):
(.toolbar:matches(.label-only, .small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal)) .dashboard-container):
(.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container):
(.toolbar.normal-size.icon-and-label-vertical .dashboard-container): Deleted.
(.toolbar.small-size.icon-and-label-horizontal .dashboard-container): Deleted.
(.toolbar.normal-size.icon-and-label-horizontal .dashboard-container): Deleted.
* UserInterface/Views/DataGrid.css:
(.data-grid :matches(th, td):not(:last-child)):
(.data-grid th:matches(.sort-ascending, .sort-descending)):
(.data-grid :matches(th, td) > div):
(.data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child):
(.data-grid tr:matches(.selected, :hover) .go-to-arrow):
(.data-grid :-webkit-any(th, td):not(:last-child)): Deleted.
(.data-grid th:-webkit-any(.sort-ascending, .sort-descending)): Deleted.
(.data-grid :-webkit-any(th, td) > div): Deleted.
(.data-grid th:-webkit-any(.sort-ascending, .sort-descending) > div:first-child): Deleted.
(.data-grid tr:-webkit-any(.selected, :hover) .go-to-arrow): Deleted.
* UserInterface/Views/DebuggerDashboardView.css:
(.toolbar.collapsed .dashboard.debugger > :not(.message, .navigation-bar )):
(.toolbar.collapsed .dashboard.debugger > :not(.message):not(.navigation-bar )): Deleted.
* UserInterface/Views/DefaultDashboardView.css:
(body.web .toolbar.collapsed .dashboard.default > :matches(.time, .resourcesSize, .logs)):
(body.javascript .toolbar .dashboard.default > :matches(.time, .resourcesSize, .resourcesCount)):
(.toolbar:matches(.label-only, .small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal)) .dashboard.default > .item):
(.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard.default > .item):
(body.web .toolbar.collapsed .dashboard.default > .logs): Deleted.
(body.javascript .toolbar .dashboard.default > .resourcesCount): Deleted.
(.toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item): Deleted.
(.toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item): Deleted.
* UserInterface/Views/DetailsSection.css:
(.details-section > .header > :matches(.node-link, .go-to-arrow)):
(.details-section > .content > .group:nth-child(even) > .row:matches(.simple:first-child > *, :not(.simple):first-child)):
(body.mac-platform.legacy .details-section > .content > .group:matches(:nth-child(even), :last-child) > .row.simple:last-child > *):
(.details-section > .content > .group > .row:matches(.empty, .text)):
(body.mac-platform.legacy .details-section > .content > .group > .row:matches(.empty, .text)):
(.details-section > .header > .go-to-arrow): Deleted.
(.details-section > .content > .group:nth-child(even) > .row.simple:first-child > *): Deleted.
(body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *): Deleted.
(.details-section > .content > .group > .row.text): Deleted.
(body.mac-platform.legacy .details-section > .content > .group > .row.text): Deleted.
* UserInterface/Views/FindBanner.css:
(:matches(.find-banner, .supports-find-banner).no-find-banner-transition):
(.supports-find-banner.no-find-banner-transition): Deleted.
* UserInterface/Views/FlexibleSpaceNavigationItem.css:
(:matches(.navigation-bar, .toolbar) .item.flexible-space):
(.toolbar .item.flexible-space): Deleted.
2014-11-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: LayoutTests/inspector should not have localStorage side effects
https://bugs.webkit.org/show_bug.cgi?id=138895
Reviewed by Brian Burg.
When running inspector tests, do not restore/save WebInspector.Settings
to localStorage, as that will cause side effects. Instead each Setting
will be initialized with its default value and can be modified during
the run of the test.
* UserInterface/Base/Test.js:
(WebInspector.loaded):
Name the setting to match the normal setting name now that persistence
is not an issue.
* UserInterface/Models/Setting.js:
(WebInspector.Setting.prototype.get value):
(WebInspector.Setting.prototype.set value):
Do not restore/save when in tests.
2014-11-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JSContext inspection Resource search does not work
https://bugs.webkit.org/show_bug.cgi?id=131252
Reviewed by Timothy Hatcher.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.performSearch.resourceCallback):
(WebInspector.ResourceSidebarPanel.prototype.performSearch.resourcesCallback):
Cleanup by reordering things a bit.
(WebInspector.ResourceSidebarPanel.prototype.performSearch.searchScripts.scriptCallback):
(WebInspector.ResourceSidebarPanel.prototype.performSearch.searchScripts):
(WebInspector.ResourceSidebarPanel.prototype.performSearch):
Search non-resource scripts individually.
(WebInspector.ResourceSidebarPanel.prototype._searchTreeElementForScript):
Lazily create a ScriptTreeElement for the search tree outline as needed.
(WebInspector.ResourceSidebarPanel.prototype._scriptsToSearch):
When searching scripts, just perform a shallow walk of the tree outline to find
Script resources that are not also Resources. Scripts are always guarenteed to
be in a folder when inspecting a web resource. For JSContext inspection, scripts
are promoted to the top level.
* UserInterface/Main.html:
* UserInterface/Models/SourceCodeSearchMatchObject.js: Renamed from Source/WebInspectorUI/UserInterface/Models/ResourceSearchMatchObject.js.
(WebInspector.SourceCodeSearchMatchObject):
* UserInterface/Views/SearchIcons.css:
(.source-code-match-icon .icon):
(.resource-match-icon .icon): Deleted.
* UserInterface/Views/SearchResultTreeElement.js:
(WebInspector.SearchResultTreeElement):
Rename ResourceSearchMatchObject to SourceCodeSearchMatchObject.
2014-11-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Provide $exception in the console for the thrown exception value
https://bugs.webkit.org/show_bug.cgi?id=138726
Reviewed by Timothy Hatcher.
* UserInterface/Base/Test.js:
(WebInspector.loaded):
In order to use RuntimeManager to execute in the global context or on the
active debugger call frame, we need to expose the quickConsole controller.
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
Expose $exception to completion when we paused because of an exception.
2014-11-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Debugger should not mutate variable when hovering mouse over ++n expression
https://bugs.webkit.org/show_bug.cgi?id=138839
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
2014-11-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve basic JavaScript completion in inline <script>s
https://bugs.webkit.org/show_bug.cgi?id=138845
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions):
Fix up CodeMirror mode handling for JavaScript completion when inside of mixed mode
input (html). Also add completion for CodeMirror's localVars list.
== Rolled over to ChangeLog-2014-11-19 ==