blob: 809201fd037e672f391ff5b735c2e9050ffc72a0 [file] [log] [blame]
2014-11-13 Andres Gomez <agomez@igalia.com>
Web Inspector: Replace PDF icon with SVG version
https://bugs.webkit.org/show_bug.cgi?id=137296
Reviewed by Timothy Hatcher.
Add another free icon for the Web Inspector in GTK+.
* UserInterface/Images/gtk/NavigationItemProbes.svg: Added.
2014-11-13 Timothy Hatcher <timothy@apple.com>
Web Inspector: Replace PDF Probes icon with SVG version
https://bugs.webkit.org/show_bug.cgi?id=137296
Reviewed by Joseph Pecoraro.
* UserInterface/Images/NavigationItemProbes.pdf: Removed.
* UserInterface/Images/NavigationItemProbes.svg: Added.
* UserInterface/Views/ProbeDetailsSidebarPanel.js:
(WebInspector.ProbeDetailsSidebarPanel): Use NavigationItemProbes.svg.
2014-11-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reduce work when activating multiple agents sequentially
https://bugs.webkit.org/show_bug.cgi?id=138677
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.activateExtraDomains):
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype._extraDomainsActivated):
* UserInterface/Controllers/StorageManager.js:
(WebInspector.StorageManager.prototype._extraDomainsActivated):
2014-11-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Handle activating extra agents properly after inspector has connected
https://bugs.webkit.org/show_bug.cgi?id=138639
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.activateExtraDomains):
2014-11-11 Jonathan Wells <jonowells@apple.com>
Web Inspector: Main.js missing many trailing semicolons
https://bugs.webkit.org/show_bug.cgi?id=138624
Add semicolons to function variable assignments.
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js: Added semicolons.
2014-11-10 Jonathan Wells <jonowells@apple.com>
Web Inspector: Update Esprima, remove WebInspector.Esprima global.
https://bugs.webkit.org/show_bug.cgi?id=138579
Reviewed by Timothy Hatcher.
Update esprima.js file to be unchanged by removing WebInspector.Esprima global object. Move esprima.js include
so that all external libraries load before the WebInspector namespace is declared in the combined Main.js.
* UserInterface/External/Esprima/esprima.js: File updated, no changes made.
* UserInterface/Main.html: esprima.js script tag moved up with other externals.
* UserInterface/Models/ScriptSyntaxTree.js: WebInspector.Esprima changed to esprima
(WebInspector.ScriptSyntaxTree):
2014-11-10 Jonathan Wells <jonowells@apple.com>
Web Inspector: Add infrastructure for eslint based static analyzer
https://bugs.webkit.org/show_bug.cgi?id=137890
Reviewed by Timothy Hatcher.
Fix to previous patch to add AnalyzerManager and AnalyzerMessage classes. Changed Main.html to include ESLint.js
before Main.js in the combined resources.
* UserInterface/Base/Main.js:
* UserInterface/Controllers/AnalyzerManager.js: Added.
(WebInspector.AnalyzerManager):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode.):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode):
(set WebInspector.AnalyzerManager.prototype.set get sourceCodeCanBeAnalyzed):
(set WebInspector.AnalyzerManager.prototype._handleSourceCodeContentDidChange):
* UserInterface/Main.html:
* UserInterface/Models/AnalyzerMessage.js: Added.
(WebInspector.AnalyzerMessage):
(WebInspector.AnalyzerMessage.prototype.get sourceCodeLocation):
(WebInspector.AnalyzerMessage.prototype.get sourceCode):
(WebInspector.AnalyzerMessage.prototype.get text):
(WebInspector.AnalyzerMessage.prototype.get ruleIdentifier):
* UserInterface/Models/SourceCode.js:
2014-11-08 Matt Baker <mattbaker@apple.com>
Web Inspector: decouple child element folderization logic from FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=138364
Reviewed by Timothy Hatcher.
Created FolderizedTreeElement base class, which FrameTreeElement now inherits via SourceCodeTreeElement.
FolderizedTreeElement uses settings provided by derived classes for labeling subfolders and to determine
folder membership for child items.
* UserInterface/Base/Main.js:
(WebInspector.canArchiveMainFrame):
* UserInterface/Main.html:
* UserInterface/Models/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord.displayNameForEventType):
(WebInspector.LayoutTimelineRecord.EventType.displayName): Deleted.
* UserInterface/Models/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.typeFromMIMEType):
(WebInspector.Resource.displayNameForType):
(WebInspector.Resource.prototype.get syntheticMIMEType):
(WebInspector.Resource.prototype.updateForResponse):
(WebInspector.Resource.Type.fromMIMEType): Deleted.
(WebInspector.Resource.Type.displayName): Deleted.
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource):
* UserInterface/Views/FolderizedTreeElement.js: Added.
(WebInspector.FolderizedTreeElement):
(WebInspector.FolderizedTreeElement.prototype.get groupedIntoFolders):
(WebInspector.FolderizedTreeElement.prototype.set folderSettingsKey):
(WebInspector.FolderizedTreeElement.prototype.registerFolderizeSettings):
(WebInspector.FolderizedTreeElement.prototype.set removeChildren):
(WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype.addRepresentedObjectToNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype.removeChildForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype.compareChildTreeElements):
(WebInspector.FolderizedTreeElement.prototype.updateParentStatus):
(WebInspector.FolderizedTreeElement.prototype._clearNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype._removeRepresentedObjectFromNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype._addTreeElement):
(WebInspector.FolderizedTreeElement.prototype._compareTreeElementsByMainTitle):
(WebInspector.FolderizedTreeElement.prototype._insertFolderTreeElement):
(WebInspector.FolderizedTreeElement.prototype._insertChildTreeElement):
(WebInspector.FolderizedTreeElement.prototype._removeTreeElement):
(WebInspector.FolderizedTreeElement.prototype._parentTreeElementForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype._folderTreeElementExpandedStateChange):
(WebInspector.FolderizedTreeElement.prototype._settingsForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype._shouldGroupIntoFolders.pushCategory):
(WebInspector.FolderizedTreeElement.prototype._shouldGroupIntoFolders):
* UserInterface/Views/FrameTreeElement.js:
(.this):
(WebInspector.FrameTreeElement.prototype.updateSourceMapResources):
(WebInspector.FrameTreeElement.prototype.onattach):
(WebInspector.FrameTreeElement.prototype.ondetach):
(WebInspector.FrameTreeElement.prototype.compareChildTreeElements):
(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype._mainResourceDidChange):
(WebInspector.FrameTreeElement.prototype._resourceWasAdded):
(WebInspector.FrameTreeElement.prototype._resourceWasRemoved):
(WebInspector.FrameTreeElement.prototype._childFrameWasAdded):
(WebInspector.FrameTreeElement.prototype._childFrameWasRemoved):
(WebInspector.FrameTreeElement.prototype._childContentFlowWasAdded):
(WebInspector.FrameTreeElement.prototype._childContentFlowWasRemoved):
(WebInspector.FrameTreeElement.prototype._rootDOMNodeInvalidated):
(WebInspector.FrameTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype.removeChildren): Deleted.
(WebInspector.FrameTreeElement.prototype._updateParentStatus): Deleted.
(WebInspector.FrameTreeElement.prototype._addRepresentedObjectToNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._removeRepresentedObjectFromNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._populateFromNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._clearNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._addChildForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._removeChildForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._addTreeElementForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._addTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._compareTreeElementsByMainTitle): Deleted.
(WebInspector.FrameTreeElement.prototype._insertFolderTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._compareResourceTreeElements): Deleted.
(WebInspector.FrameTreeElement.prototype._insertResourceTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._removeTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._folderNameForResourceType): Deleted.
(WebInspector.FrameTreeElement.prototype._parentTreeElementForRepresentedObject.createFolderTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._parentTreeElementForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._folderTreeElementExpandedStateChange): Deleted.
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushResourceType): Deleted.
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushCategory): Deleted.
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders): Deleted.
* UserInterface/Views/LayoutTimelineDataGridNode.js:
(WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView): Deleted.
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView): Deleted.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshResourceType):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
* UserInterface/Views/SourceCodeTreeElement.js:
(WebInspector.SourceCodeTreeElement):
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.createColumnScopeBar):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2014-11-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Layer summary should be bottom sticky
https://bugs.webkit.org/show_bug.cgi?id=138518
Reviewed by Timothy Hatcher.
Previously only NavigationSidebars had a content view. Now, give all
Sidebars a contentElement section for content.
Update all Details Sidebars to append content to the contentElement
instead of directly to the element. Only two Details sidebars append
to the element:
- CSSStyleDetailsSidebarPanel for the navigation bar at the top
- LayerTreeDetailsSidebarPanel for the summary view at the bottom
Take this opportunity to fix up some naming and styles as well.
* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.get contentElement):
Give every SidebarPanel a content element.
* UserInterface/Views/DetailsSidebarPanel.css: Removed.
(.sidebar > .panel > .content):
* UserInterface/Views/SidebarPanel.css: Added.
(.sidebar > .panel > .content):
And give that content element a default style.
* UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .content):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype.get contentElement): Deleted.
Navigation sidebar panels now use the parent's contentElement.
Also, carry over their default styles, overriding the base.
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js: Renamed from Source/WebInspectorUI/UserInterface/Views/LayerTreeSidebarPanel.js.
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildLayerInfoSection):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildBottomBar):
Rename LayerTreeSidebarPanel to make it clear this is a DetailsSidebarPanel.
Add the "bottom bar" to the root element, and sections to the contentElement.
* UserInterface/Views/LayerTreeDetailsSidebarPanel.css: Renamed from Source/WebInspectorUI/UserInterface/Views/LayerTreeSidebarPanel.css.
(.sidebar > .layer-tree.panel > .content):
(body.mac-platform.legacy .sidebar > .layer-tree.panel > .content):
Style the bottom bar to pin it to the bottom of the sidebar panel.
(WebInspector.CSSStyleDetailsSidebarPanel):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._navigationItemSelected):
Add the navigation bar to the root element, and sections to the contentElement.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
* UserInterface/Main.html:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Update for new names.
* UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
(WebInspector.ApplicationCacheDetailsSidebarPanel):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
* UserInterface/Views/DOMDetailsSidebarPanel.js:
(WebInspector.DOMDetailsSidebarPanel):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel):
* UserInterface/Views/DetailsSidebarPanel.js:
(WebInspector.DetailsSidebarPanel):
* UserInterface/Views/ProbeDetailsSidebarPanel.js:
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh.delayedWork):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
All details sidebar panels now use the contentElement instead of element for content.
2014-11-07 Timothy Hatcher <timothy@apple.com>
Web Inspector: Cursor and scroll view jumps around when modifying styles
https://bugs.webkit.org/show_bug.cgi?id=137467
This merges commit e2962a5b0df56c8ee5a4482899d308decf3d7677 from CodeMirror.
Reviewed by Joseph Pecoraro.
* UserInterface/External/CodeMirror/codemirror.js:
(maybeScrollWindow): Signal the scrollCursorIntoView event.
(signalDOMEvent): Support string events by transforming them to event objects.
* UserInterface/Views/CodeMirrorAdditions.js:
(scrollCursorIntoView): Added. Default event listener that provides our own
implementation using WebKit's scrollIntoViewIfNeeded.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Stop doing an
extra scrollIntoViewIfNeeded call, CodeMirror does this.
2014-11-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Pseudo element matchedCSSRules do not include matching selector info
https://bugs.webkit.org/show_bug.cgi?id=138438
Reviewed by Benjamin Poulain.
* UserInterface/Base/Test.js:
(WebInspector.loaded):
Include a global setting for shadow dom used by DOM model classes.
Give it a "test" specific name to not override non-test setting values.
2014-11-05 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r175628.
https://bugs.webkit.org/show_bug.cgi?id=138451
Totally borked the web inspector (Requested by smfr on
#webkit).
Reverted changeset:
"Web Inspector: Add infrastructure for eslint based static
analyzer"
https://bugs.webkit.org/show_bug.cgi?id=137890
http://trac.webkit.org/changeset/175628
2014-11-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Specificity not shown for pseudo element styles
https://bugs.webkit.org/show_bug.cgi?id=138436
Reviewed by Benjamin Poulain.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
Previously we were skipping the pre-selector <span>s when we were
not getting a listing of matched selector indices, and missing out
on the opportunity to give each selector a specificity. Now, always
loop over selectors if we have them.
2014-11-05 Jonathan Wells <jonowells@apple.com>
Web Inspector: Add infrastructure for eslint based static analyzer
https://bugs.webkit.org/show_bug.cgi?id=137890
Reviewed by Timothy Hatcher.
Adding a manager to analyze source code, return warnings (AnalyzerMessages), and cache warnings.
* UserInterface/Base/Main.js: Create analyzerManager singleton.
* UserInterface/Controllers/AnalyzerManager.js: Added.
(WebInspector.AnalyzerManager):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode.):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode):
(set WebInspector.AnalyzerManager.prototype.set get sourceCodeCanBeAnalyzed):
(set WebInspector.AnalyzerManager.prototype._handleSourceCodeContentDidChange):
* UserInterface/Main.html: Add new files.
* UserInterface/Models/AnalyzerMessage.js: Added.
(WebInspector.AnalyzerMessage):
(WebInspector.AnalyzerMessage.prototype.get sourceCodeLocation):
(WebInspector.AnalyzerMessage.prototype.get sourceCode):
(WebInspector.AnalyzerMessage.prototype.get text):
(WebInspector.AnalyzerMessage.prototype.get ruleIdentifier):
* UserInterface/Models/SourceCode.js: Added call to WebInspector.Object.addConstructorFunctions().
2014-11-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Too much whitespace in resource details sidebar in groups
https://bugs.webkit.org/show_bug.cgi?id=138386
Reviewed by Timothy Hatcher.
* UserInterface/Views/DetailsSection.css:
(.details-section > .content > .group:first-child > .row.simple:first-child > *):
(body.mac-platform.legacy .details-section > .content > .group:first-child > .row.simple:first-child > *):
(body.mac-platform.legacy .details-section > .content > .group > .row.text):
(.details-section > .content > .group > .row.properties:not(.empty)):
(body.mac-platform.legacy .details-section > .content > .group > .row.properties:not(.empty)):
Adjust top and bottom padding.
2014-11-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Lots of TimelineDataGridNode asserts on reloads
https://bugs.webkit.org/show_bug.cgi?id=138387
Reviewed by Brian Burg.
The TimelineRuler.secondsPerPixel in the TimelineOverview is initialized
with a non-0 value and saved in a setting. However the TimelineRuler in
the OverviewTimelineView is not initialized with this value, and instead
initialized to 0. This patch initializes them to the same non-0 value.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.set secondsPerPixel):
* UserInterface/Views/TimelineContentView.js:
2014-11-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Pause on exceptions should show the actual exception
https://bugs.webkit.org/show_bug.cgi?id=63096
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
New strings / files.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.get pauseReason):
(WebInspector.DebuggerManager.prototype.get pauseData):
(WebInspector.DebuggerManager.prototype.reset):
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
(WebInspector.DebuggerManager.prototype._pauseReasonFromPayload):
Maintain the current pause reason and auxiliary data in the manager.
* UserInterface/Protocol/DebuggerObserver.js:
(WebInspector.DebuggerObserver.prototype.paused):
Pass previously unused event parameters on to the manager.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl):
Style error objects in the console like Objects. The new description
string provides a richer message if you console.log(exception).
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidResume):
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReason):
Update the UI when we pause / resume to show / hide a pause reason section.
* UserInterface/Views/DetailsSectionRow.js:
(WebInspector.DetailsSectionRow.prototype.set emptyMessage):
Fix a latent bug that would have thrown an exception if the setter was ever used.
* UserInterface/Views/DetailsSectionTextRow.js: Added.
(WebInspector.DetailsSectionTextRow):
(WebInspector.DetailsSectionTextRow.prototype.get text):
(WebInspector.DetailsSectionTextRow.prototype.set text):
* UserInterface/Views/DetailsSection.css:
(.details-section > .content > .group > .row.simple.data > .value):
(.details-section > .content > .group > .row.text):
Simple class for a section of centered text. This is modelled after
the empty message text style in other sections.
* UserInterface/Views/LogContentView.css:
(.console-formatted-object, .console-formatted-node, .console-formatted-error):
(.console-formatted-object .section, .console-formatted-node .section, .console-formatted-error .section):
(.console-formatted-object .properties, .console-formatted-node .properties, .console-formatted-error .properties):
Style "error" objects like regular objects. We may wish to treat differently later.
* UserInterface/Protocol/Legacy/6.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
Regenerate legacy backend commands to get the new enum.
2014-11-04 Andrei Bucur <abucur@adobe.com>
Building WebInspectorUI should not run the clang static analyzer by default
https://bugs.webkit.org/show_bug.cgi?id=137652
Reviewed by Timothy Hatcher.
There's no need to have the static analyzer enabled at compile time by default for the WebInspectorUI project.
It also breaks the ASAN build because the static analyzing step runs using the default compiler not the
ASAN clang.
* Configurations/DebugRelease.xcconfig: Remove the RUN_CLANG_STATIC_ANALYZER variable.
2014-11-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exceptions when paused and hovering JavaScript without CallFrames
https://bugs.webkit.org/show_bug.cgi?id=138338
Reviewed by Geoffrey Garen.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
Fallback to using the main page's context if there is no active call frame we can use.
2014-11-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: TextEditor search doesn't work after editing contents
https://bugs.webkit.org/show_bug.cgi?id=138198
Reviewed by Timothy Hatcher.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.customPerformSearch):
Fallback to pure TextEditor content searching (CodeMirror) if the editor has edits.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.hasEdits):
Check the CodeMirror clean state to known if we have edits or not.
2014-11-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Show Selector's Specificity
https://bugs.webkit.org/show_bug.cgi?id=138189
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Test.html:
Add new files and strings.
* UserInterface/Models/CSSMedia.js:
Constructor functions are not needed, remove unnecessary code.
* UserInterface/Models/CSSRule.js:
(WebInspector.CSSRule.prototype.set selectors): Deleted.
This was unused and is no longer correct.
(WebInspector.CSSRule.prototype.get matchedSelectorText):
Update now that selectors are a list of objects, not just strings.
* UserInterface/Models/CSSSelector.js:
(WebInspector.CSSSelector):
(WebInspector.CSSSelector.prototype.get specificity):
New model object for protocol type CSS.CSSSelector.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload.return):
(WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload):
(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
Handle parsing old and new SelectorLists.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
(WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelectorText):
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
Update the code now that the list of selectors are model objects instead
of just selector text strings.
2014-11-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ALTERNATE_DISPATCHERS Let the frontend know about extra agents
https://bugs.webkit.org/show_bug.cgi?id=138236
Reviewed by Brian Burg.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype.activateDomain):
* UserInterface/Protocol/InspectorObserver.js:
(WebInspector.InspectorObserver.prototype.activateExtraDomains):
* UserInterface/Base/Object.js:
* UserInterface/Base/Test.js:
* UserInterface/Base/Main.js:
(WebInspector.activateExtraDomains):
Default state is that there are no extra domains. When extra domains
are activated, some agents need to be re-initialized. Dispatch a
model event so views also know to re-initialize.
* UserInterface/Controllers/ApplicationCacheManager.js:
(WebInspector.ApplicationCacheManager.prototype._mainResourceDidChange):
* UserInterface/Controllers/DOMTreeManager.js:
Be more careful about direct agent use during main resource changes.
That can happen with a JSContext extended with a Page agent.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager):
(WebInspector.FrameResourceManager.prototype._mainFrameDidChange):
(WebInspector.FrameResourceManager.prototype._extraDomainsActivated):
* UserInterface/Controllers/StorageManager.js:
(WebInspector.StorageManager):
(WebInspector.StorageManager.prototype._databaseForIdentifier):
(WebInspector.StorageManager.prototype._extraDomainsActivated):
It is possible new window.FooAgent's are available. Perform expected
initialization re-checking if the agents are now available.
* UserInterface/Models/CSSCompletions.js:
Avoid re-initialization if we already did it. This should never
happen but this is just to be safe.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._extraDomainsActivated):
Don't disallow expandable tree elements if this is a JSContext with
extra domains. If that JSContext has resources, we would have been
unable to see child resources.
2014-10-30 Dana Burkart <dburkart@apple.com>
<rdar://problem/18821260> Prepare for the mysterious future
Reviewed by Lucas Forschler.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:
2014-10-10 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: timelines should not count time elapsed while paused in the debugger
https://bugs.webkit.org/show_bug.cgi?id=136351
Reviewed by Timothy Hatcher.
Don't update the timeline's current time when the debugger is paused.
Start and end times for timeline records are now in seconds elapsed since timeline
recording started, rather than milliseconds since the epoch. Also convert code that
tracks page/resource load timings to use elapsed times rather than timestamps.
Add a workaround to preserve compatibility with old backends. Convert legacy timestamps
in multiple agents to elapsed times.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveData):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidFinishLoading):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidFailLoading):
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):
* UserInterface/Controllers/ProbeManager.js:
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.computeElapsedTime): Forward to the active TimelineRecording.
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
(WebInspector.TimelineManager.prototype.pageDidLoad):
(WebInspector.TimelineManager.prototype._loadNewRecording):
* UserInterface/Models/Probe.js:
(WebInspector.ProbeSample):
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.updateForRedirectResponse):
(WebInspector.Resource.prototype.updateForResponse):
(WebInspector.Resource.prototype.increaseSize):
(WebInspector.Resource.prototype.markAsFinished):
(WebInspector.Resource.prototype.markAsFailed):
(WebInspector.Resource.prototype.revertMarkAsFinished):
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.computeElapsedTime):
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._debuggerPaused):
(WebInspector.TimelineContentView.prototype._debuggerResumed):
2014-10-23 Jono Wells <jonowells@apple.com>
Web Inspector: Double border appearing in node sidebar in expanded items in OS X Mavericks.
https://bugs.webkit.org/show_bug.cgi?id=138011
Reviewed by Timothy Hatcher.
Selector added for OS X Mavericks and earlier versions using .mac-platform.legacy.
* UserInterface/Views/DetailsSection.css:
(body.mac-platform.legacy .details-section .details-section:first-child):
2014-10-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Test TestWebKitAPI/WebKit2Gtk/TestInspectorServer fails
https://bugs.webkit.org/show_bug.cgi?id=132044
Reviewed by Brian Burg.
Make sure Protocol/InspectorFrontendHostStub.js is loaded before
Base/Platform.js, because Platform uses the InspectorFrontendHost
object.
* UserInterface/Main.html:
2014-10-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: InspectorBackendCommands should include when to activate particular domains
https://bugs.webkit.org/show_bug.cgi?id=137753
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
* UserInterface/Base/Test.js:
(WebInspector.loaded):
Activation now happens automatically so remove the hardcoded activations.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype.activateDomain):
Given no filter, always activate a domain. Otherwise only activate
if the debuggable type matches the provided filter.
* UserInterface/Protocol/Legacy/6.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
Only web debuggables are supported in iOS 6 and 7. The JSON files do not
need to change, all agents will auto activate.
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* Versions/Inspector-iOS-8.0.json:
Specify which are web debuggables in iOS 8 since JS inspection is possible.
2014-10-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Generate all Inspector domains together in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=137748
Reviewed by Brian Burg.
Change the frontend to always load all agents, but only activate a subset
of the agents depending on the type of the backend.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype.activateDomains):
(InspectorBackendClass.prototype.activateAllDomains):
(InspectorBackendClass.prototype._agentForDomain):
(InspectorBackendClass.prototype._dispatchEvent):
(InspectorBackend.Agent):
(InspectorBackend.Agent.prototype.get active):
(InspectorBackend.Agent.prototype.activate):
* UserInterface/Base/Test.js:
Only expose "window.FooAgent" or allow dispatches in the "Foo" domain
when that particular agent is activated. Currently we hardcode the list
of agents to activate for a debuggable type. This should be generated.
* UserInterface/Protocol/LoadInspectorBackendCommands.js:
Now there should always be a single "InspectorBackendCommands.js" file to load.
We may want to change the RWI path to return a single file instead of an array.
* Scripts/update-LegacyInspectorBackendCommands.rb:
* UserInterface/Protocol/Legacy/6.0/InspectorBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js.
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js.
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Protocol/Legacy/8.0/InspectorWebBackendCommands.js.
* UserInterface/Protocol/Legacy/8.0/InspectorJSBackendCommands.js: Removed.
* Versions/Inspector-iOS-8.0.json: Renamed from Source/WebInspectorUI/Versions/InspectorWeb-iOS-8.0.json.
* Versions/InspectorJS-iOS-8.0.json: Removed.
Update Legacy versions to output a single InspectorBackendCommands.js file.
Do a straightforward merge of the iOS 8 JS/Web inputs to a single json file.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/WebInspectorUIFramework.xcconfig:
* Scripts/copy-user-interface-resources-dryrun.rb:
* Scripts/copy-user-interface-resources.pl:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
* WebInspectorUI.vcxproj/build-webinspectorui.pl:
We no longer needed WebCore's Private Headers, so simplify build files
and update file names where appropriate.
2014-10-17 Jono Wells <jonowells@apple.com>
Web Inspector: Add ESLint open source library to the inspector
https://bugs.webkit.org/show_bug.cgi?id=137714
Reviewed by Joseph Pecoraro.
This adds back the eslint.js external library with a correction to Scripts/copy-user-interface-resources.pl
to prevent a build failure.
* Scripts/copy-user-interface-resources.pl: Added copy commands for ESLint.js.
* UserInterface/External/ESLint/LICENSE: Added.
* UserInterface/External/ESLint/eslint.js: Added.
2014-10-14 Jono Wells <jonowells@apple.com>
Web Inspector: Add ESLint open source library to the inspector
https://bugs.webkit.org/show_bug.cgi?id=137714
Reviewed by Timothy Hatcher.
This adds the eslint.js external library for static analysis and the necessary license.
* Scripts/copy-user-interface-resources.pl:
* UserInterface/External/ESLint/LICENSE: Added.
* UserInterface/External/ESLint/eslint.js: Added.
2014-10-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: paint flashing mode should be disabled when remote inspecting legacy iOS versions
https://bugs.webkit.org/show_bug.cgi?id=137575
Reviewed by Simon Fraser.
Remove setShowPaintRects from the legacy iOS protocol definitions.
The methods were unimplemented by the backends, so they should
not advertise supporting it.
* UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:
* Versions/InspectorWeb-iOS-8.0.json:
2014-10-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Processing Instruction Nodes appear poorly in DOM Tree
https://bugs.webkit.org/show_bug.cgi?id=137681
Reviewed by Timothy Hatcher.
Handle processing instruction node types in more places. The
backend sends the contents as a pure string, not as attribute
pairs, so just include the string in the UI.
* UserInterface/Models/DOMSearchMatchObject.js:
(WebInspector.DOMSearchMatchObject.prototype._generateClassName):
(WebInspector.DOMSearchMatchObject.titleForDOMNode):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
Display the value in the UI.
* UserInterface/Views/DOMTreeElementPathComponent.js:
(WebInspector.DOMTreeElementPathComponent):
Include an icon like DOCTYPE.
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(.syntax-highlighted .html-processing-instruction):
Style gray like a DOCTYPE.
2014-10-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Paint Flashing button does not match page state after reload
https://bugs.webkit.org/show_bug.cgi?id=137680
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
Make paint flashing a frontend setting. Enable it when the inspector
is opened if it was previously enabled.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype._togglePaintFlashing):
(WebInspector.DOMTreeContentView.prototype._showPaintRectsSettingChanged):
Have the paint flashing button always match the global setting.
2014-10-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve appearance of alpha color swatches
https://bugs.webkit.org/show_bug.cgi?id=137627
Reviewed by Andreas Kling.
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:
* Versions/InspectorWeb-iOS-8.0.json:
2014-10-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve appearance of alpha color swatches
https://bugs.webkit.org/show_bug.cgi?id=137627
Reviewed by Timothy Hatcher.
This improves the sizes. The color-swatch size is 1em x 1em,
which ends up being 11px, and thus there is still an imbalance.
However on both 1x and 2x displays this looks more even.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch):
2014-10-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: assert always logs undefined instead of the desired string
https://bugs.webkit.org/show_bug.cgi?id=137632
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.dispatch):
Fix the assert log to include the method name.
2014-10-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS minification should not strip whitespace around calc +/- binary operators
https://bugs.webkit.org/show_bug.cgi?id=137624
Reviewed by Timothy Hatcher.
Be careful when stripping whitespace around "+". We want to strip for
selectors "a + b" but not for calc expressions "calc(1px + 2px)".
This is not a perfect solution, but it does a good job. It may still break
with more complex calc expressions, like "calc(1px + calc())" but this
handles the basics.
* Scripts/copy-user-interface-resources-dryrun.rb: Added.
* Scripts/cssmin.py:
(cssminify):
2014-10-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DOM Storage Editing is broken in many ways, frustrating
https://bugs.webkit.org/show_bug.cgi?id=137547
Reviewed by Timothy Hatcher.
* UserInterface/Models/DOMStorageObject.js:
(WebInspector.DOMStorageObject.prototype.getEntries): Deleted.
When getting entires, populate the model object with these keys/values
so we can accurately detect duplicates in editing.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.determineNextCell):
(WebInspector.DataGrid.prototype.moveToNextCell):
When the users uses "Enter" to commit, stop editing.
(WebInspector.DataGrid.prototype._editingCommitted):
Fix title property accessor. This is not a map. This fixes an exception
when showing context menus on editable data grid rows.
* UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView.prototype.cleanup):
(WebInspector.DOMStorageContentView.prototype.restoreOriginalValues):
(WebInspector.DOMStorageContentView.prototype._editingCallback):
Completely rewrite editing here. As soon as an edit is made, enter
an uncommitted state with the original key/value. When a commit is
allowed, update as appropriate based on the original values.
2014-10-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS Pretty Printing fails to put space between value functions around ending parenthesis
https://bugs.webkit.org/show_bug.cgi?id=137415
Reviewed by Timothy Hatcher.
Add a space after a closing parenthesis if we are still inside a property.
This adds space between space separated function lists such as
-webkit-transform:foo(...)bar(...). Also add a test for keyframe syntax.
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* Tools/PrettyPrinting/css-tests/keyframes-expected.css: Added.
* Tools/PrettyPrinting/css-tests/keyframes.css: Added.
* Tools/PrettyPrinting/index.html:
* UserInterface/Views/CodeMirrorFormatters.js:
2014-10-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS Pretty Printing fails to put space between rgb(...) and numbers in minified gradients
https://bugs.webkit.org/show_bug.cgi?id=137414
Reviewed by Timothy Hatcher.
Add whitespace between rgb(...) and a number, possible in gradient
syntax like "linear-gradient(rgb(...)0%,rgb(...)100%)".
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* Tools/PrettyPrinting/css-tests/gradient-expected.css: Added.
(.dot-nav:nth-child(1n) li a.active):
* Tools/PrettyPrinting/css-tests/gradient.css: Added.
(.dot-nav:nth-child(1n) li a.active):
* Tools/PrettyPrinting/index.html:
* UserInterface/Views/CodeMirrorFormatters.js:
2014-10-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS Pretty Printing fails to wrap long lines of selectors with pseudo classes/elements
https://bugs.webkit.org/show_bug.cgi?id=137413
Reviewed by Timothy Hatcher.
Long line wrapping was breaking as soon as there was a ':' for a psuedo
class or element. Likewise it was counting comment strings as part of
the length of the line even though it would get a newline after it.
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* Tools/PrettyPrinting/css-tests/basic-expected.css:
(progress, section, summary, time):
* Tools/PrettyPrinting/css-tests/wrapping-expected.css: Added.
(a.tryamacs, a.upgradenows):
(a.tryamacs:hover, a.upgradenows:hover):
* Tools/PrettyPrinting/css-tests/wrapping.css: Added.
(a.browsewebappss,a.businessstores,a.buyiphones,a.buynows,a.buynows-arrow,a.comingsoons,p::before,a.descargarahoras,a.downloadituness,a.downloadnows,a.finds,a.freetrials,a.getstarteds,a.gos,a.howtoapplys,a.howtobuys,a.joinnows,a.learnmores,a.nikebuynows,a.notifymes,a.ordernows,a.preordernows,a.preorders,a.reserves,a.startyoursearchs,a.submits,a.tryamacs,a.upgradenows):
(a.browsewebappss:hover,a.businessstores:hover,a.buyiphones:hover,a.buynows:hover,a.buynows-arrow:hover,a.comingsoons:hover,p::before,a.descargarahoras:hover,a.downloadituness:hover,a.downloadnows:hover,a.finds:hover,a.freetrials:hover,a.getstarteds:hover,a.gos:hover,a.howtoapplys:hover,a.howtobuys:hover,a.joinnows:hover,a.learnmores:hover,a.nikebuynows:hover,a.notifymes:hover,a.ordernows:hover,a.preordernows:hover,a.preorders:hover,a.reserves:hover,a.startyoursearchs:hover,a.submits:hover,a.tryamacs:hover,a.upgradenows:hover):
* Tools/PrettyPrinting/index.html:
* UserInterface/Views/CodeMirrorFormatters.js:
2014-10-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add PrettyPrinter CSS tests
https://bugs.webkit.org/show_bug.cgi?id=134005
Reviewed by Timothy Hatcher.
Add CSS pretty printing tests. Improve pretty printing of calc()
expressions and media-queries with whitespace around operators
and keywords. Also fix the debug output in the tool for CSS.
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* Tools/PrettyPrinting/FormatterContentBuilder.js:
(FormatterContentBuilder.prototype._appendIndent):
* Tools/PrettyPrinting/FormatterDebug.js:
(.debugToken):
(Formatter.prototype.debug):
* Tools/PrettyPrinting/css-tests/basic-expected.css: Added.
* Tools/PrettyPrinting/css-tests/basic.css: Added.
* Tools/PrettyPrinting/css-tests/calc-expected.css: Added.
* Tools/PrettyPrinting/css-tests/calc.css: Added.
* Tools/PrettyPrinting/css-tests/media-query-expected.css: Added.
* Tools/PrettyPrinting/css-tests/media-query.css: Added.
* Tools/PrettyPrinting/css-tests/selectors-expected.css: Added.
* Tools/PrettyPrinting/css-tests/selectors.css: Added.
* Tools/PrettyPrinting/index.html:
* UserInterface/Views/CodeMirrorFormatters.js:
2014-10-04 Brian J. Burg <burg@cs.washington.edu>
Unreviewed, rolling out r174319.
Causes assertions in fast/profiler tests. Needs nontrivial
investigation, will take offline.
Reverted changeset:
"Web Inspector: timelines should not count time elapsed while
paused in the debugger"
https://bugs.webkit.org/show_bug.cgi?id=136351
http://trac.webkit.org/changeset/174319
2014-10-04 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: timelines should not count time elapsed while paused in the debugger
https://bugs.webkit.org/show_bug.cgi?id=136351
Reviewed by Timothy Hatcher.
Don't update the timeline's current time when the debugger is paused.
Start and end times for timeline records are now in seconds elapsed since timeline
recording started, rather than milliseconds since the epoch. Add a workaround to
preserve compatibility with old backends.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._debuggerPaused):
(WebInspector.TimelineContentView.prototype._debuggerResumed):
2014-10-03 Saam Barati <saambarati1@gmail.com>
Web Inspector: Move the computation that results in UI strings from JSC to the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=137295
Reviewed by Timothy Hatcher.
The inspector now computes a set of properties that was previously
computed inside JSC.
This patch also addresses the weird experience of the
type of an expression claiming to be both a Number and
an Integer. This could be a bit confusing because Number
is supposed to represent Double|Integer and the previous
UI implied that Number was equivalent to Double. The new UI only
ever shows either the type of Number or Integer when showing
the type information of an expression. It never shows both Number
and Integer simultaneously to describe a single expression.
* UserInterface/Models/TypeSet.js:
(WebInspector.TypeSet):
(WebInspector.TypeSet.prototype.isContainedIn):
(WebInspector.TypeSet.prototype.get primitiveTypeNames):
* UserInterface/Views/TypePropertiesSection.js:
(WebInspector.TypePropertiesSection):
(WebInspector.TypePropertiesSection.prototype.onpopulate):
* UserInterface/Views/TypeTokenView.js:
(WebInspector.TypeTokenView):
(WebInspector.TypeTokenView.prototype.update):
(WebInspector.TypeTokenView.prototype._shouldShowPopover):
(WebInspector.TypeTokenView.prototype._displayTypeName):
2014-10-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Cannot add a new CSS Rule to elements with 3 or more class names
https://bugs.webkit.org/show_bug.cgi?id=137375
Reviewed by Timothy Hatcher.
Correctly merge all class names with dots instead of just the first two.
* UserInterface/Models/DOMNode.js:
2014-10-02 Mark Lam <mark.lam@apple.com>
Fixed the Inspector to be able to properly distinguish between scope types.
<https://webkit.org/b/137279>
Reviewed by Geoffrey Garen and Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/DebuggerManager.js:
* UserInterface/Models/ScopeChainNode.js:
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
- Added handling of the FunctionNameScope case.
2014-10-02 Andres Gomez <agomez@igalia.com>
Web Inspector: [GTK] Missing icons and enhancing the proportion and visibility of some icons
https://bugs.webkit.org/show_bug.cgi?id=137248
Reviewed by Carlos Garcia Campos.
Add more free icons and removed some unused ones for the Web
Inspector in GTK+.
Also, enhanced the visibility and/or proportion of several of the
icons.
* UserInterface/Images/gtk/AUTHORS:
* UserInterface/Images/gtk/COPYING:
* UserInterface/Images/gtk/Checkers.svg: Added.
* UserInterface/Images/gtk/Circle.svg: Added.
* UserInterface/Images/gtk/CloseLarge.svg: Added.
* UserInterface/Images/gtk/CloseTimeline.png: Removed.
* UserInterface/Images/gtk/CloseTimeline@2x.png: Removed.
* 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/EventListener.svg:
* UserInterface/Images/gtk/Exception.svg:
* UserInterface/Images/gtk/Function.svg:
* UserInterface/Images/gtk/GradientStop.png: Added.
* UserInterface/Images/gtk/GradientStop@2x.png: Added.
* UserInterface/Images/gtk/GradientStopSelected.png: Added.
* UserInterface/Images/gtk/GradientStopSelected@2x.png: Added.
* UserInterface/Images/gtk/Issues.svg:
* UserInterface/Images/gtk/IssuesEnabled.svg:
* UserInterface/Images/gtk/LessColumns.svg: Removed.
* UserInterface/Images/gtk/Logs.svg:
* UserInterface/Images/gtk/Memory.svg: Removed.
* UserInterface/Images/gtk/MoreColumns.svg: Removed.
* UserInterface/Images/gtk/Native.svg:
* UserInterface/Images/gtk/NavigationItemAngleBrackets.svg:
* UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg:
* UserInterface/Images/gtk/NavigationItemBug.svg:
* UserInterface/Images/gtk/NavigationItemFile.svg:
* UserInterface/Images/gtk/NavigationItemLayers.svg:
* UserInterface/Images/gtk/NavigationItemMagnifyingGlass.svg: Removed.
* UserInterface/Images/gtk/NavigationItemProbes.pdf: Added.
* UserInterface/Images/gtk/NavigationItemStopwatch.svg:
* UserInterface/Images/gtk/NavigationItemTypes.svg: Added.
* UserInterface/Images/gtk/PaintFlashing.svg: Added.
* UserInterface/Images/gtk/PseudoElement.svg:
* UserInterface/Images/gtk/Record.svg: Added.
* UserInterface/Images/gtk/Recording.png: Removed.
* UserInterface/Images/gtk/Recording@2x.png: Removed.
* UserInterface/Images/gtk/RecordingHovered.png: Removed.
* UserInterface/Images/gtk/RecordingHovered@2x.png: Removed.
* UserInterface/Images/gtk/RecordingStopped.png: Removed.
* UserInterface/Images/gtk/RecordingStopped@2x.png: Removed.
* UserInterface/Images/gtk/Reflection.svg:
* UserInterface/Images/gtk/ReplayPauseButton.svg: Added.
* UserInterface/Images/gtk/ReplayPlayButton.svg: Added.
* UserInterface/Images/gtk/ReplayRecordingButton.svg: Added.
* UserInterface/Images/gtk/Request.svg:
* UserInterface/Images/gtk/Resources.svg:
* UserInterface/Images/gtk/Response.svg:
* UserInterface/Images/gtk/ResultLine.svg:
* UserInterface/Images/gtk/SourceCode.svg:
* UserInterface/Images/gtk/Stop.svg: Added.
* 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: Added.
* UserInterface/Images/gtk/TimelineRecordEvent.svg:
* UserInterface/Images/gtk/TimelineRecordLayout.svg:
* UserInterface/Images/gtk/TimelineRecordPaint.svg:
* UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Added.
* UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg:
* UserInterface/Images/gtk/TimelineRecordStyle.svg:
* UserInterface/Images/gtk/TimelineRecordTimer.svg:
* UserInterface/Images/gtk/Weight.svg:
2014-09-27 Brian J. Burg <burg@cs.washington.edu>
Web Replay: Playback position updates should be sent before the next event loop input is dispatched
https://bugs.webkit.org/show_bug.cgi?id=137162
Reviewed by Timothy Hatcher.
Pausing playback from the UI was broken because of a typo. Fix this, and rename
stopPlayback to cancelPlayback.
* UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.prototype.switchSession.if):
2014-09-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Automatic Inspection should continue once all breakpoints are loaded
https://bugs.webkit.org/show_bug.cgi?id=137038
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
Send the initialized message after we have sent all other setup messages,
such as enabling features and setting breakpoints.
2014-09-26 Saam Barati <saambarati1@gmail.com>
Web Inspector: Type Token View shows type information on hover when it shouldn't
https://bugs.webkit.org/show_bug.cgi?id=137152
Reviewed by Brian J. Burg.
TypeTokenView should only show type information when there is
more than one primitive type or more than zero objects types.
This fixes a bug in checking the length of object types.
* UserInterface/Views/TypeTokenView.js:
(WebInspector.TypeTokenView.prototype._shouldShowPopover):
2014-09-25 Timothy Hatcher <timothy@apple.com>
Web Inspector: Show type info icon is blurry
https://bugs.webkit.org/show_bug.cgi?id=137125
Reviewed by Darin Adler.
* UserInterface/Images/NavigationItemTypes.svg:
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView):
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
2014-09-25 Saam Barati <saambarati1@gmail.com>
Web Inspector: console.assert(bitString) TypeSet:50
https://bugs.webkit.org/show_bug.cgi?id=137051
Reviewed by Joseph Pecoraro.
This fixes TypeSet's isContainedIn method by ensuring that
the type bit string isn't zero because the test would trivially
pass if the bit string is zero.
* UserInterface/Models/TypeSet.js:
(WebInspector.TypeSet.prototype.isContainedIn):
2014-09-25 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: FunctionCall timeline records omit profile data if the debugger has paused
https://bugs.webkit.org/show_bug.cgi?id=136805
Reviewed by Timothy Hatcher.
* UserInterface/Test.html: Add missing include for ScopeChainNode.js.
2014-09-25 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: sort probe details sidebar sections by source code location string
https://bugs.webkit.org/show_bug.cgi?id=137080
Reviewed by Timothy Hatcher.
Probe sections should display in the same order as associated breakpoint tree elements.
* UserInterface/Views/ProbeDetailsSidebarPanel.js:
(WebInspector.ProbeDetailsSidebarPanel.prototype.inspect.inspectedProbeSets):
(WebInspector.ProbeDetailsSidebarPanel.prototype.inspect):
2014-09-25 Andres Gomez <agomez@igalia.com>
Unreviewed. Add more free icons for the Web Inspector in GTK+.
* UserInterface/Images/gtk/AUTHORS:
* UserInterface/Images/gtk/ApplicationCacheManifest.png: Added.
* UserInterface/Images/gtk/ApplicationCacheManifest@2x.png: Added.
* UserInterface/Images/gtk/COPYING:
* UserInterface/Images/gtk/COPYING_LGPL2: Added.
* UserInterface/Images/gtk/Cookie.png: Added.
* UserInterface/Images/gtk/Cookie@2x.png: Added.
* UserInterface/Images/gtk/HoverMenuButton.png: Added.
* UserInterface/Images/gtk/HoverMenuButton@2x.png: Added.
* UserInterface/Images/gtk/InstructionPointer.png: Added.
* UserInterface/Images/gtk/InstructionPointer@2x.png: Added.
* UserInterface/Images/gtk/Log.png: Added.
* UserInterface/Images/gtk/Log@2x.png: Added.
* UserInterface/Images/gtk/Profile.png: Added.
* UserInterface/Images/gtk/Profile@2x.png: Added.
* UserInterface/Images/gtk/Recording.png: Added.
* UserInterface/Images/gtk/Recording@2x.png: Added.
* UserInterface/Images/gtk/RecordingHovered.png: Added.
* UserInterface/Images/gtk/RecordingHovered@2x.png: Added.
* UserInterface/Images/gtk/RecordingStopped.png: Added.
* UserInterface/Images/gtk/RecordingStopped@2x.png: Added.
* UserInterface/Images/gtk/Script.png: Added.
* UserInterface/Images/gtk/Script@2x.png: Added.
* UserInterface/Images/gtk/ScriptLarge.png: Added.
* UserInterface/Images/gtk/ScriptLarge@2x.png: Added.
* UserInterface/Images/gtk/SliderThumb.png: Added.
* UserInterface/Images/gtk/SliderThumb@2x.png: Added.
* UserInterface/Images/gtk/SliderThumbPressed.png: Added.
* UserInterface/Images/gtk/SliderThumbPressed@2x.png: Added.
* UserInterface/Images/gtk/Stopwatch.png: Added.
* UserInterface/Images/gtk/Stopwatch@2x.png: Added.
2014-09-21 Timothy Hatcher <timothy@apple.com>
Make the Web Inspector use a separate web process.
https://bugs.webkit.org/show_bug.cgi?id=135120
Reviewed by Anders Carlsson.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded):
Move InspectorFrontendHost.loaded to later in the load.
Calling it early just shows the window before we have
a user interface to show.
* UserInterface/Base/Test.js:
(WebInspector.loaded):
(WebInspector.contentLoaded):
Match the changes in Main.js.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.savedURL): Change comment.
(InspectorFrontendAPI.appendedToURL): Change comment.
(InspectorFrontendAPI.dispatch): Add an assert and early
return to be safe from unknown commands.
(InspectorFrontendAPI.loadCompleted): Delete _pendingCommands,
no need to keep an empty array around a one time use.
2014-09-24 Andres Gomez <agomez@igalia.com>
Unreviewed. Add more free icons for the Web Inspector in GTK+
* UserInterface/Images/gtk/AUTHORS:
* UserInterface/Images/gtk/ApplicationCache.png: Added.
* UserInterface/Images/gtk/ApplicationCache@2x.png: Added.
* UserInterface/Images/gtk/BottomUpTree.svg: Added.
* UserInterface/Images/gtk/Breakpoint.png: Added.
* UserInterface/Images/gtk/Breakpoint@2x.png: Added.
* UserInterface/Images/gtk/BreakpointButton.svg:
* UserInterface/Images/gtk/BreakpointInactive.png: Added.
* UserInterface/Images/gtk/BreakpointInactive@2x.png: Added.
* UserInterface/Images/gtk/BreakpointInactiveButton.svg:
* UserInterface/Images/gtk/COPYING:
* UserInterface/Images/gtk/COPYING_CCBYSA3: Copied from Source/WebInspectorUI/UserInterface/Images/gtk/COPYING.
* UserInterface/Images/gtk/ClippingCSS.png: Added.
* UserInterface/Images/gtk/ClippingCSS@2x.png: Added.
* UserInterface/Images/gtk/ClippingGeneric.png: Added.
* UserInterface/Images/gtk/ClippingGeneric@2x.png: Added.
* UserInterface/Images/gtk/ClippingJS.png: Added.
* UserInterface/Images/gtk/ClippingJS@2x.png: Added.
* UserInterface/Images/gtk/CloseTimeline.png: Added.
* UserInterface/Images/gtk/CloseTimeline@2x.png: Added.
* UserInterface/Images/gtk/ColorIcon.png: Added.
* UserInterface/Images/gtk/ColorIcon@2x.png: Added.
* UserInterface/Images/gtk/Colors.png: Added.
* UserInterface/Images/gtk/Colors@2x.png: Added.
* UserInterface/Images/gtk/ColorsLarge.png: Added.
* UserInterface/Images/gtk/ColorsLarge@2x.png: Added.
* UserInterface/Images/gtk/Database.png: Added.
* UserInterface/Images/gtk/Database@2x.png: Added.
* UserInterface/Images/gtk/DatabaseTable.png: Added.
* UserInterface/Images/gtk/DatabaseTable@2x.png: Added.
* UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg: Added.
* UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg: Added.
* UserInterface/Images/gtk/Issues.svg: Added.
* UserInterface/Images/gtk/IssuesEnabled.svg: Added.
* UserInterface/Images/gtk/LayerBorders.svg: Added.
* UserInterface/Images/gtk/LessColumns.svg: Added.
* UserInterface/Images/gtk/LocalStorage.png: Added.
* UserInterface/Images/gtk/LocalStorage@2x.png: Added.
* UserInterface/Images/gtk/Locked.svg: Added.
* UserInterface/Images/gtk/Logs.svg: Added.
* UserInterface/Images/gtk/Memory.svg: Added.
* UserInterface/Images/gtk/MoreColumns.svg: Added.
* UserInterface/Images/gtk/Native.svg: Added.
* UserInterface/Images/gtk/NavigationItemAngleBrackets.svg: Added.
* UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg: Added.
* UserInterface/Images/gtk/NavigationItemBug.svg: Added.
* UserInterface/Images/gtk/NavigationItemCurleyBraces.svg: Added.
* UserInterface/Images/gtk/NavigationItemFile.svg: Added.
* UserInterface/Images/gtk/NavigationItemLayers.svg: Added.
* UserInterface/Images/gtk/NavigationItemLog.svg: Added.
* UserInterface/Images/gtk/NavigationItemMagnifyingGlass.svg: Added.
* UserInterface/Images/gtk/NavigationItemStopwatch.svg: Added.
* UserInterface/Images/gtk/NavigationItemStorage.svg: Added.
* UserInterface/Images/gtk/NavigationItemTrash.svg: Added.
* UserInterface/Images/gtk/NavigationItemVariable.svg: Added.
* UserInterface/Images/gtk/Network.png: Added.
* UserInterface/Images/gtk/Network@2x.png: Added.
* UserInterface/Images/gtk/NetworkLarge.png: Added.
* UserInterface/Images/gtk/NetworkLarge@2x.png: Added.
* UserInterface/Images/gtk/Pause.svg: Added.
* UserInterface/Images/gtk/Percent.svg: Added.
* UserInterface/Images/gtk/Plus.svg: Added.
* UserInterface/Images/gtk/PseudoElement.svg: Added.
* UserInterface/Images/gtk/Reflection.svg: Added.
* UserInterface/Images/gtk/Reload.svg: Added.
* UserInterface/Images/gtk/Request.svg: Added.
* UserInterface/Images/gtk/Response.svg: Added.
* UserInterface/Images/gtk/ResultLine.svg: Added.
* UserInterface/Images/gtk/Resume.svg: Added.
* UserInterface/Images/gtk/SessionStorage.png: Added.
* UserInterface/Images/gtk/SessionStorage@2x.png: Added.
* UserInterface/Images/gtk/ShadowDOM.svg: Added.
* UserInterface/Images/gtk/SourceCode.svg: Added.
* UserInterface/Images/gtk/SplitToggleDown.svg: Added.
* UserInterface/Images/gtk/SplitToggleUp.svg: Added.
* UserInterface/Images/gtk/StepInto.svg: Added.
* UserInterface/Images/gtk/StepOut.svg: Added.
* UserInterface/Images/gtk/StepOver.svg: Added.
* UserInterface/Images/gtk/StyleRuleAuthor.svg: Added.
* UserInterface/Images/gtk/StyleRuleInherited.svg: Added.
* UserInterface/Images/gtk/StyleRuleInheritedElement.svg: Added.
* UserInterface/Images/gtk/StyleRuleInspector.svg: Added.
* UserInterface/Images/gtk/StyleRuleUser.svg: Added.
* UserInterface/Images/gtk/StyleRuleUserAgent.svg: Added.
* UserInterface/Images/gtk/Time.svg: Added.
* UserInterface/Images/gtk/TimelineRecordAnimation.svg: Added.
* UserInterface/Images/gtk/TimelineRecordEvent.svg: Added.
* UserInterface/Images/gtk/TimelineRecordLayout.svg: Added.
* UserInterface/Images/gtk/TimelineRecordPaint.svg: Added.
* UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg: Added.
* UserInterface/Images/gtk/TimelineRecordStyle.svg: Added.
* UserInterface/Images/gtk/TimelineRecordTimer.svg: Added.
* UserInterface/Images/gtk/Undock.svg: Added.
* UserInterface/Images/gtk/UserInputPrompt.svg: Added.
* UserInterface/Images/gtk/UserInputPromptPrevious.svg: Added.
* UserInterface/Images/gtk/UserInputResult.svg: Added.
* UserInterface/Images/gtk/Warning.svg: Added.
* UserInterface/Images/gtk/Weight.svg: Added.
2014-09-23 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove UserInterface/Images/gtk from Apple builds
https://bugs.webkit.org/show_bug.cgi?id=136955
Reviewed by Joseph Pecoraro.
* Scripts/copy-user-interface-resources.pl:
Remove Images/Legacy and Images/gtk on Mac and Windows builds by looking
at the MAC_OS_X_VERSION_MAJOR and OFFICIAL_BUILD environment vars.
2014-09-21 Saam Barati <saambarati1@gmail.com>
Web Inspector: fix TypeSet hierarchy in TypeTokenView
https://bugs.webkit.org/show_bug.cgi?id=136982
Reviewed by Joseph Pecoraro.
The protocol object representation of TypeSet was being computed
incorrectly in JSC::TypeSet. This patch fixes that problem
and also asserts that the type information that the Web Inspector
receives is not empty.
* UserInterface/Models/TypeSet.js:
(WebInspector.TypeSet):
* UserInterface/Views/TypeTokenView.js:
(WebInspector.TypeTokenView.prototype._displayTypeName):
2014-09-21 Saam Barati <saambarati1@gmail.com>
Web Inspector: unlocalized 'many' string in type profiler inline bubble
https://bugs.webkit.org/show_bug.cgi?id=136980
Reviewed by Timothy Hatcher.
Generate the localizable string for the type profiler's "many" inline bubble.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/TypeTokenView.js:
2014-09-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Option+Click on CSS url(...) should jump to resource view
https://bugs.webkit.org/show_bug.cgi?id=136965
Reviewed by Timothy Hatcher.
* UserInterface/Views/CodeMirrorAdditions.js:
When parsing CSS url(...) tokens, the contents of url(...)
are a "string" type, not "atom".
2014-09-19 Daniel Bates <dabates@apple.com>
Always assume internal SDK when building configuration Production
https://bugs.webkit.org/show_bug.cgi?id=136925
<rdar://problem/18362399>
Reviewed by Dan Bernstein.
* Configurations/DebugRelease.xcconfig: Also move #include of HaveInternalSDK.xcconfig from DebugRelease.xcconfig
to Base.xcconfig so as to be consistent with the format of other Base.xcconfig/DebugRelease.xcconfig files
(e.g. Source/WebCore/Configurations/Base.xcconfig and Source/WebCore/Configurations/DebugRelease.xcconfig).
2014-09-19 Carlos Garcia Campos <cgarcia@igalia.com>
Webkitgtk 2.5.3: tarball contains APPLE LICENSE file - stating not distributable
https://bugs.webkit.org/show_bug.cgi?id=136632
Reviewed by Gustavo Noronha Silva.
Add free icons for the GTK port. These icons are from the GNOME
project, some of them adapted by Andres Gomez for the inspector.
This is only a subset of the icons, since we still don't have a
free replacement for all of them, but at least it makes the
inspector kind of usable.
* UserInterface/Images/gtk/AUTHORS: Added.
* UserInterface/Images/gtk/BackArrow.svg: Added.
* UserInterface/Images/gtk/BreakpointActionAdd.svg: Added.
* UserInterface/Images/gtk/BreakpointActionRemove.svg: Added.
* UserInterface/Images/gtk/BreakpointButton.svg: Added.
* UserInterface/Images/gtk/BreakpointInactiveButton.svg: Added.
* UserInterface/Images/gtk/Breakpoints.svg: Added.
* UserInterface/Images/gtk/COPYING: Added.
* UserInterface/Images/gtk/Close.svg: Added.
* UserInterface/Images/gtk/CloseWhite.svg: Added.
* UserInterface/Images/gtk/ContentFlow.svg: Added.
* UserInterface/Images/gtk/Crosshair.svg: Added.
* UserInterface/Images/gtk/DOMCharacterData.svg: Added.
* UserInterface/Images/gtk/DOMComment.svg: Added.
* UserInterface/Images/gtk/DOMDocument.svg: Added.
* UserInterface/Images/gtk/DOMDocumentType.svg: Added.
* UserInterface/Images/gtk/DOMElement.svg: Added.
* UserInterface/Images/gtk/DOMNode.svg: Added.
* UserInterface/Images/gtk/DOMTextNode.svg: Added.
* UserInterface/Images/gtk/DOMTree.svg: Added.
* UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg: Added.
* UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg: Added.
* UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg: Added.
* UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg: Added.
* UserInterface/Images/gtk/DockBottom.svg: Added.
* UserInterface/Images/gtk/DockRight.svg: Added.
* UserInterface/Images/gtk/DocumentCSS.png: Added.
* UserInterface/Images/gtk/DocumentCSS@2x.png: Added.
* UserInterface/Images/gtk/DocumentFont.png: Added.
* UserInterface/Images/gtk/DocumentFont@2x.png: Added.
* UserInterface/Images/gtk/DocumentGeneric.png: Added.
* UserInterface/Images/gtk/DocumentGeneric@2x.png: Added.
* UserInterface/Images/gtk/DocumentImage.png: Added.
* UserInterface/Images/gtk/DocumentImage@2x.png: Added.
* UserInterface/Images/gtk/DocumentJS.png: Added.
* UserInterface/Images/gtk/DocumentJS@2x.png: Added.
* UserInterface/Images/gtk/DocumentMarkup.png: Added.
* UserInterface/Images/gtk/DocumentMarkup@2x.png: Added.
* UserInterface/Images/gtk/DownloadArrow.svg: Added.
* UserInterface/Images/gtk/Error.svg: Added.
* UserInterface/Images/gtk/Errors.svg: Added.
* UserInterface/Images/gtk/ErrorsEnabled.svg: Added.
* UserInterface/Images/gtk/EventListener.svg: Added.
* UserInterface/Images/gtk/Exception.svg: Added.
* UserInterface/Images/gtk/FilterFieldGlyph.svg: Added.
* UserInterface/Images/gtk/FolderGeneric.png: Added.
* UserInterface/Images/gtk/FolderGeneric@2x.png: Added.
* UserInterface/Images/gtk/ForwardArrow.svg: Added.
* UserInterface/Images/gtk/Function.svg: Added.
* UserInterface/Images/gtk/GoToArrow.svg: Added.
* UserInterface/Images/gtk/Resources.svg: Added.
* UserInterface/Images/gtk/SortIndicatorDownArrow.svg: Added.
* UserInterface/Images/gtk/SortIndicatorUpArrow.svg: Added.
* UserInterface/Images/gtk/UpDownArrows.svg: Added.
2014-09-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unnecessary prefixes in WebInspectorUI CSS
https://bugs.webkit.org/show_bug.cgi?id=136905
Reviewed by Timothy Hatcher.
Removed vendor prefixes from justify-content and a few lingering
occurances with transition, box-shadow, and display.
* UserInterface/Views/BreakpointActionView.css:
* UserInterface/Views/BreakpointTreeElement.css:
* UserInterface/Views/ButtonNavigationItem.css:
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
* UserInterface/Views/ControlToolbarItem.css:
* UserInterface/Views/DebuggerDashboardView.css:
* UserInterface/Views/DefaultDashboardView.css:
* UserInterface/Views/FontResourceContentView.css:
* UserInterface/Views/ImageResourceContentView.css:
* UserInterface/Views/LayerTreeSidebarPanel.css:
* UserInterface/Views/Main.css:
* UserInterface/Views/NavigationBar.css:
* UserInterface/Views/NavigationSidebarPanel.css:
* UserInterface/Views/Popover.css:
* UserInterface/Views/ReplayDashboardView.css:
* UserInterface/Views/Toolbar.css:
2014-09-17 Dean Jackson <dino@apple.com>
WebInpector can use unprefixed flexbox
https://bugs.webkit.org/show_bug.cgi?id=136899
Reviewed by Joseph Pecoraro.
Now the inspector UI itself can use a non-prefixed flexbox. This was
a basic search and replace for the following properties:
- align-content
- align-items
- align-self
- flex-basis
- flex-direction
- flex-wrap
- flex-grow
- flex-shrink
- flex
- flex-flow
- justify
* UserInterface/Views/ButtonToolbarItem.css:
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
* UserInterface/Views/ContentBrowser.css:
* UserInterface/Views/ControlToolbarItem.css:
* UserInterface/Views/DebuggerDashboardView.css:
* UserInterface/Views/DefaultDashboardView.css:
* UserInterface/Views/FilterBar.css:
* UserInterface/Views/FlexibleSpaceNavigationItem.css:
* UserInterface/Views/FontResourceContentView.css:
* UserInterface/Views/HierarchicalPathComponent.css:
* UserInterface/Views/ImageResourceContentView.css:
* UserInterface/Views/LayerTreeSidebarPanel.css:
* UserInterface/Views/LogContentView.css:
* UserInterface/Views/Main.css:
* UserInterface/Views/NavigationBar.css:
* UserInterface/Views/NavigationSidebarPanel.css:
* UserInterface/Views/Popover.css:
* UserInterface/Views/QuickConsole.css:
* UserInterface/Views/ReplayDashboardView.css:
* UserInterface/Views/ResourceSidebarPanel.css:
* UserInterface/Views/Toolbar.css:
2014-09-16 Dean Jackson <dino@apple.com>
Add unprefixed flexbox display values and property names/values
https://bugs.webkit.org/show_bug.cgi?id=136880
<rdar://problem/18361137>
Reviewed by Benjamin Poulain with some extra comments by Joseph Pecoraro.
* UserInterface/Models/CSSKeywordCompletions.js: Switch to all the unprefixed
flex properties.
2014-09-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Versioned Inspector protocol JSON files for iOS 8.0
https://bugs.webkit.org/show_bug.cgi?id=136873
Reviewed by Timothy Hatcher.
* Scripts/update-LegacyInspectorBackendCommands.rb:
* UserInterface/Protocol/Legacy/8.0/InspectorJSBackendCommands.js: Added.
* UserInterface/Protocol/Legacy/8.0/InspectorWebBackendCommands.js: Added.
* Versions/InspectorJS-iOS-8.0.json: Added.
* Versions/InspectorWeb-iOS-8.0.json: Added.
2014-09-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix ESLint no-extra-bind warnings
https://bugs.webkit.org/show_bug.cgi?id=136659
Reviewed by Timothy Hatcher.
* .eslintrc:
* UserInterface/Controllers/LayerTreeManager.js:
(WebInspector.LayerTreeManager.prototype.layersForNode):
2014-09-15 Matt Baker <mattbaker@apple.com>
Web Inspector: mouse drifts away from resizer when resizing docked inspector
https://bugs.webkit.org/show_bug.cgi?id=22263
Reviewed by Joseph Pecoraro.
Modified the docked resizer dragging logic to record the initial mouse down position relative to the
resizer client rectangle. Added check while dragging the resizer to ensure that the cursor is positioned
correctly with respect to the resize direction before updating the attached window dimension.
* UserInterface/Base/Main.js:
(WebInspector._dockedResizerMouseDown.dockedResizerDrag):
2014-09-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix assert in QuickConsole - main frame execution context path component
https://bugs.webkit.org/show_bug.cgi?id=136748
Reviewed by Timothy Hatcher.
This can get called for the MainFrame on page navigations.
In such cases we can return a better result from this method.
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole.prototype._insertExecutionContextPathComponentForFrame):
2014-09-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Hide DOM search result highlights when find banner is not showing
https://bugs.webkit.org/show_bug.cgi?id=136749
Reviewed by Timothy Hatcher.
Match search highlights in TextEditor by only showing the highlight
when the find banner is showing.
* UserInterface/Views/DOMTreeOutline.css:
(.showing-find-banner .dom-tree-outline .search-result):
(.dom-tree-outline .search-highlight): Deleted.
2014-09-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DOM Tree search highlights are not appearing
https://bugs.webkit.org/show_bug.cgi?id=136662
Reviewed by Timothy Hatcher.
When performing a search within the DOMTreeContentView all
search results should immediately highlight. When moving
between search results, emphasize the current with a bouncy.
Remember to remove the highlights when the search is changed
or cleared.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.performSearch.searchResultsReady):
(WebInspector.DOMTreeContentView.prototype.searchCleared):
Shor or hide highlights when searches change.
(WebInspector.DOMTreeContentView.prototype.revealResult):
(WebInspector.DOMTreeContentView.prototype._revealSearchResult):
Emphasize the highlight when moving to a new current result.
(WebInspector.DOMTreeContentView.prototype._showSearchHighlights):
(WebInspector.DOMTreeContentView.prototype._hideSearchHighlights):
On each affected DOMTreeElement show or hide search highlights.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight.animationEnded):
(WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight):
Give a brief bouncy-highlight when told to emphasize the search highlight.
(WebInspector.DOMTreeElement.prototype.updateTitle):
Remove unused and unnecessary style class on each row.
(WebInspector.DOMTreeElement.prototype._highlightSearchResults):
Update the stale code to use new function names and accessors.
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline .search-highlight):
Styles for the search highlight match search highlights in the sidebar.
* UserInterface/Views/Main.css:
(.bouncy-highlight):
* UserInterface/Views/TextEditor.css:
Move bouncy-highlight to Main.css.
2014-09-10 Saam Barati <saambarati1@gmail.com>
Web Inspector: Modify the type profiler runtime protocol to transfer some computation into the WebInspector
https://bugs.webkit.org/show_bug.cgi?id=136500
Reviewed by Joseph Pecoraro.
This patch maintains the same UI in the Web Inspector for displaying
type information, but now accounts for the new protocol for type profiling.
The Inspector now has a TypeSet class that wraps the TypeDescription
protocol object and creates a simple interface for asking protocol objects
about their type.
* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
* UserInterface/Main.html:
* UserInterface/Models/TypeSet.js: Added.
(WebInspector.TypeSet):
(WebInspector.TypeSet.fromPayload):
(WebInspector.TypeSet.prototype.isContainedIn):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation.handler):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
* UserInterface/Views/TypePropertiesSection.js:
(WebInspector.TypePropertiesSection.prototype.onpopulate):
(WebInspector.TypePropertyTreeElement.prototype.onpopulate):
* UserInterface/Views/TypeTokenView.js:
(WebInspector.TypeTokenView.prototype.update):
(WebInspector.TypeTokenView.prototype._shouldShowPopover):
(WebInspector.TypeTokenView.prototype._displayTypeName):
2014-09-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Eliminate typeof "undefined" checks
https://bugs.webkit.org/show_bug.cgi?id=136691
Reviewed by Alexey Proskuryakov.
* UserInterface/Base/Main.js:
(WebInspector.linkifyURLAsNode):
(WebInspector.linkifyStringAsFragment):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype._invokeWithArguments):
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.get resizeMethod):
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype.get minimumWidth):
2014-09-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix obscure ESLint warnings and skip directories
https://bugs.webkit.org/show_bug.cgi?id=136686
Reviewed by Timothy Hatcher.
* .eslintignore: Added.
Skip directories we do not want ESLint to process.
* .eslintrc:
Add rules we've seen and sort sections.
* UserInterface/Controllers/FormatterContentBuilder.js:
(FormatterContentBuilder.prototype._appendIndent):
* UserInterface/Models/Color.js:
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
* UserInterface/Views/DOMTreeDataGridNode.js:
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.ondelete):
(WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
(WebInspector.DOMTreeElement.prototype._distinctClosingTagElement):
* UserInterface/Views/EditingSupport.js:
(WebInspector.EditingConfig):
* UserInterface/Views/LayerTreeDataGridNode.js:
(WebInspector.LayerTreeDataGridNode.prototype._makeOutlet):
* UserInterface/Views/TreeOutline.js:
(TreeOutline.prototype.appendChild):
(TreeOutline.prototype.insertChild):
(TreeOutline.prototype.removeChildAtIndex):
(TreeOutline.prototype.removeChild):
(TreeElement.prototype.expandRecursively):
Fix linter issues.
2014-09-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix ESLint consistent-return warnings
https://bugs.webkit.org/show_bug.cgi?id=136682
Reviewed by Timothy Hatcher.
* .eslintrc:
* UserInterface/Controllers/BranchManager.js:
(WebInspector.BranchManager.prototype.createBranch):
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
* UserInterface/Views/BoxModelDetailsSectionRow.js:
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.showChild):
(WebInspector.DOMTreeElement.prototype._startEditingTarget):
(WebInspector.DOMTreeElement.prototype._startEditing):
* UserInterface/Views/EditingSupport.js:
* UserInterface/Views/EventListenerSectionGroup.js:
(WebInspector.EventListenerSectionGroup.prototype._nodeTextOrLink):
* UserInterface/Views/FrameContentView.js:
(WebInspector.FrameContentView.prototype._showContentViewForIdentifier):
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype.insertNavigationItem):
(WebInspector.NavigationBar.prototype.removeNavigationItem):
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole.prototype._insertExecutionContextPathComponentForFrame):
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.addSidebarPanel):
(WebInspector.Sidebar.prototype.removeSidebarPanel):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.addStyleClassToLine):
(WebInspector.TextEditor.prototype.removeStyleClassFromLine):
(WebInspector.TextEditor.prototype.toggleStyleClassForLine):
2014-09-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix ESLint no-undef warnings
https://bugs.webkit.org/show_bug.cgi?id=136660
Reviewed by Timothy Hatcher.
* UserInterface/Models/DOMSearchMatchObject.js:
(WebInspector.DOMSearchMatchObject.prototype._generateClassName):
(WebInspector.DOMSearchMatchObject.titleForDOMNode):
* UserInterface/Models/Gradient.js:
(WebInspector.Gradient.fromString):
* UserInterface/Views/CodeMirrorAdditions.js:
* UserInterface/Views/ReplayDashboardView.js:
(WebInspector.ReplayDashboardView):
2014-09-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused Console search highlight methods
https://bugs.webkit.org/show_bug.cgi?id=136661
Reviewed by Timothy Hatcher.
ESLint's no-undef warning complained about some undefined references
in these functions that would have thrown exceptions. Turns out this
code is unused, and we do highlighting in the console separately.
* UserInterface/Views/ConsoleCommand.js:
(WebInspector.ConsoleCommand.prototype.clearHighlight): Deleted.
(WebInspector.ConsoleCommand.prototype.highlightSearchResults): Deleted.
(WebInspector.ConsoleCommand.prototype.matchesRegex): Deleted.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype.clearHighlight): Deleted.
(WebInspector.ConsoleMessageImpl.prototype.highlightSearchResults): Deleted.
(WebInspector.ConsoleMessageImpl.prototype.matchesRegex): Deleted.
2014-09-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix ESLint* no-avoidable-bind warnings
https://bugs.webkit.org/show_bug.cgi?id=136690
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.LocalJSONObject.prototype._children):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
* UserInterface/Views/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel.prototype._updateDataGrid):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._filterMessages):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):
2014-09-09 Benjamin Poulain <bpoulain@apple.com>
Disable the "unreachable-code" warning
https://bugs.webkit.org/show_bug.cgi?id=136677
Reviewed by Darin Adler.
* Configurations/Base.xcconfig:
2014-09-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix ESLint no-trailing-spaces warnings
https://bugs.webkit.org/show_bug.cgi?id=136657
Reviewed by Andy Estes.
* .eslintrc:
* UserInterface/Base/DOMUtilities.js:
* UserInterface/Base/URLUtilities.js:
(relativePath):
* UserInterface/Base/Utilities.js:
* UserInterface/Controllers/CodeMirrorColorEditingController.js:
(WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
* UserInterface/Controllers/CodeMirrorDragToAdjustNumberController.js:
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.set enabled):
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanAdjustObjectAtPoint):
* UserInterface/Controllers/CodeMirrorEditingController.js:
(WebInspector.CodeMirrorEditingController.prototype.handleKeydownEvent):
* UserInterface/Controllers/CodeMirrorGradientEditingController.js:
(WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
* UserInterface/Controllers/DragToAdjustController.js:
(WebInspector.DragToAdjustController.prototype.set active):
(WebInspector.DragToAdjustController.prototype._setDragging):
(WebInspector.DragToAdjustController.prototype._setTracksMouseClickAndDrag):
* UserInterface/External/Esprima/esprima.js:
* UserInterface/Models/ApplicationCacheFrame.js:
(WebInspector.ApplicationCacheFrame):
* UserInterface/Models/ApplicationCacheManifest.js:
(WebInspector.ApplicationCacheManifest):
(WebInspector.ApplicationCacheManifest.prototype.get manifestURL):
* UserInterface/Models/CookieStorageObject.js:
* UserInterface/Models/DOMSearchMatchObject.js:
(WebInspector.DOMSearchMatchObject.prototype.get title):
(WebInspector.DOMSearchMatchObject.titleForDOMNode):
* UserInterface/Models/DatabaseObject.js:
(WebInspector.DatabaseObject.prototype.getTableNames):
* UserInterface/Models/DatabaseTableObject.js:
(WebInspector.DatabaseTableObject):
* UserInterface/Models/Gradient.js:
(WebInspector.Gradient.fromString):
(WebInspector.RadialGradient.prototype.toString):
* UserInterface/Models/IssueMessage.js:
(WebInspector.IssueMessage.prototype._formatTextIfNecessary):
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.getImageSize.imageDidLoad):
(WebInspector.Resource.prototype.getImageSize):
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype._makeSyntaxTree):
* UserInterface/Models/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype.hasDifferentDisplayLocation):
* UserInterface/Models/TextMarker.js:
* UserInterface/Protocol/PageObserver.js:
* UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
(WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.set applicationCacheFrame):
(WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.refresh):
(WebInspector.ApplicationCacheDetailsSidebarPanel.prototype._networkStateUpdated):
* UserInterface/Views/ApplicationCacheFrameTreeElement.js:
(WebInspector.ApplicationCacheFrameTreeElement):
* UserInterface/Views/ApplicationCacheManifestTreeElement.js:
(WebInspector.ApplicationCacheManifestTreeElement.prototype.get name):
(WebInspector.ApplicationCacheManifestTreeElement.prototype.get secondaryName):
* UserInterface/Views/ButtonNavigationItem.js:
(WebInspector.ButtonNavigationItem):
* UserInterface/Views/ColorPicker.js:
* UserInterface/Views/ColorWheel.js:
(WebInspector.ColorWheel.prototype._draw):
* UserInterface/Views/CompletionSuggestionsView.js:
(WebInspector.CompletionSuggestionsView.prototype.show):
* UserInterface/Views/ConsoleCommand.js:
* UserInterface/Views/ConsolePrompt.js:
* UserInterface/Views/ContentFlowTreeElement.js:
* UserInterface/Views/CookieStorageTreeElement.js:
(WebInspector.CookieStorageTreeElement):
* UserInterface/Views/EventListenerSectionGroup.js:
(WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
* UserInterface/Views/GeneralTreeElementPathComponent.js:
* UserInterface/Views/GoToLineDialog.js:
(WebInspector.GoToLineDialog.prototype._handleKeydownEvent):
* UserInterface/Views/LayerTreeDataGridNode.js:
(WebInspector.LayerTreeDataGridNode.prototype._makeNameCell):
* UserInterface/Views/LayerTreeSidebarPanel.js:
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._highlightRanges):
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar):
* UserInterface/Views/NavigationItem.js:
(WebInspector.NavigationItem):
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
* UserInterface/Views/ScopeBar.js:
* UserInterface/Views/ScopeBarItem.js:
(WebInspector.ScopeBarItem):
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.updateRangeTimes):
* UserInterface/Views/ScriptTreeElement.js:
(WebInspector.ScriptTreeElement):
* UserInterface/Views/SearchBar.js:
* UserInterface/Views/SearchResultTreeElement.js:
(WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
* UserInterface/Views/Slider.js:
2014-09-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix ESLint eqeqeq warnings
https://bugs.webkit.org/show_bug.cgi?id=136658
Reviewed by Andy Estes.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.mycallback):
(WebInspector.DOMTreeManager.prototype.searchResult):
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype.clearActions):
* UserInterface/Models/DOMTree.js:
(WebInspector.DOMTree.prototype._requestRootDOMNode.rootObjectAvailable):
(WebInspector.DOMTree.prototype._requestRootDOMNode.rootDOMNodeAvailable):
(WebInspector.DOMTree.prototype._requestRootDOMNode.dispatchCallbacks):
(WebInspector.DOMTree.prototype._requestRootDOMNode):
* UserInterface/Models/ProbeSet.js:
(WebInspector.ProbeSet.prototype.removeProbe):
* UserInterface/Models/ProbeSetDataTable.js:
(WebInspector.ProbeSetDataTable.prototype.addSampleForProbe):
* UserInterface/Views/CodeMirrorAdditions.js:
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype._filterCookies):
(WebInspector.cookieMatchesResourceURL):
* UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView.prototype._editingCallback):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype._updateChildren):
(WebInspector.DOMTreeElement.prototype._startEditingTarget):
(WebInspector.DOMTreeElement.prototype._textNodeEditingCommitted):
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._resizerDragging):
* UserInterface/Views/DatabaseContentView.js:
(WebInspector.DatabaseContentView.prototype._queryError):
* UserInterface/Views/DetailsSectionSimpleRow.js:
(.valueElementClicked):
(WebInspector.DetailsSectionSimpleRow):
* UserInterface/Views/Slider.js:
(WebInspector.Slider.prototype.get _maxX):
* UserInterface/Views/TreeOutline.js:
(TreeElement.prototype.expand):
2014-09-09 Jono Wells <jonowells@apple.com>
Web Inspector: Fix ESLint no-extra-semi
https://bugs.webkit.org/show_bug.cgi?id=136666
Reviewed by Andy Estes.
Add explicit no-extra-semi rule to .eslintrc. Remove all unnecessary
semicolons as identified by ESLint.
* .eslintrc:
* Tools/PrettyPrinting/Formatter.js:
(Formatter):
* UserInterface/Controllers/Formatter.js:
(Formatter):
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.getImageSize.imageDidLoad):
(WebInspector.Resource.prototype.getImageSize):
* UserInterface/Views/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid.comparator):
(WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid):
* UserInterface/Views/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.prototype.callback):
(WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
2014-09-09 Jono Wells <jonowells@apple.com>
Web Inspector: Fix ESLint semi (missing semicolon)
https://bugs.webkit.org/show_bug.cgi?id=136665
Reviewed by Andy Estes.
Add missing semicolons as identified by ESLint. Add explicit semi rule to .eslintrc.
* .eslintrc:
* Tools/PrettyPrinting/FormatterContentBuilder.js:
* Tools/PrettyPrinting/FormatterDebug.js:
(Formatter.prototype.debug):
* UserInterface/Base/DOMUtilities.js:
* UserInterface/Base/EventListener.js:
(WebInspector.EventListener):
(WebInspector.EventListener.prototype.this._callback):
(WebInspector.EventListener.prototype.connect):
* UserInterface/Base/Object.js:
(WebInspector.Object):
(WebInspector.Object.addConstructorFunctions):
(WebInspector.Event):
* UserInterface/Base/URLUtilities.js:
(WebInspector.displayNameForURL):
(WebInspector.displayNameForHost):
* UserInterface/Base/Utilities.js:
(.):
* UserInterface/Controllers/BranchManager.js:
(WebInspector.BranchManager):
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager):
* UserInterface/Controllers/CodeMirrorColorEditingController.js:
(WebInspector.CodeMirrorColorEditingController):
* UserInterface/Controllers/CodeMirrorEditingController.js:
(WebInspector.CodeMirrorEditingController):
* UserInterface/Controllers/CodeMirrorGradientEditingController.js:
(WebInspector.CodeMirrorGradientEditingController):
(WebInspector.CodeMirrorGradientEditingController.prototype.popoverDidPresent):
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
* UserInterface/Controllers/FormatterContentBuilder.js:
* UserInterface/Controllers/FormatterSourceMap.js:
(WebInspector.FormatterSourceMap.fromBuilder):
* UserInterface/Controllers/IssueManager.js:
(WebInspector.IssueManager):
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager):
* UserInterface/Models/BreakpointAction.js:
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions):
(WebInspector.CSSCompletions.requestCSSNameCompletions):
* UserInterface/Models/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
(WebInspector.CSSKeywordCompletions.isColorAwareProperty):
* UserInterface/Models/CSSStyleSheet.js:
(WebInspector.CSSStyleSheet.resetUniqueDisplayNameNumbers):
* UserInterface/Models/Color.js:
(WebInspector.Color):
(WebInspector.Color.fromString):
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode):
* UserInterface/Models/DOMSearchMatchObject.js:
(WebInspector.DOMSearchMatchObject.titleForDOMNode):
* UserInterface/Models/ExecutionContext.js:
(WebInspector.ExecutionContext.supported):
* UserInterface/Models/Gradient.js:
(WebInspector.LinearGradient):
(WebInspector.LinearGradient.linearGradientWithComponents):
(WebInspector.RadialGradient):
(WebInspector.RadialGradient.radialGradientWithComponents):
* UserInterface/Models/IssueMessage.js:
(WebInspector.IssueMessage):
* UserInterface/Models/ReplaySessionSegment.js:
(WebInspector.IncompleteSessionSegment):
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.associateWithScript):
* UserInterface/Models/Script.js:
(WebInspector.Script.resetUniqueDisplayNameNumbers):
* UserInterface/Models/Setting.js:
(WebInspector.Setting):
* UserInterface/Models/SourceCodePosition.js:
(WebInspector.SourceCodePosition):
* UserInterface/Models/SourceMap.js:
(WebInspector.SourceMap):
(WebInspector.SourceMap.StringCharIterator):
* UserInterface/Models/TextMarker.js:
(WebInspector.TextMarker):
* UserInterface/Models/TextRange.js:
(WebInspector.TextRange):
* UserInterface/Protocol/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub):
* UserInterface/Protocol/MessageDispatcher.js:
(WebInspector.dispatchNextQueuedMessageFromBackend):
(WebInspector.dispatchMessageFromBackend):
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromLocalObject):
(WebInspector.RemoteObject.resolveNode):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.type):
(WebInspector.RemoteObjectProperty):
(WebInspector.RemoteObjectProperty.fromPrimitiveValue):
(WebInspector.LocalJSONObject):
* UserInterface/Protocol/ReplayObserver.js:
(WebInspector.ReplayPosition.fromProtocol):
* UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.displayStringForType):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.if):
* UserInterface/Views/ClusterContentView.js:
(WebInspector.ClusterContentView.prototype.goBack):
(WebInspector.ClusterContentView.prototype.goForward):
* UserInterface/Views/CodeMirrorAdditions.js:
* UserInterface/Views/ColorWheel.js:
(WebInspector.ColorWheel):
* UserInterface/Views/ConsoleMessage.js:
(WebInspector.ConsoleMessage):
(WebInspector.ConsoleMessage.create):
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl):
* UserInterface/Views/ContextMenu.js:
(WebInspector.ContextMenuItem):
(WebInspector.ContextSubMenuItem):
(WebInspector.ContextMenu):
(WebInspector.ContextMenu.Provider):
(WebInspector.ContextMenu.registerProvider):
(WebInspector.contextMenuItemSelected):
(WebInspector.contextMenuCleared):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement):
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
* UserInterface/Views/DOMTreeUpdater.js:
(WebInspector.DOMTreeUpdater):
* UserInterface/Views/DatabaseContentView.js:
(WebInspector.DatabaseContentView):
* UserInterface/Views/EditingSupport.js:
(WebInspector.isBeingEdited):
(WebInspector.markBeingEdited):
(WebInspector.isEditingAnyField):
(WebInspector.isEventTargetAnEditableField):
(WebInspector.EditingConfig):
(WebInspector.startEditing):
* UserInterface/Views/EventListenerSection.js:
(WebInspector.EventListenerSection):
* UserInterface/Views/EventListenerSectionGroup.js:
(WebInspector.EventListenerSectionGroup):
* UserInterface/Views/FindBanner.js:
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement):
* UserInterface/Views/GoToLineDialog.js:
(WebInspector.GoToLineDialog):
* UserInterface/Views/IndeterminateProgressSpinner.js:
(WebInspector.IndeterminateProgressSpinner):
* UserInterface/Views/LayoutTimelineDataGrid.js:
(WebInspector.LayoutTimelineDataGrid):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
* UserInterface/Views/NavigationItem.js:
* UserInterface/Views/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection):
(WebInspector.ObjectPropertiesSection.CompareProperties):
(WebInspector.ObjectPropertyTreeElement):
* UserInterface/Views/ProbeSetDetailsSection.js:
* UserInterface/Views/PropertiesSection.js:
(WebInspector.PropertiesSection):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.compareResourceTreeElements):
(WebInspector.ResourceTreeElement.compareFolderAndResourceTreeElements):
* UserInterface/Views/ScriptTimelineDataGrid.js:
(WebInspector.ScriptTimelineDataGrid):
* UserInterface/Views/SearchResultTreeElement.js:
(WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.get allowsClippedLabels):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
* UserInterface/Views/Toolbar.js:
* UserInterface/Views/TreeOutline.js:
(TreeOutline.prototype.appendChild):
(TreeOutline.prototype.insertChild):
(TreeOutline.prototype.removeChildAtIndex):
(TreeOutline.prototype.removeChild):
(TreeOutline.prototype.removeChildren):
(TreeOutline.prototype.removeChildrenRecursive):
(TreeOutline.prototype._rememberTreeElement):
(TreeOutline.prototype._forgetTreeElement):
(TreeOutline.prototype._forgetChildrenRecursive):
(TreeOutline.prototype.getCachedTreeElement):
(TreeOutline.prototype.findTreeElement):
(TreeOutline.prototype._treeElementDidChange):
(TreeOutline.prototype.treeElementFromPoint):
(TreeOutline.prototype._treeKeyDown):
(TreeOutline.prototype.expand):
(TreeOutline.prototype.collapse):
(TreeOutline.prototype.revealed):
(TreeOutline.prototype.reveal):
(TreeOutline.prototype.select):
(TreeOutline.prototype.revealAndSelect):
(TreeElement.prototype._attach):
(TreeElement.prototype._detach):
(TreeElement.treeElementMouseDown):
(TreeElement.treeElementToggled):
(TreeElement.treeElementDoubleClicked):
(TreeElement.prototype.collapse):
(TreeElement.prototype.collapseRecursively):
(TreeElement.prototype.expand):
(TreeElement.prototype.expandRecursively):
(TreeElement.prototype.hasAncestor):
(TreeElement.prototype.reveal):
(TreeElement.prototype.revealed):
(TreeElement.prototype.selectOnMouseDown):
(TreeElement.prototype.select):
(TreeElement.prototype.revealAndSelect):
(TreeElement.prototype.deselect):
(TreeElement.prototype.onpopulate):
(TreeElement.prototype.traverseNextTreeElement):
(TreeElement.prototype.traversePreviousTreeElement):
(TreeElement.prototype.isEventWithinDisclosureTriangle):
* UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
(WebInspector.TreeOutlineDataGridSynchronizer):
2014-09-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inspector frequently restores wrong view when opened (often Timelines instead of Resource)
https://bugs.webkit.org/show_bug.cgi?id=135965
Reviewed by Timothy Hatcher.
There were numerous subtle race conditions in state restoration.
This patch intends to fix a number of them to get what feels
like sane behavior for selected sidebar state restoration.
1. Starting a Timeline recording no longer automatically switches to the TimelineContentView.
This was making every reload switch to Timelines. If you had
a resource selected (e.g. the DOM Tree) we should go back
to showing the DOM tree.
2. Background sidebars should not reveal and select tree elements.
This was making resources get selected in Timelines when reloading the page
because the background Resources sidebar was restoring selection of the resource.
That is an unexpected selection and breaks the experience of Timelines.
3. ContentView changes during page navigation / reload should not be saved, and improve Resource restoration.
If a TimelineContentView was in the ContentBrowser back/forward history,
a reload with a resource selected in the Resources sidebar would end up
showing the Timelines sidebar. This was because when ContentViews are
closed during the navigation, the ContentBrowser would fall back to the
remaining TimelineContentView and switch to its only allowed sidebar
(Timelines). ResourceSidebarPanel, knowing a resource was selected,
would select the MainFrame intending to stay in the Resource sidebar,
but the resource is okay with showing in any sidebar, so we stay on Timelines.
4. Resource sidebar state restoration should propertly restore selection.
On reload, state restoration would know the resource to re-select in the
Resources sidebar. As ResourceTreeElements are added to the sidebar
they are checked against the state restoration cookie. If they match,
they would select the element and delete the cookie. Unfortunately,
if this was the first TreeElement child being added to a FrameTreeElement,
the FrameTreeElement onpopulate would remove all children and re-add
them in a unique way. Unfortunately this means the TreeElement we
selected based on the cookie, immediately got thrown away and recreated,
and we no longer reveal and select it. This is a special case for
FrameTreeElements which use the onpopulate SPI. So, instead of starting
processing the new element queue, if this is the first time just trigger
the onpopulate and elements are made just once.
5. Show Error Console triggering early, could have unexpected sidebar behavior.
Opening Web Inspector directly to the console can run before
WebInspector.contentLoaded (DOMContentLoaded). So in that case
WebInspector.showFullHeightConsole was not handling if the contentBrowser
had no content view yet, and the sidebar might be-reopened later on
in contentLoaded based on the setting value.
6. Improve automatic resource selection for sidebars with multiple tree outlines.
Selecting a call frame tree element was unexpectedly changing the
selection to a Resource where the breakpoint was set. This was
because we were only looking at one of potentially many content
tree outlines in the sidebar to see if there was a user action.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.showFullHeightConsole):
(WebInspector.toggleConsoleView):
(WebInspector._mainResourceDidChange):
(WebInspector._provisionalLoadStarted):
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
(WebInspector._updateCookieForInspectorViewState):
(WebInspector._contentBrowserCurrentContentViewDidChange):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._recordingLoaded):
2014-09-08 Matt Baker <mattbaker@apple.com>
Web Inspector: Add layout test for lowercase CSSProperty names
https://bugs.webkit.org/show_bug.cgi?id=135961
Reviewed by Joseph Pecoraro.
Modified test components to support testing CSSStyleManager and related classes:
- Added required models to Test.html
- Added CSSCompletions initialization to Test.js
- CSSCompletions doesn't assume presence of CodeMirror.
* UserInterface/Base/Test.js:
(WebInspector.loaded):
* UserInterface/Models/CSSCompletions.js:
* UserInterface/Test.html:
2014-09-08 Matt Baker <mattbaker@apple.com>
Web Inspector: Fixes to layout test infrastructure
https://bugs.webkit.org/show_bug.cgi?id=136360
Reviewed by Joseph Pecoraro.
Added missing includes to Test.html, which was breaking tests that
depended on SourceCodeLocation and LazySourceCodeLocation. Also fixed
bug which prevented test results from being resent after reloading the
page under test.
* UserInterface/Base/Test.js:
(InspectorTest.reloadPage):
* UserInterface/Test.html:
2014-09-07 Timothy Hatcher <timothy@apple.com>
Use a <circle> instead of a <path> in DownloadArrow.svg.
https://bugs.webkit.org/show_bug.cgi?id=136608
Reviewed by Antoine Quint.
* UserInterface/Images/DownloadArrow.svg:
* UserInterface/Views/TreeElementStatusButton.css:
(.item > .status > .status-button > svg .filled):
(body.mac-platform.legacy .item > .status > .status-button > svg .filled):
(:focus .item.selected > .status > .status-button > svg .filled):
(.item > .status > .status-button > svg .stroked):
(body.mac-platform.legacy .item > .status > .status-button > svg .stroked):
(:focus .item.selected > .status > .status-button > svg .stroked):
Tweak CSS selectors to apply to other shapes, not just path.
2014-09-06 Darin Adler <darin@apple.com>
Make updates suggested by new version of Xcode
https://bugs.webkit.org/show_bug.cgi?id=136603
Reviewed by Mark Rowe.
* Configurations/Base.xcconfig: Added CLANG_WARN_BOOL_CONVERSION, CLANG_WARN_CONSTANT_CONVERSION,
CLANG_WARN_EMPTY_BODY, CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION,
CLANG_WARN_UNREACHABLE_CODE, CLANG_WARN__DUPLICATE_METHOD_MATCH, ENABLE_STRICT_OBJC_MSGSEND,
GCC_WARN_UNDECLARED_SELECTOR, and GCC_WARN_UNUSED_FUNCTION as suggested by Xcode update check.
Also removed duplicate GCC_WARN_UNUSED_VARIABLE line.
* WebInspectorUI.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
2014-09-02 Brian J. Burg <burg@cs.washington.edu>
LegacyProfiler: remove redundant ProfileNode members and other cleanup
https://bugs.webkit.org/show_bug.cgi?id=136380
Reviewed by Timothy Hatcher.
Remove unused Profile.idleTime member.
* UserInterface/Models/Profile.js:
(WebInspector.Profile.prototype.get idleTime): Deleted.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
2014-09-02 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: remove ProfilerAgent and legacy profiler files in the frontend
https://bugs.webkit.org/show_bug.cgi?id=136462
Reviewed by Timothy Hatcher.
The legacy profiler manager didn't do anything, and its views and models
have been superseded by new views and models based on the Timeline classes.
* .eslintrc:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.openURL): Remove profile URL handling code.
* UserInterface/Controllers/LegacyProfileManager.js: Removed.
* UserInterface/Main.html:
* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.isProfilingJavaScript): Deleted.
(InspectorFrontendAPI.startProfilingJavaScript): Deleted.
(InspectorFrontendAPI.stopProfilingJavaScript): Deleted.
* UserInterface/Protocol/LegacyProfilerObserver.js: Removed.
* UserInterface/Views/LegacyBottomUpProfileDataGridTree.js: Removed.
* UserInterface/Views/LegacyJavaScriptProfileObject.js: Removed.
* UserInterface/Views/LegacyJavaScriptProfileType.js: Removed.
* UserInterface/Views/LegacyJavaScriptProfileView.css: Removed.
* UserInterface/Views/LegacyJavaScriptProfileView.js: Removed.
* UserInterface/Views/LegacyProfileDataGridTree.js: Removed.
* UserInterface/Views/LegacyProfileObject.js: Removed.
* UserInterface/Views/LegacyProfileType.js: Removed.
* UserInterface/Views/LegacyProfileView.css: Removed.
* UserInterface/Views/LegacyProfileView.js: Removed.
* UserInterface/Views/LegacyTopDownProfileDataGridTree.js: Removed.
2014-08-29 Saam Barati <saambarati1@gmail.com>
Web Inspector: Create a UI for displaying JavaScript type information
https://bugs.webkit.org/show_bug.cgi?id=135142
Reviewed by Joseph Pecoraro.
JavaScriptCore now has a type profiler. This patch provides a frontend
user interface for displaying this type information in the Web Inspector.
The user interface works by placing inline "type tokens" next to important
JavaScript expressions: function arguments, function return types, and
variable declarations. Type information can also be seen for almost every
JavaScipt expression just by hovering over it while viewing a JavaScript file.
Currently, turning on the type profiler is expensive, so the inspector
ensures to never turn on type profiling until the user specifically asks
for type information to be turned on.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._startTracking):
(WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
Added a new type profiling mode.
* UserInterface/Controllers/FormatterSourceMap.js:
(WebInspector.FormatterSourceMap.prototype.originalToFormatted):
(WebInspector.FormatterSourceMap.prototype.originalPositionToFormatted):
(WebInspector.FormatterSourceMap.prototype.formattedToOriginal):
(WebInspector.FormatterSourceMap.prototype.formattedToOriginalOffset):
* UserInterface/Controllers/TypeTokenAnnotator.js: Added.
(WebInspector.TypeTokenAnnotator):
(WebInspector.TypeTokenAnnotator.prototype.get isActive):
(WebInspector.TypeTokenAnnotator.prototype.get sourceCodeTextEditor):
(WebInspector.TypeTokenAnnotator.prototype.pause):
(WebInspector.TypeTokenAnnotator.prototype.resume):
(WebInspector.TypeTokenAnnotator.prototype.refresh):
(WebInspector.TypeTokenAnnotator.prototype.reset):
(WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations):
(WebInspector.TypeTokenAnnotator.prototype._insertAnnotations.):
(WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
(WebInspector.TypeTokenAnnotator.prototype._insertToken):
(WebInspector.TypeTokenAnnotator.prototype.isLineTerminator):
(WebInspector.TypeTokenAnnotator.prototype._translateToOffsetAfterFunctionParameterList):
(WebInspector.TypeTokenAnnotator.prototype._clearTimeoutIfNeeded):
This class is responsible for producing the inline "type token" annotations.
* UserInterface/Images/NavigationItemTypes.svg: Added.
* UserInterface/Main.html:
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype.get scriptSyntaxTree):
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
(WebInspector.ScriptSyntaxTree.prototype.):
(WebInspector.ScriptSyntaxTree.prototype.updateTypes):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView):
(WebInspector.ScriptContentView.prototype.get navigationItems):
(WebInspector.ScriptContentView.prototype._contentDidPopulate):
(WebInspector.ScriptContentView.prototype._toggleTypeAnnotations):
(WebInspector.ScriptContentView.prototype._showJavaScriptTypeInformationSettingChanged):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.shown):
(WebInspector.SourceCodeTextEditor.prototype.hidden):
(WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.showPopoverForTypes):
(WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
(WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
(WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation.handler):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
(WebInspector.SourceCodeTextEditor.prototype._showPopover):
(WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._enableScrollEventsForTypeTokenAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._disableScrollEventsForTypeTokenAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView.prototype.get navigationItems):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.set formatted):
(WebInspector.TextEditor.prototype.canShowTypeAnnotations):
(WebInspector.TextEditor.prototype.visibleRangeOffsets):
(WebInspector.TextEditor.prototype.originalOffsetToCurrentPosition):
(WebInspector.TextEditor.prototype.currentOffsetToCurrentPosition):
(WebInspector.TextEditor.prototype.currentPositionToOriginalOffset):
(WebInspector.TextEditor.prototype.currentPositionToCurrentOffset):
(WebInspector.TextEditor.prototype.setInlineWidget):
(WebInspector.TextEditor.prototype.addScrollHandler):
(WebInspector.TextEditor.prototype.removeScrollHandler):
(WebInspector.TextEditor.prototype._scrollIntoViewCentered):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
(WebInspector.TextResourceContentView.prototype.get navigationItems):
(WebInspector.TextResourceContentView.prototype._contentDidPopulate):
(WebInspector.TextResourceContentView.prototype._toggleTypeAnnotations):
(WebInspector.TextResourceContentView.prototype._showJavaScriptTypeInformationSettingChanged):
* UserInterface/Views/TypePropertiesSection.js: Added.
(WebInspector.TypePropertiesSection):
(WebInspector.TypePropertiesSection.prototype.onpopulate):
(WebInspector.TypePropertiesSection.PropertyComparator):
(WebInspector.TypePropertyTreeElement):
(WebInspector.TypePropertyTreeElement.prototype.onpopulate):
* UserInterface/Views/TypeTokenView.css: Added.
(.type-token):
(.type-token-left-spacing):
(.type-token-right-spacing):
(.type-token-function, .type-token-boolean):
(.type-token-number):
(.type-token-string):
(.type-token-default):
(.type-token-empty):
(.type-token-many):
* UserInterface/Views/TypeTokenView.js: Added.
(WebInspector.TypeTokenView):
(WebInspector.TypeTokenView.titleForPopover):
(WebInspector.TypeTokenView.prototype.update):
(WebInspector.TypeTokenView.prototype._setUpMouseoverHandlers):
(WebInspector.TypeTokenView.prototype._shouldShowPopover):
The inline "type token" view.
2014-08-29 Saam Barati <sbarati@apple.com>
Web Inspector: Fix how Popover animates
https://bugs.webkit.org/show_bug.cgi?id=136353
Reviewed by Timothy Hatcher.
Popovers currently don't animate properly because they use
window.requestAnimationFrame which won't fire its callback
while the inspector is paused in the debugger. This patches
switches the callback mechanism to setTimeout and also changes
how a Popover's anchor animates to prevent visual glitches.
Popover also has a new function that allows a new target
frame and new content to be set simultaneously and to
animate to show the new content while changing the
location of the popover frame.
SourceCodeTextEditor uses Popover's new API for animating
between popovers when paused in the debugger. SourceCodeTextEditor
also now ensures proper balancing of popover tracking event
listeners.
* UserInterface/Views/Popover.js:
(WebInspector.Popover.prototype.present):
(WebInspector.Popover.prototype.presentNewContentWithFrame):
(WebInspector.Popover.prototype.dismiss):
(WebInspector.Popover.prototype._update):
(WebInspector.Popover.prototype.drawBackground):
(WebInspector.Popover.prototype._animateFrame):
(WebInspector.Popover.prototype._drawFrame):
(WebInspector.Popover.prototype._addListenersIfNeeded):
(WebInspector.Popover.prototype._animateFrame.drawBackground): Deleted.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopover):
(WebInspector.SourceCodeTextEditor.prototype._dismissPopover):
(WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
2014-08-28 Saam Barati <sbarati@apple.com>
Web Inspector: Write tests for ScriptSyntaxTree and fix bugs in the data structure
https://bugs.webkit.org/show_bug.cgi?id=136272
Reviewed by Joseph Pecoraro.
Include the necessary files in Test.html to test ScriptSyntaxTree.
Also, ScriptSyntaxTree had a couple of errors for two of its nodes
where they simply ignored one of the properties on the node.
These errors were found while writing the tests and are fixed
in this patch.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
* UserInterface/Test.html:
2014-08-27 Saam Barati <sbarati@apple.com>
Web Inspector: Layout issues for popover on not legacy OS
https://bugs.webkit.org/show_bug.cgi?id=136268
Reviewed by Joseph Pecoraro.
On the latest OS, popovers invade the title bar's space which will
cause layout issues because the title bar will render above
the popover. Fix this by providing some padding for popovers on
not legacy OSs.
* UserInterface/Views/Popover.js:
2014-08-27 Timothy Hatcher <timothy@apple.com>
REGRESSION: Web Inspector: Legacy toolbar has two different colors in unfocused windowed mode
https://bugs.webkit.org/show_bug.cgi?id=136289
Reviewed by Darin Adler.
* UserInterface/Views/Toolbar.css:
(body.mac-platform.legacy .toolbar): Override the background-color as transparent. Non-legacy
uses a solid color instead of a gradient for window-inactive.
2014-08-26 Saam Barati <sbarati@apple.com>
Web Inspector: Fix CodeMirrorTokenTrackingController::_startTracking assertion
https://bugs.webkit.org/show_bug.cgi?id=136160
Reviewed by Joseph Pecoraro.
Check if '_tracking' is already true before calling '_startTracking'
to prevent the assertion from always firing.
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._mouseEntered):
2014-08-25 Brent Fulgham <bfulgham@apple.com>
[Win] Pass OFFICIAL_BUILD flag to WebInspectorUI build process
https://bugs.webkit.org/show_bug.cgi?id=136229
Reviewed by Dean Jackson.
* WebInspectorUI.vcxproj/WebInspectorUI.make: Pass OFFICIAL_BUILD
flag to build-webinspectorui.pl.
* WebInspectorUI.vcxproj/build-webinspectorui.pl: Accept and use
the OFFICIAL_BUILD flag.
2014-08-24 Benjamin Poulain <benjamin@webkit.org>
The inspector should not use the "after" pseudo element with the compatibility syntax
https://bugs.webkit.org/show_bug.cgi?id=136204
Reviewed by Darin Adler.
We should only use hte proper pseudo element syntax inside WebKit.
* Tools/PrettyPrinting/codemirror-additions.css:
* Tools/PrettyPrinting/populate/apple.css:
2014-08-24 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: Rename DOM.RGBA and remove workarounds in the bindings generator
https://bugs.webkit.org/show_bug.cgi?id=136025
Reviewed by Joseph Pecoraro.
Also rename DOM.RGBA in legacy protocol specifications.
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:
2014-08-21 Simon Fraser <simon.fraser@apple.com>
Add a button to enable paint flashing in the web inspector
https://bugs.webkit.org/show_bug.cgi?id=136133
Reviewed by Tim Hatcher.
Add a button to the right of the layer borders button to turn on paint flashing.
Future patches will actually enable this feature.
* Localizations/en.lproj/localizedStrings.js: Tooltip strings.
* UserInterface/Images/PaintFlashing.svg: Added. "Paintbrush" icon.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype.get navigationItems):
(WebInspector.DOMTreeContentView.prototype._togglePaintFlashing):
2014-08-20 Saam Barati <sbarati@apple.com>
Rename HighFidelityTypeProfiling variables for more clarity
https://bugs.webkit.org/show_bug.cgi?id=135899
Reviewed by Geoffrey Garen.
Change a reference in a comment to a JavaScriptCore file to its
newly renamed variant.
* UserInterface/Models/ScriptSyntaxTree.js:
2014-08-18 Saam Barati <sbarati@apple.com>
Web Inspector: Introduce an inspector Abstract Syntax Tree.
https://bugs.webkit.org/show_bug.cgi?id=135763
Reviewed by Joseph Pecoraro.
This patch adds an Abstract Syntax Tree to the Web inspector.
This syntax tree is modeled off the Esprima.js syntax tree
which complies with the Mozilla Parser API:
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API
Script is the owner of the Web Inspector syntax tree, and has an API
for accessing its syntax tree property.
* UserInterface/External/Esprima/esprima.js:
* UserInterface/Main.html:
* UserInterface/Models/Script.js:
(WebInspector.Script):
(WebInspector.Script.prototype.requestScriptSyntaxTree.makeSyntaxTreeAndCallCallback):
(WebInspector.Script.prototype._resolveResource):
(WebInspector.Script.prototype._makeSyntaxTree):
* UserInterface/Models/ScriptSyntaxTree.js: Added.
(WebInspector.ScriptSyntaxTree):
(WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
(WebInspector.ScriptSyntaxTree.prototype.forEachNode):
(WebInspector.ScriptSyntaxTree.prototype.):
(WebInspector.ScriptSyntaxTree.prototype.filter):
(WebInspector.ScriptSyntaxTree.prototype.filterForNodesInRange):
(WebInspector.ScriptSyntaxTree.prototype.filterByRange):
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
(WebInspector.ScriptSyntaxTree.prototype.updateTypes):
(WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._recurseArray):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
2014-08-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve performance of selection range changes viewing Scripts timeline
https://bugs.webkit.org/show_bug.cgi?id=136015
Reviewed by Timothy Hatcher.
* UserInterface/Base/Utilities.js:
(clamp):
Helper function to clamp a value between a min and max.
* UserInterface/Models/ProfileNode.js:
(WebInspector.ProfileNode.prototype.get startTime):
(WebInspector.ProfileNode.prototype.get endTime):
These can be quickly calculated, so avoid full calculation to grab the values.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.updateLayout):
Update ranges with a smart helper, instead of blindly doing it and needing refresh.
* UserInterface/Views/ProfileNodeDataGridNode.js:
(WebInspector.ProfileNodeDataGridNode.prototype.get rangeEndTime):
(WebInspector.ProfileNodeDataGridNode.prototype.get data):
(WebInspector.ProfileNodeDataGridNode.prototype.updateRangeTimes):
(WebInspector.ProfileNodeDataGridNode.prototype.set rangeStartTime): Deleted.
(WebInspector.ProfileNodeDataGridNode.prototype.set rangeEndTime): Deleted.
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.updateRangeTimes):
(WebInspector.ScriptTimelineDataGridNode.prototype.set rangeStartTime): Deleted.
(WebInspector.ScriptTimelineDataGridNode.prototype.set rangeEndTime): Deleted.
When updating the range selection, compare to the last range selection
on this DataGridNode. If the visible portion of this node's time range
changes, we need a refresh. Otherwise, we don't need a refresh.
2014-08-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update Scripts/update-LegacyInspectorBackendCommands.rb for the new generator
https://bugs.webkit.org/show_bug.cgi?id=136006
Reviewed by Timothy Hatcher.
* Scripts/update-LegacyInspectorBackendCommands.rb:
Use the new generator and pass the appropriate flags.
* UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
Newly generated files using the new generator.
* Versions/Inspector-iOS-6.0.json:
Remove unsupported features.
2014-08-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove forced layouts during recording caused by striped background element resizing
https://bugs.webkit.org/show_bug.cgi?id=136009
Reviewed by Timothy Hatcher.
We used to manually resize and a custom striped background behind
the timeline tree outline content area. This can happen frequently
during timeline recordings causing forced layouts. We can eliminate
the hack and instead put the stripe background on the tree outline.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.updateCustomContentOverflow): Deleted.
* UserInterface/Views/TimelineSidebarPanel.css:
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .content .item > .status > .status-button):
(.sidebar > .panel.navigation.timeline > .content > .stripe-background): Deleted.
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content > .stripe-background): Deleted.
Eliminate the striped background element.
* UserInterface/Views/TimelineView.css:
(.panel.navigation.timeline > .content > .navigation-sidebar-panel-content-tree-outline):
(.panel.navigation.timeline.timeline-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
Give the timeline content tree outlines the striped background.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype.updateCustomContentOverflow): Deleted.
Remove the now unused updateCustomContentOverflow method.
2014-08-15 Jono Wells <jonowells@apple.com>
Web Inspector: Inspect Element doesn't always highlight the correct element when inspector is closed before inspecting
https://bugs.webkit.org/show_bug.cgi?id=135995
Reviewed by Joseph Pecoraro.
Change so if an element is inspected via the Inspect Element context menu, selected
node restoration is disallowed until the main resource in the main frame changes.
This way an attempt by a sub-frame will not change the highlighted element in the
Main Frame's DOM tree unexpectedly.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager):
(WebInspector.DOMTreeManager.prototype._mainResourceDidChange):
(WebInspector.DOMTreeManager.prototype.inspectElement):
2014-08-15 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: rewrite CodeGeneratorInspector to be modular and testable
https://bugs.webkit.org/show_bug.cgi?id=131596
Reviewed by Joseph Pecoraro.
Also apply type extraction refactorings to old protocol versions for consistency.
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:
2014-08-15 Timothy Hatcher <timothy@apple.com>
Web Inspector: Probe details sidebar data grids do not show data
https://bugs.webkit.org/show_bug.cgi?id=135992
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ProbeSetDataGrid.js:
(WebInspector.ProbeSetDataGrid): Make the DataGrid be inline to show the data correctly.
2014-08-15 Timothy Hatcher <timothy@apple.com>
Web Inspector: Legacy Mac toolbar appearance looks wrong
https://bugs.webkit.org/show_bug.cgi?id=135962
Reviewed by Joseph Pecoraro.
* UserInterface/Views/Toolbar.css:
(body.mac-platform.legacy .toolbar): Don't draw a gradient background when not docked.
Move border-bottom-color from body.mac-platform.legacy.docked .toolbar to here so it
applies all the time as it should have.
2014-08-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Dragging Undocked inspector by window title has broken behavior
https://bugs.webkit.org/show_bug.cgi?id=135950
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
On Mac ports where we the inspector content goes everywhere, window dragging behavior
still exists for the top 22px of the window. So don't do our JavaScript based window
dragging for this special region.
* UserInterface/Models/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut.Modifier.get CommandOrControl):
(WebInspector.KeyboardShortcut.prototype.get displayName):
Instead of calling a host function, use the value already in the frontend.
2014-08-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Split console toggle button wrong - Images/Images/SplitToggleUp.svg does not exist
https://bugs.webkit.org/show_bug.cgi?id=135957
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
Wrong image path passed to platformImagePath.
2014-08-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Avoid re-binding the same function over and over
https://bugs.webkit.org/show_bug.cgi?id=135949
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._startAutoCapturing):
(WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
Stash a bound copy of the function once, and reuse it.
2014-08-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timelines can get caught in requestAnimationFrame loop when not recording
https://bugs.webkit.org/show_bug.cgi?id=135946
Reviewed by Timothy Hatcher.
Each TimelineContentView was listening for the TimelineManager's start/stop
capturing events. However, only the active recording could possibly update.
Likewise, if a pre-existing recording started and stopped we did not properly
stop in the case where we were waiting for an event to update the current time,
which would result in an infinite rAF loop of no updates.
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.unloaded):
When a timeline recording is unloaded trigger an event.
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
Assert we were not already waiting.
(WebInspector.TimelineContentView.prototype._stopUpdatingCurrentTime):
Properly handle the case of starting/stoping an already existing recording
without a new event coming in.
(WebInspector.TimelineContentView.prototype._recordingTimesUpdated):
(WebInspector.TimelineContentView.prototype._recordingReset):
Convert to a boolean instead of deleting state.
(WebInspector.TimelineContentView.prototype._recordingUnloaded):
Stop listening to timeline manager events that no longer affect unloaded recordings.
2014-08-13 Jono Wells <jonowells@apple.com>
Web Inspector: eslint configuration should be stored as .eslintrc
https://bugs.webkit.org/show_bug.cgi?id=135916
.eslintrc file added to allow for ESLint solutions, within editors and otherwise,
to be automatically configured based on the WebKit JavaScript coding style. The
initial file is incomplete.
Reviewed by Joseph Pecoraro.
* .eslintrc: Added.
* External/.eslintrc: Added.
2014-08-13 Timothy Hatcher <timothy@apple.com>
Web Inspector: Missing semicolon after console.assert in TimelineSidebarPanel.js
https://bugs.webkit.org/show_bug.cgi?id=135917
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TimelineSidebarPanel.js:
2014-08-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inline DataGrid inside details sidebar has double thick top border with legacy styles
https://bugs.webkit.org/show_bug.cgi?id=135894
Reviewed by Timothy Hatcher.
* UserInterface/Views/DetailsSection.css:
(body.mac-platform.legacy .details-section:not(.collapsed) .data-grid.inline):
In legacy styles the details-section header always has a 1px bottom border.
In all styles, an inline data grid had a 1px border everywhere. So, handle
this specific case by removing the top border of an inline data grid
that is inside an expanded details section.
2014-08-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: "No Filter Results" view only shows once, does not show again
https://bugs.webkit.org/show_bug.cgi?id=135892
Reviewed by Timothy Hatcher.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
We were checking at the wrong level for a parent. Check if the root
placeholder element has a parent or not.
2014-08-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Incorrect border colors in event listeners sections in details sidebar
https://bugs.webkit.org/show_bug.cgi?id=135891
Reviewed by Timothy Hatcher.
* UserInterface/Views/DetailsSection.css:
(.details-section .details-section > .header):
(.details-section .details-section:not(.collapsed) > .header):
Remove box-shadow and replace with a bottom border.
(body.mac-platform.legacy .details-section .details-section.collapsed > .header):
(.details-section .details-section.collaspsed > .header): Deleted.
Collapsed was spelled incorrectly so this was not applying properly before.
But correct this for legacy because legacy still uses a box-shadow.
2014-08-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline Close buttons can use polish for new and legacy styles
https://bugs.webkit.org/show_bug.cgi?id=135870
Reviewed by Timothy Hatcher.
* UserInterface/Images/Legacy/Close.svg:
Ensure this has fill colors in tree selections.
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content .close-button):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .content .item > .status > .status-button):
Size the close-button for the top overviews differently in new styles (14x14) and legacy (12x12).
2014-08-13 Timothy Hatcher <timothy@apple.com>
Web Inspector: Workaround a NSWindow change to the title bar.
https://bugs.webkit.org/show_bug.cgi?id=135880
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector._updateToolbarHeight): Don't call in legacy mode.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
(.toolbar .dashboard):
Drive-by fix some errant drop-shadows. The transparent border was pushing the inset top
drop shadow down when it shouldn't. Remove duplicate background and shadow.
* UserInterface/Views/Main.css:
(body): Set the background white, never needs to be transparent now.
(body.mac-platform.legacy:not(.docked)): Set background to transparent when not docked in legacy.
(body.docked.bottom): Update border color.
(body.docked.right): Ditto.
(body.docked.bottom.mac-platform.legacy): Keep old border color.
(body.docked.right.mac-platform.legacy): Ditto.
* UserInterface/Views/Toolbar.css:
(.toolbar): Set a default border and background gradient.
(body.window-inactive .toolbar): No gradient but use a solid color when inactive.
(body.mac-platform:not(.legacy):not(.docked) .toolbar): Padding on the top for the title bar.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical): Account for title bar height.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical.small-size): Ditto.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only): Ditto.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.label-only): Ditto.
(body.mac-platform.legacy .toolbar): No inset shadow in legacy when not docked.
(body.mac-platform.legacy.docked .toolbar): Restore legacy border color.
(body.mac-platform.legacy:not(.docked) .toolbar .item.button > .label): Only disable sub-pixel antialiasing on legacy!
(body.mac-platform.legacy.window-inactive .toolbar): Restore legacy border color.
2014-08-13 Timothy Hatcher <timothy@apple.com>
Web Inspector: Restore Helvetica as the dashboard font in legacy mode
https://bugs.webkit.org/show_bug.cgi?id=135886
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DefaultDashboardView.css:
(body.mac-platform.legacy .toolbar .dashboard.default > .item):
2014-08-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline record content view close button does not work after scrolling, invisible scrollbar
https://bugs.webkit.org/show_bug.cgi?id=135863
Reviewed by Timothy Hatcher.
A workaround is to not have position:relative content inside of
scrollable region. Turns out this was only done in two places,
and I do not see any absolutely positioned content in navigation
sidebar content tree outlines. This also fixes clicking on the
reload button if you've scrolled the Resources sidebar.
* UserInterface/Views/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline .children): Deleted.
(.navigation-sidebar-panel-content-tree-outline .item): Deleted.
2014-08-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused variable in Platform.js
https://bugs.webkit.org/show_bug.cgi?id=135869
Reviewed by Timothy Hatcher.
* UserInterface/Base/Platform.js:
2014-08-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline selection range creation does not work when clicking event bubble or near bottom of overview
https://bugs.webkit.org/show_bug.cgi?id=135849
Reviewed by Timothy Hatcher.
Click events on elements in the graph container (event bubbles) or
in the scroll container (bottom 16px) were becoming the event targets.
As siblings of the ruler, the dispatch would not go through the ruler.
The ruler was supposed to be overlaying everything in the overview,
so give the ruler a z-index so it really is overlaying elements.
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler):
2014-08-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: GoToLine dialog clear text button looks poor
https://bugs.webkit.org/show_bug.cgi?id=135828
Reviewed by Timothy Hatcher.
Legacy/CloseWhite.svg was not used, but in the case where the white
close button is needed the thicker bars looks better. Re-use the
Legacy image as the default CloseWhite.svg.
* UserInterface/Images/CloseWhite.svg:
* UserInterface/Images/Legacy/CloseWhite.svg: Removed.
2014-08-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Easier Way to go back to the Timeline Overviews
https://bugs.webkit.org/show_bug.cgi?id=135827
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
Added new tooltip UIString.
* UserInterface/Images/Close.svg:
* UserInterface/Images/CloseLarge.svg:
* UserInterface/Images/Legacy/Close.svg:
Add "stroked" class so the buttons can fill with white on selected rows.
Also re-center the non-legacy images horizontally.
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.set status):
Do not recreate elements if the status did not change.
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView):
(WebInspector.LayoutTimelineView.prototype._treeElementDeselected):
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
(WebInspector.LayoutTimelineView.prototype._updateTreeElementWithCloseButton):
(WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
(WebInspector.NetworkTimelineView.prototype._treeElementDeselected):
(WebInspector.NetworkTimelineView.prototype._treeElementSelected):
(WebInspector.NetworkTimelineView.prototype._updateTreeElementWithCloseButton):
(WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._treeElementDeselected):
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):
(WebInspector.OverviewTimelineView.prototype._updateTreeElementWithCloseButton):
(WebInspector.OverviewTimelineView.prototype._closeStatusButtonClicked):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype._treeElementDeselected):
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):
(WebInspector.ScriptTimelineView.prototype._updateTreeElementWithCloseButton):
(WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
Provide select/deselect handlers to show/hide the close status bar button
when selecting a row that shows a non-Timeline content view. Currently the
only content views the tree elements can show are Resource views, so the
tooltip is the same everywhere.
2014-08-12 Timothy Hatcher <timothy@apple.com>
Web Inspector: Expect to see top level JavaScript function profiler details for event handlers in timeline
https://bugs.webkit.org/show_bug.cgi?id=132109
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype._processPendingRecords): Don't promote root node children if
there is only one child.
2014-08-11 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: show a replay dashboard when capturing or replaying
https://bugs.webkit.org/show_bug.cgi?id=135170
Reviewed by Timothy Hatcher.
This patch adds a replay dashboard with record/play/pause buttons. It
is shown automatically when the user starts capturing an execution from
the replay menu in the Timelines sidebar panel.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector._captureDidStart):
* UserInterface/Controllers/DashboardManager.js:
(WebInspector.DashboardManager):
* UserInterface/Images/ReplayPauseButton.svg: Added.
* UserInterface/Images/ReplayPlayButton.svg: Added.
* UserInterface/Images/ReplayRecordingButton.svg: Added.
* UserInterface/Main.html:
* UserInterface/Models/ReplayDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
(WebInspector.ReplayDashboard):
* UserInterface/Views/DashboardView.js:
(WebInspector.DashboardView):
* UserInterface/Views/ReplayDashboardView.css: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
(.toolbar .dashboard.replay):
(.toolbar .dashboard.replay div.navigation-bar):
(.toolbar .dashboard.replay .item.button > .glyph):
(.toolbar.label-only .dashboard.replay .item.button > .glyph):
* UserInterface/Views/ReplayDashboardView.js: Added.
(WebInspector.ReplayDashboardView):
(WebInspector.ReplayDashboardView.prototype._captureButtonItemClicked):
(WebInspector.ReplayDashboardView.prototype._replayButtonItemClicked):
(WebInspector.ReplayDashboardView.prototype._captureStarted):
(WebInspector.ReplayDashboardView.prototype._captureStopped):
(WebInspector.ReplayDashboardView.prototype._playbackStarted):
(WebInspector.ReplayDashboardView.prototype._playbackPaused):
(WebInspector.ReplayDashboardView.prototype._playbackFinished):
2014-08-08 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: DebuggerManager commands should return promises
https://bugs.webkit.org/show_bug.cgi?id=135690
Reviewed by Timothy Hatcher.
Convert the existing debugger commands to return promises. This
requires separately waiting for protocol command's promise to be
fulfilled, as well as waiting for the appropriate DebuggerManager
event. If the protocol command promise is rejected, tear down the
single-fire event listener.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.pause):
(WebInspector.DebuggerManager.prototype.resume):
(WebInspector.DebuggerManager.prototype.stepOver):
(WebInspector.DebuggerManager.prototype.stepInto):
(WebInspector.DebuggerManager.prototype.stepOut):
* UserInterface/Controllers/ReplayManager.js: Use the promise-based API.
(WebInspector.ReplayManager.prototype._suppressBreakpointsAndResumeIfNeeded):
2014-08-11 Timothy Hatcher <timothy@apple.com>
Web Inspector: Update folder icons
https://bugs.webkit.org/show_bug.cgi?id=135808
Reviewed by Joseph Pecoraro.
* UserInterface/Images/FolderGeneric.png: Updated.
* UserInterface/Images/FolderGeneric@2x.png: Updated.
2014-08-11 Timothy Hatcher <timothy@apple.com>
Web Inspector: DataGrid and its clients are a cluster-cuss of styles
https://bugs.webkit.org/show_bug.cgi?id=135788
Clean up DataGrid and its subclasses and client styles.
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/ApplicationCacheFrameContentView.css:
(.content-view.application-cache-frame > .data-grid):
* UserInterface/Views/CookieStorageContentView.css:
(.content-view.cookie-storage > .data-grid):
* UserInterface/Views/DOMStorageContentView.css:
(.content-view.dom-storage > .data-grid):
* UserInterface/Views/DOMTreeDataGrid.css:
(.dom-tree-data-grid .data-grid):
(.dom-tree-data-grid .name-column .icon):
* UserInterface/Views/DOMTreeDataGrid.js:
(WebInspector.DOMTreeDataGrid):
* UserInterface/Views/DataGrid.css:
(.data-grid):
(.data-grid table):
(.data-grid .data-container):
(.data-grid.inline):
(.data-grid th):
(.data-grid :-webkit-any(th, td):not(:last-child)):
(.data-grid th.sortable:active):
(.data-grid th:-webkit-any(.sort-ascending, .sort-descending)):
(.data-grid table.data):
(.data-grid td):
(.data-grid:focus tr.selected td:not(:last-child)):
(body.mac-platform.legacy .data-grid:focus tr.selected td:not(:last-child)):
(.data-grid :-webkit-any(th, td) > div):
(.data-grid th:-webkit-any(.sort-ascending, .sort-descending) > div:first-child):
(.data-grid th.sort-ascending > div:first-child::after):
(.data-grid th.sort-descending > div:first-child::after):
(.data-grid td .subtitle):
(.data-grid td .subtitle::before):
(.data-grid:focus tr.selected td .subtitle):
(.data-grid td.error):
(.data-grid tr.selected td.error):
(.data-grid td .icon):
(.data-grid td .go-to-arrow):
(.data-grid tr:-webkit-any(.selected, :hover) .go-to-arrow):
* UserInterface/Views/DatabaseContentView.css:
(.storage-view):
* UserInterface/Views/DatabaseTableContentView.css:
(.content-view.database-table > .data-grid):
* UserInterface/Views/DetailsSection.css:
(.details-section > .content .data-grid):
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
(.content-view.indexed-database-object-store > .data-grid):
* UserInterface/Views/LayerTreeDataGridNode.js:
(WebInspector.LayerTreeDataGridNode.prototype._makeNameCell):
(WebInspector.LayerTreeDataGridNode.prototype._updateNameCellData):
* UserInterface/Views/LayerTreeSidebarPanel.css:
(.layer-tree.panel .data-grid):
(.layer-tree.panel .name-column .icon):
(.layer-tree.panel tr.reflection .name-column .icon):
(.layer-tree.panel tr.pseudo-element .name-column .icon):
(.layer-tree.panel .name-column .reflection):
(.layer-tree.panel tr.selected .name-column .reflection):
(.layer-tree.panel .bottom-bar):
(body.mac-platform.legacy .layer-tree.panel .bottom-bar):
(.layer-tree.panel .bottom-bar > div):
(body.mac-platform.legacy .layer-tree.panel .bottom-bar > div):
(body.mac-platform.legacy .layer-tree-popover):
* UserInterface/Views/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel):
(WebInspector.LayerTreeSidebarPanel.prototype._buildLayerInfoSection):
(WebInspector.LayerTreeSidebarPanel.prototype._buildDataGridSection):
(WebInspector.LayerTreeSidebarPanel.prototype._buildBottomBar):
(WebInspector.LayerTreeSidebarPanel.prototype._updateMetrics):
* UserInterface/Views/LegacyJavaScriptProfileView.css:
(.content-view.profile-view > .data-grid):
* UserInterface/Views/LegacyProfileView.css:
* UserInterface/Views/LogContentView.css:
(.console-message .bubble):
* UserInterface/Views/NetworkTimelineView.css:
(.timeline-view.network > .data-grid):
* UserInterface/Views/OverviewTimelineView.css:
(.timeline-view.overview > .timeline-ruler > .header):
(.timeline-view.overview > .data-grid):
* UserInterface/Views/OverviewTimelineView.js:
* UserInterface/Views/ProbeDetailsSidebarPanel.css:
(.details-section.probe-set .options > .probe-add):
(.popover .probe-popover):
* UserInterface/Views/ProbeSetDataGrid.css:
(.details-section.probe-set .data-grid tr.past-value td):
(.details-section.probe-set .data-grid > td.unknown-value):
(.details-section.probe-set .data-grid tr.revealed.highlighted):
(.details-section.probe-set .data-grid tr.separator):
(.details-section.probe-set .data-grid > tr.data-updated):
(.details-section.probe-set .data-grid .selected .section *):
(.details-section.probe-set .data-grid .selected td.unknown-value):
(.details-section.probe-set .data-grid .section):
* UserInterface/Views/QuickConsole.css:
(.quick-console):
* UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline th):
(.data-grid.timeline > .navigation-bar-container > .navigation-bar):
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler > .header):
(.timeline-ruler > .header > .divider):
2014-08-11 Brent Fulgham <bfulgham@apple.com>
[Win] Adjust build script for Windows production build.
https://bugs.webkit.org/show_bug.cgi?id=135806
<rdar://problem/17978299>
Reviewed by Timothy Hatcher.
* WebInspectorUI.vcxproj/WebInspectorUI.make: Make sure target for
xcopy operation exists.
* WebInspectorUI.vcxproj/WebInspectorUI.proj: Don't create directories
we don't need, make sure the target location exists before we build.
* WebInspectorUI.vcxproj/build-webinspectorui.pl: Make sure that
production builds get the intermediary command files from the
right place.
2014-08-11 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: Add a helper to avoid leaking single-fire event listeners in Promise chains
https://bugs.webkit.org/show_bug.cgi?id=135772
Reviewed by Timothy Hatcher.
A common pattern when working with promise chains is to convert an event
handler into a promise by using a single-fire event listener with the
resolve continuation as the callback. This is fine if the event fires;
if it doesn't fire, then the event emitter permanently keeps a reference to the
this-object and the callback.
This patch adds EventListener, a proxy object for events that can be manipulated
from multiple promise callback functions. If a promise is rejected, the catch
block can disconnect any event listeners set up earlier in the promise chain.
This patch also reimplements EventListenerSet to use multiple EventListeners,
since they share the same logic to uniformly handle Inspector and DOM events.
Test: inspector/event-listener.html
Test: inspector/event-listener-set.html
* UserInterface/Base/EventListener.js: Added.
(WebInspector.EventListener):
(WebInspector.EventListener.prototype.this._callback):
(WebInspector.EventListener.prototype.connect):
(WebInspector.EventListener.prototype.disconnect):
* UserInterface/Base/EventListenerSet.js: Update license block.
(WebInspector.EventListenerSet.prototype.register):
(WebInspector.EventListenerSet.prototype.install):
(WebInspector.EventListenerSet.prototype.uninstall):
* UserInterface/Main.html: Include EventListener.
* UserInterface/Test.html: Include EventListener and EventListenerSet.
2014-08-10 Timothy Hatcher <timothy@apple.com>
Web Inspector: new glyphs are visible on OS X 10.9 builds
https://bugs.webkit.org/show_bug.cgi?id=135743
Reviewed by Joseph Pecoraro.
* UserInterface/Images/Legacy/UserInputPrompt.svg: Removed.
* UserInterface/Images/Legacy/UserInputPromptPrevious.svg: Removed.
* UserInterface/Images/Legacy/UserInputResult.svg: Removed.
Removed images that were not used.
* UserInterface/Views/DashboardContainerView.css:
(body.mac-platform.legacy .dashboard-container .advance-arrow):
* UserInterface/Views/DebuggerDashboardView.js:
(WebInspector.DebuggerDashboardView):
* UserInterface/Views/FolderIcon.css:
(body.mac-platform.legacy .folder-icon .icon):
* UserInterface/Views/HierarchicalPathComponent.css:
(body.mac-platform.legacy .hierarchical-path-component > .selector-arrows):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
Use legacy images.
* UserInterface/Views/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected .subtitle):
Fix color for selected subtitle.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
Use legacy images.
2014-08-09 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: TimelineManager should reuse empty recordings
https://bugs.webkit.org/show_bug.cgi?id=135749
Reviewed by Timothy Hatcher.
Check whether the recording is empty before creating a new one.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._loadNewRecording):
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.isEmpty):
(WebInspector.TimelineRecording.prototype.unloaded):
2014-08-08 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: add debugging flag to InspectorTest for unbuffered logging to stderr
https://bugs.webkit.org/show_bug.cgi?id=135726
Reviewed by Timothy Hatcher.
Added a flag for debugging inspector tests which will synchronously log messages.
This avoids failure modes that prevent logging from being added to the test page.
* UserInterface/Base/Test.js:
(InspectorTest.debugLog):
(InspectorTest.addResult):
2014-08-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: When Switching Recordings, the UI datagrids do not update to match selection
https://bugs.webkit.org/show_bug.cgi?id=135764
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineSidebarPanel.js:
When changing the activeContentView trigger an update of the datagrids by
re-applying the filter, which will be different now that the view is different.
2014-08-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exception opening Web Inspector - TypeError: undefined is not a function - candidateObjectCookie.every
https://bugs.webkit.org/show_bug.cgi?id=135762
Reviewed by Timothy Hatcher.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
Fix a typo, the wrong object was being used.
2014-08-07 Brian J. Burg <burg@cs.washington.edu>
REGRESSION(r172094): timeline views are blank after reloading in some situations
https://bugs.webkit.org/show_bug.cgi?id=135742
Reviewed by Timothy Hatcher.
Address various bugs that cause the wrong timeline content views to appear when
starting a recording by reloading the inspected page. Fix other small oversights
that were encountered in the sidebar-based view state restoration code.
* UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.saveIdentityToCookie): Add a dummy implementation.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
This code erroneously matches any tree element whose represented object's
saveIdentityToCookie function produces an empty cookie.
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._showTimelineView): Add an assertion
that will find mismatches between represented objects of the TimelineContentView
and TimelineViews.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): Don't call
the superclass's implementation, since we do not want to perform a relaxed match
against any of our tree elements. The only thing that can be restored across reopen
is a selected timeline tree element, which is already handled by this override.
2014-08-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix accidental always true comparison
https://bugs.webkit.org/show_bug.cgi?id=135741
Reviewed by Timothy Hatcher.
Remove accidental "!" that would always cause this comparison to succeed.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.updateLayout):
2014-08-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline Filter Bars are not appearing at all
https://bugs.webkit.org/show_bug.cgi?id=135740
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline.has-non-default-filter > .navigation-bar-container):
(.data-grid.timeline > .navigation-bar-container > .navigation-bar):
(body.mac-platform.legacy .data-grid.timeline > .navigation-bar-container > .navigation-bar):
Update the positioning and height for non-legacy because the console is now taller.
* UserInterface/Views/ScopeBar.js:
(WebInspector.ScopeBar.prototype.hasNonDefaultItemSelected):
Helper to know if there is a non-default filter.
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
(WebInspector.TimelineDataGrid.prototype._scopeBarSelectedItemsDidChange):
Update scope bar visibility. If non-default we want to always show it.
(WebInspector.TimelineDataGrid.prototype._updateScopeBarForcedVisibility):
If there is a non-default filter, force showing the bar.
2014-08-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: breakpoints enabled state is not persisted across re-opening the inspector
https://bugs.webkit.org/show_bug.cgi?id=135745
Reviewed by Timothy Hatcher.
When restoring breakpoints when the inspector is initializing, do not
let setting these breakpoints automatically enable breakpoints. We should
respect the setting in this case.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.restoreBreakpointsSoon):
(WebInspector.DebuggerManager):
2014-08-07 Timothy Hatcher <timothy@apple.com>
Web Inspector: Combine and minify Esprima
https://bugs.webkit.org/show_bug.cgi?id=135728
Reviewed by Joseph Pecoraro.
* Scripts/combine-resources.pl:
* Scripts/copy-user-interface-resources.pl:
* UserInterface/External/Esprima/LICENSE: Added.
2014-08-07 Timothy Hatcher <timothy@apple.com>
Fix regression where tree outline keyboard navigation is broken.
https://bugs.webkit.org/show_bug.cgi?id=135718
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TreeOutline.js:
(TreeElement.prototype.revealed): Fix the check for currentAncestor.hidden.
2014-08-07 Timothy Hatcher <timothy@apple.com>
Web Inspector: Filter bar text and icon are positioned too low and tight
https://bugs.webkit.org/show_bug.cgi?id=135723
Reviewed by Joseph Pecoraro.
* UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]):
(.filter-bar > input[type="search"]::-webkit-search-decoration):
* UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]):
2014-08-07 Timothy Hatcher <timothy@apple.com>
Web Inspector: Dashboard error and warning icons should be filled when enabled
https://bugs.webkit.org/show_bug.cgi?id=135725
Reviewed by Joseph Pecoraro.
* UserInterface/Images/ErrorsEnabled.svg:
* UserInterface/Images/IssuesEnabled.svg:
2014-08-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Dashboard contents shift when window changes active state
https://bugs.webkit.org/show_bug.cgi?id=135724
Reviewed by Timothy Hatcher.
The container was getting a 1px border when inactive and none when active.
Give it a transparent border when active so contents don't change size.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
2014-08-07 Timothy Hatcher <timothy@apple.com>
Fix reference to missing CloseTimeline.svg image.
Rubber-stamped by Joseph Pecoraro.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Use CloseLarge.svg instead.
2014-08-07 Brent Fulgham <bfulgham@apple.com>
[Win] Unreviewed build fix.
Add a WebInspectorUI.proj file for use with MSBuild utility.
* WebInspectorUI.vcxproj/WebInspectorUI.proj: Added.
2014-08-07 Benjamin Poulain <bpoulain@apple.com>
Get rid of INPUT_SPEECH
https://bugs.webkit.org/show_bug.cgi?id=135672
Reviewed by Andreas Kling.
* UserInterface/Models/CSSKeywordCompletions.js:
2014-08-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Dragging selection window when mouse goes out of window bounds does not behave as expected
https://bugs.webkit.org/show_bug.cgi?id=135372
Reviewed by Timothy Hatcher.
Constrain move selection window dragging to the ruler bounds
based on the mouse down position on the drag window.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleMouseDown):
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
2014-08-07 Timothy Hatcher <timothy@apple.com>
Web Inspector: Update glyphs to be more like Xcode 6
https://bugs.webkit.org/show_bug.cgi?id=135705
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Base/ImageUtilities.js:
(platformImagePath): Added.
(generateEmbossedImages.generateImage):
Bump the base image version. Helper function. Use isLegacyMacOS.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._updateDockNavigationItems):
(WebInspector._generateDisclosureTriangleImages):
Use new images and add legacy path. Remove the shadow.
* UserInterface/Images: Updated images.
* UserInterface/Images/Legacy: Added. Moved legacy images here.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section):
(body.mac-platform.legacy .style-declaration-section + .style-declaration-section):
(.style-declaration-section.last-in-group):
(.style-declaration-section.last-in-group + .style-declaration-section):
Use a consistent gray for borders.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content > .pseudo-classes):
Use a consistent gray for borders.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
Use new images and add legacy path.
* UserInterface/Views/ControlToolbarItem.css:
(.toolbar .item.control):
(body.mac-platform.legacy .toolbar .item.control):
(.toolbar .item.control:hover):
(body.mac-platform.legacy .toolbar .item.control:hover):
Adjust the opacity for controls.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
Use new images and add legacy path.
* UserInterface/Views/DataGrid.css:
(.data-grid tr.selected):
Use a consistent gray for borders.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.get _generateSortIndicatorImagesIfNeeded):
Use new images and add legacy path. Remove the shadow.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
Use new images and add legacy path.
* UserInterface/Views/DefaultDashboardView.css:
(.toolbar .dashboard.default > .item):
(body.mac-platform.legacy .toolbar .dashboard.default > .item):
(body.mac-platform.legacy .toolbar .dashboard.default > .resourcesCount > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .time > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .logs > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .resourcesSize > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .errors > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .errors.enabled > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .issues > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .issues.enabled > img):
Use new images and add legacy path.
* UserInterface/Views/DetailsSection.css:
(.details-section):
(.details-section .details-section:first-child):
(body.mac-platform.legacy .details-section > .header):
(.details-section > .content > .group):
(.details-section > .content > .group:nth-child(even) > .row.simple:first-child > *):
(body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *):
Use a consistent gray for borders.
* UserInterface/Views/FilterBar.css:
(body.mac-platform.legacy .filter-bar > input[type="search"]::-webkit-search-decoration):
Use new images and add legacy path.
* UserInterface/Views/FindBanner.css:
(.find-banner):
Use a consistent gray for borders.
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
Add legacy path.
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
Use new images and add legacy path.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
Use new images and add legacy path.
* UserInterface/Views/Main.css:
(#split-content-browser):
Use a consistent gray for borders.
* UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .overflow-shadow):
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow):
(.sidebar > .panel.navigation > .overflow-shadow.top):
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow.top):
(.sidebar > .panel.navigation > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation > .empty-content-placeholder):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected.expanded .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline .item.selected):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
Adjust the styles to make the selected item use white text and icons only when focused.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._generateDisclosureTrianglesIfNeeded):
Remove the shadow from the disclosure triangles. Make the overflow shadow not fade.
* UserInterface/Views/ProbeDetailsSidebarPanel.css:
(.details-section.probe-set .options > .probe-clear-samples):
(.details-section.probe-set .options > .probe-remove):
(.details-section.probe-set .options > .probe-add):
(body.mac-platform.legacy .details-section.probe-set .options > .probe-clear-samples):
(body.mac-platform.legacy .details-section.probe-set .options > .probe-remove):
(body.mac-platform.legacy .details-section.probe-set .options > .probe-add):
Tweak size and position of icons and use legacy paths.
* UserInterface/Views/QuickConsole.css:
(.quick-console):
Adjust padding to match filter bar height.
* UserInterface/Views/ResourceSidebarPanel.css:
(.sidebar > .panel.navigation.resource > .search-bar):
Adjust height.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(.sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule img):
Use a consistent gray for borders. Don't bold the New Rule label.
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView):
Use new images and add legacy path.
* UserInterface/Views/Sidebar.css:
(.sidebar.left):
(.sidebar.right):
Use a consistent gray for borders.
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView):
Use new images and add legacy path.
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
Use new images and add legacy path.
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView):
Use new images and add legacy path.
* UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline th):
(.data-grid.timeline th.sortable:active):
(.data-grid.timeline th.sort-descending):
Fix a regression with the gradient background showing in legacy mode.
* UserInterface/Views/TimelineIcons.css:
(body.mac-platform.legacy .network-icon .icon):
(body.mac-platform.legacy .network-icon.large .icon):
(body.mac-platform.legacy .colors-icon .icon):
(body.mac-platform.legacy .colors-icon.large .icon):
Added legacy versions of these icons.
* 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):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced):
(.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
Update the styles for the recording button and close button.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
Use TreeElementStatusButton instead of a styled image.
* UserInterface/Views/TreeElementStatusButton.css:
(.item > .status > .status-button > svg path.filled):
(body.mac-platform.legacy .item > .status > .status-button > svg path.filled):
(:focus .item.selected > .status > .status-button > svg path.filled):
(.item > .status > .status-button > svg path.stroked):
(body.mac-platform.legacy .item > .status > .status-button > svg path.stroked):
(:focus .item.selected > .status > .status-button > svg path.stroked):
(.item.selected > .status > .status-button:active):
(.item > .status > .status-button.disabled):
Updated selectors and styles to work with stroke or fill.
2014-08-07 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: DebuggerManager sends spurious setBreakpointsActive commands when setting a breakpoint
https://bugs.webkit.org/show_bug.cgi?id=135674
Reviewed by David Kilzer.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.set breakpointsEnabled): Fix a typo.
2014-08-06 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: breakpoint resolved state should not depend on all breakpoints being enabled
https://bugs.webkit.org/show_bug.cgi?id=135517
Reviewed by Joseph Pecoraro.
Previously, Breakpoint.resolved returned false if all breakpoints were disabled, even if
the breakpoint had an associated SourceCode. This was a weird hack to make it easier to
style breakpoint widgets. This made it hard for other code to deal with resolved
breakpoints that were also disabled, or SourceCodeLocations that resolve and unresolve.
This patch removes that consideration and fixes style update code to manually check if all
breakpoints are being suppressed.
The code now enforces that a Breakpoint must have a SourceCode before it can be resolved.
(As a performance optimization when loading the initial frame tree, we sometimes we give
Breakpoints a SourceCode before the debugger officially says that the breakpoint has been
resolved. Thus, it's possible to be unresolved with a SourceCode, but not vice-versa.)
This patch also adds a few guards where we assumed a SourceCodeLocation had a SourceCode.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.set breakpointsEnabled): Remove spurious
ResolvedStateDidChange events.
(WebInspector.DebuggerManager.prototype.breakpointResolved): Set the breakpoint's SourceCode
if it has not been set already by DebuggerManager.associateBreakpointsWithSourceCode.
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype.get resolved):
(WebInspector.Breakpoint.prototype.set resolved.isSpecialBreakpoint):
(WebInspector.Breakpoint.prototype.set resolved): Add an assertion.
* UserInterface/Models/SourceCodeLocation.js: Add guards for !SourceCode.
(WebInspector.SourceCodeLocation.prototype.populateLiveDisplayLocationTooltip):
* UserInterface/Views/BreakpointTreeElement.js: Account for DebuggerManager.breakpointsEnabled.
(WebInspector.BreakpointTreeElement):
(WebInspector.BreakpointTreeElement.prototype._updateStatus):
* UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement): Loosen the assertion.
* UserInterface/Views/SourceCodeTextEditor.js: Account for DebuggerManager.breakpointsEnabled.
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.close):
(WebInspector.SourceCodeTextEditor.prototype._breakpointStatusDidChange):
(WebInspector.SourceCodeTextEditor.prototype._breakpointsEnabledDidChange):
(WebInspector.SourceCodeTextEditor.prototype._updateBreakpointStatus):
* UserInterface/Views/TextEditor.js: Account for DebuggerManager.breakpointsEnabled.
2014-08-06 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: ReplayManager should unpause and suppress breakpoints before capturing/replaying
https://bugs.webkit.org/show_bug.cgi?id=135608
Reviewed by Timothy Hatcher.
It is jarring when the debugger pauses during capturing or replaying. For now, we should suppress
all breakpoints during capturing or replaying, and restore breakpoint enabled state when
capturing finishes, when replaying finishes, or during temporary replay pauses.
In the future, the debugger will be selectively enabled during playback to seek to specific
breakpoint hits. This is tracked in https://bugs.webkit.org/show_bug.cgi?id=135663.
* UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.prototype.startCapturing.result):
(WebInspector.ReplayManager.prototype.replayToPosition.result):
(WebInspector.ReplayManager.prototype.replayToCompletion.result):
(WebInspector.ReplayManager.prototype.captureStopped):
(WebInspector.ReplayManager.prototype.playbackPaused):
(WebInspector.ReplayManager.prototype.playbackFinished):
(WebInspector.ReplayManager.prototype._changeSegmentState):
(WebInspector.ReplayManager.prototype._suppressBreakpointsAndResumeIfNeeded):
2014-08-06 Brent Fulgham <bfulgham@apple.com>
[Win] Build fix.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: DebugSuffix target was missing
proper path settings for final output.
2014-08-06 Wenson Hsieh <wenson_hsieh@apple.com>
Implement parsing for CSS scroll snap points
https://bugs.webkit.org/show_bug.cgi?id=134301
Reviewed by Dean Jackson.
* UserInterface/Models/CSSKeywordCompletions.js: Added snap point property keywords, such as mandatory, proximity, elements, and repeat.
2014-08-06 Brian J. Burg <burg@cs.washington.edu>
REGRESSION(r172094): tests fail because Inspector test harness does not include UIString
https://bugs.webkit.org/show_bug.cgi?id=135658
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Test.js:
(WebInspector.contentLoaded): Fix brace placement.
(WebInspector.UIString): Added. This is the identity function during testing.
2014-08-06 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: convert ReplayManager to a promise-based API
https://bugs.webkit.org/show_bug.cgi?id=135249
Reviewed by Timothy Hatcher.
Convert replay commands to an asynchronous, promise-based API. This addresses
two problems with a synchronous replay API: clients can only use the synchronous
API if session and segment state are exactly correct, and trying to change state
to match this requirement requires chaining multiple commands and events.
The asynchronous API allows clients to issue replay commands with impunity,
as long as they can be unambiguously handled. For example, issuing
pausePlayback() while capturing is not allowed, but issuing startCapturing()
while replaying is allowed. The API also hides implementation details that
are not important, such as steps to unpause or temporarily disable the debugger.
This patch also cleans up uses of promises, such as adding error re-throwing.
It adds return type annotations to public ReplayManager asynchronous methods.
* UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.catch):
(WebInspector.ReplayManager):
(WebInspector.ReplayManager.prototype.createSession):
(WebInspector.ReplayManager.prototype.switchSession):
(WebInspector.ReplayManager.prototype.startCapturing):
(WebInspector.ReplayManager.prototype.stopCapturing):
(WebInspector.ReplayManager.prototype.replayToPosition):
(WebInspector.ReplayManager.prototype.replayToCompletion):
(WebInspector.ReplayManager.prototype.sessionCreated.catch): re-throw.
(WebInspector.ReplayManager.prototype.segmentCompleted.catch): re-throw.
(WebInspector.ReplayManager.prototype.segmentCompleted.catch): re-throw.
(WebInspector.ReplayManager.prototype.segmentUnloaded.catch): re-throw.
(WebInspector.ReplayManager.prototype.sessionCreated.catech): re-throw.
2014-08-06 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: protocol command invocations should return a promise if no callback is supplied
https://bugs.webkit.org/show_bug.cgi?id=130702
Reviewed by Timothy Hatcher.
This allows the trailing Agent.command.promise(args) to be dropped in favor of just
Agent.command(args). It should make it a bit easier to convert code to use promises.
Test: LayoutTests/inspector/protocol-promise-result.html
* UserInterface/Controllers/ReplayManager.js: Drop use of .promise().
* UserInterface/Controllers/TimelineManager.js: Drop use of .promise().
(WebInspector.TimelineManager.prototype.startCapturing):
* UserInterface/Protocol/InspectorBackend.js:
(.callable): Redirect to the promise entry point if the last argument isn't a function.
(InspectorBackend.Command.create):
2014-08-05 James Craig <jcraig@apple.com>
Web Inspector: AXI: Add label string once AccessibilityObject::computedLabel() is available
https://bugs.webkit.org/show_bug.cgi?id=129940
Reviewed by Chris Fleizach.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js: UI update for label field in Node Inspector.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
2014-08-05 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: support storing multiple timeline recordings in the manager
https://bugs.webkit.org/show_bug.cgi?id=132875
Reviewed by Timothy Hatcher.
This patch adds support for capturing multiple timeline recordings and switching
between them in the user interface using hierarchical path components.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded): Remove hard-coded priming of the timeline sidebar panel.
Instead, load the first recording in the timeline manager after the initial load.
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): Don't suppress
onselect events when selecting the tree element for a newly shown content view. This
allows the sidebar to sync the current content view and timeline tree element selection
with what is displayed in the content browser.
* UserInterface/Controllers/TimelineManager.js: Add two new events, RecordingCreated and
RecordingLoaded. A recording is considered active when any new records recieved will be
appended to that recording. The user interface is not necessarily viewing the active
recording.
(WebInspector.TimelineManager.delayedWork):
(WebInspector.TimelineManager): Keep a list of recordings, and load the first recording
asynchronously so that everyone can add an event listener for it.
(WebInspector.TimelineManager.prototype.get activeRecording):
(WebInspector.TimelineManager.prototype.get recordings):
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing): Use promises to make the iOS 7
fallback path better match the async semantics of the non-fallback path.
(WebInspector.TimelineManager.prototype.unloadRecording):
(WebInspector.TimelineManager.prototype._loadNewRecording): Stop capturing and unload
any existing recording before creating and loading a new recording.
(WebInspector.TimelineManager.prototype._startAutoCapturing): Create a new recording
rather than resetting the current recording.
* UserInterface/Models/NetworkTimeline.js:
(WebInspector.NetworkTimeline):
* UserInterface/Models/Timeline.js:
(WebInspector.Timeline):
(WebInspector.Timeline.prototype.get type): Each timeline stores its TimelineRecord.Type
so that other code can create type-specific views using the Timeline as a representedObject.
* UserInterface/Models/TimelineRecording.js: For each recording, add new state for a unique identifier,
display string, and an isWritable flag. Once a recording is unloaded, it becomes read-only.
(WebInspector.TimelineRecording.prototype.get displayName):
(WebInspector.TimelineRecording.prototype.get identifier):
(WebInspector.TimelineRecording.prototype.isWritable):
(WebInspector.TimelineRecording.prototype.unloaded):
(WebInspector.TimelineRecording.prototype.reset): A recording can only be reset if it is writable.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setTimelineProfilingEnabled): Don't make redundant start/stop capturing calls.
* UserInterface/Views/LayoutTimelineOverviewGraph.js: Use a timeline as the representedObject for all
timeline-specific graphs and views. Otherwise, use the recording.
(WebInspector.LayoutTimelineOverviewGraph):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView):
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
* UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WebInspector.NetworkTimelineOverviewGraph):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._networkTimelineRecordAdded):
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph):
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):
* UserInterface/Views/TimelineContentView.js: Iterate over timeline objects when setting up maps. Use timelines
as keys rather than their type identifiers.
(WebInspector.TimelineContentView.prototype.showTimelineViewForTimeline): Renamed from showTimelineView. This
function takes a Timeline instance rather than an identifier, since the conten view is specific to one recording.
(WebInspector.TimelineContentView.prototype.get selectionPathComponents): Match types against the currently
visible timeline's representedObject.
(WebInspector.TimelineContentView.prototype.get currentTimelineView): Used by the sidebar panel to sync timeline
tree element selections to TimelineView shown by the TimelineContentView.
(WebInspector.TimelineContentView.prototype.shown): Sync enablement of the "Clear Timelines" button to recording
read-only state.
(WebInspector.TimelineContentView.prototype.saveToCookie):
(WebInspector.TimelineContentView.prototype.restoreFromCookie): Added. Only handle saving/restoring the subview.
(WebInspector.TimelineContentView.prototype._pathComponentSelected):
(WebInspector.TimelineContentView.prototype._showTimelineView): Relax the early return so that timeline views
and content tree outlines are reattached when re-navigating to the same timeline view via back-forward entries.
(WebInspector.TimelineContentView.prototype.showTimelineView): Deleted.
* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel): Keep a tree outline and tree element map for storing available recordings.
(WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
(WebInspector.TimelineSidebarPanel.prototype.shown): Added.
(WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView): Add a guard.
(WebInspector.TimelineSidebarPanel.prototype.get hasSelectedElement): Added. Selected recording tree elements
should be considered when deciding whether a represented object has been selected in the sidebar panel.
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForType): Renamed to explicit take a type identifier.
Delegate the actual showing of the timeline view to the onselect handler for the timelines tree outline.
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie): Fix a typo.
(WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): Fix a typo.
(WebInspector.TimelineSidebarPanel.prototype._recordingsTreeElementSelected): Sync the currently displayed
recording object and content view, and sync the selected tree element to the displayed timeline subview.
(WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected): If this is a user action, show the timeline.
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange): Use classList.toggle().
(WebInspector.TimelineSidebarPanel.prototype._recordingCreated): Dynamically add new recordings to the interface.
(WebInspector.TimelineSidebarPanel.prototype._recordingLoaded): Automatically show recordings when they are loaded.
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked): Shift+click will force-create a new recording.
(WebInspector.TimelineSidebarPanel.prototype.initialize): Deleted.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.get representedObject):
2014-08-05 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: ReplayManager shouldn't assume replay status when the inspector is opened
https://bugs.webkit.org/show_bug.cgi?id=135212
Reviewed by Timothy Hatcher.
The inspector could be closed and reopened at any point during capturing or replaying.
ReplayManager should query the current state on initialization rather than assuming
that the replay controller is still in its initial state.
ReplayManager's initialization code requires querying the backend for the current replay
state. This could race with replay protocol events that mutate the manager's state before
it is fully initialized, leading to undefined behavior.
To mitigate this, all protocol event handlers (called by ReplayObserver) are wrapped
with a guard that enqueues the callback if initialization is not yet complete. This
queue is implemented via multiple then-chaining of a shared 'initialization' promise
which resolves when initialization completes.
* UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.then):
(WebInspector.ReplayManager.catch):
(WebInspector.ReplayManager): Rewrite the initialization code to first query the replay
state, set the initialization flag to true, and then request and update session records.
The sessions must be loaded after querying initial state because ReplayManager.sessionCreated
requires replay state to be initialized.
(WebInspector.ReplayManager.prototype.get sessionState):
(WebInspector.ReplayManager.prototype.get segmentState):
(WebInspector.ReplayManager.prototype.get activeSessionIdentifier):
(WebInspector.ReplayManager.prototype.get activeSegmentIdentifier):
(WebInspector.ReplayManager.prototype.get playbackSpeed):
(WebInspector.ReplayManager.prototype.set playbackSpeed):
(WebInspector.ReplayManager.prototype.get currentPosition): Add assertions to catch uses of
manager state before the manager is fully initialized.
(WebInspector.ReplayManager.prototype.waitUntilInitialized): Added. It returns a shared promise
that is fulfilled when initialization is complete.
(WebInspector.ReplayManager.prototype.captureStarted):
(WebInspector.ReplayManager.prototype.captureStopped):
(WebInspector.ReplayManager.prototype.playbackStarted):
(WebInspector.ReplayManager.prototype.playbackHitPosition):
(WebInspector.ReplayManager.prototype.playbackPaused):
(WebInspector.ReplayManager.prototype.playbackFinished):
(WebInspector.ReplayManager.prototype.sessionModified):
(WebInspector.ReplayManager.prototype.sessionLoaded):
(WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
(WebInspector.ReplayManager.prototype.segmentCompleted):
(WebInspector.ReplayManager.prototype.segmentRemoved.then):
(WebInspector.ReplayManager.prototype.segmentRemoved):
(WebInspector.ReplayManager.prototype.segmentLoaded): Add initialization guards.
2014-08-05 Brian J. Burg <burg@cs.washington.edu>
Web Replay: rename protocol methods for getting replay session/segment data
https://bugs.webkit.org/show_bug.cgi?id=135618
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.prototype.getSession.get var):
(WebInspector.ReplayManager.prototype.getSegment.get var):
* UserInterface/Models/ReplaySession.js:
(WebInspector.ReplaySession.prototype.segmentsChanged):
2014-08-05 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: cannot navigate between multiple applicable dashboards
https://bugs.webkit.org/show_bug.cgi?id=135130
Reviewed by Timothy Hatcher.
Add navigation arrows between dashboards when multiple dashboards are applicable.
For example, the user should be able to go back to the default dashboard while paused
at a breakpoint. Dashboards form a stack based on when they are first introduced.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard): Increase padding-right a bit to make room for arrows.
(.toolbar .dashboard:not(.visible)): Fix a bug where higher dashboards in the dashboard stack
can shine through when animating between two lower dashboards that have transparent background.
This ensures that at most two dashboards (namely, the ones being animated) are displayed.
(.dashboard-container .advance-arrow): Main style class for navigation arrows.
(.dashboard-container .advance-arrow:hover):
(.dashboard-container .advance-arrow:active):
(.dashboard-container .advance-arrow.inactive):
(.toolbar.label-only .dashboard-container .advance-arrow): Make arrows slightly smaller when
the dashboards get shorter.
(.dashboard-container .advance-arrow.advance-forward):
(.dashboard-container .advance-arrow.advance-backward):
* UserInterface/Views/DashboardContainerView.js:
(WebInspector.DashboardContainerView): Arrow styles are updated when a dashboard is shown,
hidden, or closed. When moving away, we dismiss (i.e., set zero opacity) arrows at animation
start. When the animation finishes, redisplay arrows that are applicable for the new dashboard.
(WebInspector.DashboardContainerView.prototype._advanceForwardArrowClicked):
(WebInspector.DashboardContainerView.prototype._advanceBackwardArrowClicked):
(WebInspector.DashboardContainerView.prototype._dismissAdvanceArrows):
(WebInspector.DashboardContainerView.prototype._updateAdvanceArrowVisibility):
(WebInspector.DashboardContainerView.prototype._showDashboardAtIndex): There was a bug here
where it would unconditionally use the same animation direction when showing a dashboard, but
it was hard to spot without arrows that must correlate with the animation direction.
(WebInspector.DashboardContainerView.prototype.animationEnded):
(WebInspector.DashboardContainerView.prototype._showDashboardView):
(WebInspector.DashboardContainerView.prototype._hideDashboardView):
(WebInspector.DashboardContainerView.prototype._closeDashboardView):
2014-08-05 Saam Barati <sbarati@apple.com>
Web Inspector: shown() called on a content view when stepping over an instruction in the debugger
https://bugs.webkit.org/show_bug.cgi?id=135311
Reviewed by Timothy Hatcher.
ContentViewContainer should not repeatedly call ContentView.prototype.shown
on ContentViews that are already visible. ContentViewContainer now passes
a flag to BackForwardEntry.prototype.prepareToShow indicating whether it should
call the shown function on the ContentView it is about to display.
ContentViewContainer.prototype.showBackForwardEntryForIndex passes in this
flag based on its ContentView being visible.
* UserInterface/Models/BackForwardEntry.js:
(WebInspector.BackForwardEntry.prototype.prepareToShow):
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showBackForwardEntryForIndex):
(WebInspector.ContentViewContainer.prototype.replaceContentView):
(WebInspector.ContentViewContainer.prototype.closeAllContentViewsOfPrototype):
(WebInspector.ContentViewContainer.prototype.shown):
(WebInspector.ContentViewContainer.prototype._showEntry):
2014-08-01 Jonathan Wells <jonowells@apple.com>
Web Inspector: Timeline header height doesn't match style updates.
https://bugs.webkit.org/show_bug.cgi?id=135516
Reviewed by Timothy Hatcher.
Update the timeline header height to match the updates
to the navigation bars in other panels made in
https://bugs.webkit.org/show_bug.cgi?id=135445. Also
update the shadows on some of the search bars.
* UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]):
(body.mac-platform.legacy .filter-bar > input[type="search"]):
* UserInterface/Views/FindBanner.css:
(.find-banner > input[type="search"]):
(body.mac-platform.legacy .find-banner > input[type="search"]):
* UserInterface/Views/LogContentView.css:
(.search-bar.log-search-bar > input[type="search"]):
(body.mac-platform.legacy .search-bar.log-search-bar > input[type="search"]):
Remove inset shadows on search bars.
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-status):
(.sidebar > .panel.navigation.timeline > .title-bar.timelines):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timelines):
(.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):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content):
(.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .empty-content-placeholder):
Update the height of the timeline status bar.
2014-07-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: "Stop Recording" button feels unresponsive, recording takes a long time to stop
https://bugs.webkit.org/show_bug.cgi?id=135490
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.stopCapturing):
Immediately stop the recording without waiting for an event from the backend.
This makes the Web Inspector UI feel responsive to the user stopping the recording.
This also matches behavior before r171195.
2014-07-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline recording is not working inspecting iOS 7 and earlier
https://bugs.webkit.org/show_bug.cgi?id=135466
Reviewed by Timothy Hatcher.
Start / stop capturing for older backends that won't emit start / stop events.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Agent.prototype.hasEvent):
Provide a way to check if an event is supported.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing):
Fallback to starting and stopping capturing manually if the backend
does not provide the events.
2014-07-31 Jonathan Wells <jonowells@apple.com>
Web Inspector: Sync button look and feel with Xcode updates.
https://bugs.webkit.org/show_bug.cgi?id=135445
Reviewed by Timothy Hatcher.
Update styles to match recent changes to Xcode text-only
buttons, the navigation bar, and search fields. Include
older style rules for older Mac platforms.
* UserInterface/Views/ButtonNavigationItem.css:
(.navigation-bar .item.button.text-only):
(body.mac-platform.legacy .navigation-bar .item.button.text-only):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .navigation-bar):
(.sidebar > .panel.details.css-style > .content):
(body.mac-platform.legacy .sidebar > .panel.details.css-style > .content):
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger > .content):
(body.mac-platform.legacy .sidebar > .panel.navigation.debugger > .content):
* UserInterface/Views/DividerNavigationItem.css:
(.navigation-bar .item.divider):
(body.mac-platform.legacy .navigation-bar .item.divider):
* UserInterface/Views/FilterBar.css:
(.filter-bar):
(body.mac-platform.legacy .filter-bar):
(.filter-bar > input[type="search"]):
(body.mac-platform.legacy .filter-bar > input[type="search"]):
* UserInterface/Views/LogContentView.css:
(.search-bar.log-search-bar > input[type="search"]):
(@media reader):
(.log-search-bar > input): Deleted.
* UserInterface/Views/Main.css:
(#split-content-browser > .navigation-bar):
(body.mac-platform.legacy #split-content-browser > .navigation-bar):
* UserInterface/Views/NavigationBar.css:
(.navigation-bar):
(body.mac-platform.legacy .navigation-bar):
(.navigation-bar .item):
(body.mac-platform.legacy .navigation-bar .item):
* UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .content):
(body.mac-platform.legacy .sidebar > .panel.navigation > .content):
* UserInterface/Views/QuickConsole.css:
(.quick-console):
(body.mac-platform.legacy .quick-console):
* UserInterface/Views/RadioButtonNavigationItem.css:
(.navigation-bar .item.radio.button.text-only:hover):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only:hover):
(.navigation-bar .item.radio.button.text-only.selected):
(body.mac-platform.legacy .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):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected:active):
* UserInterface/Views/ResourceSidebarPanel.css:
(.sidebar > .panel.navigation.resource > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation.resource > .empty-content-placeholder):
(.sidebar > .panel.navigation.resource > .search-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.resource > .search-bar):
(.sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
(body.mac-platform.legacy .sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
* UserInterface/Views/ScopeBar.css:
(.scope-bar > li):
(body.mac-platform.legacy .scope-bar > li):
(.scope-bar > li:hover):
(body.mac-platform.legacy .scope-bar > li:hover):
(.scope-bar > li.selected):
(.scope-bar > li:active):
(body.mac-platform.legacy .scope-bar > li:active):
(.scope-bar > li.selected:active):
(body.mac-platform.legacy .scope-bar > li.selected:active):
* UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]):
(body.mac-platform.legacy .search-bar > input[type="search"]):
Update styles and apply older styles to legacy Mac platforms.
2014-07-31 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: MessageDispatcher should not synchronously dispatch all backend messages
https://bugs.webkit.org/show_bug.cgi?id=135427
Reviewed by Timothy Hatcher.
The frontend dispatches all queued messages from the backend synchronously, even if there are
hundreds of messages, or even if some of the messages take a long time (>10ms) to process.
This patch adds a time limit to the frontend's message dispatcher. If the time limit is exceeded
when processing the message queue, unhandled messages remain in the queue and the dispatcher goes
to sleep until the next run loop (obtained by a new setTimeout).
This has the effect of removing stutters when the message queue has hundreds of small messages.
The outliers are still the same since some single messages can take over 200ms to be handled.
This patch also improves performance logging in InspectorBackend so that it is easier to see
message handling times and their distribution among run loop turns.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass): Add a new diagnostic flag that warns about slow message handling.
(InspectorBackendClass.prototype._dispatchCallback.get if): Improve logging.
(InspectorBackendClass.prototype._dispatchCallback): Improve logging.
(InspectorBackendClass.prototype._dispatchEvent): Improve logging.
* UserInterface/Protocol/MessageDispatcher.js:
(WebInspector.dispatchNextQueuedMessageFromBackend): Keep track of a time limit for message
dispatching, and set a new timeout if we exceed the time limit.
2014-07-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Right edge of Timeline Record button does not work
https://bugs.webkit.org/show_bug.cgi?id=135444
Reviewed by Timothy Hatcher.
When hovering the record button we would show the status text, however
because the left edge of the status text box would overlap the right
edge of the record button causing completely unexpected behavior.
Position the status text correctly so that it never overlaps the record
button. 5px to match the left margin of the record button, and another
2px for some padding between the button and text.
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
2014-07-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.profile missing profile information
https://bugs.webkit.org/show_bug.cgi?id=135432
Reviewed by Timothy Hatcher.
* UserInterface/Models/ScriptTimelineRecord.js:
Delete the payload information as soon as it has been processed.
It is no longer needed anymore and can be garbage collected.
2014-07-30 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: ProbeSetDetailsSection should not create live location links for unresolved breakpoints
https://bugs.webkit.org/show_bug.cgi?id=135367
Reviewed by Timothy Hatcher.
Regenerate the source code link whenever the breakpoint resolved status changes. If it is
resolved, then we can create a live location link that respects source maps.
* UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection):
(WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement): Added.
(WebInspector.ProbeSetDetailsSection.prototype._probeSetPositionTextOrLink): Deleted.
2014-07-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: 80% of time during recording is spent creating source code locations for profile nodes
https://bugs.webkit.org/show_bug.cgi?id=135399
Reviewed by Timothy Hatcher.
Profiling the inspector while recording a timeline, a significant amount of
time was spent creating SourceCodeLocation objects for profiling information
and call frames. A lot of this data was eagerly being processed, even though
it would not immediately be presentable to the user.
This makes two significant changes. We create a LazySourceCodeLocation class
which does as little as possible until display information is requested. We
also lazily convert the profiler payload data to a Profile object, so the
processing is only done if you drill into the Script specific timeline.
This results in a significant performance improvement in the overview view.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
(WebInspector.TimelineManager.prototype._callFramesFromPayload.createCallFrame):
(WebInspector.TimelineManager.prototype._callFramesFromPayload):
(WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeFromPayload): Deleted.
(WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeCallFromPayload): Deleted.
(WebInspector.TimelineManager.prototype._profileFromPayload): Deleted.
Do not eagerly process profile payloads. Instead pass the payload to ScriptTimelineRecords.
Likewise create callframes with lazy source code locations to do the minimum amount of work.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord):
(WebInspector.ScriptTimelineRecord.prototype.get profile):
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeCallFromPayload):
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
Only when the profile is asked do we process the profiler payload information.
This defer the processing until at least the user drills into the Script timeline.
* UserInterface/Main.html:
Add the new class and ensure SourceCodeLocation is available beforehand.
* UserInterface/Models/LazySourceCodeLocation.js: Added.
(WebInspector.LazySourceCodeLocation):
(WebInspector.LazySourceCodeLocation.prototype.isEqual):
(WebInspector.LazySourceCodeLocation.prototype.get sourceCode):
(WebInspector.LazySourceCodeLocation.prototype.set sourceCode):
(WebInspector.LazySourceCodeLocation.prototype.get formattedLineNumber):
(WebInspector.LazySourceCodeLocation.prototype.get formattedColumnNumber):
(WebInspector.LazySourceCodeLocation.prototype.formattedPosition):
(WebInspector.LazySourceCodeLocation.prototype.hasFormattedLocation):
(WebInspector.LazySourceCodeLocation.prototype.hasDifferentDisplayLocation):
(WebInspector.LazySourceCodeLocation.prototype.resolveMappedLocation):
(WebInspector.LazySourceCodeLocation.prototype._lazyInitialization):
Only when display information is requested will we perform extra processing.
For basic information we do not need to check for formatted (pretty-printed) info.
* UserInterface/Models/SourceCode.js:
(WebInspector.SourceCode.prototype.createLazySourceCodeLocation):
Provide an explict create function for lazy source codes.
* UserInterface/Models/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype.set sourceCode):
(WebInspector.SourceCodeLocation.prototype.get displaySourceCode):
(WebInspector.SourceCodeLocation.prototype.get displayLineNumber):
(WebInspector.SourceCodeLocation.prototype.get displayColumnNumber):
(WebInspector.SourceCodeLocation.prototype.hasMappedLocation):
(WebInspector.SourceCodeLocation.prototype.setSourceCode):
(WebInspector.SourceCodeLocation.prototype.resolveMappedLocation):
(WebInspector.SourceCodeLocation.prototype._makeChangeAndDispatchChangeEventIfNeeded):
(WebInspector.SourceCodeLocation.prototype._resolveMappedLocation): Deleted.
Include two protected functions which LazySourceCodeLocation overrides.
2014-07-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Only compute full ProfileNode times if needed - Legacy Profiler
https://bugs.webkit.org/show_bug.cgi?id=135406
Reviewed by Timothy Hatcher.
Full ProfileNode times are only used by the Legacy Profiler. The new profile
information in the Scripts Timelines currently never uses the pass. We should
avoid calculating it if we never use it.
* UserInterface/Models/ProfileNode.js:
(WebInspector.ProfileNode.prototype.get startTime):
(WebInspector.ProfileNode.prototype.get endTime):
(WebInspector.ProfileNode.prototype.get selfTime):
(WebInspector.ProfileNode.prototype.get totalTime):
(WebInspector.ProfileNode.prototype.establishRelationships):
(WebInspector.ProfileNode.prototype._computeTotalTimes):
2014-07-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reduce forced layouts in TimelineOverview
https://bugs.webkit.org/show_bug.cgi?id=135405
Reviewed by Timothy Hatcher.
Remove another forced layout. The scroll container won't
change size unless the ContentView itself resized. Make the
distinction between a layout update due to a resize and
normal events (scale changes, etc) and only calculate
element sizes then.
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.updateLayout):
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.updateLayoutForResize):
2014-07-29 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: breakpoints are always speculatively resolved when restored from local storage
https://bugs.webkit.org/show_bug.cgi?id=135396
Reviewed by Timothy Hatcher.
A longstanding quirk/optimization in the frontend is that we immediately set a breakpoint
as resolved if the breakpoint was successfully set in the backend. This ensures that clicking in
the gutter immediately produces a resolved breakpoint with only one round-trip.
However, not all breakpoints should be speculatively resolved, because the corresponding resource
may not be loaded yet. This situation causes problems for code that assumes a resolved breakpoint
also has a valid sourceCodeLocation.sourceCode.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.restoreBreakpointsSoon): Don't leak the variable to global scope.
(WebInspector.DebuggerManager):
(WebInspector.DebuggerManager.prototype.speculativelyResolveBreakpoint):
(WebInspector.DebuggerManager.prototype.addBreakpoint): Speculatively resolve here if requested
using the success callback passed to _setBreakpoint.
(WebInspector.DebuggerManager.prototype.didSetBreakpoint): Emit simulated
Debugger.breakpointResolved events since they are only sent by the backend when a script is parsed.
(WebInspector.DebuggerManager.prototype._setBreakpoint):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded): Request speculative resolve.
2014-07-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Eliminate more forced layouts during timeline recordings
https://bugs.webkit.org/show_bug.cgi?id=135397
Reviewed by Timothy Hatcher.
Instead of computing the secondsPerPixel in each overview graph,
we can ask the overview view itself which has a cached value.
The computation used to force a layout, now it doesn't need to.
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
* UserInterface/Views/NetworkTimelineOverviewGraph.js:
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.get timelineOverview):
(WebInspector.TimelineOverviewGraph.prototype.set timelineOverview):
2014-07-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Incorrectly sized TimelineDataGrid event bubble
https://bugs.webkit.org/show_bug.cgi?id=135371
Reviewed by Timothy Hatcher.
Previously the secondsPerPixel calculation was relying on an element
that may not be sized yet. This was resulting in a visibleWidth of 0
and resulted in secondsPerPixel being Infinity. Fortunately, the
graph data source already knows the secondsPerPixel so we can just
ask it. Getting the correct value and eliminating forced layouts.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.get secondsPerPixel):
* UserInterface/Views/TimelineDataGridNode.js:
2014-07-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Reduce work creating the initial WebInspector.TimelineRecordBar
https://bugs.webkit.org/show_bug.cgi?id=135373
Reviewed by Timothy Hatcher.
Eliminate a bit of extra work creating TimelineRecordBars. Previously
the constructor would setup an empty list of records, and then we would
immediately after replace them. Now just set them in the constructor.
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
* UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
* UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBar):
2014-07-28 Timothy Hatcher <timothy@apple.com>
Web Inspector: Unexpected dark border on selected but window inactive timeline
https://bugs.webkit.org/show_bug.cgi?id=135360
Update the border-top colors for the item adjacent to the selected item.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
2014-07-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Disable Copy Row in Timelines DataGrids, it does not currently provide value
https://bugs.webkit.org/show_bug.cgi?id=135364
Reviewed by Timothy Hatcher.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode):
(WebInspector.DataGridNode.prototype.get copyable):
(WebInspector.DataGridNode.prototype.set copyable):
* UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode):
2014-07-26 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: ReplayManager uses undefined events and inconsistent event data
https://bugs.webkit.org/show_bug.cgi?id=135222
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.prototype.sessionCreated.this):
(WebInspector.ReplayManager.prototype.sessionCreated):
(WebInspector.ReplayManager.prototype.segmentLoaded):
(WebInspector.ReplayManager.prototype.segmentUnloaded):
(WebInspector.ReplayManager.prototype.stopCapturing):
(WebInspector.ReplayManager.prototype.replayToMarkIndex):
(WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
(WebInspector.ReplayManager.prototype.segmentCompleted):
(WebInspector.ReplayManager.prototype.startCapturing):
(WebInspector.ReplayManager.prototype._changeSessionState):
2014-07-26 Joseph Pecoraro <pecoraro@apple.com>
Remove accidental debugging console.log
https://bugs.webkit.org/show_bug.cgi?id=135315
Reviewed by Alexey Proskuryakov.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid):
2014-07-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timelines performance is very slow, has many forced layouts
https://bugs.webkit.org/show_bug.cgi?id=135313
Reviewed by Timothy Hatcher.
* UserInterface/Views/NavigationItem.js:
(WebInspector.NavigationItem):
(WebInspector.NavigationItem.prototype.get hidden):
(WebInspector.NavigationItem.prototype.set hidden):
Don't have the parent navigation bar update layout if the hidden state did not change.
This greatly reduces the number of forced layouts as timeline nodes are added.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
(WebInspector.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
Don't do any work if this is not changing the view.
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibilitySoon):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
When first selecting a specific timeline (Layout / Scripts) we would have a very long hang
updating the content. Most of this was time spent updating the overflow shadow visibility
because every single tree element addition was causing a layout invalidation and forced layout.
Coalesce all of the tree element adds into a single update at the end.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.updateLayout):
Calculating the visible duration checks offsetLeft. Calculate this once, outside
of a loop down below, to prevent or reduce possible forced layouts.
* UserInterface/Views/TreeOutline.js:
(TreeElement.prototype.revealed):
Prevent doing any work for timeline tree elements outside of the selected time range.
Previously they were considered revealed if a parent was expanded, even though that
parent was hidden. This greatly reduces the amount of work during a recording, since
previously we were potentially doing a forced layout for hidden nodes.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
Ignore ProfileNode, which may happen here in the Script timeline.
2014-07-23 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: InspectorBackend's promise-based agent API does not support multiple return values
https://bugs.webkit.org/show_bug.cgi?id=135207
Reviewed by Joseph Pecoraro.
The promise wrapper implementation assumed that the protocol callback supplies a single 'payload'
return value, but InspectorBackend will actually unpack multiple return values as multiple
callback arguments. Set a special flag so it will not try to apply multiple return values.
It would read better if multiple return values could be spread to the resolve callback, but
multiple argument support are not required by the Promises specification, so we won't use them.
* UserInterface/Controllers/ReplayManager.js: Fix uses of promise return values.
(WebInspector.ReplayManager):
* UserInterface/Models/ReplaySession.js:
* UserInterface/Models/ReplaySessionSegment.js:
(WebInspector.ReplaySessionSegment):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.promise):
2014-07-21 Saam Barati <sbarati@apple.com>
Web Inspector: Add esprima to the WebInspector.
https://bugs.webkit.org/show_bug.cgi?id=135098
Reviewed by Joseph Pecoraro.
This patch includes Esprima into the WebInspector and attaches its
exported function onto the WebInspector namespace object.
* UserInterface/External/Esprima: Added.
* UserInterface/External/Esprima/esprima.js: Added.
(.):
* UserInterface/Main.html:
2014-07-21 Jonathan Wells <jonowells@apple.com>
Back/Forward arrows (modern) are too large.
https://bugs.webkit.org/show_bug.cgi?id=135073
Reviewed by Joseph Pecoraro.
Changes to adjust new forward and back arrow sizes to be more consistent with the
universal design language. Moved WebInspector.Platform definition to its own file.
Refactored handling of image versions inside ImageUtilities.js.
* UserInterface/Base/ImageUtilities.js:
(.restoreImage):
(.generateImage):
(generateColoredImagesForCSS):
Make the default image versioning smarter.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.contentLoaded.WebInspector.Platform.version.toString): Deleted.
(WebInspector.contentLoaded.WebInspector.Platform.toString): Deleted.
* UserInterface/Base/Platform.js: Added.
Move platform information definition into Platform.js.
* UserInterface/Main.html: Include Platform.js.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
* UserInterface/Views/FindBanner.css:
(.find-banner > button > .glyph):
(body.mac-platform.legacy .find-banner > button > .glyph):
(.find-banner > button.segmented.left > .glyph):
(body.mac-platform.legacy .find-banner > button.segmented.left > .glyph):
(.find-banner > button.segmented.right > .glyph):
(body.mac-platform.legacy .find-banner > button.segmented.right > .glyph):
(.find-banner > button.segmented):
(body.mac-platform.legacy .find-banner > button.segmented):
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
Size of forward and back arrows adjusted.
2014-07-19 Saam Barati <sbarati@apple.com>
Web Inspector: TextContentView calls wrong prototype function in the hidden() function
https://bugs.webkit.org/show_bug.cgi?id=135097
Reviewed by Timothy Hatcher.
Corollary bug to: https://bugs.webkit.org/show_bug.cgi?id=135001
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView.prototype.hidden):
2014-07-18 Timothy Hatcher <timothy@apple.com>
Revert r169735 since it broke Timeline, and fix bug 129696 in a more targeted way.
REGRESSION (r169735): Web Inspector: Timeline tree outline missing data until collapse-expand.
https://bugs.webkit.org/show_bug.cgi?id=134845
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.adjustCollapsedRange): Use button isteand of assuming
item.listItemElement will be ready to use. The listItemElement node is lazily created.
* UserInterface/Views/TreeOutline.js:
(TreeOutline.prototype.appendChild): Don't attach unless _childrenListNode exists.
(TreeOutline.prototype.insertChild): Ditto.
2014-07-17 Timothy Hatcher <timothy@apple.com>
Make console.profile record to the Timeline.
https://bugs.webkit.org/show_bug.cgi?id=134643
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing):
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype.capturingStopped):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
* UserInterface/Images/TimelineRecordConsoleProfile.svg: Added.
* UserInterface/Models/ScriptTimelineRecord.js:
* UserInterface/Protocol/TimelineObserver.js:
(WebInspector.TimelineObserver.prototype.eventRecorded):
(WebInspector.TimelineObserver.prototype.recordingStarted):
(WebInspector.TimelineObserver.prototype.recordingStopped):
* UserInterface/Views/TimelineIcons.css:
(.console-profile-record .icon):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
2014-07-16 Saam Barati <sbarati@apple.com>
Web Inspector: TextContentView calls the wrong super function in shown()
https://bugs.webkit.org/show_bug.cgi?id=135001
Reviewed by Timothy Hatcher.
TextContentView calls ResourceContentView.shown instead of ContentView.shown.
It should call ContentView.shown because ContentView is its prototype.
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView.prototype.shown):
2014-07-15 Jonathan Wells <jonowells@apple.com>
Web Inspector: Modernize UI styles and better sync with platform styles
https://bugs.webkit.org/show_bug.cgi?id=134846
Reviewed by Timothy Hatcher.
Updated styles to better match the OS UI design. Updated the forward/back button.
Moved several rules to selectors that support older OS designs. Added global platform
data to support this patch.
* UserInterface/Images/BackArrow.svg: Added.
* UserInterface/Images/BackArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/BackArrow.svg.
* UserInterface/Images/ForwardArrow.svg: Added.
* UserInterface/Images/ForwardArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/ForwardArrow.svg.
* UserInterface/Base/ImageUtilities.js: Updated image version
(.generateImage.generateModernImage):
(.generateImage.generateLegacyImage):
(.generateImage):
Updated image generation to support modern look. Updated versioning scheme and version.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded.WebInspector.Platform.version.toString):
(WebInspector.contentLoaded.WebInspector.Platform.toString):
(WebInspector.contentLoaded):
Added global platform information.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
Updated back and forward buttons.
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
Updated images for the find banner.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Added new images.
* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button > .label):
(body.mac-platform.legacy .toolbar .item.button > .label):
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section):
(body.mac-platform.legacy .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section + .style-declaration-section):
(.style-declaration-section.last-in-group):
(body.mac-platform.legacy .style-declaration-section.last-in-group):
(.style-declaration-section.last-in-group + .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child):
(.style-declaration-section + .style-declaration-section): Deleted.
(.style-declaration-section.last-in-group + .style-declaration-section:last-child): Deleted.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content > .pseudo-classes):
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.hovered:not(.selected) .selection):
(body.mac-platform.legacy .dom-tree-outline li.hovered:not(.selected) .selection):
(.dom-tree-outline li.elements-drag-over .selection):
(body.mac-platform.legacy .dom-tree-outline li.elements-drag-over .selection):
(.dom-tree-outline:focus li.selected .selection):
(body.mac-platform.legacy .dom-tree-outline:focus li.selected .selection):
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
(body.mac-platform.legacy .toolbar .dashboard-container):
(body.window-inactive .toolbar .dashboard-container):
(body.mac-platform.legacy.window-inactive .toolbar .dashboard-container):
(.toolbar .dashboard):
(body.window-inactive .toolbar .dashboard):
(body.mac-platform.legacy.window-inactive .toolbar .dashboard):
* UserInterface/Views/DataGrid.css:
(.data-grid th):
(body.mac-platform.legacy .data-grid th):
(.data-grid tr.selected):
(body.mac-platform.legacy .data-grid tr.selected):
(.data-grid:focus tr.selected):
(body.mac-platform.legacy .data-grid:focus tr.selected):
* UserInterface/Views/DetailsSection.css:
(.details-section):
(body.mac-platform.legacy .details-section):
(.details-section .details-section):
(body.mac-platform.legacy .details-section .details-section):
(.details-section .details-section:last-child):
(.details-section .details-section:first-child):
(.details-section > .header):
(body.mac-platform.legacy .details-section > .header):
(.details-section .details-section > .header):
(body.mac-platform.mountain-lion .details-section .details-section > .header):
(.details-section .details-section.collaspsed > .header):
(.details-section.computed-style-properties:not(.collapsed) > .header):
(body.mac-platform.legacy .details-section.computed-style-properties:not(.collapsed) > .header):
(.details-section > .content > .group):
(body.mac-platform.legacy .details-section > .content > .group):
(.details-section > .content > .group:last-child):
(.details-section > .content > .group:nth-child(even)):
(body.mac-platform.legacy .details-section > .content > .group:nth-child(even)):
(body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *):
(.details-section > .content > .group:last-child > .row.simple:last-child > *): Deleted.
* UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]):
(body.mac-platform.legacy .filter-bar > input[type="search"]):
* UserInterface/Views/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline .item.selected):
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline .item.selected):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline:focus .item.selected):
(body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
(body.mac-platform.legacy.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
* UserInterface/Views/RadioButtonNavigationItem.css:
(.navigation-bar .item.radio.button.text-only.selected):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected):
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(.sidebar > .panel.details.css-style .rules .new-rule):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule):
(.sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
* UserInterface/Views/ScopeBar.css:
(.scope-bar > li):
(body.mac-platform.legacy .scope-bar > li):
(.scope-bar > li.selected):
(body.mac-platform.legacy .scope-bar > li.selected):
* UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]):
(body.mac-platform.legacy .search-bar > input[type="search"]):
* UserInterface/Views/Sidebar.css:
(.sidebar):
(body.mac-platform.legacy .sidebar):
(body.mac-platform.legacy.window-inactive .sidebar):
(body.mac-platform.legacy .sidebar.right):
(body.window-inactive .sidebar): Deleted.
(.sidebar.right): Deleted.
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .title-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):
Style updates for new look and feel.
2014-07-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Debugger Pause button does not work
https://bugs.webkit.org/show_bug.cgi?id=134785
Reviewed by Timothy Hatcher.
Previously we were automatically resuming if we had no recognized
call frames in the call stack we get when paused. However, we
were accidentally skipping over anonymous scripts instead of
just Web Inspector originated call frames.
Now that we allow anonymous scripts we can step into anonymous
scripts (e.g. evals, new Function(...)) as expected.
Also, remove the condition of automatically resuming if the
call stack was empty. The UI handles this with "No Call Frames".
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
2014-07-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS Autocompletion: "background" only has colors, should support others
https://bugs.webkit.org/show_bug.cgi?id=134839
Reviewed by Timothy Hatcher.
Update and consolidate the background related CSS properties
and include sub-property completions in the shorthand property.
Also take the opportunity to add or update other properties
(-webkit-alt, -webkit-text-decoration-skip, -webkit-aspect-ratio)
and remove unnecessary newlines / commas in the list.
* UserInterface/Models/CSSKeywordCompletions.js:
2014-07-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Debugger Continue button is incorrectly sized
https://bugs.webkit.org/show_bug.cgi?id=134786
Reviewed by Timothy Hatcher.
Before this patch everything in the DebuggerDashboardView was flexing.
Normally, if the contents were not too wide, this would just behave
as expected and be centered. If the content was too wide, then each
element would flex uniformly and overlap uniformly. That was not expected.
This patch changes makes everything but the link have a non-flexible
size. If the link (at the end) flexs it will have a nice ellipsis
text truncation, and the rest of the content will be left justified.
This also fixes a few other minor issues seen in the view.
* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger .navigation-bar):
Reduce the complexity, give the nav bar (the resume button) some simple padding.
(.dashboard.debugger > div):
Make everything non-flex by default.
(.dashboard.debugger > .location):
The location will have an inner element flex, so make it flex.
(.dashboard.debugger > .location > *):
Make everything in .location non-flex by default.
(.dashboard.debugger > .location .go-to-link):
Make the link flex and truncate cleanly.
(.dashboard.debugger > .location .function-name):
Fix vertical alignment when the toolbar has small icons.
* UserInterface/Views/DebuggerDashboardView.js:
(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
Fix class name spelling.
2014-07-09 Brent Fulgham <bfulgham@apple.com>
[Win] Remove uses of 'bash' in build system
https://bugs.webkit.org/show_bug.cgi?id=134782
<rdar://problem/17615533>
Reviewed by Dean Jackson.
Remove uses of 'bash' by replacing Windows-specific bash scripts
with Perl equivalents.
* WebInspectorUI.vcxproj/WebInspectorUI.make:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
* WebInspectorUI.vcxproj/build-webinspectorui.pl: Copied from Source/WebInspectorUI/WebInspectorUI.vcxproj/build-webinspectorui.sh.
* WebInspectorUI.vcxproj/build-webinspectorui.sh: Removed.
2014-07-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Debugger popovers should not dismiss when mousing over them
https://bugs.webkit.org/show_bug.cgi?id=134687
Reviewed by David Kilzer.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
Actually install the listeners in the set. Regression from code refactoring in r165052.
2014-07-07 Jonathan Wells <jonowells@apple.com>
Web Inspector: CSS style declaration editor should ignore empty lines when determining prefix whitespace
https://bugs.webkit.org/show_bug.cgi?id=134704
Reviewed by Joseph Pecoraro.
When checking for zero-length prefix whitespace, completely empty lines are now ignored
as these lines are most often used for organizing rules into groups and often have their
whitespace removed due to trailing whitespace removal conventions.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2014-07-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exception debugging iOS 7 NetworkAgent.loadResource is unavailable
https://bugs.webkit.org/show_bug.cgi?id=134689
Reviewed by Darin Adler.
Gracefully handle if NetworkAgent.loadResource is unavailable.
* UserInterface/Controllers/SourceMapManager.js:
(WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
* UserInterface/Models/SourceMapResource.js:
2014-07-01 Jonathan Wells <jonowells@apple.com>
Web Inspector: Hexadecimal color values in all CSS editors are purple when they should be blue
https://bugs.webkit.org/show_bug.cgi?id=133997
Reviewed by Joseph Pecoraro.
CodeMirror 4 removed the style for hex colors from the CSS tokenizer.
Feature has been added to CodeMirrorAdditions.js.
* UserInterface/Views/CodeMirrorAdditions.js: Added hex-color to style for a valid hexadecimal color.
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css: Added selector for hexadecimal color.
2014-06-26 Jono Wells <jonowells@apple.com>
Web Inspector: Command-/ (slash) now auto-comments code via CodeMirror 4. Should remove as command to pause
https://bugs.webkit.org/show_bug.cgi?id=134313
Reviewed by Timothy Hatcher.
Changed alternate command to pause/resume from command-slash to command-backslash.
Command-slash sets/unsets comments in all code editors.
* UserInterface/Models/KeyboardShortcut.js: Added Backslash.
* UserInterface/Views/DebuggerSidebarPanel.js: Changed pauseOrResumeAlternateKeyboardShortcut to use Backslash instead of Slash.
2014-06-25 Jono Wells <jonowells@apple.com>
Web Inspector: Rules panel's strikethrough gets confused at -webkit-align-items: flex-start;
https://bugs.webkit.org/show_bug.cgi?id=133515
Reviewed by Timothy Hatcher.
The CSS style declaration text editor uses the author's shortest instance of prefix whitespace
to create an indentation baseline for the style editor. This needs to consider the possibility
that there is no whitespace prefixing one of the rules. Also clarified a FIXME line.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js: Account for zero-length whitespace.
2014-06-25 Dana Burkart <dburkart@apple.com>
Add support for 5-tuple versioning.
Reviewed by David Farler.
* Configurations/Version.xcconfig:
2014-06-24 Jono Wells <jonowells@apple.com>
Web Inspector: clicking "Show All Nodes" button throws TypeError
https://bugs.webkit.org/show_bug.cgi?id=133701
Reviewed by Timothy Hatcher.
The method used for isEventWithinDisclosureTriangle needs to consider the possibility that the
targeted TreeElement isn't contained within the visible DOM, for instance in the case of the
"Show All Nodes" button immediately after it is pressed.
* UserInterface/Views/TreeOutline.js:
(TreeElement.prototype.isEventWithinDisclosureTriangle): Check to make sure TreeElement node is in the visible DOM.
2014-06-24 Jono Wells <jonowells@apple.com>
Web Inspector: TypeError when hovering over "Show All Nodes" button in the Dom Tree inspector
https://bugs.webkit.org/show_bug.cgi?id=133699
Reviewed by Geoffrey Garen.
The call to element._createTooltipForNode() was failing because element was sometimes not a
DOMTreeOutline but rather only a TreeElement (in the case of the "Show All Nodes" button specifically).
A check for type fixes this issue.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._onmousemove): Check for presence of _createTooltipForNode.
2014-06-21 Jono Wells <jonowells@apple.com>
Web Inspector: UI fonts should pull from system fonts automatically to whatever degree possible
https://bugs.webkit.org/show_bug.cgi?id=133966
Reviewed by Timothy Hatcher.
Updated font families to use -webkit-system-font, and set this on the body to be
inherited. Also made sure that popovers use Menlo as the default. Updated
autocompletions with system font names.
* UserInterface/Models/CSSKeywordCompletions.js: Updated completions with available system fonts.
* UserInterface/Controllers/CodeMirrorGradientEditingController.css:
* UserInterface/Views/Breakpoint.css:
* UserInterface/Views/ButtonNavigationItem.css:
* UserInterface/Views/ButtonToolbarItem.css:
* UserInterface/Views/CSSStyleDeclarationSection.css:
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
* UserInterface/Views/CodeMirrorOverrides.css:
* UserInterface/Views/DataGrid.css:
* UserInterface/Views/DebuggerDashboardView.css:
* UserInterface/Views/DetailsSection.css:
* UserInterface/Views/FindBanner.css:
* UserInterface/Views/GoToLineDialog.css:
* UserInterface/Views/HierarchicalPathComponent.css:
* UserInterface/Views/Main.css:
* UserInterface/Views/NavigationSidebarPanel.css:
* UserInterface/Views/ProbeSetDataGrid.css:
* UserInterface/Views/RulesStyleDetailsPanel.css:
* UserInterface/Views/ScopeBar.css:
* UserInterface/Views/SourceCodeTextEditor.css:
* UserInterface/Views/TimelineDataGrid.css:
* UserInterface/Views/TimelineRuler.css:
* UserInterface/Views/TimelineSidebarPanel.css:
Changes to fonts. Set default font stack to -webkit-system-font, sans-serif. Default size is
11px. Only changes to this default size or changes to the font (to Menlo, monospace usually) remain.
2014-06-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Esc in quick console no longer toggles console drawer
https://bugs.webkit.org/show_bug.cgi?id=134068
Reviewed by Timothy Hatcher.
For Escape to toggle console behavior we were relying on the Escape
keyboard event to propagate up to the window and be handled by
QuickConsole's global keyboard shortcut. With CodeMirror 4, all
editors have a default "Esc" key handler to reduce multiple selections
to a single selection. Unfortunately this always prevents default,
which our keyboard shortcut respects and doesn't toggle the console.
Workaround this by putting a specific handler for when a Console
Prompt is empty and the Escape key is triggered. This does not go
through the normal ConsolePrompt delegate because the delegate
is never the QuickConsole, it is actually the JavaScript log.
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt):
(WebInspector.ConsolePrompt.prototype.set escapeKeyHandlerWhenEmpty):
(WebInspector.ConsolePrompt.prototype._handleEscapeKey):
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole.this.prompt.escapeKeyHandlerWhenEmpty):
(WebInspector.QuickConsole):
2014-06-18 James Craig <jcraig@apple.com>
Web Inspector: AXI: expose aria-relevant
https://bugs.webkit.org/show_bug.cgi?id=130913
Reviewed by Joseph Pecoraro.
Expose ARIA live region relevance in Web Inspector.
E.g. "Live: Assertive (Additions, Text)"
* Localizations/en.lproj/localizedStrings.js: New strings.
* UserInterface/Models/DOMNode.js: One additional property passed.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js: UI updates to support new property.
2014-06-18 Simon Fraser <simon.fraser@apple.com>
Add rebeccapurple to CSS named color list
https://bugs.webkit.org/show_bug.cgi?id=133804
Reviewed by Jer Noble.
Add the named color "rebeccapurple" (#639).
* UserInterface/External/CodeMirror/css.js:
* UserInterface/Models/CSSKeywordCompletions.js:
* UserInterface/Models/Color.js:
2014-06-18 Jono Wells <jonowells@apple.com>
Web Inspector: REGRESSION: Style declaration editor: placeholder misaligned
https://bugs.webkit.org/show_bug.cgi?id=134012
Reviewed by Timothy Hatcher.
Removed a rule needed to align the placeholder for selectors in
the style declation text editors with no rules declared in
http://trac.webkit.org/changeset/170077. The necessary
rule has been added back to fix the issue.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
2014-06-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: PrettyPrinting regression on "var a=1"
https://bugs.webkit.org/show_bug.cgi?id=134001
Reviewed by Timothy Hatcher.
Previously operators did not get a token type. After a CodeMirror
update they now have a token type of "operator".
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* UserInterface/Views/CodeMirrorFormatters.js:
2014-06-17 Jono Wells <jonowells@apple.com>
Web Inspector: Two lines in CSS rule are hidden until resize or click
https://bugs.webkit.org/show_bug.cgi?id=133951
Reviewed by Joseph Pecoraro.
Update to CodeMirror 4.2 fixed the issue.
* Tools/PrettyPrinting/codemirror.js:
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.js:
* UserInterface/External/CodeMirror/clojure.js:
* UserInterface/External/CodeMirror/closebrackets.js:
* 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/placeholder.js:
* UserInterface/External/CodeMirror/runmode.js:
* UserInterface/External/CodeMirror/sass.js:
* UserInterface/External/CodeMirror/searchcursor.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/xml.js:
Update CodeMirror 4.1 to CodeMirror 4.2.0.
2014-06-17 Jono Wells <jonowells@apple.com>
Web Inspector: style declaration editor: visual highlight doesn't match actual selected text
https://bugs.webkit.org/show_bug.cgi?id=133965
Reviewed by Joseph Pecoraro.
Update styles for css style editor to fix highlighting visual mismatch glitch.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
(.css-style-text-editor > .CodeMirror pre):
(.css-style-text-editor.read-only > .CodeMirror pre):
Updated styles to eliminate highlight mismatch by adjusting the padding and
text-indent values.
2014-06-10 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: recording is overused as both noun and verb in TimelineManager
https://bugs.webkit.org/show_bug.cgi?id=132878
Reviewed by Joseph Pecoraro.
Rename most uses of the verb 'recording' to the verb 'capturing' for timelines.
Rename getter for the recording to activeRecording, and recordingEnabled to isCapturing().
When the timeline manager can handle multiple timeline data sets (i.e., 'recordings'),
it will be very confusing to have 'recording' as a plural noun and verb in the model.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.get activeRecording):
(WebInspector.TimelineManager.prototype.isCapturing):
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
(WebInspector.TimelineManager.prototype._addRecord):
(WebInspector.TimelineManager.prototype._startAutoCapturing):
(WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
(WebInspector.TimelineManager.prototype._mainResourceDidChange):
(WebInspector.TimelineManager.prototype._resourceWasAdded):
(WebInspector.TimelineManager.prototype.get recording): Deleted.
(WebInspector.TimelineManager.prototype.get recordingEnabled): Deleted.
(WebInspector.TimelineManager.prototype.startRecording): Deleted.
(WebInspector.TimelineManager.prototype.stopRecording): Deleted.
(WebInspector.TimelineManager.prototype._startAutoRecording): Deleted.
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard):
(WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
(WebInspector.DefaultDashboard.prototype._capturingStopped):
(WebInspector.DefaultDashboard.prototype._recordingStopped): Deleted.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.isTimelineProfilingEnabled):
(InspectorFrontendAPI.setTimelineProfilingEnabled):
* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._capturingStarted):
(WebInspector.TimelineContentView.prototype._capturingStopped):
(WebInspector.TimelineContentView.prototype._recordingStarted): Deleted.
(WebInspector.TimelineContentView.prototype._recordingStopped): Deleted.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.initialize):
(WebInspector.TimelineSidebarPanel.prototype._capturingStarted):
(WebInspector.TimelineSidebarPanel.prototype._capturingStopped):
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOver):
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOut):
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
(WebInspector.TimelineSidebarPanel.prototype._replayCaptureButtonClicked):
(WebInspector.TimelineSidebarPanel.prototype._recordingStarted): Deleted.
(WebInspector.TimelineSidebarPanel.prototype._recordingStopped): Deleted.
2014-06-09 Jono Wells <jonowells@apple.com>
REGRESSION: Web Inspector: Exception showing the DOM tree for a node with too many children
https://bugs.webkit.org/show_bug.cgi?id=129696
Fix issue where sometimes inspecting an element will try to attach the "show all nodes" button
before the expand function is called in TreeElement before _childrenListNode has been set.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TreeOutline.js:
(TreeOutline.prototype.appendChild):
(TreeOutline.prototype.insertChild):
Added check for existance of this._childrenListNode.
2014-05-29 Timothy Hatcher <timothy@apple.com>
Fix an exception in InspectorBackend.Command.prototype.supports.
https://bugs.webkit.org/show_bug.cgi?id=133384
Reviewed by Joseph Pecoraro.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.supports): Use some not any.
2014-05-19 Jono Wells <jonowells@apple.com>
Web Inspector: Inspect Element sometimes does not select the right DOM Node
https://bugs.webkit.org/show_bug.cgi?id=127938
Reviewed by Joseph Pecoraro.
Inspecting an element when the inspector is in a closed state was selecting the node but then
overriding the selection when DOMTreeContentView#_restoreSelectedNodeAfterUpdate was called.
Now when an element is inspected a flag prevents the restore from taking place.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager):
(WebInspector.DOMTreeManager.prototype.inspectElement):
(WebInspector.DOMTreeManager.prototype.inspectNodeObject):
Add WebInspector.DOMTreeManager#_restoreSelectedNodeIsAllowed.
(WebInspector.DOMTreeManager.prototype.get restoreSelectedNodeIsAllowed):
Added.
* UserInterface/Views/FrameDOMTreeContentView.js:
(WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
Add check for WebInspector.domTreeManager.restoreSelectedNodeIsAllowed.
2014-05-15 Jono Wells <jonowells@apple.com>
Web Inspector: Should remove JSDoc comment blocks.
https://bugs.webkit.org/show_bug.cgi?id=132984
Reviewed by Timothy Hatcher.
Remove JSDoc comment blocks. These are no longer necessary.
* UserInterface/Base/Main.js:
* UserInterface/Base/Object.js:
* UserInterface/Controllers/DOMTreeManager.js:
* UserInterface/Models/CSSCompletions.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Models/SourceMap.js:
* UserInterface/Protocol/InspectorBackend.js:
* UserInterface/Protocol/RemoteObject.js:
* UserInterface/Views/ApplicationCacheFrameContentView.js:
* UserInterface/Views/ConsoleMessage.js:
* UserInterface/Views/ConsoleMessageImpl.js:
* UserInterface/Views/ContextMenu.js:
* UserInterface/Views/DOMTreeElement.js:
* UserInterface/Views/DOMTreeOutline.js:
* UserInterface/Views/DOMTreeUpdater.js:
* UserInterface/Views/DataGrid.js:
* UserInterface/Views/DatabaseContentView.js:
* UserInterface/Views/EditingSupport.js:
* UserInterface/Views/ObjectPropertiesSection.js:
* UserInterface/Views/Popover.js:
* UserInterface/Views/TreeOutline.js:
JSDoc style comment blocks removed.
2014-05-13 Radu Stavila <stavila@adobe.com>
Web Inspector: Restore regionLayoutUpdated event in iOS7 inspector and remove regionOversetChanged
https://bugs.webkit.org/show_bug.cgi?id=132731
Reviewed by Joseph Pecoraro.
Added the regionLayoutUpdated event back into the inspector for compatibility with iOS 7
and removed regionOversetChanged from the iOS7 inspector as iOS 7 does not implement that event.
* UserInterface/Models/ScriptTimelineRecord.js:
* UserInterface/Protocol/CSSObserver.js:
(WebInspector.CSSObserver.prototype.regionLayoutUpdated):
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:
2014-05-12 Brent Fulgham <bfulgham@apple.com>
[Win] Correct Cygwin Path Confusion in WebInspectorUI Build
https://bugs.webkit.org/show_bug.cgi?id=132826
Reviewed by Joseph Pecoraro.
* Scripts/copy-user-interface-resources.pl: If the build is running
under Cygwin, be sure to use '/usr/bin/python', instead of just
'python' to avoid build errors.
2014-05-09 Alberto Garcia <berto@igalia.com>
jsmin.py license header confusing, mentions non-free license
https://bugs.webkit.org/show_bug.cgi?id=123665
Reviewed by Darin Adler.
Pull the most recent version from upstream, which has a clear
license.
* Scripts/jsmin.py:
2014-05-08 Jono Wells <jonowells@apple.com>
Web Inspector: Console error when launching Web Inspector "Mode htmlmixed failed to advance stream"
https://bugs.webkit.org/show_bug.cgi?id=132703
Reviewed by Timothy Hatcher.
The CodeMirror 4 update brought with it a change in the XML mode that
causes our XML mode extension to fail to consume empty paired quotes
correctly.
* UserInterface/Views/CodeMirrorAdditions.js:
Updated extendedXMLToken() to properly handle empty paired quotes.
2014-05-08 Jono Wells <jonowells@apple.com>
Web Inspector: Selecting frame in debugger sidebar doesn't reveal code
https://bugs.webkit.org/show_bug.cgi?id=132112
Reviewed by Joseph Pecoraro.
WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar was checking
only one of the two content trees in the DebuggerSidebarPanel instance. Added
base getter elementIsSelected to NavigationSidebarPanel and extended it in
DebuggerSidebarPanel.
* UserInterface/Base/Main.js:
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): modified logic to check `selectedSidebarPanel.elementIsSelected`.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.get elementIsSelected): Checks breakpoint and call stack trees.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.get elementIsSelected): Base implementation.
2014-05-06 Radu Stavila <stavila@adobe.com>
Web Inspector: [CSS Regions] Add the regionOversetChange event to the iOS 7.0 WebInspector UI
https://bugs.webkit.org/show_bug.cgi?id=132566
Reviewed by Antti Koivisto.
The regionOversetChange event was missing from the iOS7 WebInspector.
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:
2014-05-05 Radu Stavila <stavila@adobe.com>
[CSS Regions] Remove regionLayoutUpdate event
https://bugs.webkit.org/show_bug.cgi?id=132564
Reviewed by Simon Fraser.
The regionLayoutUpdate event was removed from the regions spec and was replaced by two other events:
regionOversetChange and regionFragmentChange.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.get regionLayoutUpdated): Deleted.
* UserInterface/Models/ScriptTimelineRecord.js:
* UserInterface/Protocol/CSSObserver.js:
(WebInspector.CSSObserver.prototype.regionLayoutUpdated): Deleted.
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-7.0.json:
2014-05-02 Jono Wells <jonowells@apple.com>
Web Inspector: CodeMirror 4 CSS mode new state data structure breaks helpers.
https://bugs.webkit.org/show_bug.cgi?id=132149
Reviewed by Joseph Pecoraro.
The update to CodeMirror 4 included dramatic changes to the CSS mode,
particularly the way it handles tokens. `state.stack` is gone, replaced
by `state.context`.
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* Tools/PrettyPrinting/codemirror.js:
* UserInterface/External/CodeMirror/codemirror.js:
* UserInterface/External/CodeMirror/livescript.js:
* UserInterface/External/CodeMirror/runmode.js:
Updates from ToT CodeMirror.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions):
* UserInterface/Views/CodeMirrorAdditions.js:
* UserInterface/Views/CodeMirrorFormatters.js: `lastToken` is null now for ":" characters.
Changes to match structural changes to the state object and changes to expected values of `lastToken`.
2014-04-30 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: clean up and decompose InspectorBackend functionality
https://bugs.webkit.org/show_bug.cgi?id=132387
Reviewed by Joseph Pecoraro.
Aside from renaming variables and other minor cleanup, this patch
changes the following:
When calling a command, only store callback data when a callback is passed.
Use explicit model objects for the agent, event, enum, and commands.
Separate the agent models from encoding and decoding of JSON messages.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype.registerEnum):
(InspectorBackendClass.prototype.registerEvent):
(InspectorBackendClass.prototype.registerDomainDispatcher):
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype.runAfterPendingDispatches):
(InspectorBackendClass.prototype._agentForDomain):
(InspectorBackendClass.prototype._registerSentCommand):
(InspectorBackendClass.prototype._dispatchCallback):
(InspectorBackendClass.prototype._dispatchEvent):
(InspectorBackendClass.prototype._invokeCommand):
(InspectorBackendClass.prototype._reportProtocolError):
(InspectorBackend.Agent):
(InspectorBackend.Agent.prototype.get domainName):
(InspectorBackend.Agent.prototype.set dispatcher):
(InspectorBackend.Agent.prototype.addEnum):
(InspectorBackend.Agent.prototype.addCommand):
(InspectorBackend.Agent.prototype.addEvent):
(InspectorBackend.Agent.prototype.getEvent):
(InspectorBackend.Agent.prototype.dispatchEvent):
(InspectorBackend.Command):
(InspectorBackend.Command.create):
(InspectorBackend.Command.prototype.get qualifiedName):
(InspectorBackend.Command.prototype.get commandName):
(InspectorBackend.Command.prototype.get callSignature):
(InspectorBackend.Command.prototype.get replySignature):
(InspectorBackend.Command.prototype.invoke):
(InspectorBackend.Command.prototype.supports):
(InspectorBackend.Command.prototype._invokeWithArguments):
(InspectorBackend.Event):
(InspectorBackend.Enum):
(InspectorBackendClass.prototype.callback): Deleted.
(InspectorBackendClass.prototype._registerPendingResponse): Deleted.
(InspectorBackendClass.prototype._invokeMethod): Deleted.
(InspectorBackendClass.prototype._getAgent): Deleted.
(InspectorBackendClass.prototype.reportProtocolError): Deleted.
(InspectorBackendCommand): Deleted.
(InspectorBackendCommand.create): Deleted.
(InspectorBackendCommand.prototype.invoke): Deleted.
(InspectorBackendCommand.prototype.supports): Deleted.
(InspectorBackendCommand.prototype._invokeWithArguments): Deleted.
2014-04-29 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: reduce per-protocol method function creation in InspectorBackend
https://bugs.webkit.org/show_bug.cgi?id=130701
Reviewed by Timothy Hatcher.
Instead of creating 4 bound functions for every backend method on startup, we
can share common functionality on the InspectorBackendCommand prototype. This
also splits the various client-facing protocol introspection mechanisms from
the message encoding/decoding code.
We use a workaround to make the command instances themselves callable as well
as having .invoke, .promise, and .supports. InspectorAgent.methodName returns a
trampoline function that performs the default method invocation. The trampoline's
__proto__ is patched to point to InspectorBackendClass.prototype, and the command
instance is saved in the closure and on the trampoline function itself.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype._registerPendingResponse):
(InspectorBackendClass.prototype._invokeMethod):
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype.registerEvent):
(InspectorBackendCommand):
(.callable):
(InspectorBackendCommand.create):
(InspectorBackendCommand.prototype.invoke):
(InspectorBackendCommand.prototype.promise):
(InspectorBackendCommand.prototype.supports):
(InspectorBackendCommand.prototype._invokeWithArguments):
(InspectorBackendClass.prototype._wrap): Deleted.
(InspectorBackendClass.prototype._invoke): Deleted.
(InspectorBackendClass.prototype._promise): Deleted.
(InspectorBackendClass.prototype._supports): Deleted.
(InspectorBackendClass.prototype._sendMessageToBackend): Deleted.
(InspectorBackendClass.prototype._wrapCallbackAndSendMessageObject): Deleted.
(InspectorBackendClass.prototype.sendMessageObjectToBackend): Deleted.
2014-04-29 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: DataGrid columns should be objects not Maps
https://bugs.webkit.org/show_bug.cgi?id=129383
Reviewed by Timothy Hatcher.
This reverts an earlier conversion to maps, so that column properties
(which rarely change) can be optimized.
String literals for column properties have been preserved so columns
can be easily converted into objects with methods.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.autoSizeColumns):
(WebInspector.DataGrid.prototype.set var):
(WebInspector.DataGrid.prototype.set if):
(WebInspector.DataGrid.prototype.insertColumn):
(WebInspector.DataGrid.prototype.removeColumn.get this):
(WebInspector.DataGrid.prototype.removeColumn):
(WebInspector.DataGrid.prototype.columnWidthsMap):
(WebInspector.DataGrid.prototype.applyColumnWidthsMap):
(WebInspector.DataGrid.prototype._collapseColumnGroupWithCell):
(WebInspector.DataGridNode.prototype.createCell.get if):
(WebInspector.DataGridNode.prototype.createCell):
(WebInspector.DataGrid.prototype.get length): Deleted.
* UserInterface/Views/ProbeSetDataGrid.js:
(WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged.get this):
(WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged):
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters.scopeBar.this.columns.get string_appeared_here):
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
2014-04-25 Jonathan Wells <jonowells@apple.com>
Web Inspector: DOM Tree debugger popover obscures dashboard
https://bugs.webkit.org/show_bug.cgi?id=132205
Reviewed by Timothy Hatcher.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard.visible): Change z-index to 1. Force stacking context.
* UserInterface/Views/Popover.css:
(.popover): Add z-index: 100.
2014-04-24 Timothy Hatcher <timothy@apple.com>
Web Inspector: Dashboard when paused in debugger shows some missing glyph boxes
https://bugs.webkit.org/show_bug.cgi?id=132113
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger > .location .function-name::after): Fix the codepoint for nbsp.
2014-04-24 Jonathan Wells <jonowells@apple.com>
Web Inspector: Should update to CodeMirror 4.1
https://bugs.webkit.org/show_bug.cgi?id=132140
Reviewed by Timothy Hatcher.
Updated to CodeMirror 4.1, which contains several bugfixes.
Release notes: http://codemirror.net/doc/releases.html#v4
* Tools/PrettyPrinting/codemirror.js:
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.js:
* UserInterface/External/CodeMirror/codemirror.js:
* UserInterface/External/CodeMirror/css.js:
* UserInterface/External/CodeMirror/javascript.js:
* UserInterface/External/CodeMirror/livescript.js:
* UserInterface/External/CodeMirror/runmode.js:
* UserInterface/External/CodeMirror/xml.js:
Updated to CodeMirror 4.1.
2014-04-24 Jonathan Wells <jonowells@apple.com>
Web Inspector: CSS autofill suggests properties instead of values when values are needed
https://bugs.webkit.org/show_bug.cgi?id=132090
Reviewed by Joseph Pecoraro.
Updates are required to the CodeMirror helpers to be compatible with
CodeMirror 4. Some of those changes have been made to fix an issue
with CSS autofill, CSS code coloring, and also
https://bugs.webkit.org/show_bug.cgi?id=131859. The main issue is that
CodeMirror 4's CSS mode (css.js) stores its parsing modes in a different
data structure. All references to state.stack are obsolete. Many
are fixed here and more will be in an upcoming patch.
* Tools/PrettyPrinting/CodeMirrorFormatters.js: Removed exception for checking state.stack properties.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions): Corrected "block" state detection.
* UserInterface/External/CodeMirror/less.js: Removed.
* UserInterface/Views/CodeMirrorAdditions.js: Sets default state of "block" correctly.
* UserInterface/Views/CodeMirrorFormatters.js: Removed exception for checking state.stack properties.
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css: Fix styles to match CSS mode changes.
2014-04-24 Antoine Quint <graouts@webkit.org>
Web Inspector: gradient editor does not appear for linear-gradient with no specified angle
https://bugs.webkit.org/show_bug.cgi?id=132083
Reviewed by Timothy Hatcher.
Only assume we're parsing a legacy-formatted gradient if the first parameter is not a color.
* UserInterface/Models/Gradient.js:
(WebInspector.LinearGradient.linearGradientWithComponents):
2014-04-22 Brent Fulgham <bfulgham@apple.com>
[Win] Support Python 2.7 in Cygwin
https://bugs.webkit.org/show_bug.cgi?id=132023
Reviewed by Michael Saboff.
* WebInspectorUI.vcxproj/build-webinspectorui.sh: use
proper path to Python under Cygwin.
2014-04-18 Katie Madonna <madonnk@gmail.com>
Web Inspector: add entries for probe samples in the JS/Events timeline UI
https://bugs.webkit.org/show_bug.cgi?id=131173
Reviewed by Timothy Hatcher.
Create probe sample fired entries for the JS/Events timeline UI.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/ProbeManager.js:
(WebInspector.ProbeManager.prototype.probeForIdentifier): Added.
* UserInterface/Controllers/TimelineManager.js: Added cases for probe sample recorded.
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
* UserInterface/Images/TimelineRecordProbeSampled.svg: Added.
* UserInterface/Models/ScriptTimelineRecord.js: Create ProbeSampleRecorded record for ProbeSample case.
* UserInterface/Views/TimelineIcons.css:
(.probe-record .icon): Added.
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement): Added case for probe sample recorded.
2014-04-15 Timothy Hatcher <timothy@apple.com>
Web Inspector: CodeMirror LICENSE is not properly added to combined files
https://bugs.webkit.org/show_bug.cgi?id=131674
Reviewed by Darin Adler.
* Scripts/copy-user-interface-resources.pl: Use $CODE_MIRROR_LICENSE instead
for CodeMirror.css and CodeMirror.js.
2014-04-14 Jono Wells <jonowells@apple.com>
Update to CodeMirror 4.0.
https://bugs.webkit.org/show_bug.cgi?id=130019
The CodeMirror 4.0 library adds multiple selections and the ability to
undo/redo selections. Selections are made by holding the Command (Cmd) key
and clicking into an editor, or by holding Option (Alt) and making a block
selection followed by entering a character or moving the cursor.
Reviewed by Timothy Hatcher.
* Scripts/update-codemirror-resources.rb:
* Scripts/update-pretty-printer.rb:
Update scripts to reflect updated locations for CodeMirror files.
No longer copies LESS mode file as this has been integrated into CSS mode
in CodeMirror 4.0.
* Tools/PrettyPrinting/codemirror.css:
* Tools/PrettyPrinting/codemirror.js:
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.js:
* 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/placeholder.js:
* UserInterface/External/CodeMirror/runmode.js:
* UserInterface/External/CodeMirror/sass.js:
* UserInterface/External/CodeMirror/searchcursor.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/xml.js:
Update to CodeMirror 4.0.
* UserInterface/Main.html: Remove less.js which is now part of css.js.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateJumpToSymbolTrackingMode):
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
Update styles to match CodeMirror changes. Update CSSStyleDeclarationTextEditor.js
to match CodeMirror API updates (doc.removeLine() has been removed, so
replaceRange() is used instead). Also the tokenTrackingController is now enabled in the
CSSStyleDeclarationTextEditor and SourceCodeTextEditor when the Option (Alt) key
is pressed instead of the Command (Cmd) key so as not to conflict with multiple
cursor placement in the CodeMirror update.
2014-04-08 Brent Fulgham <bfulgham@apple.com>
[Windows] Generate Optimized WebInspectorUI in Release Build
https://bugs.webkit.org/show_bug.cgi?id=120120
Reviewed by Timothy Hatcher.
* Scripts/copy-user-interface-resources.pl: Copied from Scripts/copy-user-interface-resources.sh.
* Scripts/copy-user-interface-resources.sh: Removed.
* Scripts/remove-console-asserts.pl:
* WebInspectorUI.vcxproj/WebInspectorUI.make: Added.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Switch to Makefile style.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters: Ditto.
* WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: More work should
be done in the new build-webinspectorui.sh file.
* WebInspectorUI.vcxproj/build-webinspectorui.sh: Added.
* WebInspectorUI.xcodeproj/project.pbxproj:
2014-04-08 Timothy Hatcher <timothy@apple.com>
Fix corrupt APPLE_IMAGES_LICENSE.rtf after r165676.
https://bugs.webkit.org/show_bug.cgi?id=131384
Reviewed by Joseph Pecoraro.
* APPLE_IMAGES_LICENSE.rtf:
2014-04-08 Timothy Hatcher <timothy@apple.com>
Clean up old protocol JSON files to better match the latest
https://bugs.webkit.org/show_bug.cgi?id=131308
Reviewed by Joseph Pecoraro.
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:
2014-04-05 Brian J. Burg <burg@cs.washington.edu>
Enable WEB_REPLAY for PLATFORM(MAC)
https://bugs.webkit.org/show_bug.cgi?id=130700
Reviewed by Timothy Hatcher.
If the ReplayAgent is available, then add an option to toggle between the
replay interface and normal Timeline interface from the timeline
sidebar panel. The option is available through a context menu item on the
sidebar panel's top navigation bar.
If web replay not available, just show the non-replay interface.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js: Add WebInspector.showReplayInterfaceSetting.
(WebInspector.loaded):
* UserInterface/Views/TimelineSidebarPanel.js: Unconditionally create the replay
interface elements, but only show them if showReplayInterfaceSetting is enabled.
(WebInspector.TimelineSidebarPanel.prototype._updateReplayInterfaceVisibility): Added
(WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar.toggleReplayInterface): Added.
(WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar): Added.
2014-04-05 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: remove unused metrics and commands from the Timeline agent
https://bugs.webkit.org/show_bug.cgi?id=131184
Reviewed by Timothy Hatcher.
Remove the Memory domain from old protocol versions. Remove enum values
BeginFrame and CompositeLayers. Remove arguments to Timeline.start.
Remove miscellaneous Timeline commands that no longer exist and were never used.
* UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:
2014-04-03 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: hook up probe samples to TimelineAgent's records
https://bugs.webkit.org/show_bug.cgi?id=131127
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/TimelineManager.js: Stub out a case for the ProbeSample record type.
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
2014-04-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JSContext inspection Resource search throws exception
https://bugs.webkit.org/show_bug.cgi?id=131253
Reviewed by Timothy Hatcher.
Fail gracefully when none of the supported search backends are available.
In JSContext inspection the DOM and Page agents are unavailable.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.performSearch):
2014-04-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JSContext inspection - TypeError: null is not an object (evaluating 'contentView.showSourceCode')
https://bugs.webkit.org/show_bug.cgi?id=129857
Reviewed by Timothy Hatcher.
When inspecting a JSContext, there is no main frame resource, so
attempting to show it was resulting in a runtime error.
Instead, check to see if there is a main frame resource, fallback
to selecting the first tree element.
* UserInterface/Base/Main.js:
(WebInspector.toggleConsoleView):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
2014-04-04 Ion Rosca <rosca@adobe.com>
[CSS Blending] Add compositing reason for isolation.
https://bugs.webkit.org/show_bug.cgi?id=131153
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel.prototype._populateListOfCompositingReasons):
2014-04-02 Timothy Hatcher <timothy@apple.com>
Remove Input domain from the Web Inspector protocol.
https://bugs.webkit.org/show_bug.cgi?id=131073
Reviewed by Joseph Pecoraro.
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js: Updated.
* Versions/Inspector-iOS-7.0.json: Removed Input domain.
2014-04-01 Timothy Hatcher <timothy@apple.com>
Remove HeapProfiler from the Web Inspector protocol.
https://bugs.webkit.org/show_bug.cgi?id=131070
Reviewed by Joseph Pecoraro.
* UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js: Updated.
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js: Ditto.
* Versions/Inspector-iOS-6.0.json: Removed heap related stuff.
* Versions/Inspector-iOS-7.0.json: Ditto.
2014-04-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove stale localStorage deletion transition code
https://bugs.webkit.org/show_bug.cgi?id=131061
Reviewed by Timothy Hatcher.
* UserInterface/Base/ImageUtilities.js:
This code has been in for a while. We have transitioned to Web SQL.
2014-04-01 Zoltan Horvath <zoltan@webkit.org>
[CSS Exclusions] Remove exclusions parsing support
https://bugs.webkit.org/show_bug.cgi?id=131046
Reviewed by David Hyatt.
* UserInterface/Models/CSSKeywordCompletions.js:
2014-04-01 Timothy Hatcher <timothy@apple.com>
Remove the rest of the old Canvas inspection support.
https://bugs.webkit.org/show_bug.cgi?id=131066
Reviewed by Joseph Pecoraro.
* UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js: Updated.
* Versions/Inspector-iOS-7.0.json: Removed Canvas domain.
2014-03-28 James Craig <jcraig@apple.com>
Web Inspector: AXI: support for live regions
https://bugs.webkit.org/show_bug.cgi?id=130725
Reviewed by Timothy Hatcher.
Initial support for @aria-live, @aria-atomic, and @aria-busy.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
* UserInterface/Views/Main.css:
2014-03-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.warn is showing as error instead of warning
https://bugs.webkit.org/show_bug.cgi?id=130921
Reviewed by Timothy Hatcher.
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
Use our enums instead of hardcoded strings.
2014-03-28 James Craig <jcraig@apple.com>
Web Inspector: AXI: expose what elements get generic "clickable" status
https://bugs.webkit.org/show_bug.cgi?id=130721
Reviewed by Timothy Hatcher.
Expose ancestor element link to "Click Listener" or generic "Clickable: Yes" if current node has mouse handler.
* Localizations/en.lproj/localizedStrings.js: New "Mouse Event" string.
* UserInterface/Models/DOMNode.js: Added nodeId and mouseEventNodeId.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js: UI for new detail row.
2014-03-27 James Craig <jcraig@apple.com>
Web Inspector: AXI: expose selectedChildNodeIds of list boxes, tree controls, etc., and reconcile UI with childNodeIds
https://bugs.webkit.org/show_bug.cgi?id=130827
Reviewed by Timothy Hatcher.
UI updates for "Selected Item(s)" and "Child(ren)" rows in accessibility node inspector.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2014-03-27 Antoine Quint <graouts@webkit.org>
Web Inspector: clearing the console log doesn't update the activity viewer
https://bugs.webkit.org/show_bug.cgi?id=130774
Reviewed by Joseph Pecoraro.
Ensure we take the changes made to the ivars into account on the view.
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._consoleWasCleared):
2014-03-27 Brent Fulgham <bfulgham@apple.com>
[Win] Correct handling of autogenerated WebInspectorUI files
https://bugs.webkit.org/show_bug.cgi?id=130846
Reviewed by Joseph Pecoraro.
* WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Files need to be placed in the
'Protocol' subdirectory of the WebInspectorUI directory.
2014-03-25 James Craig <jcraig@apple.com>
Web Inspector: AXI: add support for aria-activedescendant and reconcile UI/testing with parentNode
https://bugs.webkit.org/show_bug.cgi?id=130712
Reviewed by Timothy Hatcher.
Support for @aria-activedescendant; code reuse changes w/ parentNode and activeDescendantNode.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2014-03-25 Martin Robinson <mrobinson@igalia.com>
[GTK] Remove the autotools build
https://bugs.webkit.org/show_bug.cgi?id=130717
Reviewed by Anders Carlsson.
* GNUmakefile.am: Removed.
2014-03-24 Timothy Hatcher <timothy@apple.com>
Lazy load source code referred to from the source map, instead of when
the source code is revealed in the Resources sidebar.
https://bugs.webkit.org/show_bug.cgi?id=130625
Reviewed by Joseph Pecoraro.
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource): Set up the type info here so it can be used to
dispaly the right icon in the sidebar.
(WebInspector.SourceMapResource.prototype.canRequestContentFromBackend): Use _contentRequested.
(WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
Reset finished and remove the type change dance we had before.
* UserInterface/Views/SourceMapResourceTreeElement.js:
(WebInspector.SourceMapResourceTreeElement.prototype.onattach): Removed. Don't request content here.
2014-03-23 James Craig <jcraig@apple.com>
Web Inspector: AXI: add other ARIA one-to-many relationships: owns, flowto, controls.
https://bugs.webkit.org/show_bug.cgi?id=130635
Reviewed by Timothy Hatcher.
Support for @aria-owns, @aria-controls, and @aria-flowto.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2014-03-21 James Craig <jcraig@apple.com>
Web Inspector: AXI: Expose Accessibility Tree children of the selected node
https://bugs.webkit.org/show_bug.cgi?id=130264
Reviewed by Timothy Hatcher.
Expose the accessibility tree children (different from DOM children) of the
current node in the accessibility node inspector.
* Localizations/en.lproj/localizedStrings.js: New "Children" string.
* UserInterface/Base/DOMUtilities.js: Added linkifyAccessibilityNodeReference.
* UserInterface/Models/DOMNode.js: Support for accessibility children.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Support for accessibility children.
* UserInterface/Views/Main.css: New styles for .node-link-list.
2014-03-20 Brian Burg <bburg@apple.com>
Web Inspector: add temporary buttons to capture/play/pause replay recordings
https://bugs.webkit.org/show_bug.cgi?id=129692
Reviewed by Timothy Hatcher.
If the Replay agent is available, replace the existing ad-hoc navigation bar
in the Timelines sidebar panel with a record and pause/play button. This UI
is temporary.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/ReplayManager.js: Turn two segment state assertions into
FIXMEs because the assertions are too strong until the public API uses async chains.
(WebInspector.ReplayManager.prototype.replayToMarkIndex):
(WebInspector.ReplayManager.prototype.replayToCompletion):
* UserInterface/Images/Circle.svg: Added.
* UserInterface/Views/ActivateButtonNavigationItem.js:
(WebInspector.ActivateButtonNavigationItem.prototype.generateStyleText):
* UserInterface/Views/ButtonNavigationItem.css: Adjust styles so the default style
has opacity:1 and the glyph color is darker.
(.navigation-bar .item.button.suppress-emboss > .glyph):
(.navigation-bar .item.button.suppress-emboss.disabled > .glyph):
* UserInterface/Views/ButtonNavigationItem.js:
(WebInspector.ButtonNavigationItem.prototype.generateStyleText): Explicitly
generate the width and height properties so that separate button instances do
not influence the size of each other.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
(WebInspector.TimelineSidebarPanel.prototype._replayCaptureButtonClicked):
(WebInspector.TimelineSidebarPanel.prototype._replayPauseResumeButtonClicked):
(WebInspector.TimelineSidebarPanel.prototype._captureStarted):
(WebInspector.TimelineSidebarPanel.prototype._captureStopped):
(WebInspector.TimelineSidebarPanel.prototype._playbackStarted):
(WebInspector.TimelineSidebarPanel.prototype._playbackPaused):
2014-03-20 Brian Burg <bburg@apple.com>
Web Inspector: add frontend controller and models for replay sessions
https://bugs.webkit.org/show_bug.cgi?id=130145
Reviewed by Joseph Pecoraro.
Upstream the frontend models and controller for web replay. The replay manager
syncs with the backend controller's replay state and replay sessions by using
the same state machines and transitions.
Session and segment models update their data asynchronously using promises.
* UserInterface/Base/Main.js:
(WebInspector.loaded): Add the replay manager.
* UserInterface/Base/Test.js:
(WebInspector.loaded): Add the replay manager.
(InspectorTest.debugLog): Fix a bug in the unescape/escape trick.
(InspectorTest.addResult): Don't try to add results until the test page has loaded.
(InspectorTest.testPageDidLoad): Clear the isReloading flag.
(InspectorTest.reloadPage): Reimplement using promises. Return a promise.
* UserInterface/Base/Utilities.js: Implement Map.take in the obvious way.
* UserInterface/Controllers/ReplayManager.js: Added.
(WebInspector.ReplayManager):
(WebInspector):
(WebInspector.ReplayManager.prototype.get sessionState):
(WebInspector.ReplayManager.prototype.get segmentState):
(WebInspector.ReplayManager.prototype.get activeSessionIdentifier):
(WebInspector.ReplayManager.prototype.get activeSegmentIdentifier):
(WebInspector.ReplayManager.prototype.get playbackSpeed):
(WebInspector.ReplayManager.prototype.set playbackSpeed):
(WebInspector.ReplayManager.prototype.get currentPosition):
(WebInspector.ReplayManager.prototype.getSession.get var):
(WebInspector.ReplayManager.prototype.getSegment.get var):
(WebInspector.ReplayManager.prototype.captureStarted):
(WebInspector.ReplayManager.prototype.captureStopped):
(WebInspector.ReplayManager.prototype.playbackStarted):
(WebInspector.ReplayManager.prototype.playbackHitPosition):
(WebInspector.ReplayManager.prototype.playbackPaused):
(WebInspector.ReplayManager.prototype.playbackFinished):
(WebInspector.ReplayManager.prototype.sessionCreated.set catch):
(WebInspector.ReplayManager.prototype.sessionCreated.this):
(WebInspector.ReplayManager.prototype.sessionCreated):
(WebInspector.ReplayManager.prototype.sessionModified):
(WebInspector.ReplayManager.prototype.sessionRemoved.then):
(WebInspector.ReplayManager.prototype.sessionRemoved):
(WebInspector.ReplayManager.prototype.segmentCreated.set this):
(WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
(WebInspector.ReplayManager.prototype.segmentCompleted):
(WebInspector.ReplayManager.prototype.segmentRemoved.then):
(WebInspector.ReplayManager.prototype.segmentRemoved):
(WebInspector.ReplayManager.prototype.segmentLoaded):
(WebInspector.ReplayManager.prototype.segmentUnloaded):
(WebInspector.ReplayManager.prototype.startCapturing):
(WebInspector.ReplayManager.prototype.stopCapturing):
(WebInspector.ReplayManager.prototype.replayToMarkIndex):
(WebInspector.ReplayManager.prototype.replayToCompletion):
(WebInspector.ReplayManager.prototype.pausePlayback):
(WebInspector.ReplayManager.prototype.stopPlayback):
(WebInspector.ReplayManager.prototype._changeSessionState):
(WebInspector.ReplayManager.prototype._changeSegmentState):
* UserInterface/Main.html:
* UserInterface/Models/ReplaySession.js: Added.
(WebInspector.ReplaySession):
(WebInspector.ReplaySession.fromPayload):
(WebInspector.ReplaySession.prototype.get segments):
(WebInspector.ReplaySession.prototype.segmentsChanged):
(WebInspector.ReplaySession.prototype._updateFromPayload):
* UserInterface/Models/ReplaySessionSegment.js: Added.
(WebInspector.IncompleteSessionSegment):
(WebInspector.IncompleteSessionSegment.prototype.get isComplete):
(WebInspector.ReplaySessionSegment):
(WebInspector.ReplaySessionSegment.prototype.get isComplete):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype._promise): Add a promise-returning method for
invoking backend commands that return a result asynchronously.
* UserInterface/Protocol/ReplayObserver.js: Added.
(WebInspector.ReplayPosition):
(WebInspector.ReplayPosition.fromProtocol):
(WebInspector.ReplayObserver):
(WebInspector.ReplayObserver.prototype.captureStarted):
(WebInspector.ReplayObserver.prototype.captureStopped):
(WebInspector.ReplayObserver.prototype.playbackStarted):
(WebInspector.ReplayObserver.prototype.playbackHitPosition):
(WebInspector.ReplayObserver.prototype.playbackPaused):
(WebInspector.ReplayObserver.prototype.playbackFinished):
(WebInspector.ReplayObserver.prototype.inputSuppressionChanged):
(WebInspector.ReplayObserver.prototype.sessionCreated):
(WebInspector.ReplayObserver.prototype.sessionModified):
(WebInspector.ReplayObserver.prototype.sessionRemoved):
(WebInspector.ReplayObserver.prototype.sessionLoaded):
(WebInspector.ReplayObserver.prototype.segmentCreated):
(WebInspector.ReplayObserver.prototype.segmentRemoved):
(WebInspector.ReplayObserver.prototype.segmentCompleted):
(WebInspector.ReplayObserver.prototype.segmentLoaded):
(WebInspector.ReplayObserver.prototype.segmentUnloaded):
* UserInterface/Test.html:
2014-03-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DebuggerDashboardView looks scrunched debugging JSContext
https://bugs.webkit.org/show_bug.cgi?id=130527
Reviewed by Timothy Hatcher.
Instead of using body.javascript to force a collapsed style,
actually use the toolbar's collapsed class.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar.collapsed .dashboard-container):
* UserInterface/Views/Toolbar.js:
2014-03-20 Katie Madonna <madonnk@gmail.com>
Web Inspector: probe sidebar should use overflow:scroll and split space evenly
https://bugs.webkit.org/show_bug.cgi?id=129627
Reviewed by Timothy Hatcher.
Use flexbox to split space evenly in the probe sidebar, which required changes to collapse
format, remove scrollbar styles from old timelapse branch.
* UserInterface/Views/ProbeDetailsSidebarPanel.css: Space elements evenly with flexbox
and make collapse correctly, remove scrollbar style.
* UserInterface/Views/ProbeSetDetailsSection.js: Removed inline style.
2014-03-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Make update-InspectorBackendCommands.rb only update legacy protocol versions
https://bugs.webkit.org/show_bug.cgi?id=130412
Reviewed by Timothy Hatcher.
Rename the script and simplify to only update Legacy protocol versions.
* Scripts/update-LegacyInspectorBackendCommands.rb: Renamed from Source/WebInspectorUI/Scripts/update-InspectorBackendCommands.rb.
2014-03-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: sourceMapResourceLoaded expects statusCode parameter
https://bugs.webkit.org/show_bug.cgi?id=130377
Reviewed by Timothy Hatcher.
* UserInterface/Models/SourceMapResource.js:
2014-03-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exception in JSContext Inspector
https://bugs.webkit.org/show_bug.cgi?id=130368
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._accessibilitySupported):
Feature check DOMAgent as well as the function.
2014-03-16 Brian Burg <bburg@apple.com>
Web Inspector: vended backend commands file should be generated as part of the build
https://bugs.webkit.org/show_bug.cgi?id=130110
Reviewed by Timothy Hatcher.
Copy the backend commands generated in other frameworks into our built products directory.
* Configurations/WebInspectorUIFramework.xcconfig: Set up variables so we can pull backend
commands files from the private headers directory of other frameworks.
* Scripts/copy-user-interface-resources.sh: Always ditto inspector backend commands.
* UserInterface/Protocol/InspectorJSBackendCommands.js: Removed.
* UserInterface/Protocol/InspectorWebBackendCommands.js: Removed.
* WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Copy over the generated
backend commands files from the other frameworks.
* WebInspectorUI.xcodeproj/project.pbxproj: Add JavaScriptCore and WebCore as
framework dependencies so Xcode builds them first.
2014-03-15 David Kilzer <ddkilzer@apple.com>
[iOS] Define SYSTEM_VERSION_PREFIX consistently
<http://webkit.org/b/130293>
<rdar://problem/15926359>
Reviewed by Dan Bernstein.
* Configurations/Version.xcconfig:
(SYSTEM_VERSION_PREFIX): Sync with
Source/WebKit/mac/Version.xcconfig.
2014-03-14 Maciej Stachowiak <mjs@apple.com>
Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
https://bugs.webkit.org/show_bug.cgi?id=130276
<rdar://problem/16266927>
Reviewed by Simon Fraser.
* APPLE_IMAGES_LICENSE.rtf:
* UserInterface/Base/DOMUtilities.js:
* UserInterface/Models/Color.js:
* UserInterface/Views/ConsoleCommand.js:
* UserInterface/Views/ConsoleCommandResult.js:
* UserInterface/Views/ConsoleGroup.js:
* UserInterface/Views/ConsoleMessage.js:
* UserInterface/Views/ConsoleMessageImpl.js:
* UserInterface/Views/DOMTreeElement.js:
* UserInterface/Views/DOMTreeOutline.js:
* UserInterface/Views/DOMTreeUpdater.js:
* UserInterface/Views/GradientSlider.css:
* UserInterface/Views/GradientSlider.js:
* UserInterface/Views/TreeOutline.js:
2014-03-14 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Shapes] Add autocomplete for -webkit-shape-outside
https://bugs.webkit.org/show_bug.cgi?id=130268
Reviewed by Joseph Pecoraro.
Add completions for -webkit-shape-outside. Also add the box shapes to
the possible completions for clip-path.
* UserInterface/Models/CSSKeywordCompletions.js:
2014-03-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update shapes autocompletion suggestions
https://bugs.webkit.org/show_bug.cgi?id=130255
Reviewed by Bem Jones-Bey.
* UserInterface/Models/CSSKeywordCompletions.js:
2014-03-14 James Craig <jcraig@apple.com>
Web Inspector: AXI: Expose Accessibility Tree parent of the selected node
https://bugs.webkit.org/show_bug.cgi?id=129943
Reviewed by Timothy Hatcher.
Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
Web Accessibility Node Inspector now displays a link to the AX parent node,
because it's not a 1:1 match with the DOMNode parent.
* Localizations/en.lproj/localizedStrings.js: new "Parent" string.
* UserInterface/Base/DOMUtilities.js: Updating linkifyNodeReference to include role; adding new roleSelectorForNode method.
* UserInterface/Models/DOMNode.js: AX Parent support and adding role to DOMNode (will be exposed as AX Parent link and in overlays).
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Accessibility parent node.
2014-03-14 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: Resource and Frame saveIdentityToCookie should store URL hashes not URLs
https://bugs.webkit.org/show_bug.cgi?id=126833
Reviewed by Timothy Hatcher.
* UserInterface/Models/Frame.js:
(WebInspector.Frame.prototype.saveIdentityToCookie):
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.saveIdentityToCookie):
2014-03-13 James Craig <jcraig@apple.com>
Web Inspector: AXI: Use loc strings for known aria-invalid types
https://bugs.webkit.org/show_bug.cgi?id=129952
Reviewed by Joseph Pecoraro.
Updating inspector-protocol and UI display values for @aria-invalid.
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
* Localizations/en.lproj/localizedStrings.js: "Grammar" and "Spelling" value strings.
* UserInterface/Protocol/InspectorWebBackendCommands.js: New enum for DOM.AccessibilityPropertiesInvalid
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Use enum instead of passing value through directly.
2014-03-13 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: AXI: Expose focused/focusable state in the Accessibility Node Inspector
https://bugs.webkit.org/show_bug.cgi?id=129779
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js: Add label "Focused".
* UserInterface/Models/DOMNode.js: Set property "focused" in
accessibilityProperties.
(WebInspector.DOMNode.prototype.accessibilityProperties): Add row for
property "focused".
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
Refresh value of property "focused" in UI.
2014-03-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove InspectorFrontendHost.loadResourceSynchronously
https://bugs.webkit.org/show_bug.cgi?id=130217
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/InspectorFrontendHostStub.js:
2014-03-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Network.loadResource should include the response status code
https://bugs.webkit.org/show_bug.cgi?id=130216
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/SourceMapManager.js:
(WebInspector.SourceMapManager.prototype.sourceMapLoaded):
(WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
If the response is 400 or larger, treat it as an error / failed load.
* UserInterface/Protocol/InspectorWebBackendCommands.js:
Update protocol to provide status code parameter.
2014-03-12 Brian Burg <bburg@apple.com>
Web Inspector: Remove unused callId parameter from evaluateInWebInspector
https://bugs.webkit.org/show_bug.cgi?id=129744
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/InspectorJSBackendCommands.js:
* UserInterface/Protocol/InspectorObserver.js:
(WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):
2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: [iOS 6] uncaught exception attempting to use CSSAgent.getNamedFlowCollection
https://bugs.webkit.org/show_bug.cgi?id=130167
Reviewed by Timothy Hatcher.
Feature check the protocol method before using it. It is
fine to do nothing if the feature is not supported.
* UserInterface/Controllers/DOMTreeManager.js:
2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Feature check for accessibility support before using it (DOMAgent.getAccessibilityPropertiesForNode)
https://bugs.webkit.org/show_bug.cgi?id=130037
Reviewed by Timothy Hatcher.
Feature detect if accessibility information is supported before
creating or attempting to update the accessibility section.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._accessibilitySupported):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix multiple console.assert stripping issues
https://bugs.webkit.org/show_bug.cgi?id=130166
Reviewed by Timothy Hatcher.
There were a couple console.assert stripping issues in production.
One line required a semicolon so was avoiding getting stripped.
One resulted in a logic change, when stripping the only statement
of a control flow block. Add a warning for such cases.
* Scripts/remove-console-asserts.pl:
Add warning for a console.assert being the only statement in a control flow block
without braces. When it is stripped it may change the flow of the function.
* Scripts/remove-console-asserts-dryrun.rb: Added.
Add a script to quickly test running remove console asserts on our files, to
help catch errors not in a production build and in the original non-combined
files, so you can more easily fix issues.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
Convert the for loop into a single console.assert statement.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.removeChild):
Add missing semicolon.
2014-03-12 Brian Burg <bburg@apple.com>
Web Inspector: convert model tests and inspector-test.js to use Test.html
https://bugs.webkit.org/show_bug.cgi?id=129217
Reviewed by Timothy Hatcher.
Miscellaneous changes to make the inspector model test harness work well in
scenarios where the test page must navigate or reload. Also improve reporting
test failures so that messages will be dumped correctly even when an exception
is thrown in the Inspector or the test times out.
* UserInterface/Base/Test.js:
(WebInspector.loaded): register new managers and observers.
(InspectorTest.log): Stringify the argument if it's an object.
(InspectorTest.assert): Stringify the argument if it's an object. Don't log
unless the condition is false.
(InspectorTest.expectThat): Added. Like assert(), but always logs.
(InspectorTest.debugLog): Escape and unescape the string properly.
(InspectorTest.completeTest): Fix teardown so messages are not lost.
(InspectorTest.evaluateInPage): Accept a callback argument.
(InspectorTest.addResult): Don't rebuild results when adding a new result.
(InspectorTest._resendResults.decrementPendingResponseCount): Added.
(InspectorTest._resendResults): Added. Track the number of pending
responses and invoke a given callback when everything has been resent.
(InspectorTest.testPageDidLoad): Renamed from `pageLoaded`.
(InspectorTest.reloadPage): Added.
(InspectorTest.reportUncaughtException): Prevent the default handler from running.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype.dispatch): Report uncaught exceptions when dispatching
messages on the inspector page without blowing away the entire call stack.
* UserInterface/Test.html: Add files used by Network and Timeline domains.
2014-03-11 Brian Burg <bburg@apple.com>
Web Inspector: DataGrid should have an API to set sort column and direction
https://bugs.webkit.org/show_bug.cgi?id=128783
Reviewed by Timothy Hatcher.
Previously there was no way for DataGrid clients to programmatically change
the sort order or sort column identifier after the data grid was constructed.
This patch modernizes DataGrid sorting by exposing getters and setters for
sortOrder and sortColumnIdentifier, which trigger the SortChanged event if
the sort settings have changed.
This patch also modernizes sorting functionality in DataGrid clients, and in
a few clients it moves column identifiers from numbers to string identifiers.
* UserInterface/Main.html:
* UserInterface/Views/ApplicationCacheFrameContentView.js: Use string column identifiers
instead of numbers. Don't repopulate the entire table when the sort changes, instead
call DataGrid.sortNodes from the sorting callback. Explicitly set the sort order.
(WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
(WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid):
(WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid.localeCompare):
(WebInspector.ApplicationCacheFrameContentView.prototype._populateDataGrid):
* UserInterface/Views/CookieStorageContentView.js: Use string column identifiers instead
of numbers. Don't sort the cookies themselves, just the data grid nodes representing
each cookie. Use DataGrid.sortNodes as the sorting implementation, and provide a
comparator. Don't rebuild the entire table when the sort changes.
(WebInspector.CookieStorageContentView.prototype._rebuildTable):
(WebInspector.CookieStorageContentView.prototype._sortDataGrid):
(WebInspector.CookieStorageContentView.prototype._sortDataGrid.numberCompare):
(WebInspector.CookieStorageContentView.prototype._sortDataGrid.expiresCompare):
* UserInterface/Views/DataGrid.js: Add the DataGrid.SortOrder enum. Put sortOrder
and sortColumnIdentifier behind getters and setters. Pull some hardcoded style
class names into constants. Remove the "sort" field on column config objects; instead
should use the DataGrid.sortColumnIdentifier setter after construction.
(WebInspector.DataGrid): Keep sort settings in private variables.
(WebInspector.DataGrid.prototype.get sortOrder): Reimplemented.
(WebInspector.DataGrid.prototype.get sortColumnIdentifier): Reimplemented.
(WebInspector.DataGrid.prototype.moveToNextCell):
(WebInspector.DataGrid.prototype._editingCommitted):
(WebInspector.DataGrid.prototype.sortNodes): Use requestAnimationFrame to
coalesce multiple sort requests within the same draw frame.
(WebInspector.DataGrid.prototype._sortNodesCallback):
(WebInspector.DataGrid.prototype._headerCellClicked): Use the new sort API.
* UserInterface/Views/LayerTreeDataGrid.js: Removed. Unnecessary for performance
now that sort requests are coalesced by requestAnimationFrame.
* UserInterface/Views/LayerTreeSidebarPanel.js: Use DataGrid instead of LayerTreeDataGrid.
Hook up the _sortDataGrid method to the built-in DataGrid.sortNodes API.
(WebInspector.LayerTreeSidebarPanel.prototype._buildDataGridSection):
(WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid.comparator):
(WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid):
* UserInterface/Views/LayoutTimelineView.js:
* UserInterface/Views/LegacyJavaScriptProfileView.js:
(WebInspector.LegacyJavaScriptProfileView.prototype._sortProfile):
* UserInterface/Views/NetworkTimelineView.js:
* UserInterface/Views/ResourceDetailsSidebarPanel.js: Use the DataGrid.sortNodes API.
(WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid.comparator):
(WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid):
(WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid):
* UserInterface/Views/ScriptTimelineView.js:
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._sortComparator):
2014-03-10 James Craig <jcraig@apple.com>
Web Inspector: AXI: Expose checked/disabled/expanded/pressed/readonly/selected
https://bugs.webkit.org/show_bug.cgi?id=129781
Reviewed by Joseph Pecoraro.
Enabling several more properties to be exposed in the Accessibility Node Inspector.
Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Protocol/InspectorWebBackendCommands.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2014-03-10 Brian Burg <bburg@apple.com>
Web Inspector: show a debugging-oriented dashboard when scripts pause
https://bugs.webkit.org/show_bug.cgi?id=129913
Reviewed by Timothy Hatcher.
Using the dashboard swapping functionality just added, show a debugger dashboard
whenever the debugger pauses, and hide it when it resumes. The debugger manager
already coalesces pause/resume events across stepping commands.
The dashboard itself is straightforward, with the exception of how it uses the
navigation bar buttons. Since buttons from the same URL can't be reused if they
are bezeled, we don't bezel our button, and set the button image as the glyph mask
instead of the background image. This lets us easily animate the glyph shape.
We also have to more forcefully declare a bunch of icon rules that would otherwise
be messed up by the toolbar's icon rules (whereas we want to mostly emulate navigation
bar icon styles).
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector._debuggerDidPause):
(WebInspector._debuggerDidResume):
* UserInterface/Controllers/DashboardManager.js:
(WebInspector.DashboardManager):
* UserInterface/Main.html:
* UserInterface/Models/DebuggerDashboard.js: Added.
(WebInspector.DebuggerDashboard):
* UserInterface/Views/ButtonNavigationItem.css:
(.navigation-bar .item.button.suppress-emboss > .glyph):
* UserInterface/Views/ButtonNavigationItem.js:
(WebInspector.ButtonNavigationItem.prototype._updateImage):
* UserInterface/Views/DashboardView.js:
(WebInspector.DashboardView):
* UserInterface/Views/DebuggerDashboardView.css: Added.
(.toolbar .dashboard.debugger):
(.dashboard.debugger > .message):
(.dashboard.debugger .navigation-bar):
(.toolbar:not(.small-size) .dashboard.debugger .navigation-bar):
(.dashboard.debugger .navigation-bar .item.button):
(.dashboard.debugger .navigation-bar .item.button > .glyph):
(@-webkit-keyframes pulse-pause-button):
(to):
(.dashboard.debugger > .divider):
(.dashboard.debugger > div):
(.dashboard.debugger > .location > :first-child):
(.toolbar:not(.small-size) .dashboard.debugger > .location :not(:first-child)):
(.dashboard.debugger > .location img.icon):
(.dashboard.debugger > .location .function-name):
(.dashboard.debugger > .location .function-name::after):
(.dashboard.debugger > .location .go-to-link):
(.toolbar.collapsed .dashboard.debugger > :not(.message):not(.navigation-bar )):
(.toolbar.small-size .dashboard.debugger > .message):
(.toolbar.small-size .dashboard.debugger > .location > :first-child):
* UserInterface/Views/DebuggerDashboardView.js: Added.
(WebInspector.DebuggerDashboardView):
(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
(WebInspector.DebuggerDashboardView.prototype._resumeButtonClicked):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
2014-03-10 Brian Burg <bburg@apple.com>
Web Inspector: convert the dashboard toolbar item to support multiple dashboards
https://bugs.webkit.org/show_bug.cgi?id=129898
Reviewed by Timothy Hatcher.
We want to ability to swap in and out different dashboard contents depending on
circumstances such as debugger activity and page loading. This patch converts the
existing hard-coded dashboard implementation to follow the container-based approach
used by WebInspector.ContentViewContainer.
As part of the refactoring, we introduce dashboard model objects to store persistent
dashboard data. Some CSS has also been split between the container and specific dashboard.
* UserInterface/Controllers/DashboardManager.js:
(WebInspector.DashboardManager):
(WebInspector.DashboardManager.prototype.get toolbarItem):
* UserInterface/Main.html:
* UserInterface/Models/DefaultDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
(WebInspector.DefaultDashboard):
(WebInspector.DefaultDashboard.prototype.get resourcesCount):
(WebInspector.DefaultDashboard.prototype.set resourcesCount):
(WebInspector.DefaultDashboard.prototype.get resourcesSize):
(WebInspector.DefaultDashboard.prototype.set resourcesSize):
(WebInspector.DefaultDashboard.prototype.get time):
(WebInspector.DefaultDashboard.prototype.set time):
(WebInspector.DefaultDashboard.prototype.get logs):
(WebInspector.DefaultDashboard.prototype.set logs):
(WebInspector.DefaultDashboard.prototype.get errors):
(WebInspector.DefaultDashboard.prototype.set errors):
(WebInspector.DefaultDashboard.prototype.get issues):
(WebInspector.DefaultDashboard.prototype.set issues):
(WebInspector.DefaultDashboard.prototype._dataDidChange):
(WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
(WebInspector.DefaultDashboard.prototype._recordingStopped):
(WebInspector.DefaultDashboard.prototype._resourceWasAdded):
(WebInspector.DefaultDashboard.prototype._frameWasAdded):
(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange):
(WebInspector.DefaultDashboard.prototype._startUpdatingTime):
(WebInspector.DefaultDashboard.prototype._stopUpdatingTime):
(WebInspector.DefaultDashboard.prototype._updateTime):
(WebInspector.DefaultDashboard.prototype._consoleMessageAdded):
(WebInspector.DefaultDashboard.prototype._consoleMessageWasRepeated):
(WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
(WebInspector.DefaultDashboard.prototype._consoleWasCleared):
* UserInterface/Views/DashboardContainerView.css: Added.
(.toolbar .dashboard-container):
(body.window-inactive .toolbar .dashboard-container):
(body.javascript .toolbar .dashboard-container):
(.toolbar.normal-size.icon-and-label-vertical .dashboard-container):
(.toolbar.small-size.icon-and-label-horizontal .dashboard-container):
(.toolbar.normal-size.icon-and-label-horizontal .dashboard-container):
(.toolbar .dashboard-container):
(.toolbar .dashboard):
(.toolbar .dashboard.visible):
(.toolbar .dashboard.slide-out-up):
(.toolbar .dashboard.slide-out-down):
(.toolbar .dashboard.slide-in-up):
(.toolbar .dashboard.slide-in-down):
(@-webkit-keyframes slide-top-edge):
(to):
(@-webkit-keyframes slide-bottom-edge):
* UserInterface/Views/DashboardContainerView.js: Added.
(WebInspector.DashboardContainerView):
(WebInspector.DashboardContainerView.prototype.get toolbarItem):
(WebInspector.DashboardContainerView.prototype.get currentDashboardView):
(WebInspector.DashboardContainerView.prototype.showDashboardViewForRepresentedObject):
(WebInspector.DashboardContainerView.prototype._dashboardViewForRepresentedObject):
(WebInspector.DashboardContainerView.prototype._showDashboardView):
* UserInterface/Views/DashboardView.css: Removed.
* UserInterface/Views/DashboardView.js:
(WebInspector.DashboardView):
(WebInspector.DashboardView.prototype.get element):
(WebInspector.DashboardView.prototype.get parentContainer):
(WebInspector.DashboardView.prototype.get representedObject):
(WebInspector.DashboardView.prototype.shown):
(WebInspector.DashboardView.prototype.hidden):
* UserInterface/Views/DefaultDashboardView.css: Added.
(body.web .toolbar.collapsed .dashboard.default > .logs):
(body.javascript .toolbar .dashboard.default > .resourcesCount):
(.toolbar .dashboard.default):
(.toolbar .dashboard.default > .item):
(.toolbar .dashboard.default > .resourcesSize):
(.toolbar .dashboard.default > .item.enabled:hover):
(.toolbar .dashboard.default > .item.enabled:active):
(.toolbar .dashboard.default > .item > *):
(.toolbar .dashboard.default > .item > img):
(.toolbar .dashboard.default > .item.enabled > img):
(.toolbar .dashboard.default > .item.enabled:hover > img):
(.toolbar .dashboard.default > .item > div):
(.toolbar .dashboard.default > .item.enabled > div):
(.toolbar .dashboard.default > .item.enabled:hover > div):
(.toolbar .dashboard.default > .resourcesCount > img):
(.toolbar .dashboard.default > .time > img):
(.toolbar .dashboard.default > .logs > img):
(.toolbar .dashboard.default > .resourcesSize > img):
(.toolbar .dashboard.default > .errors > img):
(.toolbar .dashboard.default > .errors.enabled > img):
(.toolbar .dashboard.default > .errors.enabled:hover > img):
(.toolbar .dashboard.default > .errors.enabled > div):
(.toolbar .dashboard.default > .errors.enabled:hover > div):
(.toolbar .dashboard.default > .issues > img):
(.toolbar .dashboard.default > .issues.enabled > img):
(.toolbar .dashboard.default > .issues.enabled:hover > img):
(.toolbar .dashboard.default > .issues.enabled > div):
(.toolbar .dashboard.default > .issues.enabled:hover > div):
(.toolbar .dashboard.default > .item.pulsing):
(@-webkit-keyframes console-item-pulse):
(.toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item):
(.toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item):
* UserInterface/Views/DefaultDashboardView.js: Copied from Source/WebInspectorUI/UserInterface/Views/DashboardView.js.
(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._updateDisplay):
(WebInspector.DefaultDashboardView.prototype._formatPossibleLargeNumber):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.set item):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem):
(WebInspector.DefaultDashboardView.prototype._itemWasClicked):
(WebInspector.DefaultDashboardView.prototype._resourcesWasClicked):
(WebInspector.DefaultDashboardView.prototype._networkItemWasClicked):
(WebInspector.DefaultDashboardView.prototype._consoleItemWasClicked):
(WebInspector.DefaultDashboardView.prototype.animationEnded):
(WebInspector.DefaultDashboardView.prototype._setConsoleItemValue):
(WebInspector.DefaultDashboardView.prototype._setItemEnabled):
2014-03-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: update-InspectorBackendCommands.rb is putting legacy protocol files in the wrong place
https://bugs.webkit.org/show_bug.cgi?id=129959
Reviewed by Timothy Hatcher.
The script was putting legacy generated files into UserInterface
instead of UserInterface/Protocol.
* Scripts/update-InspectorBackendCommands.rb:
2014-03-07 Timothy Hatcher <timothy@apple.com>
Load source maps and their resources asynchronously.
https://bugs.webkit.org/show_bug.cgi?id=112071
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/SourceMapManager.js:
(WebInspector.SourceMapManager.prototype.loadAndParseSourceMap):
(WebInspector.SourceMapManager.prototype.downloadSourceMap):
(WebInspector.SourceMapManager.prototype.sourceMapLoaded):
(WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
Use NetworkAgent.loadResource.
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
(WebInspector.SourceMapResource.prototype.createSourceCodeTextRange):
Use NetworkAgent.loadResource.
* UserInterface/Protocol/InspectorWebBackendCommands.js: Updated.
2014-03-04 Brian Burg <bburg@apple.com>
Inspector does not restore breakpoints after a page reload
https://bugs.webkit.org/show_bug.cgi?id=129655
Reviewed by Joseph Pecoraro.
Fix some console asserts that fire when breakpoints resolve.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.breakpointResolved):
This had a typo, it should be `breakpoint.identifier`.
(WebInspector.DebuggerManager.prototype.scriptDidParse):
Sometimes the `url` parameter is empty instead of null.
2014-03-04 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: Remove WebInspector.EventHandler in favor of WebInspector.EventListenerSet
https://bugs.webkit.org/show_bug.cgi?id=129185
Reviewed by Timothy Hatcher.
* UserInterface/Base/EventHandler.js: Removed.
* UserInterface/Main.html: Don't include EventHandler.js.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._dismissPopover):
(WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
Use EventListenerSet instead of EventHandler.
2014-03-03 Jonathan Wells <jonowells@apple.com>
Web Inspector: Match color of regex in source view with a popover
https://bugs.webkit.org/show_bug.cgi?id=129645
Reviewed by Timothy Hatcher.
* UserInterface/Views/LogContentView.css:
(.console-formatted-string):
(.console-formatted-regexp):
2014-03-03 Jonathan Wells <jonowells@apple.com>
Web Inspector: Better Debugger popovers for RegExp values
https://bugs.webkit.org/show_bug.cgi?id=129633
Reviewed by Timothy Hatcher.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression.populate):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
2014-03-03 Timothy Hatcher <timothy@apple.com>
Don't try to parse legacy CSS gradients -- we don't support them.
https://bugs.webkit.org/show_bug.cgi?id=129623
Reviewed by Joseph Pecoraro.
* UserInterface/Models/Gradient.js:
(WebInspector.Gradient.stopsWithComponents): Fix a possible exception on malformed stops.
(WebInspector.LinearGradient.linearGradientWithComponents): Return early for legacy gradients.
2014-03-03 Timothy Hatcher <timothy@apple.com>
Remove an innocuous error message and support default views for Resource and Debugger sidebars.
https://bugs.webkit.org/show_bug.cgi?id=129622
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView): Added.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView): Added.
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject): Don't log an error
if the tree element isn't a Script. We try to find any represented object, and it can fail.
2014-03-03 Timothy Hatcher <timothy@apple.com>
Fix an exception caused by trying to access the DOM before it is loaded.
https://bugs.webkit.org/show_bug.cgi?id=129617
Reviewed by Andreas Kling.
* UserInterface/Base/Main.js:
(WebInspector.loaded): Move global event listeners from here...
(WebInspector.contentLoaded): ... to here.
2014-03-01 Timothy Hatcher <timothy@apple.com>
Make Start Timeline Recording in the Develop menu show the Timeline view again.
This also fixes a noticeable delay between showing the sidebar and the default Timeline
view when initially opening the Web Inspector to the Timeline.
https://bugs.webkit.org/show_bug.cgi?id=129545
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded): Call TimelineSidebarPanel.initialize to prime the content view.
This is needed so the view is ready in this run loop cycle, where it was delayed before.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setTimelineProfilingEnabled): Call TimelineSidebarPanel.showTimelineOverview.
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.initialize): Added.
2014-03-01 Timothy Hatcher <timothy@apple.com>
Select the Resource navigation sidebar by default when there is no cookie.
https://bugs.webkit.org/show_bug.cgi?id=129544
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector._restoreInspectorViewStateFromCookie):
2014-03-01 Timothy Hatcher <timothy@apple.com>
Label JavaScript forced layouts as such in the Timeline.
https://bugs.webkit.org/show_bug.cgi?id=129546
Reviewed by David Kilzer.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
* UserInterface/Models/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord.EventType.displayName):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
2014-02-28 Timothy Hatcher <timothy@apple.com>
Enable breakpoints when adding a new breakpoint or enabling an existing breakpoint.
This eliminates a multi-step process for the user that can be confusing.
https://bugs.webkit.org/show_bug.cgi?id=129426
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.set breakpointsEnabled):
(WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointsEnabledDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointsToggleButtonClicked):
2014-02-27 Timothy Hatcher <timothy@apple.com>
Use a RegExp when when using CodeMirror's SearchCursor.
This avoids doing toLowerCase() on every line of the TextEditor.
https://bugs.webkit.org/show_bug.cgi?id=129463
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TextEditor.js:
(TextEditor.prototype.performSearch): Use a RegExp for query. Pass false for the caseFold
argument, but it is ignored for RegExp searches anyway.
2014-02-27 Brian Burg <bburg@apple.com>
Web Inspector: model tests should use a special Test.html inspector page
https://bugs.webkit.org/show_bug.cgi?id=129190
Reviewed by Timothy Hatcher.
* UserInterface/Base/Test.js: Added.
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.updateDockedState):
(InspectorTest.log):
(InspectorTest.assert):
(InspectorTest.debugLog):
(InspectorTest.completeTest):
(InspectorTest.evaluateInPage):
(InspectorTest.addResult):
(InspectorTest.clearResults):
(InspectorTest.pageLoaded):
(InspectorTest.reportUncaughtException):
(.console.logType):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype.runAfterPendingDispatches):
(InspectorBackendClass.prototype._flushPendingScripts):
* UserInterface/Protocol/InspectorObserver.js:
(WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):
* UserInterface/Test.html: Added.
2014-02-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JSContext inspection should report exceptions in the console
https://bugs.webkit.org/show_bug.cgi?id=128776
Reviewed by Timothy Hatcher.
* UserInterface/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
(WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
(WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
Provide better handling for "[native code]" and legacy "undefined"
call frame URLs. Never linkify these. Also, when showing a link
for an exception, always use the first non-native call frame as
the link location.
2014-02-26 Timothy Hatcher <timothy@apple.com>
Fix an issue where the Timeline filter scope bars were not applying.
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TimelineDataGrid.js:
(TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters): Use .get() to access the ScopeBar.
2014-02-25 Andreas Kling <akling@apple.com>
Prune dead code for Web Inspector memory instrumentation.
<https://webkit.org/b/129286>
Reviewed by Sam Weinig.
* UserInterface/Protocol/InspectorWebBackendCommands.js:
2014-02-24 Timothy Hatcher <timothy@apple.com>
Switch from prefixed CSS gradient to unprefixed.
https://bugs.webkit.org/show_bug.cgi?id=129279
Reviewed by Andreas Kling.
* UserInterface/Views/BreakpointActionView.css:
(.breakpoint-action-append-button):
(.breakpoint-action-remove-button):
* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch):
* UserInterface/Views/CompletionSuggestionsView.css:
(.completion-suggestions-container > .item:active):
* UserInterface/Views/DashboardView.css:
(.toolbar .dashboard):
* UserInterface/Views/DataGrid.css:
(.data-grid th):
(.data-grid table.data):
(.data-grid th.sortable:not(.mouse-over-collapser):active):
(.data-grid th.sort-ascending, .data-grid th.sort-descending):
(.data-grid th.sortable.sort-ascending:not(.mouse-over-collapser):active, .data-grid th.sortable.sort-descending:not(.mouse-over-collapser):active):
(body.window-inactive .data-grid th.sort-descending):
* UserInterface/Views/DetailsSection.css:
(.details-section > .header):
(.details-section .details-section > .header):
* UserInterface/Views/DividerNavigationItem.css:
(.navigation-bar .item.divider):
* UserInterface/Views/FindBanner.css:
(.find-banner > button:active:not(:disabled)):
* UserInterface/Views/Main.css:
(#split-content-browser > .navigation-bar):
* UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .overflow-shadow):
(.navigation-sidebar-panel-content-tree-outline .item.selected):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
(body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
* UserInterface/Views/ProbeSetDataGrid.css:
(.details-section.probe-set .data-grid > .data-container td.unknown-value):
(.details-section.probe-set .data-grid th):
* UserInterface/Views/RadioButtonNavigationItem.css:
(.navigation-bar .item.radio.button.text-only.selected):
* UserInterface/Views/TextEditor.css:
(.text-editor .bouncy-highlight):
* UserInterface/Views/TimelineContentView.css:
(.content-view.timeline > .view-container > .timeline-view > .data-grid table.data):
* UserInterface/Views/TimelineDataGrid.css:
(.timeline-data-grid-tree-outline .item:hover):
* UserInterface/Views/TimelineRuler.css:
(.timeline-ruler > .header > .divider):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .title-bar):
(.sidebar > .panel.timeline > .content > .stripe-background):
* UserInterface/Views/Toolbar.css:
(body:not(.mac-platform) .toolbar):
(body.docked.mac-platform.mavericks .toolbar):
2014-02-24 Timothy Hatcher <timothy@apple.com>
Fix the missing navigation bar in the Debugger sidebar panel.
Sorting the CSS resources caused specificity issue.
https://bugs.webkit.org/show_bug.cgi?id=129251
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger > .content):
(.sidebar > .panel.navigation.debugger > .navigation-bar):
* UserInterface/Views/LayoutTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
* UserInterface/Views/NetworkTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
* UserInterface/Views/ResourceSidebarPanel.css:
(.sidebar > .panel.navigation.resource > .empty-content-placeholder):
(.sidebar > .panel.navigation.resource > .search-bar):
(.sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
* UserInterface/Views/ScriptTimelineView.css:
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
(.sidebar > .panel.navigation.timeline > .title-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timelines):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .timelines-content):
(.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item .icon):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected .close-button):
(.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):
(.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
(.sidebar > .panel.navigation.timeline > .timelines-content .close-button:active):
(.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content):
(.sidebar > .panel.navigation.timeline > .content > .stripe-background):
(.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content > .stripe-background):
2014-02-24 Timothy Hatcher <timothy@apple.com>
Give non-Mac platforms a default toolbar background so it isn't just white.
https://bugs.webkit.org/show_bug.cgi?id=129260
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded): Style the boby with platform classes.
* UserInterface/Base/Utilities.js:
(String.prototype.contains): Added.
* UserInterface/Views/Toolbar.css:
(body.docked .toolbar, body:not(.mac-platform) .toolbar): Added. Default toolbar background.
(body.docked.mac-platform.mavericks .toolbar, body.docked.mac-platform.mountain-lion): Added.
(body.mac-platform:not(.docked) .toolbar .item.button > .label): Only apply to Mac.
2014-02-24 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: Remove single quote characters from Web Inspector JavaScript files
https://bugs.webkit.org/show_bug.cgi?id=129253
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.openURL):
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.cookieDomainMatchesResourceDomain):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
(WebInspector.DOMTreeElement.prototype._startEditingTagName.editingComitted):
(WebInspector.DOMTreeElement.prototype._startEditingTagName.editingCancelled):
(WebInspector.DOMTreeElement.prototype._startEditingTagName):
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._ondragover):
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.addPlaceholderNode):
2014-02-23 Dan Bernstein <mitz@apple.com>
Removed -Wno-format-y2k from WARNING_CFLAGS
Rubber-stamped by Sam Weinig.
* Configurations/Base.xcconfig:
2014-02-23 Diego Pino García <dpino@igalia.com>
[GTK] Fix build after Web Inspector code reorganization (r164543)
https://bugs.webkit.org/show_bug.cgi?id=129231
Reviewed by Dean Jackson.
* GNUmakefile.am:
Modify paths to Web Inspector code.
2014-02-23 Antoine Quint <graouts@webkit.org>
Web Inspector: color picker sliders aren't laid out correctly
https://bugs.webkit.org/show_bug.cgi?id=129234
Reviewed by Joseph Pecoraro.
While it's unclear to me what happened, the "position" property for the color picker sliders
wasn't being computed as expected and used relative positioning. I assume this is related to
r164543 when the order of CSS files changed.
* UserInterface/Views/Slider.css:
(.slider):
2014-02-22 Dan Bernstein <mitz@apple.com>
REGRESSION (r164507): Crash beneath JSGlobalObjectInspectorController::reportAPIException at facebook.com, twitter.com, youtube.com
https://bugs.webkit.org/show_bug.cgi?id=129227
Reviewed by Eric Carlson.
Reverted r164507.
* UserInterface/Views/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
2014-02-21 Timothy Hatcher <timothy@apple.com>
Organize WebInspectorUI/UserInterface into sub-directories.
https://bugs.webkit.org/show_bug.cgi?id=129194
Rubber-stamped by Joseph Pecoraro.
* Scripts/copy-user-interface-resources.sh: Fix Image URLs and Protocol paths.
* UserInterface/Base: Added.
* UserInterface/Controllers: Added.
* UserInterface/Images: Added.
* UserInterface/Main.html: Updated.
* UserInterface/Models Added.
* UserInterface/Protocol Added.
* UserInterface/Views: Added.
2014-02-21 Timothy Hatcher <timothy@apple.com>
Add inspection user interface for IndexedDB.
https://bugs.webkit.org/show_bug.cgi?id=129162
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
* UserInterface/IndexedDatabase.js: Added.
(WebInspector.IndexedDatabase):
(WebInspector.IndexedDatabase.prototype.get name):
(WebInspector.IndexedDatabase.prototype.get securityOrigin):
(WebInspector.IndexedDatabase.prototype.get host):
(WebInspector.IndexedDatabase.prototype.get version):
(WebInspector.IndexedDatabase.prototype.get objectStores):
(WebInspector.IndexedDatabase.prototype.saveIdentityToCookie):
* UserInterface/IndexedDatabaseEntryDataGridNode.js: Added.
(WebInspector.IndexedDatabaseEntryDataGridNode):
(WebInspector.IndexedDatabaseEntryDataGridNode.prototype.get entry):
(WebInspector.IndexedDatabaseEntryDataGridNode.prototype.createCellContent):
* UserInterface/IndexedDatabaseHostTreeElement.js: Added.
(WebInspector.IndexedDatabaseHostTreeElement):
(WebInspector.IndexedDatabaseHostTreeElement.prototype.get name):
(WebInspector.IndexedDatabaseHostTreeElement.prototype.get categoryName):
* UserInterface/IndexedDatabaseObjectStore.js: Added.
(WebInspector.IndexedDatabaseObjectStore):
(WebInspector.IndexedDatabaseObjectStore.prototype.get name):
(WebInspector.IndexedDatabaseObjectStore.prototype.get keyPath):
(WebInspector.IndexedDatabaseObjectStore.prototype.get autoIncrement):
(WebInspector.IndexedDatabaseObjectStore.prototype.get parentDatabase):
(WebInspector.IndexedDatabaseObjectStore.prototype.get indexes):
(WebInspector.IndexedDatabaseObjectStore.prototype.saveIdentityToCookie):
(WebInspector.IndexedDatabaseObjectStore.prototype.establishRelationship):
* UserInterface/IndexedDatabaseObjectStoreContentView.css: Added.
(.content-view.indexed-database-object-store > .data-grid):
(.content-view.indexed-database-object-store > .data-grid td .section .header):
(.content-view.indexed-database-object-store > .data-grid td .section .header::before):
(.content-view.indexed-database-object-store > .data-grid td .section .header .title):
(.content-view.indexed-database-object-store > .data-grid table.data):
(.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(even)):
(.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(odd)):
(.content-view.indexed-database-object-store > .data-grid table.data tr.filler):
(.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .section .header::before):
(.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .section.expanded .header::before):
(.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li.parent::before):
(.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li.parent.expanded::before):
(.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li *):
* UserInterface/IndexedDatabaseObjectStoreContentView.js: Added.
(WebInspector.IndexedDatabaseObjectStoreContentView.displayKeyPath):
(WebInspector.IndexedDatabaseObjectStoreContentView):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype.closed):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype.saveToCookie):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype.updateLayout):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._reset):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._dataGridScrolled):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData):
* UserInterface/IndexedDatabaseObjectStoreIndex.js: Added.
(WebInspector.IndexedDatabaseObjectStoreIndex):
(WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get name):
(WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get keyPath):
(WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get unique):
(WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get multiEntry):
(WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get parentObjectStore):
(WebInspector.IndexedDatabaseObjectStoreIndex.prototype.saveIdentityToCookie):
(WebInspector.IndexedDatabaseObjectStoreIndex.prototype.establishRelationship):
* UserInterface/IndexedDatabaseObjectStoreIndexTreeElement.js: Added.
(WebInspector.IndexedDatabaseObjectStoreIndexTreeElement):
(WebInspector.IndexedDatabaseObjectStoreIndexTreeElement.prototype.get objectStoreIndex):
* UserInterface/IndexedDatabaseObjectStoreTreeElement.js: Added.
(WebInspector.IndexedDatabaseObjectStoreTreeElement):
(WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.get objectStore):
(WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.oncollapse):
(WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.onpopulate):
* UserInterface/IndexedDatabaseTreeElement.js: Added.
(WebInspector.IndexedDatabaseTreeElement):
(WebInspector.IndexedDatabaseTreeElement.prototype.get indexedDatabase):
(WebInspector.IndexedDatabaseTreeElement.prototype.oncollapse):
(WebInspector.IndexedDatabaseTreeElement.prototype.onpopulate):
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.sidebarPanelForRepresentedObject):
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
(WebInspector.ResourceSidebarPanel.prototype._indexedDatabaseWasAdded):
(WebInspector.ResourceSidebarPanel.prototype._storageCleared):
* UserInterface/StorageManager.js:
(WebInspector.StorageManager):
(WebInspector.StorageManager.prototype.initialize):
(WebInspector.StorageManager.prototype.processData):
(WebInspector.StorageManager.prototype.requestIndexedDatabaseData):
(WebInspector.StorageManager.prototype._mainResourceDidChange):
(WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processDatabaseNames):
(WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processDatabase):
(WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded):
(WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processObjectStore):
(WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processObjectStoreIndex):
(WebInspector.StorageManager.prototype._securityOriginDidChange):
* UserInterface/URLUtilities.js:
(parseSecurityOrigin):
2014-02-22 Antoine Quint <graouts@webkit.org>
Web Inspector: allow drag-to-adjust on angle input of gradients editor
https://bugs.webkit.org/show_bug.cgi?id=129095
Reviewed by Timothy Hatcher.
Rename CodeMirrorDragToAlterNumberController to CodeMirrorDragToAdjustNumberController and move
the core logic of a drag-to-adjust behavior out of it to a new generic class DragToAdjustController.
We use this new class from CodeMirrorGradientEditingController to provide drag-to-adjust behavior
in the angle input field of the gradient editor and also as a supporting object for the CodeMirror-
specific class.
* UserInterface/CodeMirrorDragToAdjustNumberController.css: Renamed from Source/WebInspectorUI/UserInterface/CodeMirrorDragToAlterNumberController.css.
(.CodeMirror.drag-to-adjust .CodeMirror-lines):
* UserInterface/CodeMirrorDragToAdjustNumberController.js: Added.
Removed the UI logic and use the new DragToAdjustController as a supporting object instead. We implement
the various DragToAdjustController delegate methods in order to customize its behavior to work within the
context of a CodeMirror editor, specifically to prevent activation when the editor is read-only and to
prevent adjustment when the hovered token isn't a number.
(WebInspector.CodeMirrorDragToAdjustNumberController):
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.get enabled):
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.set enabled):
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerActiveStateChanged):
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanBeActivated):
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanBeAdjusted):
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerWasAdjustedByAmount):
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerDidReset):
(WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanAdjustObjectAtPoint):
* UserInterface/CodeMirrorGradientEditingController.css:
(.gradient-editing-controller > label.drag-to-adjust > input):
* UserInterface/CodeMirrorGradientEditingController.js:
Adopt the new DragToAdjustController to make the angle input field value adjustable by dragging.
(WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
(WebInspector.CodeMirrorGradientEditingController.prototype.dragToAdjustControllerWasAdjustedByAmount):
(WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent):
(WebInspector.CodeMirrorGradientEditingController.prototype._angleInputValueDidChange):
* UserInterface/DragToAdjustController.js: Renamed from Source/WebInspectorUI/UserInterface/CodeMirrorDragToAlterNumberController.js.
New DragToAdjustController class exposing only the core UI logic of a drag-to-adjust behavior in the context
of a DOM element, exposing a few delegation methods to customize the controller's behavior:
- dragToAdjustControllerActiveStateChanged() notifies that the .active property has changed, allowing bringup
and cleanup work to be performed.
- dragToAdjustControllerDidReset() notifies that the various tracking states of the controller have been reset
allowing other state objects used by clients to be cleared.
- dragToAdjustControllerCanBeActivated() is used to check whether the controller may enter the active state upon
first hovering the target element.
- dragToAdjustControllerCanBeAdjusted() is used to check whether adjustment can be performed at the moment when
the user actually is about to engage in a drag-to-adjust interaction.
- dragToAdjustControllerCanAdjustObjectAtPoint() is used to check whether the object at the provided point (mouse
location) is an adjustable value.
- dragToAdjustControllerWasAdjustedByAmount() notifies that there is a new amount to add to the current value
following a drag-to-adjust interaction.
(WebInspector.DragToAdjustController):
(WebInspector.DragToAdjustController.prototype.get element):
(WebInspector.DragToAdjustController.prototype.set element):
(WebInspector.DragToAdjustController.prototype.set enabled):
(WebInspector.DragToAdjustController.prototype.get active):
(WebInspector.DragToAdjustController.prototype.set active):
(WebInspector.DragToAdjustController.prototype.reset):
(WebInspector.DragToAdjustController.prototype.handleEvent):
(WebInspector.DragToAdjustController.prototype._setDragging):
(WebInspector.DragToAdjustController.prototype._setTracksMouseClickAndDrag):
(WebInspector.DragToAdjustController.prototype._modifiersDidChange):
(WebInspector.DragToAdjustController.prototype._mouseMoved):
(WebInspector.DragToAdjustController.prototype._mouseWasPressed):
(WebInspector.DragToAdjustController.prototype._mouseWasDragged):
(WebInspector.DragToAdjustController.prototype._mouseWasReleased):
* UserInterface/Main.html:
Link in new source files.
2014-02-21 Chi Wai Lau <clau@apple.com>
Web Inspector: Replace binarySearch with lowerBound and upperBound functions
https://bugs.webkit.org/show_bug.cgi?id=118609
Reviewed by Timothy Hatcher.
This makes insertionIndexForObjectInListSortedByFunction work in O(log(n)) time instead of O(n).
* UserInterface/BinarySearch.js: Removed.
* UserInterface/Main.html:
* UserInterface/Utilities.js:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2014-02-21 Brian Burg <bburg@apple.com>
Web Inspector: animate breakpoint tree elements when probe samples are received
https://bugs.webkit.org/show_bug.cgi?id=128334
Reviewed by Timothy Hatcher.
* UserInterface/BreakpointIcons.css: Removed, rules migrated to the following file.
* UserInterface/BreakpointTreeElement.css: When we want to animateon top of the
static icon, we set the icon image as the icon element's background, and animate
a span on top of the icon element.
(.breakpoint-exception-icon .icon): Moved.
(.breakpoint-generic-line-icon .icon):
(.breakpoint-generic-line-icon .icon > span): Added.
(.data-updated.breakpoint-generic-line-icon .icon > span): Added.
* UserInterface/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement): Rewrite event listener add/remove to use EventListenerSet.
(WebInspector.BreakpointTreeElement.prototype.ondetach): Override to unregister the instance's listeners.
(WebInspector.BreakpointTreeElement.prototype._addProbeSet): Added.
(WebInspector.BreakpointTreeElement.prototype._removeProbeSet): Added.
(WebInspector.BreakpointTreeElement.prototype._probeSetAdded): Added.
(WebInspector.BreakpointTreeElement.prototype._probeSetRemoved): Added.
Add/remove listeners when probe sets change.
(WebInspector.BreakpointTreeElement.prototype._samplesCleared): Listeners should follow
the active data table.
(WebInspector.BreakpointTreeElement.prototype._dataUpdated): Run the animation when probe data changes.
(WebInspector.BreakpointTreeElement.prototype._breakpointLocationDidChange): Fix a listener leak.
* UserInterface/Main.html: Remove BreakpointIcons.css.
* UserInterface/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline .item .icon): give icons
'position: relative' so child spans can be absolutely positioned.
* UserInterface/ProbeDetailsSidebarPanel.js: Get probeSet out of the event data
container. The probe set used to be passed as the data container itself.
(WebInspector.ProbeDetailsSidebarPanel.prototype._probeSetAdded):
* UserInterface/ProbeManager.js:
(WebInspector.ProbeManager.prototype._breakpointActionsChanged.set get knownProbeIdentifiers):
(WebInspector.ProbeManager.prototype._breakpointActionsChanged):
(WebInspector.ProbeManager.prototype.get _probeSetForBreakpoint.set this):
* UserInterface/ProbeSet.js:
(WebInspector.ProbeSet.prototype.clearSamples): include the old data table as the SamplesCleared event data.
* UserInterface/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype._probeSetsChanged):
2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JSContext inspection should report exceptions in the console
https://bugs.webkit.org/show_bug.cgi?id=128776
Reviewed by Timothy Hatcher.
* UserInterface/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
(WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
(WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
Provide better handling for "[native code]" and legacy "undefined"
call frame URLs. Never linkify these. Also, when showing a link
for an exception, always use the first non-native call frame as
the link location.
2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
Revert r164486, causing a number of test failures.
Unreviewed rollout.
2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JSContext inspection should report exceptions in the console
https://bugs.webkit.org/show_bug.cgi?id=128776
Reviewed by Timothy Hatcher.
* UserInterface/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
(WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
(WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
Provide better handling for "[native code]" and legacy "undefined"
call frame URLs. Never linkify these. Also, when showing a link
for an exception, always use the first non-native call frame as
the link location.
2014-02-21 Antoine Quint <graouts@webkit.org>
Web Inspector: scrollbar may appear when selecting a stop in gradient editor
https://bugs.webkit.org/show_bug.cgi?id=129149
Reviewed by Timothy Hatcher.
Ensure the angle input is not focused as we update the size of the gradient editor's
popover content since, if it were, it'd make a scrollbar appear as we animate the
popover's frame to fit its new content.
* UserInterface/CodeMirrorGradientEditingController.js:
(WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
2014-02-20 Antoine Quint <graouts@webkit.org>
Web Inspector: rich editing of CSS gradients
https://bugs.webkit.org/show_bug.cgi?id=119686
Reviewed by Timothy Hatcher.
Look for gradient definitions in CSS resources and implement a gradient-specific CodeMirrorEditingController
to edit those CSS gradients. The CodeMirrorGradientEditingController consists of a GradientSlider, a new widget
allowing the editing of gradient stops, a <select> to pick between various gradient types, a text input to edit
the gradient angle (for linear gradients) and finally a ColorPicker when a gradient stop is picked for editing.
* Localizations/en.lproj/localizedStrings.js:
New localized strings for the content of the gradient editing controller popover.
* UserInterface/CodeMirrorAdditions.js:
New .createGradientMarkers() method which, similar to .createColorMarkers(), takes in an optional TextRange, and
looks for all gradients specified in CSS to create TextMarkers with new type WebInspector.TextMarker.Type.Gradient.
In order to fully identify these CSS gradient strings, we implement a tokenizer to look for the final closing
parenthesis since there can be nested opening and closing parentheses as colors are specified for stops.
* UserInterface/CodeMirrorGradientEditingController.css: Added.
(.gradient-editing-controller):
(.gradient-editing-controller.edits-color):
(.gradient-editing-controller.radial-gradient):
(.gradient-editing-controller.edits-color.radial-gradient):
(.gradient-editing-controller select):
(.gradient-editing-controller .gradient-slider):
(.gradient-editing-controller .color-picker):
(.gradient-editing-controller > .color-picker > .slider):
(.gradient-editing-controller > .color-picker > .brightness):
(.gradient-editing-controller > .color-picker > .opacity):
(.gradient-editing-controller > label):
(.gradient-editing-controller.radial-gradient > label):
(.gradient-editing-controller.edits-color > label):
(.gradient-editing-controller > label > input):
* UserInterface/CodeMirrorGradientEditingController.js: Added.
(WebInspector.CodeMirrorGradientEditingController):
(WebInspector.CodeMirrorGradientEditingController.prototype.get initialValue):
(WebInspector.CodeMirrorGradientEditingController.prototype.get cssClassName):
(WebInspector.CodeMirrorGradientEditingController.prototype.get popoverPreferredEdges):
(WebInspector.CodeMirrorGradientEditingController.prototype.popoverTargetFrameWithRects):
(WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
(WebInspector.CodeMirrorGradientEditingController.prototype.popoverDidPresent):
Implementation of CodeMirrorEditingController methods meant to be overridden. This allows us
to customize the popover's appearance, mostly to control how it attaches to the gradient
strings in the editor.
(WebInspector.CodeMirrorGradientEditingController.prototype.handleEvent):
Event handler for changes in the <select> governing gradient type and <input> for the angle.
(WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopsDidChange):
Implementation of a GradientSlider delegation method, we use this to update the .text property
in order to propagate the stops change to the editor.
(WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
Implementation of a GradientSlider delegation method, we use this to control the display of the
ColorPicker used to edit the color of a selected stop.
(WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent):
Deal with changes in the <input> for the angle, ensuring we have a "º" string added to the value.
(WebInspector.CodeMirrorGradientEditingController.prototype._handleChangeEvent):
Deal with changes in the <select> for the type, preserving the stops list from one gradient type
to the other. Gradient type-specific information (angle for linear gradients, sizing for radial
gradients) is lost as we toggle between gradient types.
(WebInspector.CodeMirrorGradientEditingController.prototype._colorPickerColorChanged):
Propagate a color change in the ColorPicker to the stop being edited in the GradientSlider and
and update the .text property in order to propagate the stops change to the editor.
(WebInspector.CodeMirrorGradientEditingController.prototype._updateCSSClassForGradientType):
As we toggle the gradient type in ._handleChangeEvent(), update the CSS class used to hide or show
the angle <input> which is only relevant for linear gradients.
* UserInterface/ColorPicker.js:
(WebInspector.ColorPicker):
Adopt the new Checkers.svg file to display the checkers pattern in the background of the opacity slider.
(WebInspector.ColorPicker.prototype.get colorWheel):
Expose the ColorWheel such that it can be sized by ColorPicker clients.
(WebInspector.ColorPicker.prototype._updateColor):
Drive-by fix for a bug where we'd attempt to use the RGB components of a color to get the alpha-aware version
of the color even though the base format was HSL.
* UserInterface/Gradient.js: Added.
Parser for gradient strings as passed from the CodeMirror .createGradientMarkers() extension method. In the case
of linear gradients, we parse all values, save for lengths, and in the case of radial gradients, we preserve the
sizing information as a string and parse only the gradient stops as the sizing information is only useful to show
in an editor if attached to an element with metrics.
Since instances of Gradient are used as the .value property of CodeMirrorGradientEditingController, we implement
the required .copy() and .toString() methods. The .toString() implementations are aware of default values for angles
and color stop offsets and only print those as necessary and use shorthands when possible.
(WebInspector.Gradient.fromString):
(WebInspector.Gradient.stopsWithComponents):
(WebInspector.Gradient.stringFromStops):
(WebInspector.LinearGradient):
(WebInspector.LinearGradient.linearGradientWithComponents):
(WebInspector.LinearGradient.prototype.copy):
(WebInspector.LinearGradient.prototype.toString):
(WebInspector.RadialGradient):
(WebInspector.RadialGradient.radialGradientWithComponents):
(WebInspector.RadialGradient.prototype.copy):
(WebInspector.RadialGradient.prototype.toString):
* UserInterface/GradientSlider.css: Added.
(.gradient-slider):
(.gradient-slider > canvas):
(.gradient-slider > .add-area):
(.gradient-slider-knob):
(.gradient-slider-knob.shadow):
(.gradient-slider-knob.selected):
(.gradient-slider-knob.detaching):
(.gradient-slider-knob.fade-out):
(.gradient-slider-knob > div):
(.gradient-slider-knob > img):
* UserInterface/GradientSlider.js: Added.
Widget used to edit a list of stops for a gradient, linear or radial. The widget features a <canvas> element
that draws the gradient as a linear gradient from left to right with checkers in the background to correctly
display transparent colors. Attached to this background, individual knobs are shown for each stop in the provided
stops array. These knobs can be dragged from left to right to change the matching stop offset, but also down to
detach the knob and remove this stop. Additionally, knobs can be clicked to toggle their selected state, where only
one knob can be selected at a time. The Esc. key is used to remove selection of the currently selected knob.
(WebInspector.GradientSlider):
(WebInspector.GradientSlider.prototype.get element):
(WebInspector.GradientSlider.prototype.get stops):
(WebInspector.GradientSlider.prototype.set stops):
(WebInspector.GradientSlider.prototype.get selectedStop):
(WebInspector.GradientSlider.prototype.handleEvent):
(WebInspector.GradientSlider.prototype.handleKeydownEvent):
(WebInspector.GradientSlider.prototype.knobXDidChange):
(WebInspector.GradientSlider.prototype.knobCanDetach):
(WebInspector.GradientSlider.prototype.knobWillDetach):
(WebInspector.GradientSlider.prototype.knobSelectionChanged):
(WebInspector.GradientSlider.prototype._handleMouseover):
(WebInspector.GradientSlider.prototype._handleMousemove):
(WebInspector.GradientSlider.prototype._handleMouseout):
(WebInspector.GradientSlider.prototype._handleClick):
(WebInspector.GradientSlider.prototype._updateShadowKnob):
(WebInspector.GradientSlider.prototype._sortStops):
(WebInspector.GradientSlider.prototype._updateStops):
(WebInspector.GradientSlider.prototype._updateCanvas):
(WebInspector.GradientSlider.prototype._updateKnobs):
(WebInspector.GradientSliderKnob):
(WebInspector.GradientSliderKnob.prototype.get element):
(WebInspector.GradientSliderKnob.prototype.get stop):
(WebInspector.GradientSliderKnob.prototype.set stop):
(WebInspector.GradientSliderKnob.prototype.get x):
(WebInspector.GradientSliderKnob.prototype.set x):
(WebInspector.GradientSliderKnob.prototype.get y):
(WebInspector.GradientSliderKnob.prototype.set y):
(WebInspector.GradientSliderKnob.prototype.get wellColor):
(WebInspector.GradientSliderKnob.prototype.set wellColor):
(WebInspector.GradientSliderKnob.prototype.get selected):
(WebInspector.GradientSliderKnob.prototype.set selected):
(WebInspector.GradientSliderKnob.prototype.handleEvent):
(WebInspector.GradientSliderKnob.prototype._handleMousedown):
(WebInspector.GradientSliderKnob.prototype._handleMousemove):
(WebInspector.GradientSliderKnob.prototype._handleMouseup):
(WebInspector.GradientSliderKnob.prototype._handleTransitionEnd):
(WebInspector.GradientSliderKnob.prototype._updateTransform):
* UserInterface/Images/Checkers.svg: Added.
New asset to draw checkers for color wells.
* UserInterface/Images/GradientStop.png: Added.
* UserInterface/Images/GradientStop@2x.png: Added.
* UserInterface/Images/GradientStopSelected.png: Added.
* UserInterface/Images/GradientStopSelected@2x.png: Added.
New assets used by the gradient slider.
* UserInterface/Main.html:
Link to the new source files.
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
Add a call to .createGradientMarkers() such that we support editing of CSS gradients in such editors.
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
Also recognize gradient markers as valid editable markers.
* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.createGradientMarkers):
Wrapper for the CodeMirror extension method .createGradientMarkers() such that it may be used by subclasses
that have no knowledge of CodeMirror.
(WebInspector.TextEditor.prototype.editingControllerForMarker):
Return a CodeMirrorGradientEditingController for TextMarkers with WebInspector.TextMarker.Type.Gradient type.
* UserInterface/TextMarker.js:
Add the WebInspector.TextMarker.Type.Gradient type.
2014-02-20 Antoine Quint <graouts@webkit.org>
Web Inspector: create a CodeMirrorEditingController superclass
https://bugs.webkit.org/show_bug.cgi?id=129094
Reviewed by Timothy Hatcher.
Take code that is generic to editing of any text marker out of CodeMirrorColorEditingController to
create a new CodeMirrorEditingController superclass that'll be fit to use for future editing controllers.
Additioanlly, we fix existing issues with such editing by supporting text markers spread across several
lines and more robustly handling the Esc. key being pressed to dismiss a controller's popover.
* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
Adopt the new .createColorMarkers() method signature to provide a TextRange parameter rather than a single
line number.
* UserInterface/CodeMirrorAdditions.js:
Remove the .boundsForRange() method in favor of a .rectsForRange() method which will allow us to draw better
menus when hovering over a text range by providing tight bounds rather than a large box. We also handle any
line wrapping produced by CodeMirror and remove any leading white-space so that the rects are tight to the
actual characters in the text marker.
We also change .createColorMarkers() to take in a TextRange parameter rather than a line number in order to
better deal with text markers spread across multiple lines.
* UserInterface/CodeMirrorColorEditingController.js:
Remove any code that is adequate for any editing controller (which is moving to CodeMirrorEditingController).
We also adopt new interfaces exposed by CodeMirrorEditingController.
(WebInspector.CodeMirrorColorEditingController):
(WebInspector.CodeMirrorColorEditingController.prototype.get initialValue):
(WebInspector.CodeMirrorColorEditingController.prototype.get cssClassName):
(WebInspector.CodeMirrorColorEditingController.prototype.popoverWillPresent):
(WebInspector.CodeMirrorColorEditingController.prototype.popoverDidPresent):
(WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
* UserInterface/CodeMirrorEditingController.js: Copied from Source/WebInspectorUI/UserInterface/CodeMirrorColorEditingController.js.
New class meant to be subclassed by any future editing controller, and already subclassed by
CodeMirrorColorEditingController. This class exposes several hooks for subclasses to customize its behavior:
.initialValue: a value we can revert to if the editing is canceled
.cssClassName: a CSS class name that can be added to the editing controller's container
.popoverPreferredEdges: a list of preferredEdges as passed to Popover.prototype.present() with a sensible default
.popoverTargetFrameWithRects: a targetFrame passed to Popover.prototype.present(), defaults to a union of provided rects
.popoverWillPresent: called as the popover is about to be presented, typically overridden to set the popover's content
.popoverDidPresent: called as the popover just was presented, typically overridden when content needs to tuned only after
being added to the DOM and setting of the necessary machinery to update the serialized value in the editor based on interaction
within the popover without changing the serialized value upon showing the popover the very first time.
Additionally, the .value property must be an object supporting .toString() and .copy() method.
Finally, the .editingControllerDidStartEditing() and .editingControllerDidFinishEditing() delegate methods are fired
as editing begins and finishes.
(WebInspector.CodeMirrorEditingController):
(WebInspector.CodeMirrorEditingController.prototype.get marker):
(WebInspector.CodeMirrorEditingController.prototype.get range):
(WebInspector.CodeMirrorEditingController.prototype.get value):
(WebInspector.CodeMirrorEditingController.prototype.set value):
(WebInspector.CodeMirrorEditingController.prototype.get delegate):
(WebInspector.CodeMirrorEditingController.prototype.set delegate):
(WebInspector.CodeMirrorEditingController.prototype.get text):
(WebInspector.CodeMirrorEditingController.prototype.set text):
(WebInspector.CodeMirrorEditingController.prototype.get initialValue):
(WebInspector.CodeMirrorEditingController.prototype.get cssClassName):
(WebInspector.CodeMirrorEditingController.prototype.get popover):
(WebInspector.CodeMirrorEditingController.prototype.get popoverPreferredEdges):
(WebInspector.CodeMirrorEditingController.prototype.popoverTargetFrameWithRects):
(WebInspector.CodeMirrorEditingController.prototype.presentHoverMenu):
(WebInspector.CodeMirrorEditingController.prototype.dismissHoverMenu):
(WebInspector.CodeMirrorEditingController.prototype.popoverWillPresent):
(WebInspector.CodeMirrorEditingController.prototype.popoverDidPresent):
(WebInspector.CodeMirrorEditingController.prototype.handleKeydownEvent):
Event handler for keydown events as registered via the new WebInspector.addWindowKeydownListener() method.
(WebInspector.CodeMirrorEditingController.prototype.hoverMenuButtonWasPressed):
(WebInspector.CodeMirrorEditingController.prototype.didDismissPopover):
* UserInterface/Geometry.js:
(WebInspector.Rect.unionOfRects):
(WebInspector.Rect.prototype.unionWithRect):
New utilities to get a Rect that is the union of the provided Rect or array of Rects.
(WebInspector.Polygon):
(WebInspector.Polygon.prototype.bounds):
New class used to store a list of points for a polygon and get its bounds, used by the HoverMenu class.
* UserInterface/HoverMenu.css:
(.hover-menu):
(.hover-menu > svg):
(.hover-menu > svg > rect):
(.hover-menu > img):
* UserInterface/HoverMenu.js:
We remove the assumption that a HoverMenu is only used to draw a single rounded rect based on a simple
Rect and instead support presentation based on an array of Rects where we either:
- draw a single rounded rectangle if there is only a single Rect provided
- draw two disconnected open-ended rects if we're provided with two non-overlapping Rects
- draw a polygon surrounding all provided Rects in all other cases
No matter how the HoverMenu is drawn, the drawing is performed in SVG with either <rect> or a <path> elements.
(WebInspector.HoverMenu):
(WebInspector.HoverMenu.prototype.present):
(WebInspector.HoverMenu.prototype.dismiss):
(WebInspector.HoverMenu.prototype.handleEvent):
(WebInspector.HoverMenu.prototype._handleClickEvent):
(WebInspector.HoverMenu.prototype._drawOutline):
(WebInspector.HoverMenu.prototype._addRect):
(WebInspector.HoverMenu.prototype._addPath):
(WebInspector.HoverMenu.prototype._drawSingleLine):
(WebInspector.HoverMenu.prototype._drawTwoNonOverlappingLines):
(WebInspector.HoverMenu.prototype._drawOverlappingLines):
* UserInterface/Main.html:
Link to the new CodeMirrorEditingController class.
* UserInterface/Main.js:
Expose a new mechanism to deal with window-level handling of keydown events in order to allow
a list of handlers to accept or reject dealing with the provided keydown event based on the order
they were registered, in most recent to oldest registered handler. This allows, for instance, for
a more graceful handling of the Esc. key being pressed in the CodeMirrorEditingController and
bypasses the DOM structure allowing for objects managing elements in different DOM hierarchies
to compete with handling of keydown events.
(WebInspector.loaded):
(WebInspector.addWindowKeydownListener):
(WebInspector.removeWindowKeydownListener):
(WebInspector._updateWindowKeydownListener):
(WebInspector._sharedWindowKeydownListener):
* UserInterface/SourceCodeTextEditor.css:
(.hover-menu.color > img):
Update the offset applied to a HoverMenu button based on the change of layout for such buttons which
are now absolutely positioned in code by HoverMenu rather than being laid out using the flex-box model.
* UserInterface/SourceCodeTextEditor.js:
Abstrct away the assumption that only a color editing controller may be used to edit text markers in
a source code text editor.
(WebInspector.SourceCodeTextEditor.prototype.hidden):
Ensure we remove any currently-displayed hover menu for an editing controller when the editor is hidden.
This would happen in the situation where a keyboard shortcut was used to jump to another part of the
Web Inspector UI without using the mouse.
(WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
Since we're now working with text ranges rather than lines, remove the code where we'd work out a set of
changed lines and call ._updateEditableMarkers() with the changed range directly instead.
(WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerMouseOutOfHoveredMarker):
Adopt the more generic method names rather than color-specific ones.
(WebInspector.SourceCodeTextEditor.prototype._showPopover):
When showing the popover outside of the use of a CodeMirrorEditingController, such as a JavaScript expression
when debugging, also deal with the possibility of the highlighted range containing multiple lines rather
than assume a single line.
(WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
More generic method name to support future, non-color editing controllers.
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
Find the outermost marker in the list of markers provided such that a marker containing other markers
shows the UI for the containing marker. For instance, a gradient marker would contain several color
markers and it's preferable to show the editing UI for the whole gradient rather than a specific color.
Additionally, adopt more generic ivars and method names to support future, non-color editing controllers.
(WebInspector.SourceCodeTextEditor.prototype._dismissEditingController):
Support for new parameter instructing that the editing controller dismissal should be instant rather than
animated, which is the default. This is useful when, for instance, the text editor is cleared.
(WebInspector.SourceCodeTextEditor.prototype.editingControllerDidStartEditing):
(WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):
Adopt the more generic method names rather than color-specific ones.
* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.rectsForRange):
Remove .boundsForRange() in favor of this new method where we return a series of rects so that we may
draw a more pleasing HoverMenu.
(WebInspector.TextEditor.prototype.createColorMarkers):
Use a TextRanger rather than a single line number to match the underlying CodeMirror extension method.
(WebInspector.TextEditor.prototype.editingControllerForMarker):
Use the provided TextMarker's type to provide the most adequate CodeMirrorEditingController class.
* UserInterface/TextMarker.js:
(WebInspector.TextMarker.prototype.get rects):
Remove the .bounds property in favor of .rects to match the underlying CodeMirror extension method.
2014-02-20 Antoine Quint <graouts@webkit.org>
Web Inspector: Popover should animate its frame to display its refreshed content
https://bugs.webkit.org/show_bug.cgi?id=129088
Reviewed by Timothy Hatcher.
When calling .update(), we now check whether we can animate the change of frame provided the
new computed frame to best fit the current content still matches the edge the popover uses
to attach to the target frame. If we find that we can do so, we animate the background frame
of the popover while ensuring the anchor point remains stable during the animation such that
only the popover's frame seems to animate.
* UserInterface/Geometry.js:
(WebInspector.Rect.prototype.round):
Returns a new Rect with rounded values, using a floor for the position and a ceil for the size.
* UserInterface/Main.html:
Link to the new UnitBezier.js source file.
* UserInterface/Popover.js:
(WebInspector.Popover):
Make ._anchorPoint an ivar such that we don't need to pass a reference to the anchorPoint into
the various calls leading to an update of the popover's background drawing.
(WebInspector.Popover.prototype.set frame):
We no longer round the values of the frame here, instead calling the new .round() method on Rect
in places where we compute a new frame.
(WebInspector.Popover.prototype.set content):
(WebInspector.Popover.prototype.update):
Update the calls to ._update() to set the new shouldAnimate flag to true in situations where the
popover is already visible.
(WebInspector.Popover.prototype._update):
In the situation where there is a preference to animate the frame, as set by the new shouldAnimate
parameter, check that we can indeed animate by ensuring that the edge the popover uses to attach to
the target frame remains the same upon computing the new best metrics for the new content size. If
we can indeed animate, call _animateFrame(), otherwise set the new frame, anchor point and frame
drawing discretely like we used to.
(WebInspector.Popover.prototype._setAnchorPoint):
New method to ensure we floor the position of the anchor point to ensure, when animating, that the
anchor point remains stationary.
(WebInspector.Popover.prototype._animateFrame):
Using the new UnitBezier class, animate the popover frame from its previous value to its newly computed
value while ensuring the anchor point remains, at all times, the same absolute position such that it
remains stationary during the animation. The spline used to animate the frame is the same that a CSS
transition set with an "ease" timing-function (default value) would use.
(WebInspector.Popover.prototype._drawBackground):
(WebInspector.Popover.prototype._drawFrame):
Adopt new ._edge and ._anchorPoint ivars.
* UserInterface/UnitBezier.js: Added.
New class used to perform animations using a timing function specified with a cubic Bézier curve. The code
is directly adapted from the Source/WebCore/platform/graphics/UnitBezier.h file.
(WebInspector.UnitBezier):
(WebInspector.UnitBezier.prototype.solve):
(WebInspector.UnitBezier.prototype._sampleCurveX):
(WebInspector.UnitBezier.prototype._sampleCurveY):
(WebInspector.UnitBezier.prototype._sampleCurveDerivativeX):
(WebInspector.UnitBezier.prototype._solveCurveX):
2014-02-20 Antoine Quint <graouts@webkit.org>
Web Inspector: content using a CSS transition within a popover causes the popover to disappear
https://bugs.webkit.org/show_bug.cgi?id=129089
Reviewed by Timothy Hatcher.
Simply check that the element being transitioned is indeed the popover's container before assuming
that the "transitonend" received was for a fade-out transition.
* UserInterface/Popover.js:
(WebInspector.Popover.prototype.handleEvent):
2014-02-20 Antoine Quint <graouts@webkit.org>
Web Inspector: clicking on a color swatch in the Computed styles tab shouldn't show the color editing popover
https://bugs.webkit.org/show_bug.cgi?id=129093
Reviewed by Timothy Hatcher.
If the current editor is read-only, only allow cycling between color types since it wouldn't make sense to edit
such colors.
* UserInterface/CSSStyleDeclarationTextEditor.js:
2014-02-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused InspectorBackend member variable
https://bugs.webkit.org/show_bug.cgi?id=129053
Reviewed by Timothy Hatcher.
* UserInterface/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype.registerEnum):
(InspectorBackendClass.prototype.registerEvent):
2014-02-19 James Craig <jcraig@apple.com>
Web Inspector: AX: clarify reason for ignored state where possible (hidden, default for tag, etc)
https://bugs.webkit.org/show_bug.cgi?id=129037
Reviewed by Timothy Hatcher.
Passing back hidden and ignoredByDefault attrs to clarify some reasons for "ignored" status.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/DOMNode.js:
* UserInterface/DOMNodeDetailsSidebarPanel.js:
2014-02-18 James Craig <jcraig@apple.com>
Web Inspector: AX: more properties: exists, required, and invalid (exists was previously combined with ignored)
https://bugs.webkit.org/show_bug.cgi?id=128504
Reviewed by Timothy Hatcher.
Additions to the accessibility node inspector: exists, required, invalid.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/DOMNode.js:
* UserInterface/DOMNodeDetailsSidebarPanel.js:
2014-02-18 Antoine Quint <graouts@webkit.org>
Web Inspector: editing a color in the Styles sidebar using the color picker only works once for a given color
https://bugs.webkit.org/show_bug.cgi?id=128965
Reviewed by Timothy Hatcher.
Use the WebInspector.TextMarker backing the CodeMirror TextMarker object to inspect its type in
order to identify color markers that were created for a color. This fixes a regression introduced
in http://webkit.org/b/125695 when we abstracted CodeMirror TextMarker objects.
* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror):
2014-02-18 Antoine Quint <graouts@webkit.org>
Web Inspector: Editing transparent color shows incorrect opacity slider
https://bugs.webkit.org/show_bug.cgi?id=128975
Reviewed by Joseph Pecoraro.
The opacity slider should show a range of colors from transparent to the full opacity of the tinted color.
* UserInterface/ColorPicker.js:
(WebInspector.ColorPicker.prototype._updateSliders):
2014-02-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: shift-clicking #fff swatch results in bad rgb value
https://bugs.webkit.org/show_bug.cgi?id=128954
Reviewed by Daniel Bates.
parseInt("FF", 16) is already 255. Do not multiply the result by 255.
* UserInterface/Color.js:
(WebInspector.Color.fromString):
2014-02-18 Antoine Quint <graouts@webkit.org>
Web Inspector: color picker sliders sometime look wrong on Retina display
https://bugs.webkit.org/show_bug.cgi?id=128963
Reviewed by Timothy Hatcher.
Round the values used to position and size popovers in order to ensure that their content don't suffer
from poor pixel alignment on Retina displays.
* UserInterface/Popover.js:
(WebInspector.Popover.prototype.set frame):
2014-02-17 Antoine Quint <graouts@webkit.org>
Web Inspector: CSS selectors containing a color name shouldn't be considered for color editing
https://bugs.webkit.org/show_bug.cgi?id=128909
Reviewed by Joseph Pecoraro.
Disregard any text that might be contained within a CSS selector.
* UserInterface/CodeMirrorAdditions.js:
2014-02-15 Chris J. Shull <chrisjshull@gmail.com>
Web Inspector: scope chain details sidebar doesn't update values modified via console
https://bugs.webkit.org/show_bug.cgi?id=126855
Reviewed by Timothy Hatcher.
Add a RuntimeManager event that the scope chain details sidebar can
listen to to trigger refresh.
Testing on this is blocked by http://webkit.org/b/128724
(Web Inspector: Issue testing breakpoints).
* UserInterface/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evalCallback):
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
* UserInterface/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
2014-02-14 Antoine Quint <graouts@webkit.org>
Web Inspector: color wheel should support Retina displays
https://bugs.webkit.org/show_bug.cgi?id=124355
Reviewed by Timothy Hatcher.
Take into account the devicePixelRatio in order to draw the color wheel
with as many colors as we can draw with the current DPI and to correctly
convert from page coordinates to canvas coordinates when dealing with
mouse events.
* UserInterface/ColorWheel.js:
(WebInspector.ColorWheel.prototype.set dimension):
(WebInspector.ColorWheel.prototype.get tintedColor):
(WebInspector.ColorWheel.prototype.get rawColor):
(WebInspector.ColorWheel.prototype._drawRawCanvas):
(WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
(WebInspector.ColorWheel.prototype._drawTintedCanvas):
(WebInspector.ColorWheel.prototype._draw):
2014-02-13 Brian Burg <bburg@apple.com>
Web Inspector: DataGrid should support editing tables with arbitrary columns
https://bugs.webkit.org/show_bug.cgi?id=128619
Reviewed by Timothy Hatcher.
The data grid editing code should work with any columns, but was previously
hardcoded with the column identifiers used by DOMStorageView. This patch
makes the editing code work with any column identifiers. It also fixes some
bugs in previous/next navigation during data entry.
* UserInterface/DOMStorageContentView.css: Highlight missing keys and values.
(.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/DOMStorageContentView.js: Don't blow away the entire table
whenever the backend notifies us of an update to the storage object. This
caused the editing state to be destroyed when values were entered interactively.
(WebInspector.DOMStorageContentView.prototype.reset): Inline the callback
passed to DOMStorageObject.getEntries().
(WebInspector.DOMStorageContentView.prototype.itemsCleared):
(WebInspector.DOMStorageContentView.prototype.itemAdded): Request a sort
of the table rows after backend tells us about item additions or updates.
(WebInspector.DOMStorageContentView.prototype.itemUpdated): Request a sort
of the table rows after backend tells us about item additions or updates.
(WebInspector.DOMStorageContentView.prototype._sortDataGrid): Use DataGrid's
built-in sorting function.
(WebInspector.DOMStorageContentView.prototype._deleteCallback):
(WebInspector.DOMStorageContentView.prototype._editingCallback): Don't force
recreation of the entire table whenever editing finishes. Perform most
of the error checking and editing logic here, including when to insert a
new placeholder row, and when to commit the entered values to DOM storage.
* UserInterface/DOMStorageObject.js: Keep track of the DOM storage entries
in the model so we can detect duplicate entries. Remove unused `id` arguments.
(WebInspector.DOMStorageObject):
(WebInspector.DOMStorageObject.prototype.get entries):
(WebInspector.DOMStorageObject.prototype.itemsCleared):
(WebInspector.DOMStorageObject.prototype.itemRemoved):
(WebInspector.DOMStorageObject.prototype.set this):
(WebInspector.DOMStorageObject.prototype.itemAdded):
(WebInspector.DOMStorageObject.prototype.set var):
(WebInspector.DOMStorageObject.prototype.itemUpdated):
* UserInterface/DataGrid.js:
(.sortDataGrid):
(WebInspector.DataGrid.createSortableDataGrid): Use the built-in DataGrid
sortNodes() implementation.
(WebInspector.DataGrid.prototype._startEditingNodeAtColumnIndex): Renamed
from _startEditingColumnOfDataGridNode. It's easier to understand the navigation
code when presented in terms of adjusting column indexes rather than identifiers.
(WebInspector.DataGrid.prototype._startEditing):
(WebInspector.DataGrid.prototype.determineNextCell): Added. Decides which
column and row to edit next and whether the table can be sorted before the
next cell edit begins.
(WebInspector.DataGrid.prototype.moveToNextCell): Added. Wrapper method for
the above which handles sorting and beginning the next cell edit.
(WebInspector.DataGrid.prototype._editingCommitted): Use better helper methods.
(WebInspector.DataGrid.prototype._editingCancelled): Add an assert.
(WebInspector.DataGrid.prototype.get sortColumnIdentifier): Shorten.
(WebInspector.DataGrid.prototype.addPlaceholderNode):
(WebInspector.DataGrid.prototype.removeChild):
(WebInspector.DataGrid.prototype.):
(WebInspector.DataGrid.prototype.sortNodes): Remove unecessary copying
of all nodes into a separate array. Defer sorting if the user is in the
middle of editing a cell. Make placeholder nodes always sort to the bottom
regardless of the sort column identifier and sort direction.
(WebInspector.DataGridNode.prototype._attach):
(WebInspector.PlaceholderDataGridNode): Renamed from CreationDataGridNode.
(WebInspector.PlaceholderDataGridNode.prototype.makeNormal):
* UserInterface/StorageManager.js: Don't pass unused id argument.
(WebInspector.StorageManager.prototype.itemRemoved):
(WebInspector.StorageManager.prototype.itemAdded):
(WebInspector.StorageManager.prototype.itemUpdated):
2014-02-13 Brian Burg <bburg@apple.com>
Web Inspector: long script names should be have text-overflow:ellipsis in probe details sidebar
https://bugs.webkit.org/show_bug.cgi?id=128550
Reviewed by Timothy Hatcher.
Make the link element 'display: block', place it after the floated icons,
and set the appropriate CSS overflow properties.
* UserInterface/ProbeDetailsSidebarPanel.css:
(.details-section.probe-set .options > a.go-to-link):
* UserInterface/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection):
2014-02-13 Javier Fernandez <jfernandez@igalia.com>
[CSS Grid Layout] Rename named areas property
https://bugs.webkit.org/show_bug.cgi?id=127990
Reviewed by Sergio Villar Senin.
From Blink r165891 by <rego@igalia.com>
The property 'grid-template' has been renamed to 'grid-template-areas'
in the last two versions of the spec.
* Tools/PrettyPrinting/css.js:
* UserInterface/External/CodeMirror/css.js:
2014-02-11 Brian Burg <bburg@apple.com>
Web Inspector: DOMStorageView should listen for events from DOMStorageObject
https://bugs.webkit.org/show_bug.cgi?id=128620
Reviewed by Timothy Hatcher.
The storage manager used to have a map of DOMStorageViews and delivered events
directly to them. Instead, the DOMStorageObserver should use the manager to
find the appropriate DOMStorageObject and deliver events to it. DOMStorageView
learns about storage updates from DOMStorageObject events.
* UserInterface/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView): Add event listeners.
(WebInspector.DOMStorageContentView.prototype.reset): Renamed from update().
(WebInspector.DOMStorageContentView.prototype.itemsCleared): Take an event argument.
(WebInspector.DOMStorageContentView.prototype.itemRemoved): Take an event argument.
Use for..of when iterating over nodes.
(WebInspector.DOMStorageContentView.prototype.itemAdded): Take an event argument.
Use for..of when iterating over nodes.
(WebInspector.DOMStorageContentView.prototype.itemUpdated): Take an event argument.
Use for..of when iterating over nodes.
* UserInterface/DOMStorageObject.js:
(WebInspector.DOMStorageObject.prototype.removeItem): Moved.
(WebInspector.DOMStorageObject.prototype.setItem): Moved.
(WebInspector.DOMStorageObject.prototype.itemsCleared): Added.
(WebInspector.DOMStorageObject.prototype.itemRemoved): Added.
(WebInspector.DOMStorageObject.prototype.itemAdded): Added.
(WebInspector.DOMStorageObject.prototype.itemUpdated): Added.
* UserInterface/DOMStorageObserver.js: Look up and notify the associated model.
(WebInspector.DOMStorageObserver.prototype.domStorageItemsCleared):
(WebInspector.DOMStorageObserver.prototype.domStorageItemRemoved):
(WebInspector.DOMStorageObserver.prototype.domStorageItemAdded):
(WebInspector.DOMStorageObserver.prototype.domStorageItemUpdated):
* UserInterface/StorageManager.js: Remove view lookup code. Remove
direct calls to DOMStorageViews.
(WebInspector.StorageManager.prototype.itemsCleared):
(WebInspector.StorageManager.prototype.itemRemoved):
(WebInspector.StorageManager.prototype.itemAdded):
(WebInspector.StorageManager.prototype.itemUpdated):
(WebInspector.StorageManager.prototype.domStorageWasUpdated):
(WebInspector.StorageManager.prototype.inspectDOMStorage):
(WebInspector.StorageManager.prototype._domStorageForIdentifier):
(WebInspector.StorageManager.prototype._addDOMStorageIfNeeded):
(WebInspector.StorageManager.prototype._databaseForIdentifier):
2014-02-11 James Craig <jcraig@apple.com>
Web Inspector: AX: Accessibility Node Inspection
https://bugs.webkit.org/show_bug.cgi?id=127447
Reviewed by Timothy Hatcher.
New Accessibility section in WebInspector Node Inspector.
Version 1.0 only shows computed role. Computed label should come soon.
Removed CSS fixed table layout b/c CSS bug: http://webkit.org/b/128294
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/DOMNode.js:
* UserInterface/DOMNodeDetailsSidebarPanel.js:
* UserInterface/DetailsSection.css:
* UserInterface/InspectorWebBackendCommands.js:
2014-02-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update License copyrights in minified JavaScript
https://bugs.webkit.org/show_bug.cgi?id=128547
Reviewed by Timothy Hatcher.
* Scripts/copy-user-interface-resources.sh:
2014-02-07 Brian Burg <bburg@apple.com>
Web Inspector: show probe sets for script content views in the details sidebar
https://bugs.webkit.org/show_bug.cgi?id=128333
Reviewed by Timothy Hatcher.
This patch adds a new details sidebar for showing the probes associated with any
breakpoint in the currently visible source file. Each probe set (corresponding to
multiple actions of single breakpoint) gets its own ProbeSetDetailsSection. The
section contains a custom DataGrid subclass to display probe data, and some icons
for clearing samples, deleting the probe, and adding a new probe expression.
The table containing probe data keeps its columns in sync with the probe set's
probe expressions. To support this, DataGrid has been further refactored to support
removing columns, and inserting columns (rather than only appending). With this
capability, probe columns are removed and re-inserted when the expression changes.
The availability of the probe details sidebar is controlled by providing the
probe sets matching the script content view's resource URL as supplemental
represented objects.
Lastly, added the utility EventListenerSet class. This holds a set of event listeners
that should be added and removed together, and takes care of binding `thisObject`
according to whether the event emitter is a `Node` or `WebInspector.Object`.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/BreakpointActionView.js:
(WebInspector.BreakpointActionView):
(WebInspector.BreakpointActionView.prototype._removeAction): Renamed from removeButtonClicked.
(WebInspector.BreakpointActionView.prototype._codeMirrorBlurred): Change the behavior
of CodeMirror-backed editors for probe and evaluate expression actions. If the expression
consists entirely of trimmable whitespace, then delete the action rather than saving it.
* UserInterface/DataGrid.js:
(WebInspector.DataGrid): Copy over the column data into a map inside insertColumn() instead.
(WebInspector.DataGrid.prototype.insertColumn): Renamed from addColumn. It now takes an
optional `insertionIndex` argument and splices the column before the element at that index.
Also, convert code to use EventListenerSet for adding/removing per-column event listeners.
(WebInspector.DataGrid.prototype.removeColumn): Added. It splices the column out.
(WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle): Whitespace.
* UserInterface/EventListenerSet.js: Added.
(WebInspector.EventListenerSet):
(WebInspector.EventListenerSet.prototype.register):
(WebInspector.EventListenerSet.prototype.unregister):
(WebInspector.EventListenerSet.prototype.install):
(WebInspector.EventListenerSet.prototype.uninstall):
* UserInterface/Images/NavigationItemProbes.pdf: Added.
* UserInterface/LayerTreeDataGrid.js:
(WebInspector.LayerTreeDataGrid.prototype._updateChildren): Fix a missing column.get().
* UserInterface/Main.html: Add new JavaScript and CSS files.
* UserInterface/Main.js:
(WebInspector.contentLoaded): Add the probe details sidebar.
* UserInterface/ProbeDetailsSidebarPanel.css: Added.
(.sidebar > .panel.probes > .navigation-bar):
(.sidebar > .panel.probes > .content):
(.details-section.probe-set .options > .probe-add):
(.details-section.probe-set .options > .probe-clear-samples):
(.details-section.probe-set .options > .probe-remove):
(.details-section.probe-set .options > input):
(.panel.probes ::-webkit-scrollbar):
(.panel.probes ::-webkit-scrollbar-track):
(.panel.probes ::-webkit-scrollbar-thumb):
(.panel.probes ::-webkit-scrollbar-corner):
(.popover .probe-popover):
(.popover .probe-popover input):
* UserInterface/ProbeDetailsSidebarPanel.js: Added.
(WebInspector.ProbeDetailsSidebarPanel):
(WebInspector.ProbeDetailsSidebarPanel.prototype.get inspectedProbeSets):
(WebInspector.ProbeDetailsSidebarPanel.prototype._probeSetAdded):
* UserInterface/ProbeManager.js: Remove unused `probeSetForBreakpoint` function.
* UserInterface/ProbeSet.js: Fix erroneous uses of `probe.identifier` instead of `probe.id`.
(WebInspector.ProbeSet.prototype.removeProbe):
(WebInspector.ProbeSet.prototype._sampleCollected):
* UserInterface/ProbeSetDataGrid.css: Added.
(.details-section.probe-set .data-grid .data-container tr.past-value td):
(.details-section.probe-set .data-grid > .data-container td.unknown-value):
(.details-section.probe-set .data-grid .data-container tr.revealed.highlighted):
(@-webkit-keyframes blink-frame-highlight):
(100%):
(.details-section.probe-set .data-grid .data-container tr.separator):
(.details-section.probe-set .data-grid > .data-container tr.data-updated):
(@-webkit-keyframes blink-probe-frame):
(.details-section.probe-set .data-grid .data-container .selected .section *):
(.details-section.probe-set .data-grid .data-container .selected td.unknown-value):
(.details-section.probe-set .data-grid .data-container .section):
(.details-section.probe-set .data-grid th):
(.details-section.probe-set .data-grid th:not(:last-child)):
(.details-section.probe-set .data-grid td):
* UserInterface/ProbeSetDataGrid.js: Added.
(WebInspector.ProbeSetDataGrid):
(WebInspector.ProbeSetDataGrid.prototype.closed):
(WebInspector.ProbeSetDataGrid.prototype._setupProbe):
(WebInspector.ProbeSetDataGrid.prototype._teardownProbe):
(WebInspector.ProbeSetDataGrid.prototype._setupData):
(WebInspector.ProbeSetDataGrid.prototype._teardownData):
(WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.sortFunction):
(WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.set node):
(WebInspector.ProbeSetDataGrid.prototype._dataFrameInserted):
(WebInspector.ProbeSetDataGrid.prototype._dataSeparatorInserted):
(WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged.get var):
* UserInterface/ProbeSetDataGridNode.js: Added.
(WebInspector.ProbeSetDataGridNode):
(WebInspector.ProbeSetDataGridNode.prototype.get element):
(WebInspector.ProbeSetDataGridNode.prototype.get data):
(WebInspector.ProbeSetDataGridNode.prototype.set frame):
(WebInspector.ProbeSetDataGridNode.prototype.get frame):
(WebInspector.ProbeSetDataGridNode.prototype.createCellContent):
(WebInspector.ProbeSetDataGridNode.prototype.updateCellsFromFrame):
(WebInspector.ProbeSetDataGridNode.prototype.updateCellsForSeparator):
* UserInterface/ProbeSetDataTable.js:
(WebInspector.ProbeSetDataTable.prototype.removeProbe): Fix a typo in for..of loop refactor.
* UserInterface/ProbeSetDetailsSection.js: Added.
(WebInspector.ProbeSetDetailsSection):
(WebInspector.ProbeSetDetailsSection.prototype.closed):
(WebInspector.ProbeSetDetailsSection.prototype._probeSetPositionTextOrLink):
(WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
(WebInspector.ProbeSetDetailsSection.prototype._removeButtonClicked):
(WebInspector.ProbeSetDetailsSection.prototype._clearSamplesButtonClicked):
* UserInterface/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
(WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):
Add probe sets whose breakpoint matches the represented object's URL.
(WebInspector.TextResourceContentView.prototype._probeSetsChanged): Tell listeners
to re-fetch `supplementalRepresentedObjects` when probe sets are added or removed.
2014-02-08 Dan Bernstein <mitz@apple.com>
Remove client-drawn highlights (-webkit-highlight, WebHTMLHighlighter)
https://bugs.webkit.org/show_bug.cgi?id=128456
Reviewed by Anders Carlsson.
* UserInterface/CSSKeywordCompletions.js: Removed -webkit-highlight.
2014-02-07 Brian Burg <bburg@apple.com>
Web Inspector: Clean up DataGrid and add table columns incrementally
https://bugs.webkit.org/show_bug.cgi?id=128332
Reviewed by Timothy Hatcher.
Miscellaneous improvements to DataGrid to make it more maintainable.
In particular, it now uses a `Map` to store column settings, and the
construction sequence has been simplified so that it is safe to add
columns at the end of the constructor (or any later time).
DataGrid stores a bunch of settings per-column, but before this was done
by both storing properties on the provided `column` objects as well as
keeping several `columnIdentifier`-keyed maps for properties like `group`
and `hidden`.
Improve code readability by using for..of loops, destructuring assignment,
`Node.createElement`, and updating variable names. All variables that refer
to DOM nodes now have a `Element` suffix to distinguish them from model objects.
* UserInterface/DataGrid.js:
(.sortDataGrid):
(WebInpector.DataGrid): Create all DOM elements before populating columns.
Remove redundant objects for storing per-column values. Copy column settings
into a map rather than mutating the passed-in JSON-like settings data structure.
(WebInspector.DataGrid.createSortableDataGrid):
(WebInspector.DataGrid.prototype.get length):
(WebInspector.DataGrid.prototype.updateLayout):
(WebInspector.DataGrid.prototype.get scrollContainer):
(WebInspector.DataGrid.prototype.isScrolledToLastRow):
(WebInspector.DataGrid.prototype.scrollToLastRow):
(WebInspector.DataGrid.prototype._positionResizerElements):
(WebInspector.DataGrid.prototype.addCreationNode):
(WebInspector.DataGrid.prototype.):
(WebInspector.DataGrid.prototype.sortNodes):
(WebInspector.DataGrid.prototype.dataGridNodeFromPoint):
(WebInspector.DataGrid.prototype._clickInHeaderCell):
(WebInspector.DataGrid.prototype.isColumnSortColumn):
(WebInspector.DataGrid.prototype.headerTableHeader):
(WebInspector.DataGrid.prototype._copyTextForDataGridNode):
(WebInspector.DataGrid.prototype._resizerDragging):
(WebInspector.DataGridNode.prototype.createCells):
(WebInspector.DataGridNode.prototype.createCell.get var):
(WebInspector.DataGridNode.prototype.elementWithColumnIdentifier):
(WebInspector.DataGridNode.prototype._attach):
* UserInterface/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters.scopeBar.this.columns.get scopeBar):
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
2014-02-07 Mihai Tica <mitica@adobe.com>
[CSS Background Blending] Unprefix the -webkit-background-blend-mode property
https://bugs.webkit.org/show_bug.cgi?id=128270
Reviewed by Dean Jackson.
* UserInterface/CSSKeywordCompletions.js: Refactor -webkit-background-blend-mode to background-blend-mode.
2014-02-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Console support to JSContext Inspection
https://bugs.webkit.org/show_bug.cgi?id=127941
Reviewed by Geoffrey Garen.
* UserInterface/InspectorJSBackendCommands.js:
* UserInterface/InspectorWebBackendCommands.js:
ConsoleAgent moved to JavaScript section.
2014-02-06 Andreas Kling <akling@apple.com>
Remove display:run-in support.
<https://webkit.org/b/127874>
<rdar://problem/15926949>
Rubber-stamped by Anders Carlsson.
* UserInterface/CSSKeywordCompletions.js:
* UserInterface/External/CodeMirror/css.js:
2014-02-05 Brian Burg <bburg@apple.com>
Web Inspector: add probe manager and model objects to the frontend
https://bugs.webkit.org/show_bug.cgi?id=127117
Reviewed by Timothy Hatcher.
Add the probe manager, and the following model objects:
- ProbeObject corresponds to a single probe breakpoint action.
- ProbeSetObject contains all ProbeObjects for one Breakpoint.
- ProbeSetDataFrame holds probe samples from multiple
probes fired from the same breakpoint hit/debugger pause.
- ProbeSetDataTable keeps track of multiple such data frames
and manages probe sample lifetimes across page navigations.
The probe manager updates probe model objects whenever breakpoints
are added, removed, or modified.
The inspector frontend now assigns breakpoint action identifiers,
rather than the backend. This lets ProbeObjects keep stable
identifiers that match the probe's samples, even when the underlying
breakpoint is re-added with a different identifier (such as when
editing probe expressions).
* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint.prototype.get probeActions): Added.
(WebInspector.Breakpoint.prototype.createAction):
(WebInspector.Breakpoint.prototype.removeAction):
(WebInspector.Breakpoint.prototype.clearActions): Added.
* UserInterface/BreakpointAction.js:
(WebInspector.BreakpointAction):
(WebInspector.BreakpointAction.prototype.get id):
(WebInspector.BreakpointAction.prototype.get info):
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.restoreBreakpointsSoon):
(WebInspector.DebuggerManager): Restore saved breakpoints
from cookies on the second run loop, so that all managers will
be able to received breakpoint added events.
(WebInspector.DebuggerManager.prototype.addBreakpoint):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
(WebInspector.DebuggerManager.prototype.get nextBreakpointActionIdentifier):
The debugger manager assigns unique breakpoint action identifiers with this getter.
(WebInspector.DebuggerManager.prototype._debuggerBreakpointActionType):
(WebInspector.DebuggerManager.prototype.didSetBreakpoint):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
(WebInspector.DebuggerManager.prototype.didRemoveBreakpoint):
(WebInspector.DebuggerManager.prototype._removeBreakpoint):
* UserInterface/DebuggerObserver.js:
(WebInspector.DebuggerObserver.prototype.didSampleProbe):
* UserInterface/InspectorJSBackendCommands.js:
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.loaded):
* UserInterface/Probe.js: Added.
(WebInspector.ProbeSample):
(WebInspector.Probe):
(WebInspector.Probe.prototype.get id):
(WebInspector.Probe.prototype.get breakpoint):
(WebInspector.Probe.prototype.get expression):
(WebInspector.Probe.prototype.set expression):
(WebInspector.Probe.prototype.get samples):
(WebInspector.Probe.prototype.clearSamples):
(WebInspector.Probe.prototype.addSample):
* UserInterface/ProbeManager.js: Added.
(WebInspector.ProbeManager):
(WebInspector.ProbeManager.prototype.probeSetForBreakpoint):
(WebInspector.ProbeManager.prototype._breakpointRemoved):
(WebInspector.ProbeManager.prototype._breakpointActionsChanged.get var):
(WebInspector.ProbeManager.prototype._breakpointActionsChanged.set get knownProbeIdentifiers):
(WebInspector.ProbeManager.prototype._breakpointActionsChanged):
* UserInterface/ProbeSet.js: Added.
(WebInspector.ProbeSet):
(WebInspector.ProbeSet.prototype.get breakpoint):
(WebInspector.ProbeSet.prototype.get probes):
(WebInspector.ProbeSet.prototype.get dataTable):
(WebInspector.ProbeSet.prototype.clear):
(WebInspector.ProbeSet.prototype.clearSamples):
(WebInspector.ProbeSet.prototype.createProbe):
(WebInspector.ProbeSet.prototype.removeProbe):
(WebInspector.ProbeSet.prototype.willRemove):
(WebInspector.ProbeSet.prototype._mainResourceChanged):
(WebInspector.ProbeSet.prototype._createDataTable):
(WebInspector.ProbeSet.prototype._sampleCollected):
(WebInspector.ProbeSet.prototype._breakpointResolvedStateDidChange):
* UserInterface/ProbeSetDataFrame.js: Added.
(WebInspector.ProbeSetDataFrame):
(WebInspector.ProbeSetDataFrame.compare):
(WebInspector.ProbeSetDataFrame.prototype.get key):
(WebInspector.ProbeSetDataFrame.prototype.get count):
(WebInspector.ProbeSetDataFrame.prototype.get index):
(WebInspector.ProbeSetDataFrame.prototype.get isSeparator):
(WebInspector.ProbeSetDataFrame.prototype.set isSeparator):
(WebInspector.ProbeSetDataFrame.prototype.addSampleForProbe):
(WebInspector.ProbeSetDataFrame.prototype.missingKeys):
(WebInspector.ProbeSetDataFrame.prototype.isComplete):
(WebInspector.ProbeSetDataFrame.prototype.fillMissingValues):
* UserInterface/ProbeSetDataTable.js: Added.
(WebInspector.ProbeSetDataTable):
(WebInspector.ProbeSetDataTable.prototype.get frames):
(WebInspector.ProbeSetDataTable.prototype.get separators):
(WebInspector.ProbeSetDataTable.prototype.willRemove):
(WebInspector.ProbeSetDataTable.prototype.mainResourceChanged):
(WebInspector.ProbeSetDataTable.prototype.addSampleForProbe):
(WebInspector.ProbeSetDataTable.prototype.addProbe):
(WebInspector.ProbeSetDataTable.prototype.removeProbe):
(WebInspector.ProbeSetDataTable.prototype.createFrame):
(WebInspector.ProbeSetDataTable.prototype.addFrame):
(WebInspector.ProbeSetDataTable.prototype.addSeparator):
2014-02-05 Zan Dobersek <zdobersek@igalia.com>
[GTK] Avoid no-op regenerations of GResourceBundle.xml, GResourceBundle.c
https://bugs.webkit.org/show_bug.cgi?id=128192
Reviewed by Carlos Garcia Campos.
When doing incremental builds, GResourceBundle.xml and GResourceBundle.c can be
generated when the dependencies are newer than the products, but the generation
doesn't necessarily produce a new or different product. This results in constant
regenerations for these two build targets. Touch the products at the end of
generation to avoid this looping.
* GNUmakefile.am:
2014-01-30 Timothy Hatcher <timothy@apple.com>
Show profile data in the discrete Scripts timeline view.
https://bugs.webkit.org/show_bug.cgi?id=127900
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/DataGrid.js:
(WebInspector.DataGridNode.prototype.refreshIfNeeded):
(WebInspector.DataGridNode.prototype.needsRefresh):
(WebInspector.DataGridNode.prototype.set data):
(WebInspector.DataGridNode.prototype.set revealed):
(WebInspector.DataGridNode.prototype.refresh):
* UserInterface/LayoutTimelineDataGrid.js:
(WebInspector.LayoutTimelineDataGrid):
* UserInterface/LayoutTimelineDataGridNode.js:
(WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
* UserInterface/Main.html:
* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
(WebInspector.NavigationSidebarPanel.prototype._generateStyleRulesIfNeeded):
* UserInterface/ProfileNodeDataGridNode.js: Added.
(WebInspector.ProfileNodeDataGridNode):
(WebInspector.ProfileNodeDataGridNode.prototype.get profileNode):
(WebInspector.ProfileNodeDataGridNode.prototype.get records):
(WebInspector.ProfileNodeDataGridNode.prototype.get baseStartTime):
(WebInspector.ProfileNodeDataGridNode.prototype.get rangeStartTime):
(WebInspector.ProfileNodeDataGridNode.prototype.set rangeStartTime):
(WebInspector.ProfileNodeDataGridNode.prototype.get rangeEndTime):
(WebInspector.ProfileNodeDataGridNode.prototype.set rangeEndTime):
(WebInspector.ProfileNodeDataGridNode.prototype.get data):
(WebInspector.ProfileNodeDataGridNode.prototype.refresh):
(WebInspector.ProfileNodeDataGridNode.prototype.createCellContent):
* UserInterface/ProfileNodeTreeElement.js: Added.
(WebInspector.ProfileNodeTreeElement):
(WebInspector.ProfileNodeTreeElement.prototype.get profileNode):
(WebInspector.ProfileNodeTreeElement.prototype.get filterableData):
(WebInspector.ProfileNodeTreeElement.prototype.onattach):
(WebInspector.ProfileNodeTreeElement.prototype.onpopulate):
* UserInterface/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
* UserInterface/ScriptTimelineDataGrid.js:
(WebInspector.ScriptTimelineDataGrid):
* UserInterface/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode):
(WebInspector.ScriptTimelineDataGridNode.prototype.get baseStartTime):
(WebInspector.ScriptTimelineDataGridNode.prototype.get rangeStartTime):
(WebInspector.ScriptTimelineDataGridNode.prototype.set rangeStartTime):
(WebInspector.ScriptTimelineDataGridNode.prototype.get rangeEndTime):
(WebInspector.ScriptTimelineDataGridNode.prototype.set rangeEndTime):
(WebInspector.ScriptTimelineDataGridNode.prototype.get data):
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
* UserInterface/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord):
(WebInspector.ScriptTimelineRecord.prototype.get profile):
* UserInterface/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.updateLayout):
(WebInspector.ScriptTimelineView.prototype.get selectionPathComponents):
(WebInspector.ScriptTimelineView.prototype.dataGridNodeForTreeElement):
(WebInspector.ScriptTimelineView.prototype.populateProfileNodeTreeElement):
(WebInspector.ScriptTimelineView.prototype._processPendingRecords):
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters):
* UserInterface/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid):
(WebInspector.TimelineDataGrid.prototype.addRowInSortOrder):
(WebInspector.TimelineDataGrid.prototype._sort):
* UserInterface/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode):
(WebInspector.TimelineDataGridNode.prototype.collapse):
(WebInspector.TimelineDataGridNode.prototype.expand):
* UserInterface/TimelineRecord.js:
* UserInterface/TreeOutlineDataGridSynchronizer.js:
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.get delegate):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.dataGridNodeForTreeElement):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
2014-01-30 Timothy Hatcher <timothy@apple.com>
Add the model objects for the new Web Inspector profile data.
https://bugs.webkit.org/show_bug.cgi?id=127899
Reviewed by Joseph Pecoraro.
* UserInterface/Main.html:
* UserInterface/Profile.js: Added.
(WebInspector.Profile):
(WebInspector.Profile.prototype.get idleTime):
(WebInspector.Profile.prototype.get topDownRootNodes):
(WebInspector.Profile.prototype.get bottomUpRootNodes):
* UserInterface/ProfileNode.js: Added.
(WebInspector.ProfileNode):
(WebInspector.ProfileNode.prototype.get id):
(WebInspector.ProfileNode.prototype.get type):
(WebInspector.ProfileNode.prototype.get functionName):
(WebInspector.ProfileNode.prototype.get sourceCodeLocation):
(WebInspector.ProfileNode.prototype.get startTime):
(WebInspector.ProfileNode.prototype.get endTime):
(WebInspector.ProfileNode.prototype.get selfTime):
(WebInspector.ProfileNode.prototype.get totalTime):
(WebInspector.ProfileNode.prototype.get calls):
(WebInspector.ProfileNode.prototype.get previousSibling):
(WebInspector.ProfileNode.prototype.get nextSibling):
(WebInspector.ProfileNode.prototype.get parentNode):
(WebInspector.ProfileNode.prototype.get childNodes):
(WebInspector.ProfileNode.prototype.totalTimeInRange):
(WebInspector.ProfileNode.prototype.computeCallInfoForTimeRange):
(WebInspector.ProfileNode.prototype.traverseNextProfileNode):
(WebInspector.ProfileNode.prototype.saveIdentityToCookie):
(WebInspector.ProfileNode.prototype.establishRelationships):
* UserInterface/ProfileNodeCall.js: Added.
(WebInspector.ProfileNodeCall):
(WebInspector.ProfileNodeCall.prototype.get startTime):
(WebInspector.ProfileNodeCall.prototype.get totalTime):
(WebInspector.ProfileNodeCall.prototype.get endTime):
(WebInspector.ProfileNodeCall.prototype.establishRelationships):
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
(WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeFromPayload):
(WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeCallFromPayload):
(WebInspector.TimelineManager.prototype._profileFromPayload):
2014-01-26 Timothy Hatcher <timothy@apple.com>
Prefix existing Web Inspector profiler classes with "Legacy".
Remove a dependency on ProfileView for showTimeAsPercent and selection as a drive-by.
Also remove the unfinished Canvas profiler classes, they will need redone for the Timeline view.
https://bugs.webkit.org/show_bug.cgi?id=127655
Reviewed by Joseph Pecoraro.
* UserInterface/CanvasDataGridNode.js: Removed.
* UserInterface/CanvasObserver.js: Removed.
* UserInterface/CanvasProfileObject.js: Removed.
* UserInterface/CanvasProfileType.js: Removed.
* UserInterface/CanvasProfileView.js: Removed.
* UserInterface/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
* UserInterface/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
* UserInterface/InspectorFrontendAPI.js:
(InspectorFrontendAPI.isProfilingJavaScript):
(InspectorFrontendAPI.startProfilingJavaScript):
(InspectorFrontendAPI.stopProfilingJavaScript):
* UserInterface/LegacyBottomUpProfileDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/BottomUpProfileDataGridTree.js.
* UserInterface/LegacyJavaScriptProfileObject.js: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileObject.js.
* UserInterface/LegacyJavaScriptProfileType.js: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileType.js.
* UserInterface/LegacyJavaScriptProfileView.css: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileView.css.
* UserInterface/LegacyJavaScriptProfileView.js: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileView.js.
* UserInterface/LegacyProfileDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileDataGridTree.js.
* UserInterface/LegacyProfileManager.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileManager.js.
* UserInterface/LegacyProfileObject.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileObject.js.
* UserInterface/LegacyProfileType.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileType.js.
* UserInterface/LegacyProfileView.css: Renamed from Source/WebInspectorUI/UserInterface/ProfileView.css.
* UserInterface/LegacyProfileView.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileView.js.
* UserInterface/LegacyProfilerObserver.js: Renamed from Source/WebInspectorUI/UserInterface/ProfilerObserver.js.
* UserInterface/LegacyTopDownProfileDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/TopDownProfileDataGridTree.js.
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.loaded):
(WebInspector.openURL):
2014-01-30 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: [REGRESSION(r163086)] Missing localized string 'Hide console (%s)'
https://bugs.webkit.org/show_bug.cgi?id=127951
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
Add 'Hide console (%s)'.
2014-01-30 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: Implement open/close Console window shortcut
https://bugs.webkit.org/show_bug.cgi?id=127896
Reviewed by Timothy Hatcher.
* UserInterface/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut.prototype.get displayName):
Bug: Option symbol should be displayed as Alternative symbol (\u2387)
in non Mac platforms.
* UserInterface/Main.js:
(WebInspector.contentLoaded):
Create keyboard shortcut for toggling console window.
2014-01-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Play Breakpoint Sound in Frontend
https://bugs.webkit.org/show_bug.cgi?id=127885
Reviewed by Timothy Hatcher.
Beep in the frontend when a "sound" breakpoint action is triggered.
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.playBreakpointActionSound):
* UserInterface/DebuggerObserver.js:
(WebInspector.DebuggerObserver.prototype.resumed):
(WebInspector.DebuggerObserver.prototype.playBreakpointActionSound):
* UserInterface/InspectorJSBackendCommands.js:
2014-01-29 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: [REGRESSION(r162931)] Tab navigation broken in DataGrid
https://bugs.webkit.org/show_bug.cgi?id=127816
Reviewed by Timothy Hatcher.
* UserInterface/DataGrid.js:
(WebInspector.DataGrid.prototype.moveToNextIfNeeded):
(WebInspector.DataGrid.prototype._editingCommitted):
Change columnIdentifier values 0 and 1 to strings "0" and "1".
2014-01-28 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed follow-up to r162965. Better coding style.
Timothy Hatcher pointed out a clearer style for classes
on the <body> is to specify body.class. I agree.
* UserInterface/DashboardView.css:
(body.javascript .toolbar .dashboard):
(body.web .toolbar.collapsed .dashboard > .logs):
(body.javascript .toolbar .dashboard > .resourcesCount):
2014-01-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Tweak UI when debugging a JSContext
https://bugs.webkit.org/show_bug.cgi?id=127799
Reviewed by Timothy Hatcher.
* UserInterface/DashboardView.css:
(.toolbar.javascript .dashboard):
(.toolbar.web.collapsed .dashboard > .logs):
(.toolbar.javascript .dashboard > .resourcesCount):
Adjust collapsed dashboard in web and javascript debugging modes.
JavaScript debugging mode is always treated as collapsed.
* UserInterface/Main.js:
(WebInspector.contentLoaded):
Adjust what is created and shown when in javascript debugging mode.
* UserInterface/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline.hide-disclosure-buttons .item.small):
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .status-bar):
(.sidebar > .panel.timeline > .title-bar):
When javascript debugging expect to put things at the root level, so hide
disclosure buttons and adjust the style so resources look nice here.
2014-01-28 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: In a DataGrid, store value of columnIdentifier to DOM node representing a cell
https://bugs.webkit.org/show_bug.cgi?id=127613
Reviewed by Timothy Hatcher.
* UserInterface/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView.prototype._editingCallback):
* UserInterface/DataGrid.js:
(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype._keyDown):
(WebInspector.DataGrid.prototype._contextMenuInDataTable):
(WebInspector.DataGridNode.prototype.createCell):
2014-01-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Feature Check all Protocol Generated Interfaces to get JSContext Inspection working
https://bugs.webkit.org/show_bug.cgi?id=127712
Reviewed by Timothy Hatcher.
Feature check protocol generated interfaces (e.g. FooAgent and registerFooObserver).
Also drive by handle a possible exception if a SourceCode's URL is null, which is possible.
* UserInterface/ApplicationCacheManager.js:
(WebInspector.ApplicationCacheManager):
(WebInspector.ApplicationCacheManager.prototype.initialize):
* UserInterface/CSSCompletions.js:
(WebInspector.CSSCompletions.requestCSSNameCompletions):
* UserInterface/CSSStyleManager.js:
(WebInspector.CSSStyleManager):
(WebInspector.CSSStyleManager.prototype.canForcePseudoClasses):
* UserInterface/DebuggerManager.js:
* UserInterface/FrameResourceManager.js:
(WebInspector.FrameResourceManager):
(WebInspector.FrameResourceManager.prototype.initialize):
* UserInterface/Main.js:
(WebInspector.loaded):
* UserInterface/ProfileManager.js:
(WebInspector.ProfileManager):
* UserInterface/StorageManager.js:
(WebInspector.StorageManager):
Type check generated interfaces.
(WebInspector.DebuggerManager):
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
Null check a SourceCode URL, which can be null for a Script with no URL.
2014-01-25 Timothy Hatcher <timothy@apple.com>
Remove dead code from the JSC profiler.
https://bugs.webkit.org/show_bug.cgi?id=127643
Reviewed by Mark Lam.
* Versions/Inspector-iOS-7.0.json: Remove visible from CPUProfileNode.
2014-01-25 Joseph Pecoraro <pecoraro@apple.com>
Remove FIXME in CSSKeywordCompletions.js about "inherit" keyword
https://bugs.webkit.org/show_bug.cgi?id=127638
Reviewed by Timothy Hatcher.
* UserInterface/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
Replace FIXME with a descriptive comment about why the code is what it is.
2014-01-25 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: Position the completion suggestions popup below if there is room
https://bugs.webkit.org/show_bug.cgi?id=127615
Reviewed by Joseph Pecoraro.
* UserInterface/CompletionSuggestionsView.js:
(WebInspector.CompletionSuggestionsView.prototype.show):
2014-01-23 Timothy Hatcher <timothy@apple.com>
Refactor TimelineRecordBar combining logic into a helper function.
https://bugs.webkit.org/show_bug.cgi?id=127530
Reviewed by Joseph Pecoraro.
* UserInterface/LayoutTimelineOverviewGraph.js:
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
Use TimelineRecordBar.createCombinedBars.
* UserInterface/NetworkTimelineOverviewGraph.css:
(.timeline-overview-graph.network):
(.timeline-overview-graph.network > .graph-row > .timeline-record-bar):
Cleaned up since we are using TimelineRecordBar.
* UserInterface/NetworkTimelineOverviewGraph.js:
(WebInspector.NetworkTimelineOverviewGraph.prototype.reset):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
Use TimelineRecordBar.createCombinedBars.
* UserInterface/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
Use TimelineRecordBar.createCombinedBars.
* UserInterface/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBar):
(WebInspector.TimelineDataGridNode.prototype.refreshGraph):
Use TimelineRecordBar.createCombinedBars.
* UserInterface/TimelineRecordBar.css:
(.timeline-record-bar.unfinished > .segment):
(.timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(:focus .selected .timeline-record-bar > .segment.inactive):
Improved selected appearance and don't assume .segment.inactive exists.
* UserInterface/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar):
(WebInspector.TimelineRecordBar.createCombinedBars.compareByActiveStartTime): Added.
(WebInspector.TimelineRecordBar.createCombinedBars): Added.
(WebInspector.TimelineRecordBar.prototype.get renderMode): Added.
(WebInspector.TimelineRecordBar.prototype.set renderMode): Added.
(WebInspector.TimelineRecordBar.prototype.set records):
(WebInspector.TimelineRecordBar.prototype.refresh):
Lazily create DOM elements. Support rendering one or both segments. Doing this lets
combined inactive segments sit behind multiple active segments.
2014-01-22 Timothy Hatcher <timothy@apple.com>
Improve collapsing of TimelineDataGridNode graphs up to ancestors.
https://bugs.webkit.org/show_bug.cgi?id=127440
Reviewed by Joseph Pecoraro.
* UserInterface/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.collapse):
(WebInspector.TimelineDataGridNode.prototype.createCellContent):
(WebInspector.TimelineDataGridNode.prototype.refresh):
(WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
Notify the next visible ancestor it needs to refresh. Use needsGraphRefresh so ancestors
are notified instead of directly calling refreshGraph in some places.
2014-01-22 Timothy Hatcher <timothy@apple.com>
Don't include a hidden Timeline selection in the navigation path components.
https://bugs.webkit.org/show_bug.cgi?id=127443
Reviewed by Joseph Pecoraro.
* UserInterface/GeneralTreeElementPathComponent.js:
(WebInspector.GeneralTreeElementPathComponent.prototype.get previousSibling):
(WebInspector.GeneralTreeElementPathComponent.prototype.get nextSibling):
Skip hidden siblings.
* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.updateLayout):
(WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
Don't include hidden selection and dispatch SelectionPathComponentsDidChange event if hidden changes.
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
Dispatch SelectionPathComponentsDidChange event if hidden changes on the selected tree element.
* UserInterface/TimelineView.js:
(WebInspector.TimelineView.prototype.get selectionPathComponents):
Don't include hidden selection.
2014-01-22 Timothy Hatcher <timothy@apple.com>
Support collapsing call site records into the resource timeline.
Also fix some filtering and graph issues.
https://bugs.webkit.org/show_bug.cgi?id=127440
Reviewed by Joseph Pecoraro.
* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.updateFilter):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.makeVisible):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
Tweak how filtering happens so custom filters never expand to reveal and auto expanded
tree elements will auto-collapse again later even with custom filters.
* UserInterface/OverviewTimelineView.css:
(.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
(.timeline-view.overview > .data-grid:focus tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
Add a shadow to provide some negative space between juxtaposed records. Only needed when not expanded.
* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.updateLayout):
(WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
Update the filter when current time changes and only auto expand the main resource.
* UserInterface/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode):
(WebInspector.ResourceTimelineDataGridNode.prototype._timelineRecordUpdated):
Don't schedule a refresh of the graph if the record isn't visible.
* UserInterface/SourceCodeTimelineTimelineDataGridNode.js:
(WebInspector.SourceCodeTimelineTimelineDataGridNode):
(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype._timelineRecordAdded):
Don't schedule a refresh of the graph if the record isn't visible.
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
Remove the boolean for updateFilter.
* UserInterface/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
(WebInspector.TimelineDataGrid.prototype._sort):
Keep the hidden state in-sync between node and element.
* UserInterface/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.collapse):
(WebInspector.TimelineDataGridNode.prototype.expand):
(WebInspector.TimelineDataGridNode.prototype.appendChild):
(WebInspector.TimelineDataGridNode.prototype.insertChild):
(WebInspector.TimelineDataGridNode.prototype.removeChild):
(WebInspector.TimelineDataGridNode.prototype.removeChildren):
(WebInspector.TimelineDataGridNode.prototype.removeChildrenRecursive):
(WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBarsForRecords):
(WebInspector.TimelineDataGridNode.prototype.refreshGraph.else.collectRecordsByType.get if):
(WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
(WebInspector.TimelineDataGridNode.prototype.isRecordVisible):
Support drawing the children records on the parent graph.
* UserInterface/TimelineRecordBar.css:
(.timeline-record-bar.unfinished > .segment):
(:focus .selected .timeline-record-bar > .segment):
(:focus .selected .timeline-record-bar > .segment.inactive):
(:focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
Tweaked styles to look better when selected.
* UserInterface/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.recordsCannotBeCombined):
(WebInspector.TimelineRecordBar.prototype.set records):
(WebInspector.TimelineRecordBar.prototype.refresh):
Drive-by fixes for some bug with bars being reused.
2014-01-21 Timothy Hatcher <timothy@apple.com>
Remember the Timeline Overview zoom and selection between sessions.
https://bugs.webkit.org/show_bug.cgi?id=127369
Reviewed by Joseph Pecoraro.
* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
2014-01-21 Timothy Hatcher <timothy@apple.com>
Show the Resource and Record selection path in the navigation bar for Timeline views.
https://bugs.webkit.org/show_bug.cgi?id=127367
Reviewed by Joseph Pecoraro.
* UserInterface/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):
* UserInterface/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
(WebInspector.OverviewTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
* UserInterface/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._timelineViewSelectionPathComponentsDidChange):
(WebInspector.TimelineContentView.prototype._showTimelineView):
* UserInterface/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype.treeElementForDataGridNode):
(WebInspector.TimelineDataGrid.prototype.dataGridNodeForTreeElement):
* UserInterface/TimelineView.js:
(WebInspector.TimelineView.prototype.get selectionPathComponents):
(WebInspector.TimelineView.prototype.treeElementPathComponentSelected):
2014-01-20 Timothy Hatcher <timothy@apple.com>
Add the recording button back to the Timelines sidebar.
https://bugs.webkit.org/show_bug.cgi?id=127314
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.get navigationItems):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._updateTimes):
(WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
(WebInspector.TimelineContentView.prototype._recordingTimesUpdated):
(WebInspector.TimelineContentView.prototype._clearTimeline):
(WebInspector.TimelineContentView.prototype._recordingReset):
Add a clear button and reset the time ruler and views when the recording resets.
* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .status-bar):
(.sidebar > .panel.timeline > .status-bar > .record-glyph):
(.sidebar > .panel.timeline > .status-bar > .record-glyph.recording):
(.sidebar > .panel.timeline > .status-bar > .record-glyph:hover):
(.sidebar > .panel.timeline > .status-bar > .record-glyph.recording:hover):
(.sidebar > .panel.timeline > .status-bar > .record-glyph.forced):
(.sidebar > .panel.timeline > .status-bar > .record-glyph.recording.forced):
(.sidebar > .panel.timeline > .status-bar > .record-status):
Add styles for the recording button and status message.
* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
(WebInspector.TimelineSidebarPanel.prototype._recordingStarted):
(WebInspector.TimelineSidebarPanel.prototype._recordingStopped):
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOver):
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOut):
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
Add support for the recording button and status message.
2014-01-20 Timothy Hatcher <timothy@apple.com>
Make the TimelineRecordTreeElement location subtitle live.
https://bugs.webkit.org/show_bug.cgi?id=127270
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype.originalLocationString):
(WebInspector.SourceCodeLocation.prototype.formattedLocationString):
(WebInspector.SourceCodeLocation.prototype.displayLocationString):
(WebInspector.SourceCodeLocation.prototype.updateDisplayString):
(WebInspector.SourceCodeLocation.prototype._locationString):
Support for a new nameStyle enum and a prefix for the location string.
Passing the prefix here lets it be italicized with the line number.
Support column number for SourceCode's without a URL too.
* UserInterface/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
(WebInspector.TimelineRecordTreeElement.prototype.onattach):
Create a subtitle span to update the location inside. Update the tooltip on attach.
2014-01-19 Timothy Hatcher <timothy@apple.com>
Generate better display names for timer and event Timeline records.
Also support AnimationFrameRequested and AnimationFrameCanceled.
https://bugs.webkit.org/show_bug.cgi?id=127258
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord.EventType.displayName):
Generate past tense names that better match other names.
* UserInterface/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
Pass the details to displayName.
* UserInterface/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.EventType.displayName):
Generate better names for timer and event records. Also add missing animation frame types.
* UserInterface/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype._processPendingRecords):
Pass true to WebInspector.TimelineRecordTreeElement to include timer identifiers in the title.
* UserInterface/SourceCodeTimelineTreeElement.js:
(WebInspector.SourceCodeTimelineTreeElement):
Pass includeTimerIdentifierInMainTitle through to TimelineRecordTreeElement.
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
Include AnimationFrameRequested and AnimationFrameCanceled.
* UserInterface/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
Use displayName functions instead and support includeTimerIdentifierInMainTitle.
2014-01-19 Timothy Hatcher <timothy@apple.com>
Implement basic versions of the TimelineOverview graphs.
https://bugs.webkit.org/show_bug.cgi?id=127184
Reviewed by Joseph Pecoraro.
* UserInterface/LayoutTimelineOverviewGraph.css: Added.
(.timeline-overview-graph.layout > .timeline-record-bar):
(.timeline-overview-graph.layout > .timeline-record-bar > .segment):
* UserInterface/LayoutTimelineOverviewGraph.js: Added.
(WebInspector.LayoutTimelineOverviewGraph.prototype.reset):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
(WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
* UserInterface/Main.html: Added new files.
* UserInterface/NetworkTimelineOverviewGraph.css: Added.
(.timeline-overview-graph.network):
(.timeline-overview-graph.network > .graph-row):
(.timeline-overview-graph.network > .graph-row > .bar):
(.timeline-overview-graph.network > .graph-row > .bar.inactive):
(.timeline-overview-graph.network > .graph-row > .bar.unfinished):
(.timeline-overview-graph.network > .graph-row > .bar:not(.inactive)):
(.timeline-overview-graph.network:nth-child(even) > .graph-row > .bar:not(.inactive)):
* UserInterface/NetworkTimelineOverviewGraph.js: Added.
(WebInspector.NetworkTimelineOverviewGraph.prototype.reset):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.updateElementPosition):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
(WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.compareByStartTime):
(WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.insertObjectIntoSortedArray):
(WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded):
* UserInterface/ScriptTimelineOverviewGraph.css: Added.
(.timeline-overview-graph.script > .timeline-record-bar):
(.timeline-overview-graph.script > .timeline-record-bar > .segment):
* UserInterface/ScriptTimelineOverviewGraph.js: Added.
(WebInspector.ScriptTimelineOverviewGraph.prototype.reset):
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
(WebInspector.ScriptTimelineOverviewGraph.prototype._scriptTimelineRecordAdded):
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._showTimelineView):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._recordingReset):
Create and keep the graphs informed.
* UserInterface/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode):
(WebInspector.TimelineDataGridNode.prototype.refreshGraph):
Combine records that might overlap.
* UserInterface/TimelineOverview.css:
(.timeline-overview > .graphs-container):
(.timeline-overview > .graphs-container > .timeline-overview-graph):
(.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)):
Add the graph rows with alternating stripe.
* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.set startTime):
(WebInspector.TimelineOverview.prototype.get currentTime):
(WebInspector.TimelineOverview.prototype.set currentTime):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
Track currentTime in a member variable and let TimelineOverview manage the current time marker.
* UserInterface/TimelineOverviewGraph.js: Added.
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.get zeroTime):
(WebInspector.TimelineOverviewGraph.prototype.set zeroTime):
(WebInspector.TimelineOverviewGraph.prototype.get startTime):
(WebInspector.TimelineOverviewGraph.prototype.set startTime):
(WebInspector.TimelineOverviewGraph.prototype.get endTime):
(WebInspector.TimelineOverviewGraph.prototype.set endTime):
(WebInspector.TimelineOverviewGraph.prototype.get currentTime):
(WebInspector.TimelineOverviewGraph.prototype.set currentTime):
(WebInspector.TimelineOverviewGraph.prototype.reset):
(WebInspector.TimelineOverviewGraph.prototype.updateLayout):
(WebInspector.TimelineOverviewGraph.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverviewGraph.prototype.needsLayout):
* UserInterface/TimelineRecordBar.css:
(.timeline-record-bar > .segment):
(.timeline-record-bar.unfinished > .segment):
(.timeline-record-bar > .segment.inactive + .segment):
(.timeline-record-bar.timeline-record-type-network > .segment.inactive):
* UserInterface/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar):
(WebInspector.TimelineRecordBar.recordsCannotBeCombined):
(WebInspector.TimelineRecordBar.prototype.get records):
(WebInspector.TimelineRecordBar.prototype.set records):
(WebInspector.TimelineRecordBar.prototype.refresh):
Make TimelineRecordBar support multiple records.
* UserInterface/TimelineRuler.css:
(.timeline-ruler > .markers):
(.timeline-ruler > .selection-handle):
(.timeline-ruler > .shaded-area):
Add some z-index values to stay above graph elements.
2014-01-16 Timothy Hatcher <timothy@apple.com>
Clean up Timelines code by using ES6 features and less global access of TimelineRecording.
Also don't recreate Timeline objects when TimelineRecording is reset, reset them instead.
https://bugs.webkit.org/show_bug.cgi?id=127157
Reviewed by Joseph Pecoraro.
* UserInterface/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype.reset):
* UserInterface/NetworkTimeline.js:
(WebInspector.NetworkTimeline):
(WebInspector.NetworkTimeline.prototype.reset):
* UserInterface/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.reset):
* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._networkTimelineRecordAdded):
* UserInterface/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.reset):
* UserInterface/Timeline.js:
(WebInspector.Timeline):
(WebInspector.Timeline.prototype.reset):
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.set createPathComponent):
(WebInspector.TimelineContentView.set var):
(WebInspector.TimelineContentView.prototype.showOverviewTimelineView):
(WebInspector.TimelineContentView.prototype.showTimelineView):
(WebInspector.TimelineContentView.prototype._showTimelineView):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._recordingReset):
* UserInterface/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.reset):
2014-01-16 Timothy Hatcher <timothy@apple.com>
Improve WebInspector.TimelineOverview by not putting WebInspector.TimelineRuler in a scroll area.
https://bugs.webkit.org/show_bug.cgi?id=127145
Reviewed by Joseph Pecoraro.
* UserInterface/TimelineOverview.css:
(.timeline-overview > .scroll-container):
(.timeline-overview > .timeline-ruler):
(.timeline-overview > .scroll-container > .scroll-width-sizer):
* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get startTime):
(WebInspector.TimelineOverview.prototype.set startTime):
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get scrollStartTime):
(WebInspector.TimelineOverview.prototype.set scrollStartTime):
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.revealMarker):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
* UserInterface/TimelineRuler.js:
(WebInspector.TimelineRuler.MinimumSelectionTimeRange): Reduce to 10ms now that super zoom has no performance impact.
2014-01-15 Timothy Hatcher <timothy@apple.com>
Implement the discrete Script and Layout timeline views.
https://bugs.webkit.org/show_bug.cgi?id=127063
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/DataGrid.js:
(WebInspector.DataGrid): Support hidden columns by default.
(WebInspector.DataGrid.prototype.updateLayout): Set the column width to zero for hidden columns.
* UserInterface/LayoutTimelineDataGrid.js:
(WebInspector.LayoutTimelineDataGrid): Pass the right parameters to the superclass.
* UserInterface/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord.prototype.saveIdentityToCookie): Added.
* UserInterface/LayoutTimelineView.css: Copied from Source/WebInspectorUI/UserInterface/ScriptTimelineDataGrid.js.
(.timeline-view.layout > .data-grid):
(.timeline-view.layout > .data-grid .eventType-column):
(.sidebar > .panel.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
* UserInterface/LayoutTimelineView.js: Added.
(WebInspector.LayoutTimelineView):
(WebInspector.LayoutTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.LayoutTimelineView.prototype.shown):
(WebInspector.LayoutTimelineView.prototype.hidden):
(WebInspector.LayoutTimelineView.prototype.updateLayout):
(WebInspector.LayoutTimelineView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
(WebInspector.LayoutTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
* UserInterface/Main.html: Added new files.
* UserInterface/ScriptTimelineDataGrid.js:
(WebInspector.ScriptTimelineDataGrid): Pass the right parameters to the superclass.
* UserInterface/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent): Fix up how we create the link.
* UserInterface/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype.saveIdentityToCookie): Added.
* UserInterface/ScriptTimelineView.css: Copied from Source/WebInspectorUI/UserInterface/ScriptTimelineDataGrid.js.
(.timeline-view.script > .data-grid):
(.timeline-view.script > .data-grid .eventType-column):
(.sidebar > .panel.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
* UserInterface/ScriptTimelineView.js: Added.
(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.ScriptTimelineView.prototype.shown):
(WebInspector.ScriptTimelineView.prototype.hidden):
(WebInspector.ScriptTimelineView.prototype.updateLayout):
(WebInspector.ScriptTimelineView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.ScriptTimelineView.prototype._scriptTimelineRecordAdded):
(WebInspector.ScriptTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):
* UserInterface/SourceCodeTimelineTreeElement.js:
(WebInspector.SourceCodeTimelineTreeElement):
Moved code to TimelineRecordTreeElement. Subclass from it.
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters): Support TimelineRecordTreeElement.
(WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged): Update zeroTime for all views.
* UserInterface/TimelineDataGrid.css:
(.data-grid.timeline td .icon):
(.data-grid.timeline td .go-to-arrow):
(.data-grid.timeline tr:hover .go-to-arrow):
(.data-grid.timeline td .subtitle):
(.data-grid.timeline td .subtitle::before):
(.data-grid.timeline:focus tr.selected td .subtitle):
* UserInterface/TimelineRecord.js:
(WebInspector.TimelineRecord.prototype.saveIdentityToCookie): Added.
* UserInterface/TimelineRecordTreeElement.js: Added.
(WebInspector.TimelineRecordTreeElement):
(WebInspector.TimelineRecordTreeElement.prototype.get record):
(WebInspector.TimelineRecordTreeElement.prototype.get filterableData):
Factored out from SourceCodeTimelineTreeElement.
* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looslyCompareRepresentedObjects):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
Find TreeElements via a loose lookup based on represented objects that might contain the represented object we are
really looking for.
2014-01-14 Timothy Hatcher <timothy@apple.com>
Implement the discrete Network timeline view.
https://bugs.webkit.org/show_bug.cgi?id=127022
Reviewed by Joseph Pecoraro.
* UserInterface/DataGrid.js:
(WebInspector.DataGrid): Align the labels of the column headers to match the data.
(WebInspector.DataGridNode.prototype.get selectable): Prevent selection when hidden.
* UserInterface/DetailsSection.css:
(.details-section > .header): Bump the font size to match data grid header sizes.
* UserInterface/Main.html: Add new files.
* UserInterface/NetworkTimelineView.css: Added.
(.timeline-view.network > .data-grid):
(.sidebar > .panel.timeline.timeline-content-view-showing > .content .item.resource .subtitle):
Hide the domain subtitle when the content view is showing which also has the domain.
* UserInterface/NetworkTimelineView.js: Added.
(WebInspector.NetworkTimelineView):
(WebInspector.NetworkTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.NetworkTimelineView.prototype.shown):
(WebInspector.NetworkTimelineView.prototype.hidden):
(WebInspector.NetworkTimelineView.prototype.updateLayout):
(WebInspector.NetworkTimelineView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.NetworkTimelineView.prototype._networkTimelineRecordAdded):
(WebInspector.NetworkTimelineView.prototype._dataGridFiltersDidChange):
(WebInspector.NetworkTimelineView.prototype._treeElementSelected):
* UserInterface/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype._needsRefresh):
Call dataGridNodeNeedsRefresh on the TimelineDataGrid so things can be batched with
one request animation frame.
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView): Create a NetworkTimelineView.
(WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters):
* UserInterface/TimelineDataGrid.css:
(.data-grid.timeline table):
(.data-grid.timeline th):
(.data-grid.timeline th:not(:last-child)):
(.data-grid.timeline th.sortable:active):
(.data-grid.timeline th.sort-descending):
(.data-grid.timeline .data-container):
(.data-grid.timeline td):
(.data-grid.timeline td:last-child):
(.data-grid.timeline td:not(:last-child)):
(.data-grid.timeline:focus tr.selected td:not(:last-child)):
(.data-grid.timeline th.sort-descending > div:first-child):
(.data-grid.timeline th.sort-descending > div:first-child::after):
(.data-grid.timeline td.error):
(.data-grid.timeline tr.selected td.error):
(.data-grid.timeline > .navigation-bar-container):
(.data-grid.timeline:hover > .navigation-bar-container):
(.data-grid.timeline > .navigation-bar-container > .navigation-bar):
* UserInterface/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid):
(WebInspector.TimelineDataGrid.createColumnScopeBar):
(WebInspector.TimelineDataGrid.prototype.reset):
(WebInspector.TimelineDataGrid.prototype.shown):
(WebInspector.TimelineDataGrid.prototype.hidden):
(WebInspector.TimelineDataGrid.prototype.callFramePopoverAnchorElement):
(WebInspector.TimelineDataGrid.prototype.updateLayout):
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
(WebInspector.TimelineDataGrid.prototype.addRowInSortOrder):
(WebInspector.TimelineDataGrid.prototype.shouldIgnoreSelectionEvent):
(WebInspector.TimelineDataGrid.prototype.dataGridNodeNeedsRefresh):
(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
(WebInspector.TimelineDataGrid.prototype._sort):
(WebInspector.TimelineDataGrid.prototype._sortComparator):
Add support for sorting, batch refresh and managing of a TreeOutlineDataGridSynchronizer.
* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .title-bar): Bump the font size to match data grid header sizes.
* UserInterface/TimelineView.js:
(WebInspector.TimelineView.prototype.matchTreeElementAgainstCustomFilters): Added stub.
* UserInterface/TreeOutlineDataGridSynchronizer.js:
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.get treeOutline):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.get dataGrid):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.get enabled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.set enabled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.treeElementForDataGridNode):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.dataGridNodeForTreeElement):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeSelected):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeExpanded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeCollapsed):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementSelected):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementRemoved):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementExpanded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementCollapsed):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementHiddenChanged):
Added support for disabling the synchronizer when the client can do a better job.
2014-01-13 Timothy Hatcher <timothy@apple.com>
Filter the Timeline overview graph and sidebar based on the current time selection.
https://bugs.webkit.org/show_bug.cgi?id=126955
Reviewed by Joseph Pecoraro.
* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.updateFilter):
(WebInspector.NavigationSidebarPanel.prototype.hasCustomFilters):
(WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
Add support for custom filters implemented by subclasses.
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters.checkTimeBounds):
(WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
Filter known tree element types by time.
* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .empty-content-placeholder):
Position the empty placeholder with the content.
* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.hasCustomFilters):
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
Defer filtering to the TimelineContentView.
2014-01-13 Timothy Hatcher <timothy@apple.com>
Implement state cookie support for WebInspector.TimelineSidebarPanel.
https://bugs.webkit.org/show_bug.cgi?id=126921
Reviewed by Joseph Pecoraro.
* UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
Drive-by fix to pass along relaxedMatchDelay to the superclass.
* UserInterface/Main.js:
(WebInspector.loaded):
(WebInspector._provisionalLoadStarted):
Listen for ProvisionalLoadStarted instead of ProvisionalLoadCommitted to save the cookie
before the TimelineRecording is reset and clears the UI.
* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.get restoringState): Added.
(WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie.finalAttemptToRestoreViewStateFromCookie):
Delete _pendingViewStateCookie since this was the final attempt.
(WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject): Block string represented objects.
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
Drive-by fix to null check parentFrame since it can be null. Was causing an exception while working on this.
* UserInterface/SourceCodeTimeline.js:
(WebInspector.SourceCodeTimeline):
(WebInspector.SourceCodeTimeline.prototype.saveIdentityToCookie):
* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
(WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
(WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
* UserInterface/TreeOutline.js:
(TreeOutline.prototype._forgetTreeElement):
Drive-by fix to clear selectedTreeElement if it is removed from the tree. Was causing removed TreeElements to be
saved as a cookie since it was still the selected item.
2014-01-11 Timothy Hatcher <timothy@apple.com>
Implement bar graph rendering for WebInspector.OverviewTimelineView.
https://bugs.webkit.org/show_bug.cgi?id=126831
Reviewed by Joseph Pecoraro.
* UserInterface/Main.html: Added new files.
* UserInterface/OverviewTimelineView.css:
(.timeline-view.overview > .data-grid td.graph-column):
(.timeline-view.overview > .data-grid td.graph-column > div):
(.timeline-view.overview > .data-grid td.graph-column .timeline-record-bar):
Position the bars in the DataGrid cells.
* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.updateLayout):
(WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
(WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
Create the proper DataGridNodes for resources and source code timelines.
* UserInterface/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode):
(WebInspector.ResourceTimelineDataGridNode.prototype.get records):
(WebInspector.ResourceTimelineDataGridNode.prototype.get resource):
(WebInspector.ResourceTimelineDataGridNode.prototype.get data):
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
(WebInspector.ResourceTimelineDataGridNode.prototype.refresh):
(WebInspector.ResourceTimelineDataGridNode.prototype._needsRefresh):
(WebInspector.ResourceTimelineDataGridNode.prototype._goToResource):
Simplify by deferring the graph logic to the new TimelineDataGridNode base class.
* UserInterface/SourceCodeTimelineTimelineDataGridNode.js: Added.
(WebInspector.SourceCodeTimelineTimelineDataGridNode):
(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.get records):
(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.get sourceCodeTimeline):
(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.get data):
* UserInterface/TimelineDataGridNode.js: Added.
(WebInspector.TimelineDataGridNode):
(WebInspector.TimelineDataGridNode.prototype.get records):
(WebInspector.TimelineDataGridNode.prototype.get data):
(WebInspector.TimelineDataGridNode.prototype.createCellContent):
(WebInspector.TimelineDataGridNode.prototype.refresh):
(WebInspector.TimelineDataGridNode.prototype.refreshGraph):
(WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
Handles the graph column and manages the records and their bars.
* UserInterface/TimelineRecordBar.css: Added.
(.timeline-record-bar):
(.timeline-record-bar > .segment):
(.timeline-record-bar:not(.has-inactive-segment) > .segment):
(.timeline-record-bar.unfinished > .segment):
(.timeline-record-bar > .segment.inactive + .segment):
(:focus .selected .timeline-record-bar > .segment):
(.timeline-record-bar > .segment.inactive):
(.timeline-record-bar.timeline-record-type-network > .segment):
(.timeline-record-bar.timeline-record-type-layout > .segment):
(.timeline-record-bar.timeline-record-type-script > .segment):
* UserInterface/TimelineRecordBar.js: Added.
(WebInspector.TimelineRecordBar):
(WebInspector.TimelineRecordBar.prototype.get element):
(WebInspector.TimelineRecordBar.prototype.refresh):
(WebInspector.TimelineRecordBar.prototype._updateElementPosition):
2014-01-08 Timothy Hatcher <timothy@apple.com>
Update the current WebInspector.TimelineView when time range changes.
https://bugs.webkit.org/show_bug.cgi?id=126667
Reviewed by Joseph Pecoraro.
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._showTimelineView):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
(WebInspector.TimelineContentView.prototype._stopUpdatingCurrentTime):
(WebInspector.TimelineContentView.prototype._recordingStarted):
(WebInspector.TimelineContentView.prototype._recordingStopped):
(WebInspector.TimelineContentView.prototype._recordingReset):
(WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverview.prototype._updateElementWidth):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
* UserInterface/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.updateLayoutIfNeeded):
* UserInterface/TimelineView.js:
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.get zeroTime):
(WebInspector.TimelineView.prototype.set zeroTime):
(WebInspector.TimelineView.prototype.get startTime):
(WebInspector.TimelineView.prototype.set startTime):
(WebInspector.TimelineView.prototype.get endTime):
(WebInspector.TimelineView.prototype.set endTime):
(WebInspector.TimelineView.prototype.get currentTime):
(WebInspector.TimelineView.prototype.set currentTime.checkIfLayoutIsNeeded):
(WebInspector.TimelineView.prototype.set currentTime):
(WebInspector.TimelineView.prototype.updateLayout):
(WebInspector.TimelineView.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineView.prototype.needsLayout):
2013-12-19 Timothy Hatcher <timothy@apple.com>
Implement time range selection for TimelineOverview and TimelineRuler.
https://bugs.webkit.org/show_bug.cgi?id=126035
Reviewed by Joseph Pecoraro.
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._recordingReset):
Properly update start time and the selection start time on reset.
* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get selectionStartTime):
(WebInspector.TimelineOverview.prototype.set selectionStartTime):
(WebInspector.TimelineOverview.prototype.get selectionDuration):
(WebInspector.TimelineOverview.prototype.set selectionDuration):
Added selection getters and setters.
* UserInterface/TimelineRuler.css:
(.timeline-ruler.allows-time-range-selection):
(.timeline-ruler > *):
(.timeline-ruler > .header):
(.timeline-ruler > .selection-drag):
(.timeline-ruler > .selection-drag:active):
(.timeline-ruler > .selection-handle):
(.timeline-ruler > .selection-handle.left):
(.timeline-ruler > .selection-handle.right):
(.timeline-ruler > .shaded-area):
(.timeline-ruler > .shaded-area.left):
(.timeline-ruler > .shaded-area.right):
Added styles for the selection elements and tweaked pointer-events to allow
events on elements we expect.
* UserInterface/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.get allowsTimeRangeSelection): Added.
(WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection): Added.
(WebInspector.TimelineRuler.prototype.get selectionStartTime): Added.
(WebInspector.TimelineRuler.prototype.set selectionStartTime): Added.
(WebInspector.TimelineRuler.prototype.get selectionEndTime): Added.
(WebInspector.TimelineRuler.prototype.set selectionEndTime): Added.
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._needsMarkerLayout.update):
(WebInspector.TimelineRuler.prototype._needsMarkerLayout):
(WebInspector.TimelineRuler.prototype._needsSelectionLayout.update):
(WebInspector.TimelineRuler.prototype._needsSelectionLayout):
(WebInspector.TimelineRuler.prototype._recalculate):
(WebInspector.TimelineRuler.prototype._updatePositionOfElement):
(WebInspector.TimelineRuler.prototype._updateMarkers):
(WebInspector.TimelineRuler.prototype._updateSelection): Added.
(WebInspector.TimelineRuler.prototype._dispatchTimeRangeSelectionChangedEvent):
(WebInspector.TimelineRuler.prototype._timelineMarkerTimeChanged):
(WebInspector.TimelineRuler.prototype._handleMouseDown): Added.
(WebInspector.TimelineRuler.prototype._handleMouseMove): Added.
(WebInspector.TimelineRuler.prototype._handleMouseUp): Added.
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown): Added.
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove): Added.
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseUp): Added.
Create selection elements and handle mouse events for drag and move.
2013-12-17 Timothy Hatcher <timothy@apple.com>
Support scroll to zoom in TimelineOverview.
https://bugs.webkit.org/show_bug.cgi?id=125909
Reviewed by Joseph Pecoraro.
* UserInterface/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
2013-12-17 Timothy Hatcher <timothy@apple.com>
Add the start of the TimelineOverview class.
TimelineOverview currently has a time ruler and tracks the current recording time.
https://bugs.webkit.org/show_bug.cgi?id=125878
Reviewed by Joseph Pecoraro.
* UserInterface/Main.html:
* UserInterface/TimelineContentView.css:
(.content-view.timeline > .timeline-overview):
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView):
(WebInspector.TimelineContentView.prototype.updateLayout):
(WebInspector.TimelineContentView.prototype._update):
(WebInspector.TimelineContentView.prototype._recordingStarted):
(WebInspector.TimelineContentView.prototype._recordingStopped):
(WebInspector.TimelineContentView.prototype._recordingReset):
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
* UserInterface/TimelineMarker.js: Renamed from Source/WebInspectorUI/UserInterface/TimelineEventMarker.js.
(WebInspector.TimelineMarker):
(WebInspector.TimelineMarker.prototype.get time):
(WebInspector.TimelineMarker.prototype.set time):
(WebInspector.TimelineMarker.prototype.get type):
* UserInterface/TimelineOverview.css: Added.
(.timeline-overview > .scroll-container):
(.timeline-overview > .scroll-container > .timeline-ruler):
* UserInterface/TimelineOverview.js: Added.
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get element):
(WebInspector.TimelineOverview.prototype.get startTime):
(WebInspector.TimelineOverview.prototype.set startTime):
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get endTime):
(WebInspector.TimelineOverview.prototype.set endTime):
(WebInspector.TimelineOverview.prototype.addMarker):
(WebInspector.TimelineOverview.prototype.revealMarker):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype._updateElementWidth):
(WebInspector.TimelineOverview.prototype._needsLayout):
* UserInterface/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.get startTime):
(WebInspector.TimelineRecording.prototype.get endTime):
(WebInspector.TimelineRecording.prototype.reset):
* UserInterface/TimelineRuler.css:
(.timeline-ruler > .markers):
(.timeline-ruler > .markers > .marker):
(.timeline-ruler > .markers > .marker.current-time):
(.timeline-ruler > .markers > .marker.current-time::before):
(.timeline-ruler > .markers > .marker.load-event):
(.timeline-ruler > .markers > .marker.dom-content-event):
(.timeline-ruler > .markers > .marker.timestamp):
* UserInterface/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._needsLayout):
(WebInspector.TimelineRuler.prototype._needsMarkerLayout.update):
(WebInspector.TimelineRuler.prototype._needsMarkerLayout):
(WebInspector.TimelineRuler.prototype._recalculate):
(WebInspector.TimelineRuler.prototype._updateLeftPositionOfElement):
(WebInspector.TimelineRuler.prototype._updateMarkers):
(WebInspector.TimelineRuler.prototype._timelineMarkerTimeChanged):
2013-12-13 Timothy Hatcher <timothy@apple.com>
Clean up and refactor TimelineDecorations into TimelineRuler.
https://bugs.webkit.org/show_bug.cgi?id=125709
Reviewed by Joseph Pecoraro.
* UserInterface/Main.html:
* UserInterface/OverviewTimelineView.css:
(.timeline-view.overview > .timeline-ruler):
(.timeline-view.overview > .timeline-ruler > .header):
(.timeline-view.overview > .timeline-ruler > .event-markers):
Updated class names and border sides.
* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype.updateLayout):
Call updateLayout on the TimelineRuler.
* UserInterface/TimelineRuler.css: Renamed from Source/WebInspectorUI/UserInterface/TimelineDecorations.css.
(.timeline-ruler):
(.timeline-ruler > .header):
(.timeline-ruler > .header > .divider):
(.timeline-ruler > .header > .divider > .label):
(.timeline-ruler > .event-markers):
(.timeline-ruler > .event-markers > .event-marker-tooltip):
(.timeline-ruler > .event-markers > .event-marker):
(.timeline-ruler > .event-markers > .event-marker.load-event):
(.timeline-ruler > .event-markers > .event-marker.dom-content-event):
(.timeline-ruler > .event-markers > .event-marker.timestamp):
Updated class names and border sides.
* UserInterface/TimelineRuler.js: Renamed from Source/WebInspectorUI/UserInterface/TimelineDecorations.js.
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.get element):
(WebInspector.TimelineRuler.prototype.get headerElement):
(WebInspector.TimelineRuler.prototype.get allowsClippedLabels):
(WebInspector.TimelineRuler.prototype.set allowsClippedLabels):
(WebInspector.TimelineRuler.prototype.get zeroTime):
(WebInspector.TimelineRuler.prototype.set zeroTime):
(WebInspector.TimelineRuler.prototype.get startTime):
(WebInspector.TimelineRuler.prototype.set startTime):
(WebInspector.TimelineRuler.prototype.get duration):
(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.updateLayout.removeDividerAndSelectNext):
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._needsLayout):
(WebInspector.TimelineRuler.prototype._recalculate):
Refactor so the times are stored on TimelineRuler and not passed in each time an update is needed.
Support dividers that don't always start at the zero position, allowing a sliding time ruler.
Support for a non-pinned ruler where the end time is not fixed and the scale is specified in
seconds-per-pixel.
2014-01-08 Timothy Hatcher <timothy@apple.com>
Improve scroll performance of WebInspector.TreeOutlineDataGridSynchronizer.
https://bugs.webkit.org/show_bug.cgi?id=126660
Reviewed by Joseph Pecoraro.
* UserInterface/TreeOutlineDataGridSynchronizer.js:
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
Ignore scroll events triggered by our internal use of setting scrollTop.
2013-11-15 Timothy Hatcher <timothy@apple.com>
Add a synchronized DataGrid to the OverviewTimelineView.
The DataGrid is synchronized with the sidebar TreeOutline to appear as one when the view
and sidebar are both showing. The two scroll, expand and collapse in sync when the view
is showing. When the view is not showing the sidebar can scroll independently.
https://bugs.webkit.org/show_bug.cgi?id=124429
Reviewed by Joseph Pecoraro.
* UserInterface/DataGrid.js:
(WebInspector.DataGrid):
(WebInspector.DataGrid.createSortableDataGrid):
(WebInspector.DataGrid.prototype._copyTextForDataGridNode):
(WebInspector.DataGridNode.prototype.createCellContent):
Handle undefined/null cells better by substituting empty strings.
(WebInspector.DataGridNode.prototype.collapse):
(WebInspector.DataGridNode.prototype.expand):
Fire events on the DataGrid for expand and collapse.
* UserInterface/Main.html: Include TreeOutlineDataGridSynchronizer.js.
* UserInterface/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .content): Shorten by 1px to match the content view height.
Needed to keep scrolling in sync. The clipping looks better too.
* UserInterface/OverviewTimelineView.css:
(.timeline-view.overview > .data-grid):
(.timeline-view.overview > .data-grid table.header):
(.timeline-view.overview > .data-grid .data-container):
Style the DataGrid to to not have a header.
* UserInterface/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype.shown):
(WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
(WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
Create the DataGrid and some placeholder nodes. Hook up TreeOutlineDataGridSynchronizer.
* UserInterface/TimelineContentView.css:
(.content-view.timeline > .view-container > .timeline-view > .data-grid td):
(.content-view.timeline > .view-container > .timeline-view > .data-grid table.data):
Style the DataGrid to match the height of TreeElements in the sidebar.
* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline.timeline-content-view-showing > .content):
Hide the scrollbar off the right when the view is showing. The view will show the scrollbar.
* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected):
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
* UserInterface/TreeOutline.js:
(TreeOutline.prototype.removeChildAtIndex):
(TreeOutline.prototype.removeChildren):
(TreeOutline.prototype.removeChildrenRecursive):
(TreeElement.prototype.set hidden):
Add event callbacks for onhidden and onremove.
* UserInterface/TreeOutlineDataGridSynchronizer.js: Added.
(WebInspector.TreeOutlineDataGridSynchronizer):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.associate):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype.synchronize):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridScrolled):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeSelected):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeExpanded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridNodeCollapsed):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementSelected):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementRemoved):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementExpanded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementCollapsed):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementHiddenChanged):
2013-11-07 Timothy Hatcher <timothy@apple.com>
Start fleshing out the Overview Timeline view.
This gets the overview populating in the Timeline sidebar. The graph side is still empty.
https://bugs.webkit.org/show_bug.cgi?id=124005
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/Frame.js:
(WebInspector.Frame.prototype.addResource):
* UserInterface/Images/TimelineRecordAnimation.svg: Added.
* UserInterface/Images/TimelineRecordEvent.svg: Added.
* UserInterface/Images/TimelineRecordLayout.svg: Added.
* UserInterface/Images/TimelineRecordPaint.svg: Added.
* UserInterface/Images/TimelineRecordScriptEvaluated.svg: Added.
* UserInterface/Images/TimelineRecordStyle.svg: Added.
* UserInterface/Images/TimelineRecordTimer.svg: Added.
* UserInterface/Main.html:
* UserInterface/OverviewTimelineView.js: Added.
(WebInspector.OverviewTimelineView):
(WebInspector.OverviewTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.OverviewTimelineView.prototype._childFrameWasAdded):
(WebInspector.OverviewTimelineView.prototype._mainResourceDidChange):
(WebInspector.OverviewTimelineView.prototype._provisionalResourceWasAdded):
(WebInspector.OverviewTimelineView.prototype._resourceWasAdded):
(WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails):
(WebInspector.OverviewTimelineView.prototype._compareTreeElementsByStartTime):
(WebInspector.OverviewTimelineView.prototype._insertTreeElement):
(WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
(WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):
* UserInterface/SourceCodeTimelineTreeElement.js: Added.
(WebInspector.SourceCodeTimelineTreeElement):
(WebInspector.SourceCodeTimelineTreeElement.prototype.get sourceCodeTimeline):
* UserInterface/TimelineContentView.js:
(WebInspector.TimelineContentView.createPathComponent):
(WebInspector.TimelineContentView):
(WebInspector.TimelineContentView.prototype.showOverviewTimelineView):
(WebInspector.TimelineContentView.prototype.showTimelineView):
(WebInspector.TimelineContentView.prototype.get supportsSplitContentBrowser):
(WebInspector.TimelineContentView.prototype.get selectionPathComponents):
(WebInspector.TimelineContentView.prototype._pathComponentSelected):
(WebInspector.TimelineContentView.prototype._showTimelineView):
(WebInspector.TimelineContentView.prototype._recordingReset):
* UserInterface/TimelineIcons.css:
(.style-record .icon): Added.
(.layout-record .icon): Added.
(.paint-record .icon): Added.
(.evaluated-record .icon): Added.
(.event-record .icon): Added.
(.timer-record .icon): Added.
(.animation-record .icon): Added.
* UserInterface/TimelineView.css: Added.
(.timeline-view):
* UserInterface/TimelineView.js: Added.
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.get navigationSidebarTreeOutline):
(WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.TimelineView.prototype.reset):
(WebInspector.TimelineView.prototype.shown):
(WebInspector.TimelineView.prototype.hidden):
2013-11-07 Timothy Hatcher <timothy@apple.com>
Start fleshing out the new TimelineSidebarPanel and TimelineContentView.
https://bugs.webkit.org/show_bug.cgi?id=124003
Reviewed by Joseph Pecoraro.
* UserInterface/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
* UserInterface/FrameContentView.js:
* UserInterface/Images/CloseTimeline.png: Added.
* UserInterface/Images/CloseTimeline@2x.png: Added.
* UserInterface/Images/ColorsLarge.png: Added.
* UserInterface/Images/ColorsLarge@2x.png: Added.
* UserInterface/Images/NetworkLarge.png: Added.
* UserInterface/Images/NetworkLarge@2x.png: Added.
* UserInterface/Images/ScriptLarge.png: Added.
* UserInterface/Images/ScriptLarge@2x.png: Added.
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.sidebarPanelForRepresentedObject):
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentView):
* UserInterface/ResourceClusterContentView.js:
* UserInterface/TimelineContentView.css: Added.
(.content-view.timeline > .view-container):
* UserInterface/TimelineContentView.js: Added.
(WebInspector.TimelineContentView):
* UserInterface/TimelineIcons.css: Renamed from Source/WebInspectorUI/UserInterface/InstrumentIcons.css.
(.network-icon.large .icon): Added.
(.colors-icon.large .icon): Added.
(.script-icon.large .icon): Added.
* UserInterface/TimelineSidebarPanel.css:
(.sidebar > .panel.timeline > .navigation-bar):
(.sidebar > .panel.timeline > .title-bar):
(.sidebar > .panel.timeline > .title-bar.timelines):
(.sidebar > .panel.timeline > .title-bar.timeline-events):
(.sidebar > .panel.timeline > .timelines-content):
(.sidebar > .panel.timeline > .timelines-content .close-button):
(.sidebar > .panel.timeline > .timelines-content li.item.selected .close-button):
(.sidebar > .panel.timeline > .timelines-content .close-button:active):
(.sidebar > .panel.timeline > .content):
* UserInterface/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.TimelineSidebarPanel.prototype.get contentTreeOutlineLabel):
(WebInspector.TimelineSidebarPanel.prototype.set contentTreeOutlineLabel):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineView):
(WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected):
2014-01-08 Timothy Hatcher <timothy@apple.com>
Correctly track time bounds of WebInspector.Timeline and WebInspector.TimelineRecording.
The startTime and endTime were not correct when Network timeline needed to be taken into
account (due to its dynamic loading nature.) This creates a network Timeline for the purposes
of tracking the ResourceTimelineRecords and getting accurate start and end times.
Also changes the way TimelineRecord tracks the inactive portion of time, needed for later
work on the timeline graphs.
https://bugs.webkit.org/show_bug.cgi?id=126676
Reviewed by Joseph Pecoraro.
* UserInterface/ResourceTimelineRecord.js:
(WebInspector.ResourceTimelineRecord.prototype.get updatesDynamically):
(WebInspector.ResourceTimelineRecord.prototype.get usesActiveStartTime):
(WebInspector.ResourceTimelineRecord.prototype.get startTime):
(WebInspector.ResourceTimelineRecord.prototype.get activeStartTime):
(WebInspector.ResourceTimelineRecord.prototype.get endTime):
* UserInterface/Timeline.js:
(WebInspector.Timeline):
(WebInspector.Timeline.prototype.get startTime):
(WebInspector.Timeline.prototype.get endTime):
(WebInspector.Timeline.prototype.addRecord):
(WebInspector.Timeline.prototype._updateTimesIfNeeded):
(WebInspector.Timeline.prototype._recordUpdated):
* UserInterface/TimelineRecord.js:
(WebInspector.TimelineRecord.prototype.get startTime):
(WebInspector.TimelineRecord.prototype.get activeStartTime):
(WebInspector.TimelineRecord.prototype.get endTime):
(WebInspector.TimelineRecord.prototype.get inactiveDuration):
(WebInspector.TimelineRecord.prototype.get activeDuration):
(WebInspector.TimelineRecord.prototype.get updatesDynamically):
(WebInspector.TimelineRecord.prototype.get usesActiveStartTime):
* UserInterface/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype._timelineTimesUpdated):
2013-10-25 Timothy Hatcher <timothy@apple.com>
Implement TimelineRecording and per-call-site timelines.
Keep track of timeline records per global timeline and per source code location.
This will be used to display them in the UI in later patches.
https://bugs.webkit.org/show_bug.cgi?id=123367
Reviewed by Joseph Pecoraro.
* UserInterface/Main.html:
* UserInterface/SourceCodeTimeline.js: Added.
(WebInspector.SourceCodeTimeline):
(WebInspector.SourceCodeTimeline.prototype.get sourceCode):
(WebInspector.SourceCodeTimeline.prototype.get sourceCodeLocation):
(WebInspector.SourceCodeTimeline.prototype.get recordType):
(WebInspector.SourceCodeTimeline.prototype.get recordEventType):
* UserInterface/Timeline.js: Added.
(WebInspector.Timeline):
(WebInspector.Timeline.prototype.get records):
(WebInspector.Timeline.prototype.addRecord):
* UserInterface/TimelineRecording.js:
(WebInspector.TimelineRecording):
(WebInspector.TimelineRecording.prototype.get timelines): Added.
(WebInspector.TimelineRecording.prototype.sourceCodeTimelinesForSourceCode): Added.
(WebInspector.TimelineRecording.prototype.addEventMarker): Implemented.
(WebInspector.TimelineRecording.prototype.addRecord): Implemented.
(WebInspector.TimelineRecording.prototype._keyForRecord): Added.
2013-10-25 Timothy Hatcher <timothy@apple.com>
Add support for multiple Timeline recordings.
We also don't explicitly add ResourceTimelineRecords anymore. These will be tracked automatically in a later patch.
https://bugs.webkit.org/show_bug.cgi?id=123366
Reviewed by Joseph Pecoraro.
* UserInterface/DashboardManager.js:
(WebInspector.DashboardManager.prototype._mainResourceDidChange): Check for currentRecording.
* UserInterface/InspectorFrontendAPI.js:
(InspectorFrontendAPI.isTimelineProfilingEnabled): Check for currentRecording.
* UserInterface/Main.html:
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.get currentRecording): Added.
(WebInspector.TimelineManager.prototype.startRecording): Make a new recording and push it onto the recording array.
Add the current recording to the event.
(WebInspector.TimelineManager.prototype.stopRecording): Add the current recording to the event.
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Check for currentRecording. Add the markers
to the current recording.
(WebInspector.TimelineManager.prototype._addRecord): Add the record to the current recording.
(WebInspector.TimelineManager.prototype._startAutoRecording): Clean up. Don't add ResourceTimelineRecord. Clear recordings.
(WebInspector.TimelineManager.prototype._stopAutoRecordingSoon): Check for _currentRecording.
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout): Ditto.
(WebInspector.TimelineManager.prototype._mainResourceDidChange): Don't add ResourceTimelineRecord anymore.
(WebInspector.TimelineManager.prototype._resourceWasAdded): Removed.
* UserInterface/TimelineRecording.js: Added.
(WebInspector.TimelineRecording): Added.
(WebInspector.TimelineRecording.prototype.addEventMarker): Added.
(WebInspector.TimelineRecording.prototype.addRecord): Added.
2013-10-25 Timothy Hatcher <timothy@apple.com>
Track callFrames and sourceCodeLocation per TimelineRecord.
https://bugs.webkit.org/show_bug.cgi?id=123359
Reviewed by Joseph Pecoraro.
* UserInterface/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord): Pass callFrames and sourceCodeLocation to superclass.
* UserInterface/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord): Pass callFrames and sourceCodeLocation to superclass.
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Add "Payload" suffix to better track what is a protocol object.
Pass the callFrames and sourceCodeLocation to all the new TimelineRecords.
(WebInspector.TimelineManager.prototype.eventRecorded): Add "Payload" suffix.
* UserInterface/TimelineRecord.js:
(WebInspector.TimelineRecord):
(WebInspector.TimelineRecord.prototype.get callFrames): Added.
(WebInspector.TimelineRecord.prototype.get initiatorCallFrame): Added.
(WebInspector.TimelineRecord.prototype.get sourceCodeLocation): Added.
2013-10-25 Timothy Hatcher <timothy@apple.com>
Change how the load and content ready event timestamps are tracked.
https://bugs.webkit.org/show_bug.cgi?id=123356
Reviewed by Joseph Pecoraro.
* UserInterface/DashboardManager.js:
(WebInspector.DashboardManager.prototype._updateTime): Use the timestamps on the main frame.
* UserInterface/Frame.js:
(WebInspector.Frame):
(WebInspector.Frame.prototype.get domContentReadyEventTimestamp): Added.
(WebInspector.Frame.prototype.get loadEventTimestamp): Added.
(WebInspector.Frame.prototype.markDOMContentReadyEvent): Added.
(WebInspector.Frame.prototype.markLoadEvent): Added.
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Use markLoadEvent and markDOMContentReadyEvent.
Do it for all frames, not just the main frame.
(WebInspector.TimelineManager.prototype.pageDidLoad): Call markLoadEvent on the Frame.
2013-10-25 Timothy Hatcher <timothy@apple.com>
Remove a lot of the current Timelines code to make room for a new implementation.
https://bugs.webkit.org/show_bug.cgi?id=123368
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
* UserInterface/DashboardView.js:
(WebInspector.DashboardView.prototype._networkItemWasClicked):
* UserInterface/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setTimelineProfilingEnabled):
(InspectorFrontendAPI.stopProfilingJavaScript):
* UserInterface/InstrumentSidebarPanel.js: Removed.
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.contentLoaded):
(WebInspector.sidebarPanelForRepresentedObject):
(WebInspector.openURL):
* UserInterface/Object.js:
(WebInspector.Object.addEventListener):
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.startRecording):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
(WebInspector.TimelineManager.prototype.objectForCookie):
(WebInspector.TimelineManager.prototype._addRecord):
* UserInterface/TimelinesObject.js: Removed.
* UserInterface/TimelineOverview.css: Removed.
* UserInterface/TimelineOverview.js: Removed.
* UserInterface/TimelineSidebarPanel.css: Added.
* UserInterface/TimelineSidebarPanel.js: Added.
(WebInspector.TimelineSidebarPanel):
* UserInterface/TimelinesContentView.css: Removed.
* UserInterface/TimelinesContentView.js: Removed.
2014-01-20 Timothy Hatcher <timothy@apple.com>
Fix jumping to a text position when showing a resource.
https://bugs.webkit.org/show_bug.cgi?id=127271
Reviewed by Joseph Pecoraro.
* UserInterface/FrameContentView.js:
(WebInspector.FrameContentView.prototype.showSourceCode): Just use showResponse's arguments
which already does the same logic to call revealPosition.
* UserInterface/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.prototype.restoreFromCookie): This was the bug.
lineNumber and columnNumber need honored here. They were only honored by FrameContentView.
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.showSourceCode): Use showContentViewForRepresentedObject
which also accepts a cookie and handles creating the content view for us.
2014-01-16 Brian Burg <bburg@apple.com>
Web Inspector: add more context to Object.addEventListener assertions
https://bugs.webkit.org/show_bug.cgi?id=127125
Reviewed by Joseph Pecoraro.
Log invalid event type and listener parameters, and log the other
parameters so the callsite is easier to figure out.
* UserInterface/Object.js:
(WebInspector.Object.addEventListener):
2014-01-16 Brian Burg <bburg@apple.com>
Web Inspector: CallFrame is missing saveIdentityToCookie, or should be excluded
https://bugs.webkit.org/show_bug.cgi?id=126791
Reviewed by Timothy Hatcher.
* UserInterface/CallFrame.js: Add a dummy saveIdentityToCookie() implementation.
2014-01-16 Brian Burg <bburg@apple.com>
Web Inspector: add probe breakpoint action to popup breakpoint editor
https://bugs.webkit.org/show_bug.cgi?id=126931
Reviewed by Timothy Hatcher.
Add probes to the breakpoint action dropdown.
Reuse the "evaluate JavaScript" input UI.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/BreakpointAction.js:
* UserInterface/BreakpointActionView.js:
(WebInspector.BreakpointActionView.displayStringForType):
(WebInspector.BreakpointActionView.prototype._updateBody.switch.break):
2014-01-15 Brian Burg <bburg@apple.com>
Web Inspector: capture probe samples on the backend
https://bugs.webkit.org/show_bug.cgi?id=126668
Reviewed by Joseph Pecoraro.
* UserInterface/InspectorJSBackendCommands.js: Add probe enumeration value.
2014-01-15 Andreas Kling <akling@apple.com>
Remove the CSS selector profiler.
<https://webkit.org/b/127039>
Purge selector profiler code from the new Web Inspector UI.
Reviewed by Sam Weinig.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/CSSSelectorProfileObject.js: Removed.
* UserInterface/CSSSelectorProfileType.js: Removed.
* UserInterface/CSSSelectorProfileView.js: Removed.
* UserInterface/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
* UserInterface/InspectorWebBackendCommands.js:
* UserInterface/InstrumentSidebarPanel.js:
(WebInspector.InstrumentSidebarPanel):
(WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphMousedOver):
(WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphMousedDown):
(WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphClicked):
(WebInspector.InstrumentSidebarPanel.prototype._profileTypeWasSelected):
(WebInspector.InstrumentSidebarPanel.prototype._profilesCleared):
* UserInterface/Main.html:
* UserInterface/ProfileManager.js:
(WebInspector.ProfileManager):
(WebInspector.ProfileManager.prototype.initialize):
(WebInspector.ProfileManager.prototype._checkForInterruptions):
(WebInspector.ProfileManager.prototype._attemptToResumeProfiling):
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2014-01-13 Timothy Hatcher <timothy@apple.com>
Snap time dividers to nearest numbers instead of just dividing the time span into max density slices.
https://bugs.webkit.org/show_bug.cgi?id=125081
Reviewed by Joseph Pecoraro.
* UserInterface/TimelineDecorations.js:
(WebInspector.TimelineDecorations.prototype.updateHeaderTimes): Snap the time slice to a nearest number.
(WebInspector.TimelineDecorations.prototype.updateEventMarkers): Rename boundarySpan to timeSpan.
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unimplemented or static ScriptDebugServer features
https://bugs.webkit.org/show_bug.cgi?id=126784
Reviewed by Timothy Hatcher.
* UserInterface/InspectorJSBackendCommands.js:
* UserInterface/InspectorWebBackendCommands.js:
* UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
* UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:
2014-01-10 Timothy Hatcher <timothy@apple.com>
Web Inspector: support negative numbers in secondsToString and bytesToString.
https://bugs.webkit.org/show_bug.cgi?id=125708
Reviewed by Joseph Pecoraro.
* UserInterface/Utilities.js:
(Number.secondsToString): Use Math.abs in the size checks.
(Number.bytesToString): Ditto.
2014-01-10 Brian Burg <bburg@apple.com>
Web Inspector: cycle clicked breakpoints between enabled, auto-continue, and disabled
https://bugs.webkit.org/show_bug.cgi?id=126669
Reviewed by Joseph Pecoraro.
It's time-consuming to change a breakpoint's auto-continue setting through the
breakpoint editor popup. This patch enables the user to toggle between enabled,
auto-continue, and disabled by clicking on the breakpoint wedge in the sidebar
tree and in the source text editor gutter. The auto-continue option is only
cycled when the breakpoint has associated actions.
Clean up the breakpoint editor dialog so it hides irrelevant options when
no breakpoint actions have been added.
Automatically unset auto-continue when the last breakpoint action is removed.
Rename the delegate textEditorBreakpointToggled to textEditorBreakpointClicked, since
the behavior of the click depends on breakpoint state not available in the text editor.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint.prototype.cycleToNextMode): Added.
(WebInspector.Breakpoint.prototype.toggleAutoContinue): Added.
(WebInspector.Breakpoint.prototype.appendContextMenuItems): Add auto-continue options.
(WebInspector.Breakpoint.prototype.removeAction):
(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
(WebInspector.Breakpoint.prototype._popoverActionsAddActionButtonClicked):
(WebInspector.Breakpoint.prototype.breakpointActionViewAppendActionView):
(WebInspector.Breakpoint.prototype.breakpointActionViewRemoveActionView):
(WebInspector.Breakpoint.prototype.willDismissPopover):
* UserInterface/BreakpointTreeElement.css:
(.item.breakpoint .status > .status-image.auto-continue):
(.item.breakpoint .status > .status-image.disabled):
* UserInterface/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement):
(WebInspector.BreakpointTreeElement.prototype.onenter):
(WebInspector.BreakpointTreeElement.prototype.onspace):
(WebInspector.BreakpointTreeElement.prototype._updateStatus):
(WebInspector.BreakpointTreeElement.prototype._breakpointLocationDidChange):
(WebInspector.BreakpointTreeElement.prototype._statusImageElementClicked):
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.close):
(WebInspector.SourceCodeTextEditor.prototype._breakpointInfoForBreakpoint):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointClicked):
* UserInterface/TextEditor.css:
(.text-editor > .CodeMirror .breakpoint-auto-continue:not(.breakpoint-disabled) .CodeMirror-linenumber::before):
* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype._setBreakpointStylesOnLine.updateStyles):
(WebInspector.TextEditor.prototype._setBreakpointStylesOnLine):
(WebInspector.TextEditor.prototype.updateStyles):
(WebInspector.TextEditor.prototype._removeBreakpointFromLineAndColumn):
(WebInspector.TextEditor.prototype._documentMouseUp):
2014-01-10 Timothy Hatcher <timothy@apple.com>
Clean up some areas of TreeOutline.
https://bugs.webkit.org/show_bug.cgi?id=123924
Reviewed by Joseph Pecoraro.
* UserInterface/TreeOutline.js:
(TreeOutline.prototype.appendChild): Don't force create _childrenListNode, it will be created
when the tree element is expanded. Only attach if _childrenListNode already exists.
(TreeOutline.prototype.insertChild): Ditto.
(TreeOutline.prototype.getCachedTreeElement): Check the value of __treeElementIdentifier
not just the existence of the property. It should never be null/undefined/0, but be safe.
(TreeOutline.prototype.findTreeElement): Null check isAncestor, it isn't required.
2014-01-10 Timothy Hatcher <timothy@apple.com>
Fix an exception in WebInspector.Color.
https://bugs.webkit.org/show_bug.cgi?id=126765
Reviewed by Joseph Pecoraro.
* UserInterface/Color.js:
(WebInspector.Color.fromString): Check hasOwnPrperty before using the nickname color array.
(WebInspector.Color.prototype._toNicknameString): Ditto.
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
[CSS Blending] Log blending as a layer creation reason in the WI
https://bugs.webkit.org/show_bug.cgi?id=126159
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel.prototype._populateListOfCompositingReasons):
2014-01-10 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Add missing function stub in InspectorFrontendHostStub.js
https://bugs.webkit.org/show_bug.cgi?id=126745
Reviewed by Timothy Hatcher.
* UserInterface/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.debuggableType):
The function debuggableType() was added to InspectorFrontendHost.idl and InspectorFrontendHost.cpp
in r160887, but not to InspectorFrontendHostStub.js.
2014-01-09 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove unused overriding protocols.
https://bugs.webkit.org/show_bug.cgi?id=126630
Reviewed by Timothy Hatcher.
Update InspectorWebBackendCommands.js after removing unused overriding protocols.
* UserInterface/InspectorWebBackendCommands.js:
* UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
* UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:
2014-01-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Typo "clipboarPrefixString"
https://bugs.webkit.org/show_bug.cgi?id=126595
Reviewed by Sam Weinig.
* UserInterface/ConsoleCommandResult.js:
(WebInspector.ConsoleCommandResult.prototype.toMessageElement):
(WebInspector.ConsoleCommandResult.prototype.get clipboardPrefixString):
* UserInterface/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype.get clipboardPrefixString):
(WebInspector.ConsoleMessageImpl.prototype.toClipboardString):
2014-01-06 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove canOverrideDeviceMetrics and setDeviceMetricsOverride from protocol
https://bugs.webkit.org/show_bug.cgi?id=126149
Reviewed by Joseph Pecoraro.
* UserInterface/InspectorWebBackendCommands.js: Remove unused codes.
* UserInterface/Legacy/6.0/InspectorWebBackendCommands.js: Ditto.
* UserInterface/Legacy/7.0/InspectorWebBackendCommands.js: Ditto.
* Versions/Inspector-iOS-6.0.json: Ditto.
* Versions/Inspector-iOS-7.0.json: Ditto.
2014-01-06 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove support for FileSystem in Frontend.
https://bugs.webkit.org/show_bug.cgi?id=126369
Reviewed by Joseph Pecoraro.
Update InspectorWebBackendCommands after removing 'FileSystem' domain.
* UserInterface/InspectorWebBackendCommands.js:
* UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
* UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:
2014-01-06 Seokju Kwon <seokju@webkit.org>
Web Inspector: Get rid of DOM.setFileInputFiles from Protocol
https://bugs.webkit.org/show_bug.cgi?id=126312
Reviewed by Joseph Pecoraro.
Update InspectorWebBackendCommands.js after removing DOM.setFileInputFiles.
* UserInterface/InspectorWebBackendCommands.js:
2013-12-22 Martin Robinson <mrobinson@igalia.com>
[GTK][CMake] Integrate GResource for inspector files (and others?)
https://bugs.webkit.org/show_bug.cgi?id=125569
Reviewed by Gustavo Noronha Silva.
* GNUmakefile.am: Use the new generation script instead of generating with
shell scripting in the makefile.
2013-12-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Frontend Error when selecting Database folder in Resources Sidebar
https://bugs.webkit.org/show_bug.cgi?id=126029
Reviewed by Timothy Hatcher.
Treat the DatabaseHostTreeElement tree element like a folder. It pretty much
is a folder, but inherits from StorageTreeElement to share some code there.
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
2013-12-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught Exception: NavigationSidebarPanel.js: TypeError: undefined is not a function
https://bugs.webkit.org/show_bug.cgi?id=126018
Reviewed by Timothy Hatcher.
ERROR: TypeError: undefined is not a function (evaluating 'representedObject.saveIdentityToCookie(candidateObjectCookie)')
There are some TreeElements (Folders, and the special Databases Folder)
which do not have a represented object, and would throw an exception
when trying to use saveIdentityToCookie.
We should always provide a saveIdentityToCookie when possible. So just
blacklist the tree element types we know do not have representedObjects,
and where we don't want to save identity. This will continue to throw
exceptions in the future for tree elements that don't have the save
function implemented, but should.
Note that even if a TreeElement is constructed with a null represented
object, it becomes an empty object (representedObject || {}).
* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
(WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
2013-12-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add InspectorFrontendHost.debuggableType to let the frontend know it's backend is JavaScript or Web
https://bugs.webkit.org/show_bug.cgi?id=126016
Reviewed by Timothy Hatcher.
* UserInterface/LoadInspectorBackendCommands.js:
If the debuggable target is "web" load both JS and Web backend commands.
Otherwise, we only load the default, js backend commands.
2013-12-16 Alex Christensen <achristensen@webkit.org>
Fixed Win64 build on VS2013.
https://bugs.webkit.org/show_bug.cgi?id=125753
Reviewed by Brent Fulgham.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
Added 64-bit configuration.
2013-12-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=125707
Reviewed by Timothy Hatcher.
* UserInterface/InspectorJSBackendCommands.js:
* UserInterface/InspectorWebBackendCommands.js:
Regenerate now that domains have moved around.
2013-12-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Exception: TypeError: undefined is not a function (evaluating 'marker.find()')
https://bugs.webkit.org/show_bug.cgi?id=125724
Reviewed by Darin Adler.
* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
The callback changed to returning WebInspector.TextMarkers, however
this class expected a raw CodeMirror marker. Since this class knows
about CodeMirror and expects to access these markers later go
directly to the CodeMirror marker.
2013-12-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Inspector Code Generation to JavaScriptCore for Runtime Domain
https://bugs.webkit.org/show_bug.cgi?id=125595
Reviewed by Timothy Hatcher.
* Scripts/copy-user-interface-resources.sh:
Copy all the different backend commands files.
* Scripts/update-InspectorBackendCommands.rb:
Update with respect to new script location and new file names.
* WebInspectorUI.xcodeproj/project.pbxproj:
Remove Inputs and Outputs of build phase, which were wrong.
Now this build phase always runs, and not by accident.
* UserInterface/InspectorJSBackendCommands.js: Added.
* UserInterface/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/InspectorBackendCommands.js.
* UserInterface/Legacy/6.0/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Legacy/6.0/InspectorBackendCommands.js.
* UserInterface/Legacy/7.0/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Legacy/7.0/InspectorBackendCommands.js.
* UserInterface/LoadInspectorBackendCommands.js:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2013-12-13 Antoine Quint <graouts@apple.com>
Web Inspector: provide an abstraction for CodeMirror's TextMarker
https://bugs.webkit.org/show_bug.cgi?id=125695
Reviewed by Timothy Hatcher.
Introduce a new WebInspector.TextMarker class which is used by code with CodeMirror knowledge
to return information related to text markers to objects that should have no direct knowledge
of CodeMirror. Start using this class in TextEditor and SourceCodeTextEditor to remove the
last remaining pieces of CodeMirror knowledge added to SourceCodeTextEditor to fix
https://webkit.org/b/124364.
* UserInterface/CodeMirrorAdditions.js:
Stop using __markedColor to identify a color marker and instead use the type on the matching
WebInspector.TextMarker. Additionally, create a WebInspector.TextMarker with type
WebInspector.TextMarker.Type.Color in createColorMarkers().
* UserInterface/CodeMirrorColorEditingController.js:
(WebInspector.CodeMirrorColorEditingController):
Use a WebInspector.TextRange to track the edited range and obtain it directly from the
WebInspector.TextMaker used to instantiate the object. We also use the new "text" public
property to create the color.
(WebInspector.CodeMirrorColorEditingController.prototype.set color):
Simply assing the serialized color to the new "text" public property.
(WebInspector.CodeMirrorColorEditingController.prototype.get text):
(WebInspector.CodeMirrorColorEditingController.prototype.set text):
New public property to set get and set the text for the edited range, automatically updating
the range upon setting to a new text.
(WebInspector.CodeMirrorColorEditingController.prototype.presentHoverMenu):
Obtain the bounds directly from the WebInspector.TextMarker object.
* UserInterface/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
Since we're now tracking the hoveredMarker as a WebInspector.TextMarker, get the CodeMirror
TextMarker from that object to check if it's contained within the text markers at the
hovered position.
* UserInterface/Main.html:
Add the new TextMarker class source.
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._hasColorMarkers):
Use the WebInspector.TextMarker type to identify a given text marker is marking a color.
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
Use the renamed markersAtPosition() method from TextEditor.
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
Use the WebInspector.TextMarker type to identify a given text marker is marking a color.
(WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidFinishEditing):
Since the CodeMirrorColorEditingController is now using a WebInspector.TextRange for its range,
update to use a WebInspector.TextRange API to get the range's start line.
* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.get markers):
Return WebInspector.TextMarker objects instead of CodeMirror TextRange objects.
(WebInspector.TextEditor.prototype.markersAtPosition):
Rename method to a better name instead of using the CodeMirror-influenced name. Also, return
WebInspector.TextMarker objects instead of CodeMirror TextRange objects.
* UserInterface/TextMarker.js: Added.
(WebInspector.TextMarker):
Create a WebInspector.TextMarker with a CodeMirror TextMarker and an optional type.
(WebInspector.TextMarker.textMarkerForCodeMirrorTextMarker):
Static method to either obtain the existing WebInspector.TextMarker for a given CodeMirror
TextMarker, or create a new WebInspector.TextMarker.
(WebInspector.TextMarker.prototype.get codeMirrorTextMarker):
Public property to access the CodeMirror TextMarker objects for classes that have direct
knowledge of CodeMirror.
(WebInspector.TextMarker.prototype.get type):
Public property to access the type used to create this text marker.
(WebInspector.TextMarker.prototype.get range):
(WebInspector.TextMarker.prototype.get bounds):
Public properties allowing easy access to generally useful information related to marked text.
(WebInspector.TextMarker.prototype.clear):
Wrapper for the CodeMirror TextMarker clear() method.
2013-12-13 Brent Fulgham <bfulgham@apple.com>
[Win] Switch WebKit solution to Visual Studio 2013
https://bugs.webkit.org/show_bug.cgi?id=125192
Reviewed by Anders Carlsson.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Update for VS2013
2013-12-12 Laszlo Vidacs <lac@inf.u-szeged.hu>
Web Inspector: ES6: JavaScript syntax highlighting and recognition of for..of
https://bugs.webkit.org/show_bug.cgi?id=122868
Reviewed by Timothy Hatcher.
Update to CodeMirror 3.20 including javascript ES6 updates.
* Tools/PrettyPrinting/codemirror.css:
* Tools/PrettyPrinting/codemirror.js: Minor local change due to error from jsmin.py
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.js:
* UserInterface/External/CodeMirror/codemirror.css:
* UserInterface/External/CodeMirror/codemirror.js: Minor local change due to error from jsmin.py
* UserInterface/External/CodeMirror/coffeescript.js:
* UserInterface/External/CodeMirror/css.js:
* UserInterface/External/CodeMirror/htmlmixed.js:
* UserInterface/External/CodeMirror/javascript.js:
* UserInterface/External/CodeMirror/less.js:
* UserInterface/External/CodeMirror/matchbrackets.js:
* UserInterface/External/CodeMirror/placeholder.js:
* UserInterface/External/CodeMirror/runmode.js:
* UserInterface/External/CodeMirror/searchcursor.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/xml.js:
2013-12-12 Antoine Quint <graouts@apple.com>
Web Inspector: allow editing of colors in CSS resources
https://bugs.webkit.org/show_bug.cgi?id=124364
Reviewed by Timothy Hatcher.
Identify colors in CSS and HTML resources so that hovering these colors shows a HoverMenu
allowing a ColorPicker hosted in a Popover to be shown to edit the hovered color.
* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
Remove the code that goes through the lines of the CodeMirror editor to look for
color strings and replace it with a call to the .createColorMarkers() CodeMirror
extension in which the code was refactored. The callback passed to
.createColorMarkers() handles the CSSStyleDeclarationTextEditor-specific creation
of color swatches to show the popover, keeping the existing behavior of the Styles
sidebar panel.
* UserInterface/CodeMirrorAdditions.js:
Refactor existing code into two new CodeMirror extensions: .boundsForRange(), which
was previously defined on the CodeMirrorTokenTrackingController but was also needed
in the new CodeMirrorColorEditingController, and .createColorMarkers(), discussed above.
* UserInterface/CodeMirrorColorEditingController.js: Added.
(WebInspector.CodeMirrorColorEditingController):
New class used by SourceCodeTextEditor to coordinate the editing of a color in a CodeMirror
TextMarker by a ColorPicker hosted in a Popover shown by the activation of a HoverMenu. This
controller automatically gets the color set by the user using the ColorPicker and updates
the CodeMirror text editor with the new value. When the user presses the Esc. key while the
popover is shown, it's automatically dismissed and the original color is reset in the editor.
(WebInspector.CodeMirrorColorEditingController.prototype.get marker):
(WebInspector.CodeMirrorColorEditingController.prototype.get range):
(WebInspector.CodeMirrorColorEditingController.prototype.get delegate):
(WebInspector.CodeMirrorColorEditingController.prototype.set delegate):
Getters and setters for public properties.
(WebInspector.CodeMirrorColorEditingController.prototype.get color):
(WebInspector.CodeMirrorColorEditingController.prototype.set color):
Get and set the color for the edited color marker, replacing the text in the marker's range
upon setting.
(WebInspector.CodeMirrorColorEditingController.prototype.presentHoverMenu):
Public API allowing for a HoverMenu to be shown around the bounds of the TextMarker passed
in the constructor. This method is called from SourceCodeTextEditor when the
CodeMirrorTokenTrackingController identifies that a token that is part of a TextMarker is
hovered and that token is a color.
(WebInspector.CodeMirrorColorEditingController.prototype.dismissHoverMenu):
Public API allowing for the HoverMenu to be dismissed. This method is called when the
CodeMirrorTokenTrackingController identifies that its "hoveredMarker" is no longer being
hovered as well as when we identify that editing of the color has completed.
(WebInspector.CodeMirrorColorEditingController.prototype.handleEvent):
Event handler for the "keydown" event that are being listened to when the HoverMenu
is activated such that the Esc. key can be used to dimiss the popover and reset the
original color before any edits.
(WebInspector.CodeMirrorColorEditingController.prototype.hoverMenuButtonWasPressed):
Implementation of the HoverMenu delegation method used to show a Popover containing a
ColorPicker upon clicking on the color wheel attached to the HoverMenu. We also remember
the color set on the marker so that it may be restored when Esc. is pressed and used to
set the original state of the ColorPicker. The delegation method
colorEditingControllerDidStartEditing() is also called at this point, which the
SourceCodeTextEditor implements.
(WebInspector.CodeMirrorColorEditingController.prototype.didDismissPopover):
Implementation of the Popover delegation method used to identify that color editing has
completed. The delegation method colorEditingControllerDidFinishEditing() is called
at this point, which the SourceCodeTextEditor implements.
(WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
Apply the color set in the color picker to the CodeMirror text editor.
* UserInterface/CodeMirrorTokenTrackingController.js:
Add two new modes to CodeMirrorTokenTrackingController. The first mode is "None" and is
the default, incurring no specific token handling behavior. The second mode is "MarkedTokens"
which identifies hover of a token contained in a CodeMirror TextMarker range. The new
"MarkedTokens" mode is used by SourceCodeTextEditor to identify when a marked color is being
hovered to display a HoverMenu.
(WebInspector.CodeMirrorTokenTrackingController):
(WebInspector.CodeMirrorTokenTrackingController.prototype.set mode):
Make "None" the new default mode for CodeMirrorTokenTrackingController.
(WebInspector.CodeMirrorTokenTrackingController.prototype.get hoveredMarker):
(WebInspector.CodeMirrorTokenTrackingController.prototype.set hoveredMarker):
(WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
Check, when we have a "hoveredMarker" set on the CodeMirrorTokenTrackingController,
whether the "hoveredMarker" is still being hovered when there is no token at the current
mouse position. We can then determine when we're mousing out of the "hoveredMarker" and
notify the delegate via the new tokenTrackingControllerMouseOutOfHoveredMarker delegate
method. The SourceCodeTextEditor uses this method to dismiss its CodeMirrorColorEditingController.
(WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
Add support for the new "MarkedTokens" mode.
(WebInspector.CodeMirrorTokenTrackingController.prototype._processMarkedToken):
For the moment, use the same behavior as the existing "MarkedTokens" mode.
* UserInterface/Color.js:
(WebInspector.Color):
Add a new "valid" property to identify whether a color has any invalid (NaN) component. This property
is used by SourceCodeTextEditor to establish whether a hovered color marker is indeed set to a
valid color still.
(WebInspector.Color.prototype.copy):
New method to create an exact copy of a Color instance, used by CodeMirrorColorEditingController
to duplicate the edited color in case we need to revert it.
* UserInterface/HoverMenu.js:
(WebInspector.HoverMenu.prototype._handleClickEvent):
Rename hoverMenuWasActivated to hoverMenuButtonWasPressed per review feedback.
* UserInterface/Images/ColorIcon.png: Added.
* UserInterface/Images/ColorIcon@2x.png: Added.
New color wheel icon used to customize the HoverMenu shown by a CodeMirrorColorEditingController.
* UserInterface/Main.html:
Link to the new CodeMirrorColorEditingController.js file.
* UserInterface/SourceCodeTextEditor.css:
(.hover-menu.color):
(.hover-menu.color > img):
Customize the HoverMenu shown by a CodeMirrorColorEditingController to use the new ColorIcon asset.
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
Add a new "_ignoreContentDidChange" ivar that increments and decrements to track when handling
of CodeMirror content changes should be disabled.
(WebInspector.SourceCodeTextEditor.prototype.close):
Adopt the new ._updateTokenTrackingControllerState() method to update the state of the
CodeMirrorTokenTrackingController.
(WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
Override the new TextEditor public API called when content in the CodeMirror text editor is changed.
We use this method to process any newly added line to create any newly added color marker.
(WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
(WebInspector.SourceCodeTextEditor.prototype._sourceCodeSourceMapAdded):
Adopt the new ._updateTokenTrackingControllerState() method to update the state of the
CodeMirrorTokenTrackingController.
(WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
New method acting as the only point where we check the state of the text editor and set the right
mode and settings on the CodeMirrorTokenTrackingController, including setting the new "MarkedTokens"
mode when we have color markers, as determined by ._hasColorMarkers().
(WebInspector.SourceCodeTextEditor.prototype._hasColorMarkers):
Check whether any of the TextMarkers set on the CodeMirror text editor were created for a color.
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
Check the CodeMirrorTokenTrackingController mode rather than the removed "_jumpToSymbolTrackingModeEnabled"
ivar to identify we're in the "NonSymbolTokens" mode.
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
Refactor method to use the CodeMirrorTokenTrackingController mode to branch into mode-specific code
and add a new branch for the new "MarkedTokens" mode where we check if the newly hovered token
is part of a color TextMarker range.
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerMouseOutOfHoveredMarker):
Implement this new CodeMirrorTokenTrackingController delegation method to dismiss the
CodeMirrorColorEditingController as we identify we're no longer hovering over the TextMarker
for which the CodeMirrorColorEditingController was created.
(WebInspector.SourceCodeTextEditor.prototype._showPopover):
Adopt the new TextEditor boundsForRange() method.
(WebInspector.SourceCodeTextEditor.prototype._updateColorMarkers):
Harness the new TextEditor createColorMarkers() method to create new TextMarkers for the provided
line, or the entire text editor content if none provided. We then immediately call _updateTokenTrackingControllerState()
so that the new "MarkedTokens" mode is entered in case color TextMarkers were created for the first
time for this text editor.
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
Called when we've identified the CodeMirrorTokenTrackingController highlighted a TextMarker. We check
if any of the hovered TextMarkers are for a color, and in this case create a CodeMirrorColorEditingController
to coordinate the display of a ColorPicker in a Popover to edit the hovered color token. We also check
whether the hovered marker still contains a valid color, clearing the marker in case it was edited to
no longer contain a color.
(WebInspector.SourceCodeTextEditor.prototype._dismissCodeMirrorColorEditingController):
Used to dismiss the CodeMirrorColorEditingController, if previously presented, and reset some internal state.
(WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidStartEditing):
Implement this CodeMirrorColorEditingController delegation method to temporarily disable the
CodeMirrorTokenTrackingController while we edit the color with the ColorPicker, remove
the TextMarker for the edited color and instruct that content changes should be ignored
such that we act on the complete set of color edits upon completion.
(WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidFinishEditing):
Update color markers for the edited line such that any color edits are correctly updated for
the future and so that, as a side-effect, the CodeMirrorColorEditingController is reset to the
appropriate mode depending on whether color TextMarkers are indeed available, resetting states
that may have been altered by colorEditingControllerDidStartEditing().
* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.contentDidChange):
New public method meant to be overriden by subclasses, added for the use of SourceCodeTextEditor, exposing
the list of TextRanges affected by the content change, both in the context of the old content and new content.
(WebInspector.TextEditor.prototype.boundsForRange):
(WebInspector.TextEditor.prototype.get markers):
(WebInspector.TextEditor.prototype.findMarkersAtPosition):
(WebInspector.TextEditor.prototype.createColorMarkers):
(WebInspector.TextEditor.prototype.colorEditingControllerForMarker):
New public methods calling into the CodeMirror private ivar for the benefit of SourceCodeTextEditor.
(WebInspector.TextEditor.prototype._contentChanged):
Call the new contentDidChange() method.
2013-12-05 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove 'cookiesString' output from Page.getCookies
https://bugs.webkit.org/show_bug.cgi?id=125268
Reviewed by Timothy Hatcher.
Remove 'cookiesString' output from Page.getCookies protocol.
It is no longer meaningful because it is an unused parameter.
* UserInterface/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype.update):
* UserInterface/InspectorBackendCommands.js:
2013-12-05 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: expose node and frame snapshot capabilities.
https://bugs.webkit.org/show_bug.cgi?id=124326
Reviewed by Joseph Pecoraro.
Add method signatures for snapshotNode() and snapshotRect().
Remove method signature for unimplemented Page.captureScreenshot.
* UserInterface/InspectorBackendCommands.js:
2013-12-05 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: [CSS Regions] Show a list of containing regions when clicking a node that is part of a flow
https://bugs.webkit.org/show_bug.cgi?id=124614
Reviewed by Timothy Hatcher.
Added a new function in DOMTreeManager called getNodeContentFlowInfo that can be used
to retrieve an object with the following structure:
{
"regionFlow": <Reference to the ContentFlow object referenced by the -webkit-flow-from property of the node>,
"contentFlow": <Reference to the ContentFlow object referenced by the -webkit-flow-into property of
the node or a parent of the node>,
"regions": [ list of DOMNodes representing the regions containers of the node. The node is split across all these regions. ]
}
Also, used this method to display a two new sections in the Computed Styles panel.
1. Section "Flows": can have up to two Simple Rows: "Region Flow" and "Content Flow".
2. Section "Container Regions" contains a DOMTreeDataGrid with the list of regions.
The sections are only visible when there's content to display.
Next to the "Region Flow" simple row I've added an arrow that will take the user to the "ContentFlowDOMTreeContentView" of the
ContentFlow. The same happens for the "Content Flow", but in this case the element will also be highlighted.
Part of the patch I've added the DOMTreeDataGridNode. LayerTreeDataGrid has a lot of CSS in common with it, so I
will make another patch to refactor LayerTreeDataGrid to use DOMTreeDataGridNode as a base class.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/ComputedStyleDetailsPanel.css: Added.
(.details-section > .content > .group > .row.simple.content-flow-link > .label):
(.details-section > .content > .group > .row.simple.content-flow-link > .value):
(.details-section > .content > .group > .row.simple.content-flow-link > .value > div):
(.details-section > .content > .group > .row.simple.content-flow-link > .value > div > .icon):
(.details-section > .content > .group > .row.simple.content-flow-link > .value > div > span):
(.details-section > .content > .group > .row.simple.content-flow-link > .value > div > .go-to-arrow):
(.details-section > .content > .group > .row.simple.content-flow-link:hover > .value > div > .go-to-arrow):
* UserInterface/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel):
(WebInspector.ComputedStyleDetailsPanel.prototype.get regionFlow):
(WebInspector.ComputedStyleDetailsPanel.prototype.set regionFlow):
(WebInspector.ComputedStyleDetailsPanel.prototype.get contentFlow):
(WebInspector.ComputedStyleDetailsPanel.prototype.set contentFlow):
(WebInspector.ComputedStyleDetailsPanel.prototype.get containerRegions):
(WebInspector.ComputedStyleDetailsPanel.prototype.set containerRegions):
(WebInspector.ComputedStyleDetailsPanel.prototype.refresh):
(WebInspector.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
(WebInspector.ComputedStyleDetailsPanel.prototype._resetFlowDetails):
(WebInspector.ComputedStyleDetailsPanel.prototype._refreshFlowDetails.contentFlowInfoReady):
(WebInspector.ComputedStyleDetailsPanel.prototype._refreshFlowDetails):
(WebInspector.ComputedStyleDetailsPanel.prototype._goToRegionFlowArrowWasClicked):
(WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
* UserInterface/DOMTreeDataGrid.css: Added.
(.dom-tree-data-grid .data-grid):
(.dom-tree-data-grid .data-grid table.data):
(.dom-tree-data-grid .data-container):
(.dom-tree-data-grid .data-container tr):
(.dom-tree-data-grid .data-container td > div):
(.dom-tree-data-grid .data-container .name-column):
(.dom-tree-data-grid .data-container .name-column .icon):
(.dom-tree-data-grid .data-container .name-column .label):
(.dom-tree-data-grid .data-container tr:hover .name-column .label):
(.dom-tree-data-grid .data-container .go-to-arrow):
(.dom-tree-data-grid .data-container tr:hover .go-to-arrow):
(.dom-tree-data-grid .data-container tbody > tr:nth-child(2n)):
(.dom-tree-data-grid .data-container tbody > tr:nth-child(2n+1)):
* UserInterface/DOMTreeDataGrid.js: Added.
(WebInspector.DOMTreeDataGrid):
(WebInspector.DOMTreeDataGrid.prototype._onmousemove):
(WebInspector.DOMTreeDataGrid.prototype._onmouseout):
* UserInterface/DOMTreeDataGridNode.js: Added.
(WebInspector.DOMTreeDataGridNode):
(WebInspector.DOMTreeDataGridNode.prototype.get domNode):
(WebInspector.DOMTreeDataGridNode.prototype.createCellContent):
(WebInspector.DOMTreeDataGridNode.prototype._updateNodeName):
(WebInspector.DOMTreeDataGridNode.prototype._makeNameCell):
(WebInspector.DOMTreeDataGridNode.prototype._updateNameCellData):
(WebInspector.DOMTreeDataGridNode.prototype._goToArrowWasClicked):
* UserInterface/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.unregisteredNamedFlowContentElement):
(WebInspector.DOMTreeManager.prototype.nodeRequested):
(WebInspector.DOMTreeManager.prototype._coerceRemoteArrayOfDOMNodes):
(WebInspector.DOMTreeManager.prototype.domNodeResolved):
(WebInspector.DOMTreeManager.prototype.regionNodesAvailable):
(WebInspector.DOMTreeManager.prototype.get if):
(WebInspector.DOMTreeManager.prototype.get var):
(WebInspector.DOMTreeManager.prototype.backendFunction.getComputedProperty):
(WebInspector.DOMTreeManager.prototype.backendFunction.getContentFlowName):
(WebInspector.DOMTreeManager.prototype.):
* UserInterface/DataGrid.css:
(.data-grid.no-header > table.header):
(.data-grid.no-header .data-container):
* UserInterface/DetailsSection.js:
(WebInspector.DetailsSection):
* UserInterface/InspectorBackend.js:
(InspectorBackendClass.prototype._wrap):
* UserInterface/Main.html:
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.showContentFlowDOMTree):
* UserInterface/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
(WebInspector.RuntimeManager.prototype.getPropertiesForRemoteObject):
2013-12-04 Antoine Quint <graouts@apple.com>
Web Inspector: ColorWheel uses old Color constructor
https://bugs.webkit.org/show_bug.cgi?id=125260
Reviewed by Joseph Pecoraro.
Update to new WebInspector.Color constructor signature and use a clear color.
* UserInterface/ColorWheel.js:
(WebInspector.ColorWheel.prototype.get tintedColor):
(WebInspector.ColorWheel.prototype.get rawColor):
2013-12-04 Antoine Quint <graouts@apple.com>
Web Inspector: color picker doesn't work with "blue"
https://bugs.webkit.org/show_bug.cgi?id=125262
Reviewed by Joseph Pecoraro.
Under certain circumstances rounding issues would have us compare
two equal numbers that differ by 0.00000001 and sometime trip this
if statement and yield a null color. We now add a little fudge to
the test and also return a clear color rather than null to match what
we do in the getters for "tintedColor" and "rawColor".
* UserInterface/ColorWheel.js:
(WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
2013-12-04 Antoine Quint <graouts@apple.com>
Web Inspector: use only two decimals for opacity in rgba/hsla colors
https://bugs.webkit.org/show_bug.cgi?id=125261
Reviewed by Joseph Pecoraro.
* UserInterface/ColorPicker.js:
(WebInspector.ColorPicker.prototype._updateColor):
2013-12-04 Antoine Quint <graouts@apple.com>
Web Inspector: "data detectors" menu on hover for actionable tokens
https://bugs.webkit.org/show_bug.cgi?id=124363
Reviewed by Timothy Hatcher.
Add a new WebInspector.HoverMenu class to display an overlay menu that is presented
with respect to a target frame that it draws itself around adding a customizable
action button to its right. The menu uses fade animations as it's presented and
dismissed and a single delegation method is fired when the button is pressed. Finally,
just like a popover, it automatically dismisses itself upon scrolling anywhere
outside of its bounds.
* UserInterface/HoverMenu.css: Added.
* UserInterface/HoverMenu.js: Added.
(WebInspector.HoverMenu):
(WebInspector.HoverMenu.prototype.get element):
(WebInspector.HoverMenu.prototype.dismiss):
(WebInspector.HoverMenu.prototype.handleEvent):
(WebInspector.HoverMenu.prototype._handleClickEvent):
* UserInterface/Images/HoverMenuButton.png: Added.
* UserInterface/Images/HoverMenuButton@2x.png: Added.
* UserInterface/Main.html:
2013-12-04 Antoine Quint <graouts@apple.com>
Web Inspector: edited color should serialize back to original format when possible
https://bugs.webkit.org/show_bug.cgi?id=125244
Reviewed by Joseph Pecoraro.
Profoundly reworked WebInspector.Color to be more efficient and more flexible when
serializing the color to the various supported formats.
* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
Use new WebInspector.Color.fromString() factory and check for a null return value
rather than an exception to identify invalid color tokens.
* UserInterface/Color.js:
(WebInspector.Color):
Rewrote WebInspector.Color such that it would have, at all times, a canonical
representation in terms of either RGBA or HSLA depending on the format used to
create the color. The new constructor parameters lets the user pass a format
and the RGBA or HSLA components, allowing to bypass the string-only creation
system which was sub-optimal for the new color picker. Additionally, the toString()
method now can provide the most accurate serialization of the color based on the
provided format with a fallback mechanism to RGB/RGBA in cases where the desired
format would incur a loss of fidelity. Finally, simplified the API to only feature
essential features.
(WebInspector.Color.fromString):
New factory method used to create a color from a string.
* UserInterface/ColorPicker.js:
(WebInspector.ColorPicker.prototype.set color):
Keep track of the original color format so that we can use it as the preferred format
when serializing the updated color in _updateColor().
(WebInspector.ColorPicker.prototype._updateColor):
Use the original color format as the prefered formation for color serialization. Also,
use the new WebInspector.Color constructor in lieu of the removed .fromRGBA factory.
(WebInspector.ColorPicker.prototype._updateSliders):
Use the new WebInspector.Color constructor in lieu of the removed .fromRGBA factory.
* UserInterface/ColorWheel.js:
(WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
Use the new WebInspector.Color constructor in lieu of the removed .fromRGB factory.
2013-12-03 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove '_attachedWindowHeight' property in InspectorFrontendHostStub.js
https://bugs.webkit.org/show_bug.cgi?id=125204
Reviewed by Timothy Hatcher.
'_attachedWindowHeight' property is not used anywhere, so remove it.
* UserInterface/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub):
2013-12-03 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: restore navigation panel state across reloads and reopens
https://bugs.webkit.org/show_bug.cgi?id=122125
Reviewed by Timothy Hatcher.
The previous strategy for restoring content views after inspector
re-open did not consider the active sidebar and its selection, and
tried to recreate the appropriate selection from the saved content
view. However, doesn't work for tree elements in the sidebar panel
that don't change views when selected, such as script breakpoints,
special breakpoints, call stack, timeline sections, etc.
This patch implements a new strategy that saves the navigation
sidebar panel's view state by serializing the identity of the
selected element's represented object. Relevant represented
object classes implement the saveIdentityToCookie() method. Each
represented object class also adds a TypeIdentifier property to
its constructor, to aid inexact matching based on represented
object type, rather than its complete identity.
When restoring, the navigation sidebar attempts to match added
tree elements against the pending cookie, and selects the element
if it matches. A represented object matches if its serialized
identity matches the previously saved serialized identity.
The inspector view state is now only saved on the page hide event
(for saving across reopen) and when the main frame commits its
provisional load (for saving across same-page reloads). It
consolidates similar view state settings into a single setting.
* UserInterface/ApplicationCacheFrame.js:
(WebInspector.ApplicationCacheFrame): Add cookie keys and type identifier.
(WebInspector.ApplicationCacheFrame.prototype.saveIdentityToCookie): Added.
* UserInterface/ApplicationCacheManager.js: remove objectForCookie().
* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint): Add cookie keys and type identifier.
(WebInspector.Breakpoint.prototype.saveIdentityToCookie):
* UserInterface/CookieStorageObject.js:
(WebInspector.CookieStorageObject.prototype.saveIdentityToCookie): Added.
* UserInterface/DOMStorageObject.js:
(WebInspector.DOMStorageObject): Add cookie keys and type identifier.
(WebInspector.DOMStorageObject.prototype.saveIdentityToCookie): Added.
* UserInterface/DatabaseObject.js:
(WebInspector.DatabaseObject): Add cookie keys and type identifier.
(WebInspector.DatabaseObject.prototype.saveIdentityToCookie): Added.
* UserInterface/DatabaseTableObject.js:
(WebInspector.DatabaseTableObject): Add cookie keys and type identifier.
(WebInspector.DatabaseTableObject.prototype.saveIdentityToCookie): Added.
* UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie): Added.
(WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie): Added.
* UserInterface/Frame.js:
(WebInspector.Frame): Add cookie keys and type identifier.
(WebInspector.Frame.prototype.saveIdentityToCookie): Added.
* UserInterface/FrameResourceManager.js: remove objectForCookie().
* UserInterface/InstrumentSidebarPanel.js:
(WebInspector.InstrumentSidebarPanel.prototype.showTimelineForRecordType):
Return the shown timeline, if any.
(WebInspector.InstrumentSidebarPanel.prototype.saveStateToCookie): Added.
(WebInspector.InstrumentSidebarPanel.prototype.restoreStateFromCookie): Added.
(WebInspector.InstrumentSidebarPanel.prototype.showProfile):
Return the shown profile, if any.
* UserInterface/Main.js:
(WebInspector): Added cookie keys for the selected sidebar and
typeidentifier of the sidebar's selected tree element.
(WebInspector.contentLoaded): Remove callbacks for
resolveAndShowPendingContentViewCookie(). Consolidate all saved
inspector view state into one Setting. Move special-cased
restoring of the console to the restoration method. Move saving
of last opened navigation panel to the saving method.
(WebInspector._mainResourceDidChange): Try to restore saved view
state when the main resource changes.
(WebInspector._provisionalLoadCommitted): Update the saved view
state when the navigation commits. This is the last chance to save
it before the main resource changes and the navigation panel view
state is discarded and rebuilt.
(WebInspector._pageHidden): Update the saved view state when the
inspector page is hidden, but before state is discarded.
(WebInspector._navigationSidebarPanelSelected): Don't save last
navigation sidebar panel.
(WebInspector._updateCookieForInspectorViewState): Renamed from
_updateCurrentContentViewCookie. It delegates view state
serialization to the currently open navigation sidebar, rather
than the current content view.
(WebInspector._contentBrowserRepresentedObjectsDidChange): Don't
spuriously serialize the current view state cookie on every
ContentView change.
(WebInspector._restoreInspectorViewStateFromCookie): Renamed from
_showContentViewForCookie. It now restores a specific navigation
panel and delegates remaining view state restoration to the panel
itself. Last-resort selection of any tree element with the same
type identifier was moved to the navigation panel's restore method.
* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
Save references to all created TreeOutlines in a Set, so we can
restore any tree's selection.
(WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
Added. Find the selected tree element from all tree outlines and
ask it to serialize its identity.
(WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie):
Added. Eagerly search existing tree elements for a matching
representedObject. If none exists, save the pending cookie and
schedule last-resort matching using the provided timeout interval.
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Check if the added tree element matches a pending view state
cookie, if one exists.
(WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
Added. Check if the tree element's representedObject matches the
pending view state cookie.
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
Added. For each provided tree element, check if the tree
element's represented object produces the same serialized identity
as the pending view state cookie that we are trying to resolve.
If a match is found (possibly by relaxing to matching anything
with the same type), select the tree element and clear both the
pending view state cookie and last-resort selection timer.
* UserInterface/Resource.js:
(WebInspector.Resource): Add cookie keys and type identifier.
(WebInspector.Resource.prototype.saveIdentityToCookie): Added.
* UserInterface/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.prototype.saveToCookie):
(WebInspector.ResourceClusterContentView.prototype.restoreFromCookie):
Since identity state is serialized by the representedObject, these
methods only need to save view-specific state, such as the visible
subview. Remove extraneous state.
* UserInterface/Script.js:
(WebInspector.Script): Add cookie keys and type identifier.
(WebInspector.Script.prototype.saveIdentityToCookie): Added.
* UserInterface/StorageManager.js: remove objectForCookie().
* UserInterface/TimelineManager.js: remove objectForCookie().
* UserInterface/TimelinesContentView.js:
(WebInspector.TimelinesContentView.prototype.saveToCookie):
(WebInspector.TimelinesContentView.prototype.restoreFromCookie):
Since identity state is serialized by the representedObject, these
methods only need to save view-specific state, such as the visible
subview. Remove extraneous state.
* UserInterface/TreeOutline.js: Add TreeOutline.prototype.constructor
so other code can assume the constructor property exists.
2013-12-02 Antoine Quint <graouts@apple.com>
Web Inspector: popover can overlap target frame
https://bugs.webkit.org/show_bug.cgi?id=125069
Reviewed by Joseph Pecoraro.
Fix a regression introduced in http://trac.webkit.org/changeset/159286. We should only
offset the frame of the popover in the y-axis if the target edge is on the x-axis, and
vice versa. We also remove the needsToDrawBackground check since it incorrectly disregarded
the anchor point. We now always draw the background which is a lot safer and guarantees
we'll always draw an adequate frame and anchor point.
* UserInterface/Popover.js:
(WebInspector.Popover.prototype._update):
(WebInspector.Popover.prototype._bestMetricsForEdge):
2013-12-02 Antoine Quint <graouts@apple.com>
Web Inspector: add a method to add padding around a WebInspector.Rect
https://bugs.webkit.org/show_bug.cgi?id=125072
Reviewed by Joseph Pecoraro.
Add a new WebInspector.Rect.prototype.pad() method which does not alter
the rectangle it's called and returns a new rect much like .inset(). I've
checked all call sites and there was no reuse of the rectangle that was
padded so this patch won't have any side effects.
* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint.prototype._showEditBreakpointPopover):
* UserInterface/CSSStyleDeclarationTextEditor.js:
* UserInterface/Geometry.js:
(WebInspector.Rect.prototype.pad):
* UserInterface/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel.prototype._updatePopoverForSelectedNode):
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopover):
* UserInterface/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
2013-11-26 Antoine Quint <graouts@apple.com>
Web Inspector: Allow showing a context menu on all mouse events.
https://bugs.webkit.org/show_bug.cgi?id=124747
Reviewed by Joseph Pecoraro.
Automatically dispatch a contextmenu event in case WebInspector.ContextMenu.prototype.show()
is called outside of a contextmenu event handler and would therefore not show the expected
context menu (except in the Remote Web Inspector where this already works).
* UserInterface/ContextMenu.js:
(WebInspector.ContextMenu.prototype.show):
Check whether the event is a contextmenu event, and if not, add an event listener for a manually
dispatched contextmenu event such that we may then call InspectorFrontendHost.showContextMenu()
in a contextmenu event handler.
(WebInspector.ContextMenu.prototype.handleEvent):
Call InspectorFrontendHost.showContextMenu() now that we received the manually dispatched
contextmenu event.
2013-11-25 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: [CSS Regions] A page with many flows should collapse the resources tree
https://bugs.webkit.org/show_bug.cgi?id=122926
Reviewed by Timothy Hatcher.
Refactored the code in FrameTreeElement._shouldGroupIntoFolders to make it easy to track
more types of resources. Added the content flows as another type of resource that would trigger the
collapsing.
* UserInterface/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.namedFlowRemoved): Added code to remove the content nodes from
a flow that has been removed.
* UserInterface/FrameTreeElement.js:
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushCategory):
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushResourceType):
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders):
2013-11-25 Dan Bernstein <mitz@apple.com>
Set the svn:ignore property on the Xcode project to ignore the workspace and user data.
* WebInspectorUI.xcodeproj: Added property svn:ignore.
2013-11-21 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/124702> Stop overriding VALID_ARCHS.
All modern versions of Xcode set it appropriately for our needs.
Reviewed by Alexey Proskuryakov.
* Configurations/Base.xcconfig:
2013-11-19 Antoine Quint <graouts@apple.com>
Web Inspector: layer info sidebar should convert to MB for very large layers
https://bugs.webkit.org/show_bug.cgi?id=124570
Reviewed by Timothy Hatcher.
Setting higherResolution to true (its default value if omitted) when calling
Number.bytesToString() would always result in a KB-formatted string instead
since it didn't check for a < 1024 value as well.
* UserInterface/Utilities.js:
(Number.bytesToString):
2013-11-19 Antoine Quint <graouts@apple.com>
Remove some unused utilities from Utilities.js
https://bugs.webkit.org/show_bug.cgi?id=124590
Reviewed by Darin Adler.
Remove some methods and properties that were no longer used through the codebase.
* UserInterface/Utilities.js:
2013-11-18 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: Update WebInspectorUI to use the new "nodeIds" parameter for DOM.performSearch
https://bugs.webkit.org/show_bug.cgi?id=124544
Reviewed by Joseph Pecoraro.
Added the new DOM.performSearch "nodeIds" parameter and made the two implementations
of DOMTreeContentView provide the right context node ids.
DOMTreeContentView is just using the id of the document node while ContentFlowDOMTreeContentView
is passing the list of content nodes.
Note that adding an extra optional parameter to DOM.performSearch does not break iOS 6 and 7 compatibility.
* UserInterface/ContentFlowDOMTreeContentView.js:
(WebInspector.ContentFlowDOMTreeContentView.prototype.getSearchContextNodes):
* UserInterface/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.performSearch.contextNodesReady):
(WebInspector.DOMTreeContentView.prototype.performSearch):
(WebInspector.DOMTreeContentView.prototype.getSearchContextNodes):
* UserInterface/FrameDOMTreeContentView.js:
(WebInspector.FrameDOMTreeContentView.prototype.getSearchContextNodes):
* UserInterface/InspectorBackendCommands.js:
2013-11-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update localizedStrings, remove stale string
https://bugs.webkit.org/show_bug.cgi?id=124543
Reviewed by Jessie Berlin.
Remove stale localized strings after r124543 remove the old color picker.
* Localizations/en.lproj/localizedStrings.js:
2013-11-15 Antoine Quint <graouts@apple.com>
Web Inspector: New color picker
https://bugs.webkit.org/show_bug.cgi?id=124354
Reviewed by Timothy Hatcher.
Beginning of a new color picker. The focus of this new picker is to let you pick from
a color wheel as the primary mean of color picking, with additional slider controls for
the brightness and the opacity, better matching the default OS X color picker. This is the
basis for a color picker that will evolve to support the following:
- editable CSS value label (http://webkit.org/b/124356)
- picking a color anywhere on screen (http://webkit.org/b/124357)
- swatches based on other colors in page (http://webkit.org/b/124358)
Note also that the color wheel has not been tested on Retina displays
(see http://webkit.org/b/124355).
* UserInterface/CSSColorPicker.css: Removed.
* UserInterface/CSSColorPicker.js: Removed.
Previous color picker, now removed in favor of the new ColorPicker class.
* UserInterface/CSSStyleDeclarationTextEditor.js:
Adopt new class name for the color picker, add a little padding to the popover
target frame and set the base color after the picker has been presented.
* UserInterface/Color.js:
(WebInspector.Color.prototype._hslToRGB):
Simplified math.
(WebInspector.Color.rgb2hsv):
(WebInspector.Color.hsv2rgb):
New utilities to deal with HSV colors used in the ColorWheel.
* UserInterface/ColorPicker.css: Added.
* UserInterface/ColorPicker.js: Added.
(WebInspector.ColorPicker):
(WebInspector.ColorPicker.prototype.get element):
(WebInspector.ColorPicker.prototype.set brightness):
(WebInspector.ColorPicker.prototype.set opacity):
(WebInspector.ColorPicker.prototype.get color):
(WebInspector.ColorPicker.prototype.set color):
We set the _dontUpdateColor flag here such that we don't attempt to
notify about a color change at this point in case the selected color
is too saturated to be represented accurately on the color wheel and
we would end up changing the color by virtue of presenting the popover.
(WebInspector.ColorPicker.prototype.colorWheelColorDidChange):
(WebInspector.ColorPicker.prototype.sliderValueDidChange):
(WebInspector.ColorPicker.prototype._updateColor):
(WebInspector.ColorPicker.prototype._updateSliders):
* UserInterface/ColorWheel.css: Added.
* UserInterface/ColorWheel.js: Added.
The ColorWheel makes use of three different <canvas> elements to draw itself.
The "raw" canvas is used to draw the raw, un-tinted color wheel with poor
aliasing. The "raw" canvas is only drawn when the dimension is changed.
The "tinted" canvas is used to draw the "raw" canvas with a black overlay
based on the brightness set on the wheel. The "final" canvas, the only <canvas>
element attached to the DOM, is used to draw the "tinted" canvas into a circle
clip of a slightly narrower radius so that the drawn image is visually more pleasing
and can be displayed above virtually any background color.
We use color math to generate the color wheel, courtesy of Dean Jackson, and also to
figure out where to position the crosshair for the provided base color as well as
the opposite operation where we get the color under the mouse pointer.
The color wheel fires a single delegate method call colorWheelColorDidChange(colorWheel),
the colors themselves being retrieved via the public properties tintedColor and rawColor.
(WebInspector.ColorWheel):
(WebInspector.ColorWheel.prototype.set dimension):
(WebInspector.ColorWheel.prototype.get element):
(WebInspector.ColorWheel.prototype.get brightness):
(WebInspector.ColorWheel.prototype.set brightness):
(WebInspector.ColorWheel.prototype.get tintedColor):
(WebInspector.ColorWheel.prototype.set tintedColor):
(WebInspector.ColorWheel.prototype.get rawColor):
(WebInspector.ColorWheel.prototype.handleEvent):
(WebInspector.ColorWheel.prototype._handleMousedown):
(WebInspector.ColorWheel.prototype._handleMousemove):
(WebInspector.ColorWheel.prototype._handleMouseup):
(WebInspector.ColorWheel.prototype._pointInCircleForEvent):
(WebInspector.ColorWheel.prototype._pointInCircleForEvent.angleFromCenterToPoint):
(WebInspector.ColorWheel.prototype._pointInCircleForEvent.pointOnCircumference):
(WebInspector.ColorWheel.prototype._updateColorForMouseEvent):
(WebInspector.ColorWheel.prototype._setCrosshairPosition):
(WebInspector.ColorWheel.prototype._tintedColorToPointAndBrightness):
(WebInspector.ColorWheel.prototype._drawRawCanvas):
(WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
(WebInspector.ColorWheel.prototype._drawTintedCanvas):
(WebInspector.ColorWheel.prototype._draw):
* UserInterface/Images/SliderThumb.png: Added.
* UserInterface/Images/SliderThumb@2x.png: Added.
* UserInterface/Images/SliderThumbPressed.png: Added.
* UserInterface/Images/SliderThumbPressed@2x.png: Added.
Supporting artwork for the new Slider class.
* UserInterface/Main.html:
Remove the previous color picker class and add the new one, as well as the new Slider class.
* UserInterface/Slider.css: Added.
* UserInterface/Slider.js: Added.
New slider to match the look of the sliders used in the native OS X color picker. The most
interesting feature of these sliders is that they can be transformed using CSS in any way
and will still operate correctly due to always converting the mouse coordinates in the page
coordinate system to the coordinate system local to the backing element. For instance, the
color picker uses two sliders transformed to be displayed vertically.
As it stands these slides only support values between 0 and 1 and fire a single delegate
method call sliderValueDidChange(slider, newValue).
(WebInspector.Slider):
(WebInspector.Slider.prototype.get element):
(WebInspector.Slider.prototype.get value):
(WebInspector.Slider.prototype.set value):
(WebInspector.Slider.prototype.handleEvent):
(WebInspector.Slider.prototype._handleMousedown):
(WebInspector.Slider.prototype._handleMousemove):
(WebInspector.Slider.prototype._handleMouseup):
(WebInspector.Slider.prototype._localPointForEvent):
(WebInspector.Slider.prototype.get _maxX):
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Update file names for the new color picker.
2013-11-14 Antoine Quint <graouts@apple.com>
Web Inspector: Popovers may shrink unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=124350
Reviewed by Timothy Hatcher.
Because we always get the intersection of the preferred frame and the container frame to
ensure the popover fits within its container based on a preferred frame that would place
the arrow within the center of the attachment edge, we get in situations where we may
shrink the popover instead of shifting it to fit within the container frame. We now first
shift the preferred frame before getting its intersection with the container frame to
avoid such situations.
* UserInterface/Popover.js:
(WebInspector.Popover.prototype._bestMetricsForEdge):
2013-11-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Split Inspector.json into individual domain json files
https://bugs.webkit.org/show_bug.cgi?id=124098
Reviewed by Timothy Hatcher.
Removed now stale comments referring to the combined Inspector.json.
Make update-InspectorBackendCommands helper script generate a
combined Inspector.json to still work for tip of tree.
* Scripts/update-InspectorBackendCommands.rb:
* UserInterface/ApplicationCacheObserver.js:
* UserInterface/CSSObserver.js:
* UserInterface/CanvasObserver.js:
* UserInterface/ConsoleObserver.js:
* UserInterface/DOMObserver.js:
* UserInterface/DOMStorageObserver.js:
* UserInterface/DatabaseObserver.js:
* UserInterface/DebuggerObserver.js:
* UserInterface/InspectorBackendCommands.js:
* UserInterface/InspectorObserver.js:
* UserInterface/LayerTreeObserver.js:
* UserInterface/NetworkObserver.js:
* UserInterface/PageObserver.js:
* UserInterface/ProfilerObserver.js:
* UserInterface/Resource.js:
* UserInterface/RuntimeObserver.js:
* UserInterface/TimelineObserver.js:
2013-11-12 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: ContentFlowTreeContentView should use only one DOMTreeOutline
https://bugs.webkit.org/show_bug.cgi?id=124230
Reviewed by Timothy Hatcher.
Changed ContentFlowTreeContentView to use one DOMTreeOutline by just
populating it with root DOMTreeElements directly. That is very
similar to how DOMTreeOutline works when omitRootDOMNode is used.
Now that ContentFlowTreeContentView has only one DOMTreeOutline,
it makes sense to change its base class to be DOMTreeContentView instead.
Also, with that I've changed its name to ContentFlowDOMTreeContentView.
I had to move all the DOMTree document loading code from DOMTreeContentView to a
new class called FrameDOMTreeContentView. This is used to display the DOM of the
frame objects. FrameDOMTreeContentView is also inheriting from DOMTreeContentView.
Issues that are fixed as a side effect:
- Selection path components are now displaying all the sibling elements for contentFlow.contentNodes
(those are the nodes that have "-webkit-flow-into" set directly).
- Keyboard navigation works for the contentFlow.contentNodes.
- Search is implemented in DOMTreeContentView, so that code now works for flows too.
The DOMAgents's search API will use all the Documents to lookup for nodes, so it might
find DOM nodes that are not part of the flow. This is in line with the behavior for the
frames.
* UserInterface/ContentFlowDOMTreeContentView.js: Renamed from ContentFlowTreeContentView
to better reflect the inheritance from DOMTreeContentView.
(WebInspector.ContentFlowDOMTreeContentView):
(WebInspector.ContentFlowDOMTreeContentView.prototype.closed):
(WebInspector.ContentFlowDOMTreeContentView.prototype._createContentTrees):
(WebInspector.ContentFlowDOMTreeContentView.prototype._contentNodeWasAdded):
(WebInspector.ContentFlowDOMTreeContentView.prototype._contentNodeWasRemoved):
* UserInterface/ContentView.js:
(WebInspector.ContentView):
* UserInterface/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype.closed):
(WebInspector.DOMTreeContentView.prototype.):
(WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
(WebInspector.DOMTreeContentView.prototype._selectedNodeDidChange):
* UserInterface/FrameDOMTreeContentView.js: Added.
(WebInspector.FrameDOMTreeContentView):
(WebInspector.FrameDOMTreeContentView.prototype.get domTree):
(WebInspector.FrameDOMTreeContentView.prototype.closed):
(WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
(WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeInvalidated):
(WebInspector.FrameDOMTreeContentView.prototype._requestRootDOMNode):
* UserInterface/Main.html:
2013-11-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: remove -webkit-min and -webkit-max from CSS completions
https://bugs.webkit.org/show_bug.cgi?id=124072
Reviewed by Timothy Hatcher.
-webkit-min and -webkit-max are not implemented in WebCore, despite mentions of it.
* UserInterface/CSSKeywordCompletions.js:
2013-11-07 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: CSS Regions: Use a Map object to store the ContentFlows
https://bugs.webkit.org/show_bug.cgi?id=124015
Reviewed by Joseph Pecoraro.
Changed the Object hashmap to a Map based hashmap when storing the flows in DOMTreeManager.
* UserInterface/DOMTreeManager.js:
(WebInspector.DOMTreeManager):
(WebInspector.DOMTreeManager.prototype.getNamedFlowCollection):
(WebInspector.DOMTreeManager.prototype.namedFlowRemoved):
(WebInspector.DOMTreeManager.prototype._sendNamedFlowUpdateEvents):
2013-11-07 Timothy Hatcher <timothy@apple.com>
Fix up some sidebar switching details to make selections persist better.
Translate represented objects between sidebars so the same item can be reselected
as you switch between frames and main reources. Also fix some null checks that are
needed on selectedSidebarPanel.
https://bugs.webkit.org/show_bug.cgi?id=124001
Reviewed by Joseph Pecoraro.
* UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.treeElementForRepresentedObject): Added. Translate a Frame
representedObject into a main resource representedObject.
* UserInterface/Main.js:
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): Null check selectedSidebarPanel.
(WebInspector._updateNavigationSidebarForCurrentContentView): Fix a logic error to match other code.
allowedNavigationSidebarPanels.length needs to have a length before using contains.
(WebInspector._contentBrowserCurrentContentViewDidChange): Null check selectedSidebarPanel.
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject): Translate a main resource
representedObject into a Frame representedObject.
2013-11-07 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: CSS Regions: Removing a content node of a ContentFlow from the DOM will send a 0 nodeId
https://bugs.webkit.org/show_bug.cgi?id=123577
Reviewed by Timothy Hatcher.
Fixed the content node removal from the content flow.
* UserInterface/ContentFlowTreeContentView.js:
* UserInterface/DOMTreeManager.js:
(WebInspector.DOMTreeManager):
(WebInspector.DOMTreeManager.prototype._createContentFlowFromPayload): Registered all the content nodes
in the _contentNodesToFlowsMap.
(WebInspector.DOMTreeManager.prototype._unbind): Added call to _removeContentNodeFromFlowIfNeeded.
(WebInspector.DOMTreeManager.prototype._removeContentNodeFromFlowIfNeeded): Called from _unbind to check
and remove a node from it's parent content flow if needed.
(WebInspector.DOMTreeManager.prototype.unregisteredNamedFlowContentElement):
2013-11-06 Timothy Hatcher <timothy@apple.com>
Properly null check positionToReveal in ResourceSidebarPanel.prototype.showSourceCode.
https://bugs.webkit.org/show_bug.cgi?id=123921
Reviewed by Joseph Pecoraro.
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.showSourceCode):
2013-11-06 Timothy Hatcher <timothy@apple.com>
Fix the display of query parameters when the value is missing.
https://bugs.webkit.org/show_bug.cgi?id=123920
Reviewed by Joseph Pecoraro.
* UserInterface/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid):
2013-11-06 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: CSS Regions: When a flow is clicked the content of flow needs to be displayed
https://bugs.webkit.org/show_bug.cgi?id=122927
Reviewed by Joseph Pecoraro.
ContentFlowTreeContentView is now used to display the content nodes of a ContentFlow. It is
very similar to the DOMTreeContentView class, but can handle multiple root nodes.
* UserInterface/ContentFlowTreeContentView.js: Added.
(WebInspector.ContentFlowTreeContentView):
(WebInspector.ContentFlowTreeContentView.prototype.get selectionPathComponents):
(WebInspector.ContentFlowTreeContentView.prototype.updateLayout):
(WebInspector.ContentFlowTreeContentView.prototype.shown):
(WebInspector.ContentFlowTreeContentView.prototype.hidden):
(WebInspector.ContentFlowTreeContentView.prototype.closed):
(WebInspector.ContentFlowTreeContentView.prototype._selectedNodeDidChange):
(WebInspector.ContentFlowTreeContentView.prototype._pathComponentSelected):
(WebInspector.ContentFlowTreeContentView.prototype._createContentNodeTree):
(WebInspector.ContentFlowTreeContentView.prototype._createContentTrees):
(WebInspector.ContentFlowTreeContentView.prototype._contentNodeWasAdded):
(WebInspector.ContentFlowTreeContentView.prototype._contentNodeWasRemoved):
* UserInterface/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
* UserInterface/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.ondeselect): We need to remove the selected "dom node"
so that the element is not going to stay selected after the we move to a different DOM tree.
* UserInterface/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.selectDOMNode):
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.sidebarPanelForRepresentedObject):
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
2013-11-01 Antoine Quint <graouts@apple.com>
Remove custom Function.prototype.bind() in favor of native version
https://bugs.webkit.org/show_bug.cgi?id=123608
Reviewed by Joseph Pecoraro.
* UserInterface/Utilities.js:
2013-11-01 Antoine Quint <graouts@apple.com>
Error trying to serialize a color created without an alpha component to RGBA or HSLA
https://bugs.webkit.org/show_bug.cgi?id=123623
Reviewed by Joseph Pecoraro.
Check whether we have .rgba and .hsla ivars before trying to retrieve them to serialize
the color to RGBA or HSLA format.
* UserInterface/Color.js:
(WebInspector.Color.prototype.toString):
2013-11-01 Antoine Quint <graouts@apple.com>
Remove custom Element.prototype.remove() in favor of native version
https://bugs.webkit.org/show_bug.cgi?id=123607
Reviewed by Timothy Hatcher.
* UserInterface/Utilities.js:
2013-10-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Breakpoints in auto-formatted JavaScript editors are not working
https://bugs.webkit.org/show_bug.cgi?id=123589
Reviewed by Timothy Hatcher.
The internal this._ignoreCodeMirrorContentDidChangeEvent flag was being used
in two places that could be nested, meaning the flag was deleted while it
was still expected to be set. Change it instead to a counter, to handle nesting.
* UserInterface/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.set string):
(WebInspector.TextEditor.prototype.set formatted):
(WebInspector.TextEditor.prototype._contentChanged):
2013-10-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove stale optional native memory instrumentation protocol params
https://bugs.webkit.org/show_bug.cgi?id=123552
Reviewed by Timothy Hatcher.
* UserInterface/InspectorBackendCommands.js:
2013-10-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix PrettyPrinting Tool Load from Saved URL
Reviewed by Timothy Hatcher.
* Tools/PrettyPrinting/index.html:
2013-10-28 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: CSS Regions: Add protocol API to expose content nodes addition/removal
https://bugs.webkit.org/show_bug.cgi?id=123424
Reviewed by Timothy Hatcher.
Exposed the new CSS Agent events to the ContentFlow class that will now maintain
a list of nodes in the "contentNodes" property.
* UserInterface/CSSObserver.js:
(WebInspector.CSSObserver.prototype.regionOversetChanged):
(WebInspector.CSSObserver.prototype.registeredNamedFlowContentElement):
(WebInspector.CSSObserver.prototype.unregisteredNamedFlowContentElement):
* UserInterface/ContentFlow.js:
(WebInspector.ContentFlow):
(WebInspector.ContentFlow.prototype.set overset):
(WebInspector.ContentFlow.prototype.get contentNodes):
(WebInspector.ContentFlow.prototype.insertContentNodeBefore):
(WebInspector.ContentFlow.prototype.appendContentNode):
(WebInspector.ContentFlow.prototype.removeContentNode):
* UserInterface/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._createContentFlowFromPayload):
(WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
(WebInspector.DOMTreeManager.prototype.regionOversetChanged):
(WebInspector.DOMTreeManager.prototype.registeredNamedFlowContentElement):
(WebInspector.DOMTreeManager.prototype.unregisteredNamedFlowContentElement):
* UserInterface/InspectorBackendCommands.js:
2013-10-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: PrettyPrinting tool should have save button
https://bugs.webkit.org/show_bug.cgi?id=123371
Reviewed by Timothy Hatcher.
Add buttons to save as a URL to share or to save/clear to
localStorage for easier reloads testing local changes.
* Tools/PrettyPrinting/index.html:
2013-10-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Command+Click on url(…) should go to image not source line
https://bugs.webkit.org/show_bug.cgi?id=123362
Reviewed by Timothy Hatcher.
CodeMirror changed "url" from being type "variable-2" to "string-2".
* UserInterface/CodeMirrorAdditions.js:
2013-10-25 Jessie Berlin <jberlin@apple.com>
Ran update-localizable-strings after changes made in r157947.
Rubber-stamped by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
2013-10-24 Mark Rowe <mrowe@apple.com>
Remove references to OS X 10.7 from Xcode configuration settings.
Now that we're not building for OS X 10.7 they're no longer needed.
Reviewed by Anders Carlsson.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:
2013-10-24 Mark Rowe <mrowe@apple.com>
<rdar://problem/15312643> Prepare for the mysterious future.
Reviewed by David Kilzer.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:
2013-10-24 Timothy Hatcher <timothy@apple.com>
Allow editing CSS resources after they have been pretty printed.
https://bugs.webkit.org/show_bug.cgi?id=123297
Reviewed by Joseph Pecoraro.
* UserInterface/TextEditor.js:
(WebInspector.TextEditor): Remove the need for _readOnly.
(WebInspector.TextEditor.prototype.set readOnly): Set CodeMirror readOnly directly.
(WebInspector.TextEditor.prototype.set formatted): Don't call _updateCodeMirrorReadOnly.
(WebInspector.TextEditor.prototype._updateCodeMirrorReadOnly): Removed.
(WebInspector.TextEditor.prototype._contentChanged): Clear _formatted and _formatterSourceMap
on edit and notify the delegate and fire the FormattingDidChange event.
2013-10-24 Timothy Hatcher <timothy@apple.com>
Adjust the precision of byte strings in Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=123281
Reviewed by Joseph Pecoraro.
* UserInterface/Utilities.js:
(Number.bytesToString): More precision for MB and less precision for 10..1023 KB.
2013-10-24 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: Add a way to test the Manager and model classes
https://bugs.webkit.org/show_bug.cgi?id=123223
Reviewed by Timothy Hatcher.
Moved some global functions out of Main.js, so that they can be used in the
layout tests without including Main.js.
* UserInterface/Main.html: Referenced the new JS files.
* UserInterface/Main.js:
* UserInterface/MessageDispatcher.js: Added.
(WebInspector.dispatchNextQueuedMessageFromBackend):
(WebInspector.dispatchMessageFromBackend):
* UserInterface/URLUtilities.js: Added.
(removeURLFragment):
(relativePath):
(parseURL):
(absoluteURL):
(parseLocationQueryParameters):
(parseQueryString):
(WebInspector.displayNameForURL):
(WebInspector.displayNameForHost):
* UserInterface/Utilities.js:
2013-10-21 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: [CSS Regions] Flows are not loading if you refresh the page several times
https://bugs.webkit.org/show_bug.cgi?id=123123
Reviewed by Joseph Pecoraro.
There was a typo in the code where an exception was thrown because "flowKey" was undefined.
* UserInterface/DOMTree.js:
(WebInspector.DOMTree.prototype._contentFlowListWasUpdated):
2013-10-21 Oliver Hunt <oliver@apple.com>
Restore accidentally removed files.
* UserInterface/GoToLineDialog.css: Added.
(.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):
(.go-to-line-dialog.non-empty > div > img):
* UserInterface/GoToLineDialog.js: Added.
(WebInspector.GoToLineDialog):
(WebInspector.GoToLineDialog.prototype.present):
(WebInspector.GoToLineDialog.prototype.dismiss):
(WebInspector.GoToLineDialog.prototype.handleEvent):
(WebInspector.GoToLineDialog.prototype._handleInputEvent):
(WebInspector.GoToLineDialog.prototype._handleKeydownEvent):
(WebInspector.GoToLineDialog.prototype._handleBlurEvent):
(WebInspector.GoToLineDialog.prototype._handleMousedownEvent):
(WebInspector.GoToLineDialog.prototype._handleClickEvent):
(WebInspector.GoToLineDialog.prototype._clear):
* UserInterface/Images/CloseWhite.svg: Added.
2013-10-18 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: CSS Regions: Add the list of flows in the FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=122924
Reviewed by Timothy Hatcher.
Added code to collect the flows from the backend into the DOMTree object
on the frontend. Added ContentFlow to represent the flows on the frontend
side and created ContentFlowTreeElement to display the flows in the FrameTreeElement.
* Localizations/en.lproj/localizedStrings.js:
* Scripts/copy-user-interface-resources.sh:
* UserInterface/CSSObserver.js:
(WebInspector.CSSObserver.prototype.namedFlowCreated):
(WebInspector.CSSObserver.prototype.namedFlowRemoved):
(WebInspector.CSSObserver.prototype.regionLayoutUpdated):
(WebInspector.CSSObserver.prototype.regionOversetChanged):
* UserInterface/ContentFlow.js: Added.
(WebInspector.ContentFlow):
(WebInspector.ContentFlow.prototype.get id):
(WebInspector.ContentFlow.prototype.get documentNodeIdentifier):
(WebInspector.ContentFlow.prototype.get name):
(WebInspector.ContentFlow.prototype.get overset):
(WebInspector.ContentFlow.prototype.set overset):
* UserInterface/ContentFlowIcon.css: Added.
(.content-flow-icon .icon):
* UserInterface/ContentFlowTreeElement.js: Added.
(WebInspector.ContentFlowTreeElement):
* UserInterface/DOMTree.js:
(WebInspector.DOMTree):
(WebInspector.DOMTree.prototype.get flowMap):
(WebInspector.DOMTree.prototype.get flowsCount):
(WebInspector.DOMTree.prototype._framePageExecutionContextChanged):
(WebInspector.DOMTree.prototype.requestContentFlowList):
(WebInspector.DOMTree.prototype._isContentFlowInCurrentDocument):
(WebInspector.DOMTree.prototype._contentFlowListWasUpdated):
(WebInspector.DOMTree.prototype._contentFlowWasAdded):
(WebInspector.DOMTree.prototype._contentFlowWasRemoved):
* UserInterface/DOMTreeManager.js:
(WebInspector.DOMTreeManager):
(WebInspector.DOMTreeManager._flowPayloadHashKey):
(WebInspector.DOMTreeManager.prototype._buildHighlightConfig):
(WebInspector.DOMTreeManager.prototype._createContentFlowFromPayload):
(WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
(WebInspector.DOMTreeManager.prototype.getNamedFlowCollection):
(WebInspector.DOMTreeManager.prototype.namedFlowCreated):
(WebInspector.DOMTreeManager.prototype.namedFlowRemoved):
(WebInspector.DOMTreeManager.prototype._sendNamedFlowUpdateEvents):
(WebInspector.DOMTreeManager.prototype.regionLayoutUpdated):
(WebInspector.DOMTreeManager.prototype.regionOversetChanged):
* UserInterface/FrameTreeElement.js:
(WebInspector.FrameTreeElement):
(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype.onexpand):
(WebInspector.FrameTreeElement.prototype._childContentFlowWasAdded):
(WebInspector.FrameTreeElement.prototype._childContentFlowWasRemoved):
(WebInspector.FrameTreeElement.prototype._rootDOMNodeInvalidated):
(WebInspector.FrameTreeElement.prototype._addChildForRepresentedObject):
(WebInspector.FrameTreeElement.prototype._removeChildForRepresentedObject):
(WebInspector.FrameTreeElement.prototype._addTreeElementForRepresentedObject):
(WebInspector.FrameTreeElement.prototype._compareResourceTreeElements):
(WebInspector.FrameTreeElement.prototype._insertResourceTreeElement):
(WebInspector.FrameTreeElement.prototype._parentTreeElementForRepresentedObject):
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders):
* UserInterface/Images/ContentFlow.svg: Added.
* UserInterface/Main.html:
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
2013-10-17 Antoine Quint <graouts@apple.com>
Web Inspector: Go to line keyboard command and dialog
https://bugs.webkit.org/show_bug.cgi?id=122893
Reviewed by Timothy Hatcher.
Add a text input over source code text editors, centered within the width of the editor
and towards the top of the editor, upon pressing Command+L or Control+G to match the
behavior in Chrome.
* Localizations/en.lproj/localizedStrings.js:
New localized string "Line Number".
* UserInterface/GoToLineDialog.css: Added.
Styling for the go-to-line dialog.
* UserInterface/GoToLineDialog.js: Added.
(WebInspector.GoToLineDialog):
Generate the DOM structure for the dialog.
(WebInspector.GoToLineDialog.prototype.present):
Present the dialog as a child of a parent element. The dialog's text field automatically
gets focus and resets to be empty.
(WebInspector.GoToLineDialog.prototype.dismiss):
Dismiss the dialog if visible, this triggers the goToLineDialogWasDismissed delegate method.
(WebInspector.GoToLineDialog.prototype.handleEvent):
Route the various events registered in the dialog's DOM tree: input, keydown, blur, mousedown
and click.
(WebInspector.GoToLineDialog.prototype._handleInputEvent):
Update the "non-empty" class on the dialog's element depending on the content of the dialog's
text field. If there is content in the text field, this will make the clear icon visible.
(WebInspector.GoToLineDialog.prototype._handleKeydownEvent):
If the Esc. key is pressed when there is text in the dialog's input field, clear the input field.
If no text is in the input field, dismiss the input field. When the Enter key is pressed, we call
the isGoToLineDialogValueValid() method on the delegate to figure out if the text field value is
valid. If it's not, we select the text field value so that it may be easily replaced and play
en error sound. If it's valid, we call the goToLineDialogValueWasValidated() delegate method
and dismiss the dialog.
(WebInspector.GoToLineDialog.prototype._handleBlurEvent):
Dismiss the dialog when its text field loses focus. This ensures that clicking anywhere outside
of the dialog removes it from display.
(WebInspector.GoToLineDialog.prototype._handleMousedownEvent):
Upon pressing the mouse down on the clear icon, select the entire text field content (matches
the behavior of Xcode) and prevent the default event action that would blur the text field
which would dismiss the dialog.
(WebInspector.GoToLineDialog.prototype._handleClickEvent):
Clear the content of the dialog's text field upon clicking on its clear button.
(WebInspector.GoToLineDialog.prototype._clear):
Reset the dialog's text field's value to an empty string and remove the "non-empty" CSS class name
controlling the display of the clear button.
* UserInterface/Images/CloseWhite.svg: Added.
Variation of the Close.svg icon with a white cross.
* UserInterface/Main.html:
Link to the newly added resources for GoToLineDialog.
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
Register the Command+L and Control+G keyboard shortcuts to bring up the go-to-line dialog.
(WebInspector.SourceCodeTextEditor.prototype.showGoToLineDialog):
Method called upon pressing the Command+L and Control+G keyboard shorcuts creating an instance
of a GoToDialog if necessary, becoming its delegate and presenting it in the context of the
editor's root element.
(WebInspector.SourceCodeTextEditor.prototype.isGoToLineDialogValueValid):
Delegate method called to validate the line number presently set in the go-to-dialog's text field,
checking it's a number between 1 and the number of lines in the source code.
(WebInspector.SourceCodeTextEditor.prototype.goToLineDialogValueWasValidated):
Delegate method called when the line number set in the go-to-dialog's text field has been validated.
We reveal and select the line at the number provided.
(WebInspector.SourceCodeTextEditor.prototype.goToLineDialogWasDismissed):
Ensure the source code editor regains focus upon dismissing the go-to-dialog.
* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.revealPosition):
Add a new opt-in option to not highlight the revealed position. The code in goToLineDialogValueWasValidated()
sets that new flag to true to avoid an unnecessary highlight on top of the selection.
(WebInspector.TextEditor.prototype.get lineCount):
Expose the lineCount() method on the private CodeMirror instance.
(WebInspector.TextEditor.prototype.focus):
Expose the focus() method on the private CodeMirror instance.
2013-10-17 Antoine Quint <graouts@apple.com>
Web Inspector: logged objects are highlighted in blue
https://bugs.webkit.org/show_bug.cgi?id=122897
Reviewed by Joseph Pecoraro.
Switch to using the system highlight color for the background selected messages.
Also removing SVG assets no longer needed since we won't be showing white prompt
and result icons anymore as well as a few generated canvas states.
* UserInterface/Images/UserInputPromptPreviousSelected.svg: Removed.
* UserInterface/Images/UserInputResultSelected.svg: Removed.
* UserInterface/LogContentView.css:
(.console-messages:focus .console-item.selected):
* UserInterface/Main.js:
(WebInspector._generateDisclosureTriangleImages):
2013-10-17 Antoine Quint <graouts@apple.com>
Web Inspector: allow front-end to trigger the system beep sound to signal an error
https://bugs.webkit.org/show_bug.cgi?id=122955
Reviewed by Timothy Hatcher.
Provide a stub method for the new InspectorFrontendHost.beep() method.
* UserInterface/InspectorFrontendHostStub.js:
(WebInspector.InspectorFrontendHostStub.prototype.beep):
2013-10-15 Antoine Quint <graouts@apple.com>
Web Inspector: can't select text inside a text node
https://bugs.webkit.org/show_bug.cgi?id=122828
Reviewed by Timothy Hatcher.
Cancel the default user interaction when a drag action starts if the
element is being edited.
* UserInterface/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.onattach):
(WebInspector.DOMTreeElement.prototype.handleEvent):
2013-10-10 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: content views and managers should save/restore view state.
https://bugs.webkit.org/show_bug.cgi?id=122546
To restore the same content view and sidebars when re-opening the
inspector, a cookie is saved whenever a new content view is shown
in the main content browser. Previously, this cookie was created
and restored using navigation sidebar-specific logic. This has two
major flaws: non-default sidebars for a represented object are not
restored correctly; and it centralizes storage of view-specific
state such as subview selections.
This patch adds ContentView methods for saving a key for the
view's represented object, and saving/restoring any view-specific
state as the view is shown. The 'type' field of the cookie
specifies the manager which deserializes the cookie into a
represented object.
Reviewed by Timothy Hatcher.
* UserInterface/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView):
(WebInspector.ApplicationCacheFrameContentView.prototype.saveToCookie):
(WebInspector.ApplicationCacheFrameContentView.prototype._maybeUpdate):
(WebInspector.ApplicationCacheFrameContentView.prototype._updateStatus):
(WebInspector.ApplicationCacheFrameContentView.prototype.updateStatus):
(WebInspector.ApplicationCacheFrameContentView.prototype._updateCallback):
* UserInterface/ApplicationCacheManager.js:
(WebInspector.ApplicationCacheManager.prototype.networkStateUpdated):
(WebInspector.ApplicationCacheManager.prototype.applicationCacheStatusUpdated):
(WebInspector.ApplicationCacheManager.prototype.):
(WebInspector.ApplicationCacheManager.prototype.requestApplicationCache):
(WebInspector.ApplicationCacheManager.prototype.objectForCookie):
(WebInspector.ApplicationCacheManager.prototype._manifestForFrameLoaded):
(WebInspector.ApplicationCacheManager.prototype._framesWithManifestsLoaded):
(WebInspector.ApplicationCacheManager.prototype._frameManifestUpdated):
* UserInterface/BackForwardEntry.js:
(WebInspector.BackForwardEntry):
(WebInspector.BackForwardEntry.prototype._restoreFromCookie):
* UserInterface/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype.showContentViewForRepresentedObject):
(WebInspector.ContentBrowser.prototype.showContentView):
* UserInterface/ContentView.js:
(WebInspector.ContentView.prototype.saveToCookie):
(WebInspector.ContentView.prototype.restoreFromCookie):
* UserInterface/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showContentView):
* UserInterface/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype.update):
(WebInspector.CookieStorageContentView.prototype.saveToCookie):
(WebInspector.CookieStorageContentView.prototype._rebuildTable):
(WebInspector.CookieStorageContentView.prototype._filterCookies):
* UserInterface/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView.prototype.saveToCookie):
* UserInterface/DatabaseContentView.js:
(WebInspector.DatabaseContentView.prototype.saveToCookie):
(WebInspector.DatabaseContentView.prototype._messagesClicked):
* UserInterface/DatabaseTableContentView.js:
(WebInspector.DatabaseTableContentView):
(WebInspector.DatabaseTableContentView.prototype.saveToCookie):
* UserInterface/FrameContentView.js:
(WebInspector.FrameContentView.prototype.saveToCookie):
(WebInspector.FrameContentView.prototype.restoreFromCookie):
* UserInterface/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.objectForCookie):
* UserInterface/InstrumentSidebarPanel.js:
(WebInspector.InstrumentSidebarPanel):
(WebInspector.InstrumentSidebarPanel.prototype.showTimeline):
(WebInspector.InstrumentSidebarPanel.prototype.shown):
(WebInspector.InstrumentSidebarPanel.prototype._timelinesTreeElementSelected):
* UserInterface/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.openURL):
(WebInspector._updateCurrentContentViewCookie):
(WebInspector._showContentViewForCookie.lastAttemptToRestoreFromCookie):
(WebInspector._showContentViewForCookie):
(WebInspector._resolveAndShowPendingContentViewCookie.delayedWork):
(WebInspector._resolveAndShowPendingContentViewCookie):
(WebInspector.elementDragStart):
(WebInspector.elementDragEnd):
(WebInspector.createMessageTextView):
(WebInspector.linkifyStringAsFragment):
* UserInterface/NavigationSidebarPanel.js:
* UserInterface/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.prototype.saveToCookie):
(WebInspector.ResourceClusterContentView.prototype.restoreFromCookie):
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.showSourceCode):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._domStorageObjectWasAdded):
(WebInspector.ResourceSidebarPanel.prototype._databaseWasAdded):
(WebInspector.ResourceSidebarPanel.prototype._cookieStorageObjectWasAdded):
(WebInspector.ResourceSidebarPanel.prototype._frameManifestAdded):
* UserInterface/ScriptContentView.js:
(WebInspector.ScriptContentView.prototype.saveToCookie):
(WebInspector.ScriptContentView.prototype.restoreFromCookie):
* UserInterface/StorageManager.js:
(WebInspector.StorageManager.prototype.findMatchingObjectInArray):
(WebInspector.StorageManager.prototype.objectForCookie):
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.get timelines):
(WebInspector.TimelineManager.prototype.objectForCookie):
* UserInterface/TimelinesContentView.js:
(WebInspector.TimelinesContentView.prototype.saveToCookie):
(WebInspector.TimelinesContentView.prototype.restoreFromCookie):
(WebInspector.TimelinesContentView.prototype._makeColumnScopeBar):
2013-10-10 Mark Rowe <mrowe@apple.com>
<rdar://problem/13341666> WebKit should always build against an SDK.
Have all projects default to building against the OS X Internal SDK for the Production
configuration. For the Debug and Release configurations, look for UseInternalSDK.xcconfig
to determine whether the OS X Internal SDK should be used. If not, use the normal OS X SDK.
Reviewed by Dan Bernstein.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
2013-10-04 Antoine Quint <graouts@apple.com>
Web Inspector: pressing the Cmd key over a CSS property should underline it immediately (jump to definition mode)
https://bugs.webkit.org/show_bug.cgi?id=119012
Reviewed by Joseph Pecoraro.
We add an "enabled" state to the tokenTrackingController to indicate that we're interested
in tracking hovered tokens. The tokenTrackingController is now only enabled in the
CSSStyleDeclarationTextEditor when the Cmd key is pressed and in the SourceCodeTextEditor
when either the Cmd key is pressed (NonSymbolTokens mode) or when the debugger is paused
(JavaScriptExpression mode).
The tokenTrackingController is now smarter about how it tracks mouse events when it's enabled,
tracking "mouseenter" and "mouseleave" events to enable tracking allowing immediate detection of
tokens being hovered or no longer being hovered even with quick mouse movements. Additioanlly,
using the new top-level mouse coordinates tracking, we can detect a hovered token as soon as
it's being enabled to provide instant feedback to the user.
This new top-level mouse coordinates tracking couple with tracking of modifier keys also fixes
http://webkit.org/b/119011.
* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateJumpToSymbolTrackingMode):
Highlight the last known hovered candidate's range as soon as the Cmd key is pressed and enable
the tokenTrackingController if we're dealing with a non-read-only editor. When the Cmd key is
released, disable the tokenTrackingController.
* UserInterface/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController):
(WebInspector.CodeMirrorTokenTrackingController.prototype.get enabled):
(WebInspector.CodeMirrorTokenTrackingController.prototype.set enabled):
New enabled state for the tokenTrackingController which indicates whether it should be tracking
mouse events to track hovered tokens in the editor. Upon being enabled, the tokenTrackingController
looks up the mouse coordinates continuously tracked at the window level to check for a token
at the last known mouse coordinates in case we're already over a token that may be highlighted.
(WebInspector.CodeMirrorTokenTrackingController.prototype.highlightLastHoveredRange):
New public method allowing to highlight the last know candidate range, if any. This is used from
editor code when the Cmd key is pressed and we want to force the last know candidate to be
highlighted.
(WebInspector.CodeMirrorTokenTrackingController.prototype._startTracking):
(WebInspector.CodeMirrorTokenTrackingController.prototype._stopTracking):
Make these two methods private now that they're automatically called by the "mouseenter" and
"mouseleave" event handling when we're in the "enabled" state. Additionally, the public
"tracking" property has been removed since it is no longer useful to the developer.
(WebInspector.CodeMirrorTokenTrackingController.prototype.handleEvent):
(WebInspector.CodeMirrorTokenTrackingController.prototype._mouseEntered):
(WebInspector.CodeMirrorTokenTrackingController.prototype._mouseLeft):
New handlers for the "mouseenter" and "mouseleave" events enabling tracking of hovered tokens.
(WebInspector.CodeMirrorTokenTrackingController.prototype._mouseMovedOverEditor):
(WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
Refactor _mouseMovedOverEditor() into two methods with the new _updateHoveredTokenInfo()
allowing to customize the mouse coordinates to be used since we may call
_updateHoveredTokenInfo() outside of the context of a mouse event (ie. a keypress event).
(WebInspector.CodeMirrorTokenTrackingController.prototype._windowLostFocus):
(WebInspector.CodeMirrorTokenTrackingController.prototype._resetTrackingStates):
New private method combining all the various states that need to be reset when tracking
is turned off, including the removal of the highlighted range if any. This is now called
when the window loses focus.
* UserInterface/Main.js:
(WebInspector.loaded):
(WebInspector._mouseMoved):
Add a new window-level "mousemove" event handler to always track mouse coordinates and key modifier
states. This ensures that we may have the most accurate information possible for key modifiers and
allow code to query the last recorded mouse position in situations where it wouldn't be possible
to have dealt with a mouse event, as is the case when the tokenTrackingController just started tracking.
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerEnabled):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
(WebInspector.SourceCodeTextEditor.prototype._enableJumpToSymbolTrackingModeSettings):
(WebInspector.SourceCodeTextEditor.prototype._disableJumpToSymbolTrackingModeSettings):
Update the "enabled" state on the tokenTrackingController when it may have changed based
on those two conditions: we should have either an active debugger call frame or the
Cmd key should have been pressed. This ensures we only track hovered tokens as needed.
(WebInspector.SourceCodeTextEditor.prototype._updateJumpToSymbolTrackingMode):
Highlight the last known hovered candidate's range as soon as the Cmd key is pressed.
2013-10-02 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: save and restore source positions in back/forward history
https://bugs.webkit.org/show_bug.cgi?id=122062
Reviewed by Timothy Hatcher.
Previously, the back/forward entries comprised of only the content
views, but not their positions if navigated via hyperlink (i.e.,
handling script.js:42). When multiple instances of the same
content view appeared in the back/forward list, the most recent
navigation was displayed rather than the linked position.
We now store context necessary to re-navigate such hyperlinks by
storing view- specific data inside a cookie object, and invoke a
supplied callback to take any position initialization actions,
such as calling TextEditor.revealPosition. This state is
encapsulated into BackForwardEntry instances.
Functions that save and restore scroll positions inside content
views have been changed to store state in BackForwardEntry
instances, so multiple scroll positions can be saved for a content
view appearing in the navigation history more than once.
* UserInterface/BackForwardEntry.js: Added.
(WebInspector.BackForwardEntry):
(WebInspector.BackForwardEntry.prototype.get contentView):
(WebInspector.BackForwardEntry.prototype.get cookie):
(WebInspector.BackForwardEntry.prototype.prepareToShow):
(WebInspector.BackForwardEntry.prototype.prepareToHide):
(WebInspector.BackForwardEntry.prototype._restoreFromCookie):
(WebInspector.BackForwardEntry.prototype._restoreScrollPositions):
(WebInspector.BackForwardEntry.prototype._saveScrollPositions):
* UserInterface/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype.showContentView):
(WebInspector.ContentBrowser.prototype._updateContentViewNavigationItems):
(WebInspector.ContentBrowser.prototype._updateFindBanner):
* UserInterface/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.get currentContentView):
(WebInspector.ContentViewContainer.prototype.get currentBackForwardEntry):
(WebInspector.ContentViewContainer.prototype.showContentView):
(WebInspector.ContentViewContainer.prototype.showBackForwardEntryForIndex):
(WebInspector.ContentViewContainer.prototype.replaceContentView):
(WebInspector.ContentViewContainer.prototype.closeAllContentViewsOfPrototype):
(WebInspector.ContentViewContainer.prototype.closeAllContentViews):
(WebInspector.ContentViewContainer.prototype.goBack):
(WebInspector.ContentViewContainer.prototype.goForward):
(WebInspector.ContentViewContainer.prototype.shown):
(WebInspector.ContentViewContainer.prototype.hidden):
(WebInspector.ContentViewContainer.prototype._showEntry):
(WebInspector.ContentViewContainer.prototype._hideEntry):
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.openURL):
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.restoreCallback):
(WebInspector.ResourceSidebarPanel.prototype.showSourceCode):
2013-10-02 Antoine Quint <graouts@apple.com>
Web Inspector: highlight newly added console messages in the Activity Viewer
https://bugs.webkit.org/show_bug.cgi?id=122093
Reviewed by Joseph Pecoraro.
Fade the appropriate console log button in the Activity Viewer for a short duration
to call attention to it when its count is incremented. The animation may be restarted
in-flight if the count is incremented as we were pulsing the opacity.
* UserInterface/DashboardView.css:
(.toolbar .dashboard > .item.pulsing):
(@-webkit-keyframes console-item-pulse):
New pulse animation for a console item in the Activity Viewer, the new "pulsing" CSS
class is applied in WebInspector.DashboardView.prototype._setConsoleItemValue().
* UserInterface/DashboardView.js:
(WebInspector.DashboardView.prototype.set logs):
(WebInspector.DashboardView.prototype.set issues):
(WebInspector.DashboardView.prototype.set errors):
Refactor setters to use the new WebInspector.DashboardView.prototype._setConsoleItemValue()
method.
(WebInspector.DashboardView.prototype._setConsoleItemValue):
We now set the ivar backing console item values in this new refactored method and additionally
apply an animation to the DOM element for the given item if its value is incremented such that
it pulses, subtly calling out the developer's attention to it.
* UserInterface/Utilities.js:
New Element.prototype.recalculateStyles() method to abstract the hack required to force
a style recalc on a given element.
2013-10-01 Antoine Quint <graouts@apple.com>
Web Inspector: evaluate and show a popover for selected text in JS source when paused
https://bugs.webkit.org/show_bug.cgi?id=122151
Reviewed by Joseph Pecoraro.
Identify if the hovered token is contained within the text selection (if any) and use
the selection as the hovered expression to allow the user to select text and hover it
to see what it evaluates to.
* UserInterface/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype.highlightRange):
Check we're trying to highlight a different range before removing the highlight
and applying the new one, this prevents the marked text from flashing if it's
being re-hovered which would easily happen when hovering multiple tokens within
the same selection.
(WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
In the case where there is selected text, check whether the hovered token is at least
partially contained within the selection, and if so use the selection text as the
hovered expression to evaluate.
2013-10-01 Antoine Quint <graouts@apple.com>
Console buttons don’t show after page reload
https://bugs.webkit.org/show_bug.cgi?id=116515
Reviewed by Darin Adler.
The correct display of navigation items in the ContentBrowser is contingent on
the ContentViewContainer's _backForwardList being up-to-date when the navigation
items are retrieved from it. However, when the main resource changes (in this case
the user refreshes the browser), calls are made to ContentViewContainer's
closeAllContentViewsOfPrototype() which may modify the _backForwardList but doesn't
necessarily notify of a change to the currentContentView since we may be still showing
the same view in case it wasn't directly related to the main resource, for instance
the console log.
We now check if the _backForwardList is changed as a result of calling
closeAllContentViewsOfPrototype() and in that case also dispatch the
CurrentContentViewDidChange event which will restore the correct state
for the back/forward buttons and navigation items of the navigation bar.
* UserInterface/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.closeAllContentViewsOfPrototype):
Track changes to the _backForwardList and dispatch the CurrentContentViewDidChange
event in case such changes happened.
2013-09-30 Antoine Quint <graouts@apple.com>
Web Inspector: rows in the Layer sidebar panel may have the incorrect background color
https://bugs.webkit.org/show_bug.cgi?id=122108
Reviewed by Darin Adler.
The LayerTreeDataGrid is a custom DataGrid subclass which exposes a .setChildren() method
used to sort chidren without DOM order manipulation, for performance reason. However, since
the way the alternating background color is usually implemented is based on the built-in
CSS pseudo-classes working with DOM order, the background colors of nodes in the LayerTreeDataGrid
can be incorrect depending on the sort order and the number of nodes. To fix this, we now manually
set "even" and "odd" CSS classes on those nodes when they're sorted such that we have a chance
to style them as intended.
* UserInterface/LayerTreeDataGrid.js:
(WebInspector.LayerTreeDataGrid.prototype._updateChildren):
Check if the data grid node index is even or odd and reflect this via an exclusive "even"
or "odd" CSS class name.
* UserInterface/LayerTreeSidebarPanel.css:
(.layer-tree.panel .data-container tbody > tr.even):
(.layer-tree.panel .data-container tbody > tr.odd):
Apply alternating colors based on the exclusive "even" and "odd" CSS class names as applied in
WebInspector.LayerTreeDataGrid.prototype._updateChildren().
2013-09-30 Antoine Quint <graouts@apple.com>
Web Inspector: Popover displaying "reasons for compositing" may remain on screen after selected layer is removed
https://bugs.webkit.org/show_bug.cgi?id=117575
Ensure the popover attached to the selected data grid node is updated when the
content or sort order of the Layer sidebar panel is updated.
Reviewed by Darin Adler.
* UserInterface/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid):
2013-09-30 Antoine Quint <graouts@apple.com>
Web Inspector: nodes can be dragged from the console log
https://bugs.webkit.org/show_bug.cgi?id=122105
Reviewed by Darin Adler.
Catch "dragstart" events targeting nodes hosted in a DOMTreeOutline within the console
log view and prevent the default logic to trigger so that these nodes can't be dragged
off the console as it wouldn't make sense to.
* UserInterface/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
Create a class property to allow the CSS class name to be used in WebInspector.LogContentView.
* UserInterface/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._ondragstart):
Track the "dragstart" events in their capture phase such that, if the event target is
a DOM node hosted in a DOMTreeOutline, we can prevent the event from propagating and
cancel its default behavior such that no dragging at all is performed.
2013-09-26 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: dissociate old content views that are spliced from back/forward list
https://bugs.webkit.org/show_bug.cgi?id=121987
Reviewed by Timothy Hatcher.
There was a bug where old back/forward list entries were not being dissociated when
the newly-shown content view was already in the list. Instead, dissociation should be
skipped if the old list entry is not already in the list.
* UserInterface/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showContentView):
2013-09-26 Antoine Quint <graouts@apple.com>
Web Inspector: Activity viewer not properly reset when reloading
https://bugs.webkit.org/show_bug.cgi?id=121958
Reviewed by Darin Adler.
Reset the resources count and accumulated size when we detect the main frame
has changed, which will work with documents where there are no resources besides
frames in which case WebInspector.Frame.Event.AllResourcesRemoved was not fired
and our counts wouldn't be reset correctly.
* UserInterface/DashboardManager.js:
(WebInspector.DashboardManager):
(WebInspector.DashboardManager.prototype._mainResourceDidChange):
2013-09-26 Antoine Quint <graouts@apple.com>
Web Inspector: Keep DOM tree expanded on page reload
https://bugs.webkit.org/show_bug.cgi?id=121665
Reviewed by Darin Adler.
Allow the node that was selected before reloading the page to be selected
at the page is reloaded. Credit goes to Joseph Pecoraro for the fix.
* UserInterface/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype._rootDOMNodeAvailable.selectNode):
2013-09-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Using Breakpoint Actions Breaks iOS inspection
https://bugs.webkit.org/show_bug.cgi?id=121862
Reviewed by Timothy Hatcher.
Only use DebuggerAgent.BreakpointActionType if it is available.
Otherwise leave options undefined for breakpoints since the backend
does not support it.
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype._setBreakpoint):
2013-09-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include iOS 7 Inspector.json Version
https://bugs.webkit.org/show_bug.cgi?id=121852
Reviewed by Timothy Hatcher.
* UserInterface/Legacy/7.0/InspectorBackendCommands.js: Added.
* Versions/Inspector-iOS-7.0.json: Added.
2013-09-24 Mark Rowe <mrowe@apple.com>
<rdar://problem/14971518> WebKit should build against the Xcode default toolchain when targeting OS X 10.8
Reviewed by Dan Bernstein.
* Configurations/Base.xcconfig:
2013-09-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Breakpoint Actions input should disable spellchecking
https://bugs.webkit.org/show_bug.cgi?id=121846
Reviewed by Timothy Hatcher.
* UserInterface/BreakpointActionView.js:
2013-09-21 Timothy Hatcher <timothy@apple.com>
Hook up the initiator info and show it in the Resource details sidebar.
https://bugs.webkit.org/show_bug.cgi?id=121741
Reviewed by Joseph Pecoraro.
* UserInterface/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):
(WebInspector.FrameResourceManager.prototype._initiatorSourceCodeLocationFromPayload):
* UserInterface/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.requestWillBeSent):
(WebInspector.NetworkObserver.prototype.requestServedFromMemoryCache):
* UserInterface/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.get initiatorSourceCodeLocation):
* UserInterface/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
2013-09-20 Timothy Hatcher <timothy@apple.com>
Parse MIME-types and strip them down to the base type when needed.
The use of charset in a MIME-type interferes with our type maps,
preventing the right syntax highlighting mode and pretty printing.
https://bugs.webkit.org/show_bug.cgi?id=121723
Reviewed by Joseph Pecoraro.
* UserInterface/ConsolePrompt.js:
(WebInspector.ConsolePrompt):
* UserInterface/FontResourceContentView.js:
* UserInterface/Resource.js:
(WebInspector.Resource.Type.fromMIMEType):
(WebInspector.Resource.prototype.get mimeTypeComponents):
(WebInspector.Resource.prototype.get syntheticMIMEType):
(WebInspector.Resource.prototype.get contentURL):
(WebInspector.Resource.prototype.updateForResponse):
* UserInterface/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):
* UserInterface/SourceMapResource.js:
(WebInspector.SourceMapResource.prototype.requestContentFromBackend):
* UserInterface/SyntaxHighlightingSupport.js:
(WebInspector.syntaxHighlightStringAsDocumentFragment):
* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.set mimeType):
* UserInterface/Utilities.js:
(parseMIMEType): Added.
2013-09-20 Marcelo Morais <m.morais@samsung.com>
Web Inspector: Fix keyboard shortcuts for other platforms
https://bugs.webkit.org/show_bug.cgi?id=120657
Reviewed by Timothy Hatcher.
Handling keyboard shortcuts according to the current platform.
* UserInterface/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.loadResourceSynchronously):
(.WebInspector.InspectorFrontendHostStub.prototype.platform): Added. Return the
current platform.
* UserInterface/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut.Modifier.get CommandOrControl): Added. Created keyboard
modifier to return Control or Command key according to current platform.
* UserInterface/ContentBrowser.js:
(WebInspector.ContentBrowser): Returning Control or Command key for keyboard
shortcuts according to current platform.
* UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel): Ditto.
* UserInterface/FindBanner.js:
(WebInspector.FindBanner): Ditto.
* UserInterface/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController): Ditto.
* UserInterface/LogContentView.js:
(WebInspector.LogContentView): Ditto.
* UserInterface/Main.js:
(WebInspector.contentLoaded): Ditto.
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel): Ditto.
2013-09-20 Brent Fulgham <bfulgham@apple.com>
[Windows] Unreviewed gardening. Teach WebInspectorUI.vcxproj folder to
ignore Visual Studio's local user settings file.
* WebInspectorUI.vcxproj: Added property svn:ignore.
2013-09-17 Gustavo Noronha Silva <gns@gnome.org>
[GTK] Cannot find WebInspectorUI/UserInterface/Main.html referenced in GResourceBundle.xml
https://bugs.webkit.org/show_bug.cgi?id=121405
Reviewed by Carlos Garcia Campos.
* GNUmakefile.am: if srcdir == builddir the WebInspectorUI variable that is used both to list
the dependencies of the GResourceBundle and to normalize the paths added to the XML through sed
replacement will end up starting with ./, which would be fine if automake did not remove that
from the paths in the target's dependency. We deal with that by normalizing the path we use to
take that quirk into account.
2013-09-17 Timothy Hatcher <timothy@apple.com>
Clean up the Inspector's WebSocket code and prevent it from dropping messages.
https://bugs.webkit.org/show_bug.cgi?id=121391
Reviewed by Joseph Pecoraro.
* UserInterface/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.initializeWebSocket): Added. Create the socket
and call _sendPendingMessagesToBackendIfNeeded.
(.WebInspector.InspectorFrontendHostStub.prototype.sendMessageToBackend): Store messages as pending
if the socket isn't ready yet. Call _sendPendingMessagesToBackendIfNeeded.
(.WebInspector.InspectorFrontendHostStub.prototype._sendPendingMessagesToBackendIfNeeded): Added.
* UserInterface/Main.js:
(WebInspector._initializeWebSocketIfNeeded): Move socket creation to initializeWebSocket.
2013-09-16 Timothy Hatcher <timothy@apple.com>
Make InspectorTimelineAgent use an enum for the record type instead of a string.
https://bugs.webkit.org/show_bug.cgi?id=121461
Reviewed by Joseph Pecoraro.
* UserInterface/InspectorBackendCommands.js:
* UserInterface/Legacy/6.0/InspectorBackendCommands.js:
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
* Versions/Inspector-iOS-6.0.json:
2013-09-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: TypeError when updating ResourceTreeElement created in strange order
https://bugs.webkit.org/show_bug.cgi?id=121382
Reviewed by Timothy Hatcher.
Patch by Brian Burg. Fix an uncaught exception that can happen on navigations.
* UserInterface/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._updateStatus):
2013-09-16 Timothy Hatcher <timothy@apple.com>
Make InspectorTypeBuilder generate better enums in C++.
https://bugs.webkit.org/show_bug.cgi?id=121440
Reviewed by Joseph Pecoraro.
* UserInterface/InspectorBackendCommands.js: Updated to make Css be CSS.
2013-09-13 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[GTK] Move to the new web inspector
https://bugs.webkit.org/show_bug.cgi?id=120647
Reviewed by Carlos Garcia Campos.
* GNUmakefile.am: Added. Generate the GResource source and link it into libWebCore.
2013-09-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Duplicated color swatches changing autocompletes color names
https://bugs.webkit.org/show_bug.cgi?id=121265
Reviewed by Timothy Hatcher.
CodeMirror bookmarks at position used to be unique but no longer are.
Define an extension to give us unique bookmarks as we expected, and
update all the old locations using setBookmark.
* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.didDismissPopover):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
(WebInspector.CSSStyleDeclarationTextEditor.prototype):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.event.newColorText):
* UserInterface/CodeMirrorAdditions.js:
2013-09-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update CodeMirror for gutter fix
https://bugs.webkit.org/show_bug.cgi?id=121262
Update CodeMirror to 757944449 to fix gutter click issue:
<https://github.com/marijnh/CodeMirror/issues/1807>
Reviewed by Timothy Hatcher.
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* Tools/PrettyPrinting/FormatterContentBuilder.js:
(FormatterContentBuilder.prototype._appendIndent):
* Tools/PrettyPrinting/codemirror.css:
* Tools/PrettyPrinting/codemirror.js:
* Tools/PrettyPrinting/css.js:
* UserInterface/CodeMirrorAdditions.js:
* UserInterface/CodeMirrorFormatters.js:
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.didRemoveBreakpoint):
(WebInspector.DebuggerManager.prototype._removeBreakpoint):
* UserInterface/External/CodeMirror/codemirror.css:
* UserInterface/External/CodeMirror/codemirror.js:
* UserInterface/External/CodeMirror/coffeescript.js:
* UserInterface/External/CodeMirror/css.js:
* UserInterface/External/CodeMirror/less.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.hasFormatter):
2013-09-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update License copyrights in minified JavaScript
https://bugs.webkit.org/show_bug.cgi?id=121264
Reviewed by Timothy Hatcher.
* Scripts/copy-user-interface-resources.sh:
2013-09-11 Geoffrey Garen <ggaren@apple.com>
Removed some unused functions from the debugger interface
https://bugs.webkit.org/show_bug.cgi?id=121194
Reviewed by Joseph Pecoraro.
We plan to use the "evaluate" API and debugger activation property access for all the features we need.
* UserInterface/InspectorBackendCommands.js: Updated by script.
2013-09-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Download Archive button incorrectly styled when disabled and tree element is not-selected
https://bugs.webkit.org/show_bug.cgi?id=120866
Reviewed by Timothy Hatcher.
* UserInterface/TreeElementStatusButton.css:
(.item > .status > .status-button.disabled > svg *):
2013-09-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Lint JavaScript and CSS for minor issues
https://bugs.webkit.org/show_bug.cgi?id=120884
Reviewed by Timothy Hatcher.
JS, caught a bunch of missing semicolons but at least one possible
issue with duplicate object literal keys in CSSKeywordCompletions.
CSS, cause some duplicate properties, an invalid property value,
and some "0px" => "0" cleanup.
2013-09-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Breakpoint Action JS Editor has line wrapping issues with long no-space lines
https://bugs.webkit.org/show_bug.cgi?id=120822
Reviewed by Timothy Hatcher.
* UserInterface/BreakpointActionView.css:
(.breakpoint-action-eval-editor > .CodeMirror):
(.breakpoint-action-eval-editor > .CodeMirror-scroll):
2013-09-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Edit Breakpoint popover sometimes appears misplaced in top left
https://bugs.webkit.org/show_bug.cgi?id=120804
Reviewed by Timothy Hatcher.
Grab the bounding rect immediately, instead of grabbing it from the element
after the user has selected the "Edit Breakpoint" context menu item. When
the popover was misplaced it was when using an element had been removed or
replaced in the DOM, and caused a bogus bounding client rect.
* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint.prototype.editBreakpoint):
(WebInspector.Breakpoint.prototype._showEditBreakpointPopover):
2013-09-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove harmless assert, triggered hitting breakpoint in auto prettyprinted code on reload
https://bugs.webkit.org/show_bug.cgi?id=120332
Reviewed by Timothy Hatcher.
* UserInterface/TextEditor.js:
2013-09-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Breakpoint Actions
https://bugs.webkit.org/show_bug.cgi?id=120576
Reviewed by Timothy Hatcher.
Give the CodeMirror editor for JavaScript Breakpoint Actions JS Runtime
completions (like window, document, etc.).
The logic was inside of JavaScriptLogViewController but was already
entirely independent. Factor it out into its own class and plug it into
CodeMirrorCompletionController as a "CompletionsProvider".
Because the class hooks into a global event to reset some state, make
it a singleton, so new instances are not leaked.
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.loaded):
* UserInterface/RuntimeManager.js: Added.
(WebInspector.RuntimeManager):
(WebInspector.RuntimeManager.prototype.evalCallback):
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
Move eval in window to new RuntimeManager. A slightly cleaner place to this
since it is used both by the console and JS completions provider.
* UserInterface/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype.setExtendedCompletionProvider):
(WebInspector.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
Allow a completions provider plugin to completions controller. If one
is available, this supercedes the delegate extend completions path.
* UserInterface/BreakpointActionView.js:
* UserInterface/ConsolePrompt.js:
(WebInspector.ConsolePrompt):
Use the new JS completions provider to get runtime JS completions.
NOTE: ConsolePrompt still needs the delegate path for SQL completions.
* UserInterface/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
* UserInterface/JavaScriptRuntimeCompletionProvider.js: Added.
(WebInspector.JavaScriptRuntimeCompletionProvider):
(get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
(get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
Move the JS completions code to a new class. No changes needed.
2013-09-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Breakpoint Actions
https://bugs.webkit.org/show_bug.cgi?id=120576
Reviewed by Timothy Hatcher.
* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get actions):
(WebInspector.Breakpoint.prototype.get options):
(WebInspector.Breakpoint.prototype.get info):
(WebInspector.Breakpoint.prototype._serializableActions):
Saving, restoring, and serialization.
(WebInspector.Breakpoint.prototype.createAction):
(WebInspector.Breakpoint.prototype.recreateAction):
(WebInspector.Breakpoint.prototype.removeAction):
(WebInspector.Breakpoint.prototype.breakpointActionDidChange):
Modifying _actions ivar.
(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
(WebInspector.Breakpoint.prototype._popoverActionsCreateAddActionButton):
(WebInspector.Breakpoint.prototype._popoverActionsAddActionButtonClicked):
(WebInspector.Breakpoint.prototype._popoverActionsInsertBreakpointActionView):
(WebInspector.Breakpoint.prototype.breakpointActionViewAppendActionView):
(WebInspector.Breakpoint.prototype.breakpointActionViewRemoveActionView):
(WebInspector.Breakpoint.prototype.breakpointActionViewResized):
Popover UI containing breakpoint action views and converting to and from
having no actions.
(WebInspector.Breakpoint.prototype.willDismissPopover):
Cleanup some ivars when the popover dismisses.
* UserInterface/Breakpoint.css:
(.popover .edit-breakpoint-popover-content.wide):
Wider setting when there are actions in the popover.
(.popover .edit-breakpoint-popover-content > table > tr > th):
Keep the title labels at the top of their section.
* UserInterface/BreakpointAction.js:
(WebInspector.BreakpointAction):
(WebInspector.BreakpointAction.prototype.get breakpoint):
(WebInspector.BreakpointAction.prototype.get type):
(WebInspector.BreakpointAction.prototype.get data):
(WebInspector.BreakpointAction.prototype.set data):
(WebInspector.BreakpointAction.prototype.get info):
Very basic BreakpointAction class. Notifies Breakpoint on data changes.
Type changes are not allowed, instead just create a new BreakpointAction.
* UserInterface/BreakpointActionView.css: Added.
(.breakpoint-action-block-header):
(.breakpoint-action-remove-button):
(.breakpoint-action-remove-button:active):
(.breakpoint-action-append-button):
(.breakpoint-action-block-body):
(.breakpoint-action-block-body > input):
(.breakpoint-action-eval-editor):
(.breakpoint-action-eval-editor > .CodeMirror):
(.breakpoint-action-eval-editor > .CodeMirror-scroll):
* UserInterface/BreakpointActionView.js: Added.
(WebInspector.BreakpointActionView):
(WebInspector.BreakpointActionView.displayStringForType):
(WebInspector.BreakpointActionView.prototype.get action):
(WebInspector.BreakpointActionView.prototype.get element):
(WebInspector.BreakpointActionView.prototype._pickerChanged):
(WebInspector.BreakpointActionView.prototype._appendActionButtonClicked):
(WebInspector.BreakpointActionView.prototype._removeActionButtonClicked):
(WebInspector.BreakpointActionView.prototype._updateBody.switch.break):
(WebInspector.BreakpointActionView.prototype._logInputChanged):
(WebInspector.BreakpointActionView.prototype._codeMirrorBlurred):
(WebInspector.BreakpointActionView.prototype._codeMirrorViewportChanged):
UI and form controls for individual breakpoint actions. The view
wraps a single BreakpointAction, and for any actions that could affect
other views the delegate is notified.
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager):
(WebInspector.DebuggerManager.prototype._debuggerBreakpointActionType):
When sending to the backend, make sure to send protocol enums.
* UserInterface/Popover.js:
(WebInspector.Popover.prototype.update):
Update the popover when content changes.
* UserInterface/Images/BreakpointActionAdd.svg: Added.
* UserInterface/Images/BreakpointActionRemove.svg: Added.
* UserInterface/InspectorBackendCommands.js:
* UserInterface/Main.html:
* Localizations/en.lproj/localizedStrings.js:
Misc. New strings, images, includes.
2013-09-03 Antoine Quint <graouts@apple.com>
Web Inspector: exceptions triggered from console evaluation do not pause the debugger
https://bugs.webkit.org/show_bug.cgi?id=120460
We used to preclude any debugging from errors stemming from code evaluated in the console
as we would always set the doNotPauseOnExceptionsAndMuteConsole parameter to "false" when
calling JavaScriptLogViewController._evaluateInInspectedWindow(). However, it is desirable
to allow debugging code ran from the console.
We now allow debugging in such a scenario and we filter out call frames coming from the
Web Inspector injected script as well as the call frame for the console prompt such that
we only pause in the debugger in case the exception is in code under the console prompt
and not the console code prompt itself.
Additionally, to prevent stepping out to call frames we may have filtered out, we disable
the "step out" button in cases where there are no further frames in the frontend to go out to.
Reviewed by Timothy Hatcher.
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
Filter out call frames that have a URL coming from Web Inspector injected script by looking
for a URL starting with the "__WebInspector" prefix. If we determine that there are no call
frames left after filtering, we resume code evaluation such that we only pause in the debugger
when the exception is in code evluated under the console prompt.
* UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerActiveCallFrameDidChange):
Monitor any change to the active call frame such that we may tie the state of the
"step out" button to the availability of a call frame to step out to in the filtered
list set on the DebuggerManager.
* UserInterface/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
Set the doNotPauseOnExceptionsAndMuteConsole to "false" when calling _evaluateInInspectedWindow()
in order to allow pausing on exceptions coming from code evalued in the console. Also, explicitly
set a sourceURL for the script to evaluate such that we may identify its origin when filtering
call frames stemming from inspector code.
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
Filter out any script resource starting with the Web Inspector-specific "__WebInspector" prefix
so that injected script does not show up.
2013-08-30 Brent Fulgham <bfulgham@apple.com>
[Windows] Correct windows build. Get rid of unnecessary pre-build step. We don't build anything
in this project, just copy some files into the WebKit resource folder. This was fooling the
build system into thinking something failed, resulting in a build error.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Remove reference to WebInspectorUIPreBuild.cmd
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
* WebInspectorUI.vcxproj/WebInspectorUIPreBuild.cmd: Removed.
2013-08-30 Brent Fulgham <bfulgham@apple.com>
[Windows] Build correction after dependency change.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Remove circular dependency on
WebKit, and control this at the solution level. The prior change broke external
builders.
2013-08-30 Brent Fulgham <bfulgham@apple.com>
[Windows] Unreviewed build gardening.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Adjust build dependencies so
that WebInspectorUI 'builds' after WebKit so that the expected resource directory
structure is always in place.
2013-08-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Breakpoints should have Automatically Continue Option
https://bugs.webkit.org/show_bug.cgi?id=120187
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Breakpoint.css:
(#edit-breakpoint-popoover-auto-continue):
Misc. changes for UI.
* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get autoContinue):
(WebInspector.Breakpoint.prototype.set autoContinue):
(WebInspector.Breakpoint.prototype.get options):
(WebInspector.Breakpoint.prototype.get info):
General maintenance of the autoContinue state.
(WebInspector.Breakpoint.prototype._popoverToggleEnabledCheckboxChanged):
(WebInspector.Breakpoint.prototype._popoverToggleAutoContinueCheckboxChanged):
(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
Edit Breakpoint UI for setting autoContinue state.
* UserInterface/InspectorBackend.js:
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype._supports):
Extension to check if a BackendCommands method supports a particular param.
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
* UserInterface/InspectorBackendCommands.js:
Change to backend agent calls for the new protocol API.
2013-08-29 Timothy Hatcher <timothy@apple.com>
Make incrementing and decrementing numbers by 0.1 require the control key, and not near zero numbers.
https://bugs.webkit.org/show_bug.cgi?id=120492
<rdar://problem/13738935> Incrementing and decrementing numbers near zero is annoying compared to earlier releases
Reviewed by Joseph Pecoraro.
* UserInterface/CodeMirrorAdditions.js:
(alterNumber): Remove near zero check.
2013-08-29 Timothy Hatcher <timothy@apple.com>
Only modify numbers if they are identified by CodeMirror as a number.
https://bugs.webkit.org/show_bug.cgi?id=120484
<rdar://problem/13877085> REGRESSION: Alt-up and Alt-down don't work when cursor is in unit
<rdar://problem/13058697> PARITY: Option-Up arrow in "translate3d" should not modify number to make" translate4d"
Reviewed by Joseph Pecoraro.
* UserInterface/CodeMirrorAdditions.js:
(CodeMirror.prototype.alterNumberInRange): Correctly preserve the selection, even if it differs from
the range passed in.
(alterNumber): Find number tokens and pass those to alterNumberInRange.
(alterNumber.findNumberToken): Added. Helper.
2013-08-29 Timothy Hatcher <timothy@apple.com>
Make incrementing and decrementing numbers by 0.1 require the control key, and not near zero numbers.
https://bugs.webkit.org/show_bug.cgi?id=120492
<rdar://problem/13738935> Incrementing and decrementing numbers near zero is annoying compared to earlier releases
Reviewed by Joseph Pecoraro.
* UserInterface/CodeMirrorAdditions.js:
(alterNumber): Remove near zero check.
2013-08-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Download Web Archive of Inspected Page
https://bugs.webkit.org/show_bug.cgi?id=119774
Reviewed by Timothy Hatcher.
* UserInterface/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._saveDataToFile):
Allow a custom save handler which will do all the work.
* UserInterface/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype.get supportsSave):
(WebInspector.DOMTreeContentView.prototype.get saveData.saveHandler):
(WebInspector.DOMTreeContentView.prototype.get saveData):
Allow Save keyboard shortcut to download an archive viewing the DOM Tree.
* UserInterface/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._updateStatus):
* UserInterface/FrameTreeElement.js:
(WebInspector.FrameTreeElement):
(WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
(WebInspector.FrameTreeElement.prototype._mainResourceDidChange):
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders):
(WebInspector.FrameTreeElement.prototype._reloadPageClicked):
(WebInspector.FrameTreeElement.prototype._downloadButtonClicked):
(WebInspector.FrameTreeElement.prototype._updateDownloadButton):
(WebInspector.FrameTreeElement.prototype._pageArchiveStarted):
(WebInspector.FrameTreeElement.prototype._pageArchiveEnded):
Move handling of main frame TreeElement buttons to FrameTreeElement.
Add a Download button, and enable/disable it appropriately.
* UserInterface/ResourceTreeElement.css:
* UserInterface/TreeElementStatusButton.css: Copied from Source/WebInspectorUI/UserInterface/ResourceTreeElement.css.
(.item > .status > .status-button):
(.item > .status > .status-button > svg *):
(.item.selected > .status > .status-button > svg *):
(.item.selected > .status > .status-button:active > svg *):
(.item > .status > .status-button.disabled > svg *):
(.item.selected > .status > .status-button.disabled > svg *):
* UserInterface/TreeElementStatusButton.js: Added.
(WebInspector.TreeElementStatusButton):
(WebInspector.TreeElementStatusButton.prototype.get element):
(WebInspector.TreeElementStatusButton.prototype.get hidden):
(WebInspector.TreeElementStatusButton.prototype.set hidden):
(WebInspector.TreeElementStatusButton.prototype.get enabled):
(WebInspector.TreeElementStatusButton.prototype.set enabled):
(WebInspector.TreeElementStatusButton.prototype._clicked):
Make buttons in the TreeElement status a generic class to share styling
and handling of the buttons. New "disabled" state with even more
transparent is used when the page is downloading.
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.archiveMainFrame):
(WebInspector.canArchiveMainFrame):
Generic API for archiving the page and determining if you can archive it.
* UserInterface/InspectorBackendCommands.js:
* UserInterface/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.save):
* UserInterface/Images/DownloadArrow.svg: Added.
* Localizations/en.lproj/localizedStrings.js:
Misc. updates and new files.
2013-08-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Give reload icon an :active state and allow CSS to style some SVG images
https://bugs.webkit.org/show_bug.cgi?id=120384
Reviewed by Timothy Hatcher.
The Reload icon is duplicated just to provide different fill colors.
Convert from using <img> to an <svg> document for this image, and style
it with CSS. This also makes it trivial to add an :active state.
* UserInterface/ImageUtilities.js:
(.invokeCallbackWithDocument):
(.imageLoad):
(.imageError):
(wrappedSVGDocument):
Helpers for downloading and in memory caching SVG images.
* UserInterface/Images/Reload.svg:
* UserInterface/Images/ReloadSelected.svg: Removed.
Updated Reload image better matches the original design (slightly
larger). And the duplicate image can be removed.
* UserInterface/ResourceTreeElement.css:
(.item.resource > .status > .reload-button):
(.item.resource > .status > .reload-button > svg *):
(.item.resource.selected > .status > .reload-button > svg *):
(.item.resource.selected > .status > .reload-button:active > svg *):
Different styles, including a new :active style.
* UserInterface/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._updateStatusWithMainFrameButtons):
(WebInspector.ResourceTreeElement.prototype._updateStatus):
Handle updating the main frame's state asynchronously since loading the SVG
image document is asynchronous.
2013-08-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Debugger should have Continue to Here Context Menu
https://bugs.webkit.org/show_bug.cgi?id=120189
Reviewed by Timothy Hatcher.
When paused in the debugger and presenting a Context Menu in the
gutter, include a "Continue to Here" option. This requires a
script/line/column location combination.
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.continueToLocation):
* UserInterface/Resource.js:
(WebInspector.Resource.prototype.scriptForLocation):
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.continueToLocation):
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
2013-08-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: We should regenerate InspectorBackendCommands.js for Legacy Inspector.json versions
https://bugs.webkit.org/show_bug.cgi?id=120242
Reviewed by Timothy Hatcher.
- Include the iOS 6.0 Inspector.json which maps to Legacy/6.0/InspectorBackendCommands.js.
- Provide a helper script to regenerate the backend commands file for trunk and Versions.
- Regenerated file now includes enums and other minor changes.
* Scripts/update-InspectorBackendCommands.rb: Added.
* UserInterface/InspectorBackendCommands.js:
* UserInterface/Legacy/6.0/InspectorBackendCommands.js:
* Versions/Inspector-iOS-6.0.json: Added.
2013-08-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Breakpoints in the editors gutter should have a contextmenu
https://bugs.webkit.org/show_bug.cgi?id=120169
Reviewed by Timothy Hatcher.
Updated CodeMirror now has a gutterContextMenu event. Use that to give
breakpoint related context menus. Add, Edit, Enable/Disable, Delete, and
Reveal in Debugger Navigation Sidebar.
* Localizations/en.lproj/localizedStrings.js:
"Add Breakpoint", and "Reveal in Debugger Navigation Sidebar".
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.addBreakpoint):
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.revealInSidebar):
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.removeBreakpoints):
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.toggleBreakpoints):
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
Show a context menu when clicking on the gutter for 0 breakpoints,
1 breakpoint, or >1 breakpoints. The only tricky handler is addBreakpoint,
since that must update the TextEditor for the new breakpoint info.
* UserInterface/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype._gutterContextMenu):
Send to delegate if the delegate implements textEditorGutterContextMenu.
2013-08-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix js minification of updated CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=120231
Reviewed by Andy Estes.
Workaround a jsmin issue with "return //.test();" lines when
minifying JavaScript in production builds.
* Scripts/copy-user-interface-resources.sh:
* UserInterface/External/CodeMirror/codemirror.js:
(window.CodeMirror):
2013-08-22 Joseph Pecoraro <pecoraro@apple.com>
<https://webkit.org/b/120165> Web Inspector: Update CodeMirror to 3.16.1
Reviewed by Andy Estes.
* Tools/PrettyPrinting/codemirror.css:
* Tools/PrettyPrinting/codemirror.js:
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.js:
* UserInterface/External/CodeMirror/codemirror.css:
* UserInterface/External/CodeMirror/codemirror.js:
* UserInterface/External/CodeMirror/css.js:
* UserInterface/External/CodeMirror/javascript.js:
* UserInterface/External/CodeMirror/xml.js:
2013-08-21 Brent Fulgham <bfulgham@apple.com>
[Windows] Clean up project file after %PlatformArchitecture% change landed.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Remove hard-coded settings covered
by our configuration files.
* WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Use the %PlatformArchitecture%
macro to support 32- and 64-bit builds.
2013-08-20 Brent Fulgham <bfulgham@apple.com>
<http://webkit.org/b/120098> [Windows] Enable the New Web Inspector
Reviewed by Brian Weinstein.
Add a new project to copy files to the appropriate spots in the
Windows port.
* WebInspectorUI.vcxproj: Added.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Added.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters: Added.
* WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Added.
* WebInspectorUI.vcxproj/WebInspectorUIPreBuild.cmd: Added.
2013-08-19 James Craig <james@cookiecrook.com>
<https://webkit.org/b/118106> Web Inspector: AX: Add additional contextual labels for Error/Warnings/Logs that will be spoken for screen readers
Reviewed by Joseph Pecoraro.
Changed general console "Output" string to more specific "Error", "Warning", etc for accessibility.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/ConsoleCommandResult.js:
* UserInterface/ConsoleMessageImpl.js:
2013-08-16 James Craig <james@cookiecrook.com>
<https://webkit.org/b/118105> Web Inspector: AX: Add support for ARIA tablists/tabs to inspector tabs
Reviewed by Joseph Pecoraro.
Updating accessibility roles and attributes for single-select toolbar item sets.
* UserInterface/ActivateButtonNavigationItem.js:
(WebInspector.ActivateButtonNavigationItem):
(WebInspector.ActivateButtonNavigationItem.prototype.set activated):
* UserInterface/ActivateButtonToolbarItem.js:
(WebInspector.ActivateButtonToolbarItem):
* UserInterface/ButtonToolbarItem.js:
(WebInspector.ButtonToolbarItem):
* UserInterface/SidebarPanel.js:
(WebInspector.SidebarPanel):
* UserInterface/Toolbar.js:
(WebInspector.Toolbar):
2013-08-13 Dean Jackson <dino@apple.com>
<https://webkit.org/b/119778> Add Canvas protocol observer
Reviewed by Joseph Pecoraro.
In preparation for listening to backend events about canvas profiling,
add a canvas observer.
* UserInterface/CanvasObserver.js: New empty CanvasObserver object.
(WebInspector.CanvasObserver):
(WebInspector.CanvasObserver.prototype.contextCreated):
(WebInspector.CanvasObserver.prototype.traceLogsRemoved):
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.loaded):
2013-08-11 Dean Jackson <dino@apple.com>
Update localizedStrings - I think I checked in an unmerged version
in the previous commit.
* Localizations/en.lproj/localizedStrings.js:
2013-08-11 Dean Jackson <dino@apple.com>
Bootstrap canvas profiler
https://bugs.webkit.org/show_bug.cgi?id=119652
<rdar://problem/14703665>
Reviewed by Joseph Pecoraro.
Add enough to get an empty Canvas profile recording
and displayed.
* Localizations/en.lproj/localizedStrings.js: Add canvas strings.
* UserInterface/CanvasProfileObject.js: Added. Mostly copied from CSS Selector Profiles.
* UserInterface/CanvasProfileType.js: Added. Ditto.
* UserInterface/CanvasDataGridNode.js: Added. Ditto.
* UserInterface/CanvasProfileView.js: Added. Ditto.
* UserInterface/ContentView.js:
(WebInspector.ContentView): Add support for the new View type.
(WebInspector.ContentView.isViewable):
* UserInterface/InstrumentSidebarPanel.js:
(WebInspector.InstrumentSidebarPanel): Add support for canvas profiles.
(WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphMousedOver):
(WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphMousedDown):
(WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphClicked):
(WebInspector.InstrumentSidebarPanel.prototype._profileTypeWasSelected):
(WebInspector.InstrumentSidebarPanel.prototype._profilesCleared):
* UserInterface/Main.html: Load the new files.
* UserInterface/ProfileManager.js: New methods and support for canvas profiles.
(WebInspector.ProfileManager):
(WebInspector.ProfileManager.prototype.initialize):
(WebInspector.ProfileManager.prototype.isProfilingCanvas):
(WebInspector.ProfileManager.prototype.startProfilingCanvas):
(WebInspector.ProfileManager.prototype.stopProfilingCanvas):
(WebInspector.ProfileManager.prototype._checkForInterruptions):
(WebInspector.ProfileManager.prototype._attemptToResumeProfiling):
2013-08-07 Timothy Hatcher <timothy@apple.com>
Switch the generated images off of PDFs and onto SVGs now that bug 119492 is fixed.
https://bugs.webkit.org/show_bug.cgi?id=118677
Reviewed by Joseph Pecoraro.
* UserInterface/ApplicationCacheDetailsSidebarPanel.js:
(WebInspector.ApplicationCacheDetailsSidebarPanel):
* UserInterface/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
* UserInterface/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
* UserInterface/ContentBrowser.js:
(WebInspector.ContentBrowser):
* UserInterface/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel):
* UserInterface/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
* UserInterface/DataGrid.js:
(WebInspector.DataGrid.prototype._generateSortIndicatorImagesIfNeeded):
* UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
* UserInterface/DetailsSection.js:
(WebInspector.DetailsSection.prototype._generateDisclosureTrianglesIfNeeded):
* UserInterface/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
* UserInterface/Images/BackArrow.pdf: Removed.
* UserInterface/Images/BottomUpTree.pdf: Removed.
* UserInterface/Images/Breakpoints.pdf: Removed.
* UserInterface/Images/Close.pdf: Removed.
* UserInterface/Images/Crosshair.pdf: Removed.
* UserInterface/Images/DisclosureTriangleSmallClosed.pdf: Removed.
* UserInterface/Images/DisclosureTriangleSmallOpen.pdf: Removed.
* UserInterface/Images/DisclosureTriangleTinyClosed.pdf: Removed.
* UserInterface/Images/DisclosureTriangleTinyOpen.pdf: Removed.
* UserInterface/Images/DockBottom.pdf: Removed.
* UserInterface/Images/DockRight.pdf: Removed.
* UserInterface/Images/ForwardArrow.pdf: Removed.
* UserInterface/Images/GoToArrow.pdf: Removed.
* UserInterface/Images/LayerBorders.pdf: Removed.
* UserInterface/Images/LessColumns.pdf: Removed.
* UserInterface/Images/Locked.pdf: Removed.
* UserInterface/Images/MoreColumns.pdf: Removed.
* UserInterface/Images/NavigationItemAngleBrackets.pdf: Removed.
* UserInterface/Images/NavigationItemBrushAndRuler.pdf: Removed.
* UserInterface/Images/NavigationItemBug.pdf: Removed.
* UserInterface/Images/NavigationItemCurleyBraces.pdf: Removed.
* UserInterface/Images/NavigationItemFile.pdf: Removed.
* UserInterface/Images/NavigationItemLayers.pdf: Removed.
* UserInterface/Images/NavigationItemLog.pdf: Removed.
* UserInterface/Images/NavigationItemMagnifyingGlass.pdf: Removed.
* UserInterface/Images/NavigationItemStopwatch.pdf: Removed.
* UserInterface/Images/NavigationItemStorage.pdf: Removed.
* UserInterface/Images/NavigationItemTrash.pdf: Removed.
* UserInterface/Images/NavigationItemVariable.pdf: Removed.
* UserInterface/Images/Pause.pdf: Removed.
* UserInterface/Images/Percent.pdf: Removed.
* UserInterface/Images/Plus.pdf: Removed.
* UserInterface/Images/Resume.pdf: Removed.
* UserInterface/Images/ShadowDOM.pdf: Removed.
* UserInterface/Images/SortIndicatorDownArrow.pdf: Removed.
* UserInterface/Images/SortIndicatorUpArrow.pdf: Removed.
* UserInterface/Images/SplitToggleDown.pdf: Removed.
* UserInterface/Images/SplitToggleUp.pdf: Removed.
* UserInterface/Images/StepInto.pdf: Removed.
* UserInterface/Images/StepOut.pdf: Removed.
* UserInterface/Images/StepOver.pdf: Removed.
* UserInterface/Images/Undock.pdf: Removed.
* UserInterface/InstrumentSidebarPanel.js:
(WebInspector.InstrumentSidebarPanel):
* UserInterface/JavaScriptProfileView.js:
(WebInspector.JavaScriptProfileView):
* UserInterface/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel):
* UserInterface/LogContentView.js:
(WebInspector.LogContentView):
* UserInterface/Main.js:
(WebInspector.contentLoaded):
(WebInspector._updateDockNavigationItems):
(WebInspector._generateDisclosureTriangleImages):
* UserInterface/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._generateDisclosureTrianglesIfNeeded):
* UserInterface/ProfileView.js:
(WebInspector.ProfileView):
* UserInterface/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
* UserInterface/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
* UserInterface/ScriptContentView.js:
(WebInspector.ScriptContentView):
* UserInterface/TextContentView.js:
(WebInspector.TextContentView):
* UserInterface/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
* UserInterface/TimelinesContentView.js:
2013-08-08 Dean Jackson <dino@apple.com>
Remove use of prefixed transition event
https://bugs.webkit.org/show_bug.cgi?id=119598
Reviewed by Joseph Pecoraro.
"webkitTransitionEnd" -> "transitionend".
* UserInterface/Popover.js:
(WebInspector.Popover):
(WebInspector.Popover.prototype.handleEvent):
2013-08-08 Dean Jackson <dino@apple.com>
Unprefix use of transitions in Web Inspector code
https://bugs.webkit.org/show_bug.cgi?id=119588
Reviewed by Tim Hatcher.
Replace "-webkit-transition" with "transition".
* UserInterface/CSSCompletions.js:
(WebInspector.CSSCompletions.requestCSSNameCompletions.collectPropertyNameForCodeMirror):
* UserInterface/FindBanner.css:
(.find-banner):
(.find-banner.showing):
(.supports-find-banner.no-find-banner-transition):
(.supports-find-banner):
(.supports-find-banner.showing-find-banner):
* UserInterface/NetworkTimeline.css:
(.network-graph-side:hover .network-graph-label):
* UserInterface/Popover.css:
(.popover.fade-out):
2013-08-08 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: Use granular DOMStorage modification events to avoid complete DataGrid update.
https://bugs.webkit.org/show_bug.cgi?id=119541
Reviewed by Joseph Pecoraro.
InspectorDOMStorageAgent sends more granular events about the storage modifications.
Using these would avoid the complete rebuilding of the DataGrid.
* UserInterface/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView.prototype.itemsCleared):
(WebInspector.DOMStorageContentView.prototype.itemRemoved):
(WebInspector.DOMStorageContentView.prototype.itemAdded):
(WebInspector.DOMStorageContentView.prototype.itemUpdated):
* UserInterface/DOMStorageObserver.js:
(WebInspector.DOMStorageObserver.prototype.domStorageItemsCleared):
(WebInspector.DOMStorageObserver.prototype.domStorageItemRemoved):
(WebInspector.DOMStorageObserver.prototype.domStorageItemAdded):
(WebInspector.DOMStorageObserver.prototype.domStorageItemUpdated):
* UserInterface/StorageManager.js:
(WebInspector.StorageManager.prototype.domStorageItemsCleared):
(WebInspector.StorageManager.prototype.domStorageItemRemoved):
(WebInspector.StorageManager.prototype.domStorageItemAdded):
(WebInspector.StorageManager.prototype.domStorageItemUpdated):
2013-08-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove stale code in ResourceContentView
https://bugs.webkit.org/show_bug.cgi?id=119527
The handling of Resource Type changes moved to ResourceClusterContentView,
this removeEventListener is stale and doesn't do anything anymore.
Reviewed by Timothy Hatcher.
* UserInterface/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype.closed):
2013-08-06 Timothy Hatcher <timothy@apple.com>
Convert all Web Inspector PDFs to SVGs.
Some PDFs need to stay around until bug 119492 is fixed. But the SVGs are there for when they are needed.
Updated some of the existing SVGs to be consistent with the format of the new SVGs.
https://bugs.webkit.org/show_bug.cgi?id=118677
Rubber-stamped by Joseph Pecoraro.
* UserInterface/BreakpointIcons.css:
* UserInterface/BreakpointTreeElement.css:
* UserInterface/CallFrameIcons.css:
* UserInterface/DatabaseContentView.css:
* UserInterface/FilterBar.css:
* UserInterface/HierarchicalPathComponent.css:
* UserInterface/Images/BackArrow.svg: Added.
* UserInterface/Images/BottomUpTree.svg: Added.
* UserInterface/Images/BreakpointButton.pdf: Removed.
* UserInterface/Images/BreakpointButton.svg: Added.
* UserInterface/Images/BreakpointInactiveButton.pdf: Removed.
* UserInterface/Images/BreakpointInactiveButton.svg: Added.
* UserInterface/Images/Breakpoints.svg: Added.
* UserInterface/Images/Close.svg: Added.
* UserInterface/Images/Crosshair.svg: Added.
* UserInterface/Images/DOMCharacterData.pdf: Removed.
* UserInterface/Images/DOMCharacterData.svg: Added.
* UserInterface/Images/DOMComment.pdf: Removed.
* UserInterface/Images/DOMComment.svg: Added.
* UserInterface/Images/DOMDocument.pdf: Removed.
* UserInterface/Images/DOMDocument.svg: Added.
* UserInterface/Images/DOMDocumentType.pdf: Removed.
* UserInterface/Images/DOMDocumentType.svg: Added.
* UserInterface/Images/DOMElement.pdf: Removed.
* UserInterface/Images/DOMElement.svg: Added.
* UserInterface/Images/DOMNode.pdf: Removed.
* UserInterface/Images/DOMNode.svg: Added.
* UserInterface/Images/DOMTextNode.pdf: Removed.
* UserInterface/Images/DOMTextNode.svg: Added.
* UserInterface/Images/DOMTree.pdf: Removed.
* UserInterface/Images/DOMTree.svg: Added.
* UserInterface/Images/DisclosureTriangleSmallClosed.svg: Added.
* UserInterface/Images/DisclosureTriangleSmallOpen.svg: Added.
* UserInterface/Images/DisclosureTriangleTinyClosed.svg: Added.
* UserInterface/Images/DisclosureTriangleTinyOpen.svg: Added.
* UserInterface/Images/DockBottom.svg: Added.
* UserInterface/Images/DockRight.svg: Added.
* UserInterface/Images/Error.pdf: Removed.
* UserInterface/Images/Error.svg: Added.
* UserInterface/Images/ErrorSmall.pdf: Removed.
* UserInterface/Images/Errors.svg:
* UserInterface/Images/ErrorsEnabled.svg:
* UserInterface/Images/EventListener.pdf: Removed.
* UserInterface/Images/EventListener.svg: Added.
* UserInterface/Images/Exception.pdf: Removed.
* UserInterface/Images/Exception.svg: Added.
* UserInterface/Images/FilterFieldGlyph.pdf: Removed.
* UserInterface/Images/FilterFieldGlyph.svg: Added.
* UserInterface/Images/ForwardArrow.svg: Added.
* UserInterface/Images/Function.pdf: Removed.
* UserInterface/Images/Function.svg: Added.
* UserInterface/Images/GoToArrow.svg: Added.
* UserInterface/Images/HierarchicalNavigationItemChevron.pdf: Removed.
* UserInterface/Images/HierarchicalNavigationItemChevron.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner1.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner1.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner10.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner10.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner11.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner11.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner12.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner12.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner2.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner2.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner3.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner3.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner4.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner4.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner5.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner5.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner6.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner6.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner7.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner7.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner8.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner8.svg: Added.
* UserInterface/Images/IndeterminateProgressSpinner9.pdf: Removed.
* UserInterface/Images/IndeterminateProgressSpinner9.svg: Added.
* UserInterface/Images/Issues.svg:
* UserInterface/Images/IssuesEnabled.svg:
* UserInterface/Images/LayerBorders.svg: Added.
* UserInterface/Images/LessColumns.svg: Added.
* UserInterface/Images/Locked.svg: Added.
* UserInterface/Images/Logs.svg:
* UserInterface/Images/Memory.svg:
* UserInterface/Images/MoreColumns.svg: Added.
* UserInterface/Images/Native.pdf: Removed.
* UserInterface/Images/Native.svg: Added.
* UserInterface/Images/NavigationItemAngleBrackets.svg: Added.
* UserInterface/Images/NavigationItemBrushAndRuler.svg: Added.
* UserInterface/Images/NavigationItemBug.svg: Added.
* UserInterface/Images/NavigationItemCurleyBraces.svg: Added.
* UserInterface/Images/NavigationItemFile.svg: Added.
* UserInterface/Images/NavigationItemLayers.svg: Added.
* UserInterface/Images/NavigationItemLog.svg: Added.
* UserInterface/Images/NavigationItemMagnifyingGlass.svg: Added.
* UserInterface/Images/NavigationItemStopwatch.svg: Added.
* UserInterface/Images/NavigationItemStorage.svg: Added.
* UserInterface/Images/NavigationItemTrash.svg: Added.
* UserInterface/Images/NavigationItemVariable.svg: Added.
* UserInterface/Images/NetworkBarLabelCalloutLeft.pdf: Removed.
* UserInterface/Images/NetworkBarLabelCalloutLeft.svg: Added.
* UserInterface/Images/NetworkBarLabelCalloutRight.pdf: Removed.
* UserInterface/Images/NetworkBarLabelCalloutRight.svg: Added.
* UserInterface/Images/NetworkBarLabelCalloutWhiteLeft.pdf: Removed.
* UserInterface/Images/NetworkBarLabelCalloutWhiteLeft.svg: Added.
* UserInterface/Images/NetworkBarLabelCalloutWhiteRight.pdf: Removed.
* UserInterface/Images/NetworkBarLabelCalloutWhiteRight.svg: Added.
* UserInterface/Images/Pause.svg: Added.
* UserInterface/Images/Percent.svg: Added.
* UserInterface/Images/Plus.svg: Added.
* UserInterface/Images/PseudoElement.pdf: Removed.
* UserInterface/Images/PseudoElement.svg: Added.
* UserInterface/Images/Reflection.pdf: Removed.
* UserInterface/Images/Reflection.svg: Added.
* UserInterface/Images/Reload.svg:
* UserInterface/Images/ReloadSelected.svg:
* UserInterface/Images/Request.pdf: Removed.
* UserInterface/Images/Request.svg: Added.
* UserInterface/Images/Resources.svg:
* UserInterface/Images/Response.pdf: Removed.
* UserInterface/Images/Response.svg: Added.
* UserInterface/Images/ResultLine.pdf: Removed.
* UserInterface/Images/ResultLine.svg: Added.
* UserInterface/Images/Resume.svg: Added.
* UserInterface/Images/ShadowDOM.svg: Added.
* UserInterface/Images/SortIndicatorDownArrow.svg: Added.
* UserInterface/Images/SortIndicatorUpArrow.svg: Added.
* UserInterface/Images/SourceCode.pdf: Removed.
* UserInterface/Images/SourceCode.svg: Added.
* UserInterface/Images/SplitToggleDown.svg: Added.
* UserInterface/Images/SplitToggleUp.svg: Added.
* UserInterface/Images/StepInto.svg: Added.
* UserInterface/Images/StepOut.svg: Added.
* UserInterface/Images/StepOver.svg: Added.
* UserInterface/Images/StyleRuleAuthor.pdf: Removed.
* UserInterface/Images/StyleRuleAuthor.svg: Added.
* UserInterface/Images/StyleRuleInherited.pdf: Removed.
* UserInterface/Images/StyleRuleInherited.svg: Added.
* UserInterface/Images/StyleRuleInheritedElement.pdf: Removed.
* UserInterface/Images/StyleRuleInheritedElement.svg: Added.
* UserInterface/Images/StyleRuleInspector.pdf: Removed.
* UserInterface/Images/StyleRuleInspector.svg: Added.
* UserInterface/Images/StyleRuleUser.pdf: Removed.
* UserInterface/Images/StyleRuleUser.svg: Added.
* UserInterface/Images/StyleRuleUserAgent.pdf: Removed.
* UserInterface/Images/StyleRuleUserAgent.svg: Added.
* UserInterface/Images/Time.svg:
* UserInterface/Images/Undock.svg: Added.
* UserInterface/Images/UpDownArrows.svg:
* UserInterface/Images/UserInputPrompt.pdf: Removed.
* UserInterface/Images/UserInputPrompt.svg: Added.
* UserInterface/Images/UserInputPromptPrevious.pdf: Removed.
* UserInterface/Images/UserInputPromptPrevious.svg: Added.
* UserInterface/Images/UserInputPromptPreviousSelected.pdf: Removed.
* UserInterface/Images/UserInputPromptPreviousSelected.svg: Added.
* UserInterface/Images/UserInputResult.pdf: Removed.
* UserInterface/Images/UserInputResult.svg: Added.
* UserInterface/Images/UserInputResultSelected.pdf: Removed.
* UserInterface/Images/UserInputResultSelected.svg: Added.
* UserInterface/Images/Warning.pdf: Removed.
* UserInterface/Images/Warning.svg: Added.
* UserInterface/Images/WarningSmall.pdf: Removed.
* UserInterface/Images/Weight.svg:
* UserInterface/IndeterminateProgressSpinner.css:
* UserInterface/LayerTreeSidebarPanel.css:
* UserInterface/LogContentView.css:
* UserInterface/Main.css:
* UserInterface/NetworkTimeline.css:
* UserInterface/PathComponentIcons.css:
* UserInterface/QuickConsole.css:
* UserInterface/RulesStyleDetailsPanel.css:
* UserInterface/SearchIcons.css:
* UserInterface/StyleRuleIcons.css:
2013-07-23 David Farler <dfarler@apple.com>
Provide optional OTHER_CFLAGS, OTHER_CPPFLAGS, OTHER_LDFLAGS additions for building with ASAN
https://bugs.webkit.org/show_bug.cgi?id=117762
Reviewed by Mark Rowe.
* Configurations/DebugRelease.xcconfig:
Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS.
2013-07-30 Roland Takács <rtakacs@inf.u-szeged.hu>
Web Inspector: doesn't use localized user interface at remote inspector
https://bugs.webkit.org/show_bug.cgi?id=119252
Reviewed by Timothy Hatcher.
Added a flag in order to not use localizedStrings in remote inspector.
* UserInterface/InspectorFrontendHostStub.js:
* UserInterface/LoadLocalizedStrings.js:
* UserInterface/Main.js:
(WebInspector.UIString):
2013-07-24 Antoine Quint <graouts@apple.com>
Web Inspector: control+clicking on a numeric token should not show the context menu
https://bugs.webkit.org/show_bug.cgi?id=119048
Reviewed by Timothy Hatcher.
Track "contextmenu" events when we're hovering a token containing a numeric value
and call preventDefault() in the event handler to ensure that the context menu does
not appear.
* UserInterface/CodeMirrorDragToAlterNumberController.js:
(WebInspector.CodeMirrorDragToAlterNumberController.prototype.handleEvent):
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._setTracksMouseClickAndDrag):
2013-07-24 Antoine Quint <graouts@apple.com>
Web Inspector: support click-and-drag editing of CSS numeric values
https://bugs.webkit.org/show_bug.cgi?id=118896
Reviewed by Timothy Hatcher.
Add support for adjustment of numeric values in the various CodeMirror editors
by holding the option key and dragging the mouse. By default, dragging one pixel
changes the value by 1, but key modifiers allow to customize that behavior by using
the control key to change the value to 0.1 and the shift key to change the value to 10.
* UserInterface/CodeMirrorAdditions.js:
Split adjustNumber() into two methods such that we may use its logic from the
CodeMirrorDragToAlterNumberController. The new method, CodeMirror.prototype.alterNumberInRange()
allow to set begin and end CodeMirror positions such that the existing alterNumber()
can use information based on the current cursor position, and CodeMirrorDragToAlterNumberController
can use information based on the hovered token.
* UserInterface/CodeMirrorDragToAlterNumberController.css: Added.
(.CodeMirror.drag-to-adjust .CodeMirror-lines):
Set the cursor to "col-resize" when a number token is hovered and the option key
modifier is pressed.
* UserInterface/CodeMirrorDragToAlterNumberController.js: Added.
(WebInspector.CodeMirrorDragToAlterNumberController):
We define the new "dragToAdjustNumbers" CodeMirror option.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype.set enabled):
The "enabled" property controls whether the associated CodeMirror instance
may act upon hovering numeric values to adjust them via a drag interaction.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype.handleEvent):
Proxy for various event-specific methods to deal with mouse events. We also bind
the value of the "active" property to the "mouseenter" and "mouseleave" events
if we're not currently dragging-to-adjust.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._setActive):
The "active" property is set when the mouse is over the associated CodeMirror
editor and when it's on we track all "mousemove" events such that we may
identify tokens containing numeric values. We also start tracking changes to the
option modifier key press state such that we may change the cursor accordingly.
We ensure that the CodeMirror instance is not read-only such that we don't
allow adjustment of numeric values in places where they couldn't be committed.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._setDragging):
The "dragging" property reflects whether a dragging-to-adjust interaction
is underway. We call into WebInspector.elementDragStart() and WebInspector.elementDragEnd()
to set the cursor to "col-resize" for the whole document while tracking mousemove
and mouseup events at the window level such that we can drag-to-adjust even outside
of the inspector window.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._setTracksMouseClickAndDrag):
The "tracksMouseClickAndDrag" property is set to true whenever the controller
has detected that a token containing a numeric value is being hovered and the
option modifier key is pressed. This property controls the cursor value for the
hovered token to reflect that a drag-to-adjust interaction is allowed and tracks
"mousedown" events for when a dragging interaction may be initiated.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._modifiersDidChange):
Sets the "tracksMouseClickAndDrag" property depending on the availability of a hovered
token containing a numeric value and the pressed state of the option modified key.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._mouseMoved):
Handles "mousemove" events when we're not in the "dragging" state such that we
check the currently hovered token, if any, to see if it contains a number that
we may drag-to-adjust. Subsequently, we may enter the "tracksMouseClickAndDrag"
state.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._mouseWasPressed):
Handles "mousedown" events during a drag-to-adjust interaction. We simply track
the current mouse position in the x-axis and enter the "dragging" state.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._mouseWasDragged):
Handles "mousemove" events when we are in the "dragging" state. We compare the
current mouse position in the x-axis with the last recoreded value and determine
the amount by which we should adjust the value, taking into account the shift and
control modifier keys. We then call into WebInspector.alterNumberInRange() to
apply the change amount to the associated CodeMirror editor.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._mouseWasReleased):
Handles "mouseup" events, simply exiting the "dragging" state and resetting other
parameters we would have customized as a result of the drag-to-adjust interaction.
(WebInspector.CodeMirrorDragToAlterNumberController.prototype._reset):
Resetting some parameters we would have customized as a result of the drag-to-adjust
interaction.
* UserInterface/Main.html:
Include the new CodeMirrorDragToAlterNumberController.{js|css} files.
* UserInterface/Main.js:
(WebInspector.elementDragStart):
(WebInspector.elementDragEnd):
Add an extra parameter to elementDragStart() such that the caller may specify the event
target for the "mousemove" and "mouseup" events.
2013-07-23 Roland Takacs <rtakacs@inf.u-szeged.hu>
WebSocket initialization to use remote inspector
https://bugs.webkit.org/show_bug.cgi?id=118678
Reviewed by Timothy Hatcher.
Add WebSocket initialization and define a 'connect-src' directive in the
Content-Security-Policy HTTP header to enable the connection.
* UserInterface/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.sendMessageToBackend):
* UserInterface/Main.html:
* UserInterface/Main.js:
(WebInspector.loaded):
(WebInspector._initializeWebSocketIfNeeded.createSocket.WebInspector):
(WebInspector._initializeWebSocketIfNeeded.createSocket):
(WebInspector._initializeWebSocketIfNeeded):
2013-07-22 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: When right-clicking on a DataGrid column, show editing
menu option as "Edit <columnName>" instead of just "Edit"
https://bugs.webkit.org/show_bug.cgi?id=118970
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js: Add literal "Edit '%s'"
* UserInterface/DataGrid.js: Change "Edit" for "Edit <columnTitle>"
(WebInspector.DataGrid.prototype._contextMenuInDataTable):
2013-07-21 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Cleanup InspectorFrontendHostStub.js
https://bugs.webkit.org/show_bug.cgi?id=118959
Reviewed by Timothy Hatcher.
Remove some functions because we dont use on New Inspector.
* UserInterface/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub):
(.WebInspector.InspectorFrontendHostStub.prototype.save):
2013-07-17 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Fix a typo in WebInspector.loaded
https://bugs.webkit.org/show_bug.cgi?id=118834
Reviewed by Timothy Hatcher.
* UserInterface/Main.js:
(WebInspector.loaded):
2013-07-16 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: InspectorFrontendHost is undefined
https://bugs.webkit.org/show_bug.cgi?id=118715
Reviewed by Timothy Hatcher.
Add InspectorFrontendHostStub.js to New Inspector because of the InspectorFrontendHost initialization.
* UserInterface/InspectorFrontendHostStub.js: Added.
(.WebInspector.InspectorFrontendHostStub):
(.WebInspector.InspectorFrontendHostStub.prototype.platform):
(.WebInspector.InspectorFrontendHostStub.prototype.port):
(.WebInspector.InspectorFrontendHostStub.prototype.bringToFront):
(.WebInspector.InspectorFrontendHostStub.prototype.closeWindow):
(.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
(.WebInspector.InspectorFrontendHostStub.prototype.setAttachedWindowHeight):
(.WebInspector.InspectorFrontendHostStub.prototype.setAttachedWindowWidth):
(.WebInspector.InspectorFrontendHostStub.prototype.setToolbarHeight):
(.WebInspector.InspectorFrontendHostStub.prototype.moveWindowBy):
(.WebInspector.InspectorFrontendHostStub.prototype.loaded):
(.WebInspector.InspectorFrontendHostStub.prototype.localizedStringsURL):
(.WebInspector.InspectorFrontendHostStub.prototype.inspectedURLChanged):
(.WebInspector.InspectorFrontendHostStub.prototype.copyText):
(.WebInspector.InspectorFrontendHostStub.prototype.openInNewTab):
(.WebInspector.InspectorFrontendHostStub.prototype.canSave):
(.WebInspector.InspectorFrontendHostStub.prototype.save):
(.WebInspector.InspectorFrontendHostStub.prototype.append):
(.WebInspector.InspectorFrontendHostStub.prototype.close.cleanup):
(.WebInspector.InspectorFrontendHostStub.prototype.close):
(.WebInspector.InspectorFrontendHostStub.prototype.sendMessageToBackend):
(.WebInspector.InspectorFrontendHostStub.prototype.loadResourceSynchronously):
* UserInterface/Main.html:
2013-07-15 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Remove unused columns from select query in ImageUtilities.js
https://bugs.webkit.org/show_bug.cgi?id=118694
Reviewed by Timothy Hatcher.
* UserInterface/ImageUtilities.js: Remove pixelRatio and formatVersion from select query.
2013-07-15 Timothy Hatcher <timothy@apple.com>
Update CodeMirror to 3.14.1.
https://bugs.webkit.org/show_bug.cgi?id=118605
Reviewed by Joseph Pecoraro.
* Scripts/update-codemirror-resources.rb: Updated the list to add closebrackets.js and sorted the files.
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* Tools/PrettyPrinting/Formatter.js:
* Tools/PrettyPrinting/FormatterContentBuilder.js:
* Tools/PrettyPrinting/codemirror.css:
* Tools/PrettyPrinting/codemirror.js:
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.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/javascript.js:
* UserInterface/External/CodeMirror/matchbrackets.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/xml.js:
2013-07-15 Timothy Hatcher <timothy@apple.com>
Make sure to add main resources for sub-frames to the Network Timeline.
https://bugs.webkit.org/show_bug.cgi?id=118649
Reviewed by Joseph Pecoraro.
* UserInterface/TimelineManager.js:
(WebInspector.TimelineManager.prototype._mainResourceDidChange): Remove the
call to _clear() and early return for event.target.isMainFrame(). The _clear()
is already handled if needed by the call to _startAutoRecording(), so it was
redundant here and caused the erroneous addition of isMainFrame() early return.
2013-07-15 Timothy Hatcher <timothy@apple.com>
Properly handle style text changes while the color popover is open.
https://bugs.webkit.org/show_bug.cgi?id=118575
Reviewed by Joseph Pecoraro.
* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror):
The original text marker might have been cleared by a style update, in this case we need to
find the new color text marker so we know the right range for the new style color text.
2013-07-14 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r152598.
http://trac.webkit.org/changeset/152598
https://bugs.webkit.org/show_bug.cgi?id=118658
totally broke the web inspector (JS ERROR: SyntaxError:
Expected token '}') (Requested by thorton on #webkit).
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* Tools/PrettyPrinting/Formatter.js:
* Tools/PrettyPrinting/FormatterContentBuilder.js:
* Tools/PrettyPrinting/codemirror.css:
(.CodeMirror-scrollbar-filler):
(.CodeMirror-gutters):
(.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
(.CodeMirror-widget):
* Tools/PrettyPrinting/codemirror.js:
(window.CodeMirror):
(window.CodeMirror.):
(.do):
(moveVisually):
* Tools/PrettyPrinting/css.js:
(.):
(CodeMirror):
* Tools/PrettyPrinting/javascript.js:
(.):
* UserInterface/External/CodeMirror/codemirror.css:
(.CodeMirror-widget):
* UserInterface/External/CodeMirror/codemirror.js:
(window.CodeMirror):
(window.CodeMirror.):
* UserInterface/External/CodeMirror/coffeescript.js:
* UserInterface/External/CodeMirror/comment.js:
(.):
* UserInterface/External/CodeMirror/css.js:
(.):
(CodeMirror):
* UserInterface/External/CodeMirror/javascript.js:
(.):
* UserInterface/External/CodeMirror/matchbrackets.js:
(.):
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/xml.js:
2013-07-12 Timothy Hatcher <timothy@apple.com>
Update CodeMirror to 7f560afa1c (3.14+).
https://bugs.webkit.org/show_bug.cgi?id=118605
Reviewed by Sam Weinig.
* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* Tools/PrettyPrinting/Formatter.js:
* Tools/PrettyPrinting/FormatterContentBuilder.js:
* Tools/PrettyPrinting/codemirror.css:
* Tools/PrettyPrinting/codemirror.js:
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.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/javascript.js:
* UserInterface/External/CodeMirror/matchbrackets.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/xml.js:
2013-07-12 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Pass null for sidebarPanels and role in WebInspector.Sidebar()
https://bugs.webkit.org/show_bug.cgi?id=118589
Reviewed by Timothy Hatcher.
sidebarPanels : It is necessary to get correct argument after r152141.
Without this, error messages can be displayed.
role : Could pass null for it since default value is "group".
* UserInterface/Main.js:
(WebInspector.contentLoaded):
2013-07-03 Timothy Hatcher <timothy@apple.com>
Guard remaining calls to decodeURIComponent with a try/catch.
https://bugs.webkit.org/show_bug.cgi?id=118371
Reviewed by Joseph Pecoraro.
* UserInterface/Main.js:
(WebInspector.displayNameForURL):
(WebInspector.updateWindowTitle):
* UserInterface/Utilities.js:
(arrayResult):
(queryString):
2013-07-03 Jessie Berlin <jberlin@apple.com>
Ran update-webkit-localizable-strings.
Rubber-stamped by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
2013-06-28 Dean Jackson <dino@apple.com>
Update Apple System fonts in auto-complete
https://bugs.webkit.org/show_bug.cgi?id=118205
<rdar://problem/14308488>
Reviewed by Joseph Pecoraro.
Update for the new Apple System font names, and remove some invalid entries.
* UserInterface/CSSKeywordCompletions.js: General cleanup. Note that
"apple-system-short-caption2" looks like it was accidentally omitted. It wasn't :)
2013-06-28 James Craig <james@cookiecrook.com>
Web Inspector: AX: VoiceOver speaks all inspector search fields as 'required'
https://bugs.webkit.org/show_bug.cgi?id=118122
Reviewed by Timothy Hatcher.
Removed bogus "required" state, and switched :valid selector to use :not(:placeholder-shown)
so that screen readers will not indicate a bogus :required/:invalid state to the user.
Minor cosmetic difference blocked by http://webkit.org/b/118162
* UserInterface/FilterBar.css:
(.filter-bar > input[type="search"]:focus):
(.filter-bar > input[type="search"]:not(:placeholder-shown)):
* UserInterface/FilterBar.js:
(WebInspector.FilterBar):
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
* UserInterface/SearchBar.css:
(.search-bar > input[type="search"]:focus):
(.search-bar > input[type="search"]:not(:placeholder-shown)):
* UserInterface/SearchBar.js:
(WebInspector.SearchBar):
2013-06-27 James Craig <james@cookiecrook.com>
Web Inspector: AX: Add container ARIA roles (toolbar, main, labeled regions, etc.)
so the layout is more discoverable to screen reader users
https://bugs.webkit.org/show_bug.cgi?id=118104
Reviewed by Timothy Hatcher.
Made the basic layout (toolbar, sidebars, main) of the Web Inspector understandable
and navigable with VoiceOver.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/ButtonNavigationItem.js:
* UserInterface/CSSStyleDetailsSidebarPanel.js:
* UserInterface/DashboardManager.js:
* UserInterface/Main.js:
* UserInterface/NavigationBar.js:
* UserInterface/NavigationItem.js:
* UserInterface/NavigationSidebarPanel.js:
* UserInterface/RadioButtonNavigationItem.js:
* UserInterface/Sidebar.js:
* UserInterface/SidebarPanel.js:
* UserInterface/Toolbar.js:
2013-06-27 James Craig <james@cookiecrook.com>
Web Inspector: AX: Console log of the Inspector does not announce output for screen readers
https://bugs.webkit.org/show_bug.cgi?id=115976
Reviewed by Timothy Hatcher.
Main console log area (div.console-messages) is now an ARIA live region (role="log")
so screen readers speak plain text updates.
Also added contextual labels (e.g. input/output) but speech output verification of
those is currently blocked by http://webkit.org/b/118096
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/ConsoleCommand.js:
(WebInspector.ConsoleCommand.prototype.toMessageElement):
* UserInterface/ConsoleCommandResult.js:
(WebInspector.ConsoleCommandResult.prototype.toMessageElement):
* UserInterface/LogContentView.css:
(@media reader):
* UserInterface/LogContentView.js:
(WebInspector.LogContentView):
2013-06-27 Matthew Holden <jftholden@yahoo.com>
Web Inspector: Display color picker in popover on color swatch click
https://bugs.webkit.org/show_bug.cgi?id=117919
Reviewed by Timothy Hatcher.
Includes fixes from second code review.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/CSSColorPicker.css: Added.
(.colorpicker-container):
(.colorpicker-fill-parent):
(.colorpicker-top):
(.colorpicker-color):
(.colorpicker-bottom span):
(.colorpicker-text):
(.colorpicker-color-text-value):
(.colorpicker-hue):
(.colorpicker-fill):
(.colorpicker-range-container):
(.colorpicker-range-container *):
(.colorpicker-range-container label):
(.colorpicker-range-container input):
(.colorpicker-saturation):
(.colorpicker-value):
(.colorpicker-dragger):
(.colorpicker-slider):
(.colorpicker-container .swatch):
(.colorpicker-container .swatch-inner):
* UserInterface/CSSColorPicker.js: Added.
(WebInspector.CSSColorPicker.consume):
(WebInspector.CSSColorPicker.move):
(WebInspector.CSSColorPicker.start):
(WebInspector.CSSColorPicker.stop):
(WebInspector.CSSColorPicker.makeDraggable):
(WebInspector.CSSColorPicker.hueDrag):
(WebInspector.CSSColorPicker.colorDragStart):
(WebInspector.CSSColorPicker.colorDrag):
(WebInspector.CSSColorPicker.alphaDrag):
(WebInspector.CSSColorPicker.colorSwatchClicked):
(WebInspector.CSSColorPicker):
(WebInspector.CSSColorPicker.prototype.get element):
(WebInspector.CSSColorPicker.prototype.set color):
(WebInspector.CSSColorPicker.prototype.get color):
(WebInspector.CSSColorPicker.prototype.get outputColorFormat):
(WebInspector.CSSColorPicker.prototype.get colorHueOnly):
(WebInspector.CSSColorPicker.prototype.set displayText):
(WebInspector.CSSColorPicker.prototype.shown):
(WebInspector.CSSColorPicker.prototype._updateHelperLocations):
(WebInspector.CSSColorPicker.prototype._updateDisplay):
(WebInspector.CSSColorPicker.hsvaToRGBA):
(WebInspector.CSSColorPicker.rgbaToHSVA):
* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.didDismissPopover):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.event.newColorText.colorTextMarker):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.event.newColorText):
* UserInterface/Main.html:
2013-06-26 Antoine Quint <graouts@apple.com>
Web Inspector: stepping through while paused in debugger makes a popover appear
https://bugs.webkit.org/show_bug.cgi?id=117994
There is no obvious need to call tokenTrackingControllerNewHighlightCandidate when the
active call frame changes and it leads to an extraneous display of the popover.
Reviewed by Timothy Hatcher.
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._activeCallFrameDidChange):
2013-06-24 Antoine Quint <graouts@apple.com>
Web Inspector: WebInspector.displayNameForURL() failure prevents DOM inspection
https://bugs.webkit.org/show_bug.cgi?id=117927
Handle possible mis-encoded URI fragments passed to decodeURIComponent() which
could prevent inspection of the DOM.
Reviewed by Timothy Hatcher.
* UserInterface/Main.js:
(WebInspector.displayNameForURL):
2013-06-17 Darin Adler <darin@apple.com>
Sort all the Xcode project files
https://bugs.webkit.org/show_bug.cgi?id=117696
Reviewed by Anders Carlsson.
* WebInspectorUI.xcodeproj/project.pbxproj: Ran the sort-Xcode-project-file script.
2013-06-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Uncaught exception when pretty printing WebInspector.Script
https://bugs.webkit.org/show_bug.cgi?id=117893
This was an issue with an earlier refactoring. The sourceCode is a Script,
so replace the non-existent local variable "script" with "this._sourceCode".
Reviewed by Timothy Hatcher.
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting):
2013-06-21 Timothy Hatcher <timothy@apple.com>
Stop removing and re-adding breakpoints from the backend on reload.
On reload the sourceCode for breakpoints are nulled out, which fires DisplayLocationDidChange.
Then the sourceCode is reassociated, firing DisplayLocationDidChange again. In these cases we
don't need to update the backend, since nothing really changed.
https://bugs.webkit.org/show_bug.cgi?id=117877
Reviewed by Joseph Pecoraro.
* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype._breakpointDisplayLocationDidChange): Return early when
_ignoreBreakpointDisplayLocationDidChangeEvent is true.
(WebInspector.DebuggerManager.prototype.reset): Set _ignoreBreakpointDisplayLocationDidChangeEvent.
(WebInspector.DebuggerManager.prototype._associateBreakpointsWithSourceCode): Ditto.
2013-06-19 Antoine Quint <graouts@apple.com>
Web Inspector: Copying array or object output does not contain values
https://bugs.webkit.org/show_bug.cgi?id=117669
ConsoleCommandResult was overriding toClipboardString() but wasn't using the complex code
in ConsoleMessageImpl's toClipboardString() to provide a nicely formatted output for objects.
We now use a "clipboarPrefixString" property to customize the prefix used in the clipboard
and, additionally, only use that prefix if we're copying more than a single message since it's
the only situation where it's useful to have the ">" or "<" prefix shown. Console messages with
a log level always print the level and when saving the console log using Cmd+S, all messages
contain their prefix as well.
Reviewed by Timothy Hatcher.
* UserInterface/ConsoleCommand.js:
(WebInspector.ConsoleCommand.prototype.toClipboardString):
Handle the new isPrefixOptional argument.
* UserInterface/ConsoleCommandResult.js:
(WebInspector.ConsoleCommandResult.prototype.get clipboarPrefixString):
Provide a custom "< " prefix and set "enforcesClipboardPrefixString" to false such that
the prefix isn't printed out in situations when it may not.
* UserInterface/ConsoleMessageImpl.js:
Set "enforcesClipboardPrefixString" to true since we always want to log the log level
prefix in all situations.
(WebInspector.ConsoleMessageImpl.prototype.get clipboarPrefixString):
Implement this new getter to return our clipboard string such that subclasses may
customize it.
(WebInspector.ConsoleMessageImpl.prototype.toClipboardString):
Take into account both isPrefixOptional and the "enforcesClipboardPrefixString" property
to only log the prefix if necessary.
* UserInterface/LogContentView.js:
(WebInspector.LogContentView.prototype._formatMessagesAsData):
Make the logging of prefix optional when we have a single message selected and we're
not saving via Cmd+S.
2013-06-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Infrequent uncaught exception with debugger popovers breaks inspector
https://bugs.webkit.org/show_bug.cgi?id=117755
Create the ZERO_SIZE and ZERO_RECT objects after we've setup the Size
and Rect prototypes, so they get the expected methods. We then need to
handle the ZERO_RECT case better, and not attempt to draw a background
in a canvas with a 0 size, which would produce an exception.
Reviewed by Timothy Hatcher.
* UserInterface/Geometry.js:
* UserInterface/Popover.js:
(WebInspector.Popover.prototype._update):
2013-06-18 Timothy Hatcher <timothy@apple.com>
If the tree outline is processing a selection currently, then don't change the selection.
This is needed to allow breakpoints tree elements to be selected without jumping back to
selecting the resource tree element.
https://bugs.webkit.org/show_bug.cgi?id=117746
Reviewed by Joseph Pecoraro.
* UserInterface/Main.js:
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
* UserInterface/TreeOutline.js:
(TreeElement.prototype.select):
2013-06-18 Timothy Hatcher <timothy@apple.com>
Update breakpoints to match Xcode 5.
This updates the breakpoint images, line colors, and moves breakpoints toggle button
to the Debugger sidebar navigation bar.
https://bugs.webkit.org/show_bug.cgi?id=117723
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js: Updated.
* UserInterface/DebuggerSidebarPanel.css: Removed custom toggle button rules.
* UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointsToggleButtonClicked):
* UserInterface/Images/Breakpoint.png: Updated.
* UserInterface/Images/Breakpoints.pdf: Added.
* UserInterface/Images/Breakpoint@2x.png: Updated.
* UserInterface/Images/BreakpointButton.pdf: Updated.
* UserInterface/Images/BreakpointInactive.png: Updated.
* UserInterface/Images/BreakpointInactive@2x.png: Updated.
* UserInterface/Images/BreakpointInactiveButton.pdf: Updated.
* UserInterface/Images/InstructionPointer.png: Updated.
* UserInterface/Images/InstructionPointer@2x.png: Updated.
* UserInterface/SourceCodeTextEditor.css:
(.source-code.text-editor > .CodeMirror .error): Updated background-color and removed box-shadow.
(.source-code.text-editor > .CodeMirror .warning): Ditto.
* UserInterface/TextEditor.css:
(.text-editor > .CodeMirror .has-breakpoint .CodeMirror-linenumber::before): Changed left position to 0.
(.text-editor > .CodeMirror .execution-line .CodeMirror-linenumber::after): Updated position.
(.text-editor > .CodeMirror .execution-line): Updated background-color and removed box-shadow.
2013-06-13 Joseph Pecoraro <pecoraro@apple.com>
<http://webkit.org/b/117615> Web Inspector: JS PrettyPrinting Should have space between "do" and "{"
Reviewed by Timothy Hatcher.
* UserInterface/CodeMirrorFormatters.js:
2013-06-13 Joseph Pecoraro <pecoraro@apple.com>
<http://webkit.org/b/117612> Web Inspector: "Search Resource Content" should cancel when I remove all text search text
Reviewed by Timothy Hatcher.
* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._searchFieldInput):
== Rolled over to ChangeLog-2013-06-11 ==