2014-11-13 Andres Gomez 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Prepare for the mysterious future Reviewed by Lucas Forschler. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: 2014-10-10 Brian J. Burg 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 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 [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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Fixed the Inspector to be able to properly distinguish between scope types. 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Always assume internal SDK when building configuration Production https://bugs.webkit.org/show_bug.cgi?id=136925 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 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 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 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 Add unprefixed flexbox display values and property names/values https://bugs.webkit.org/show_bug.cgi?id=136880 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Use a instead of a 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 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 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 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 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 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 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 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 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 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 [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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 [Win] Adjust build script for Windows production build. https://bugs.webkit.org/show_bug.cgi?id=135806 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 [Win] Unreviewed build fix. Add a WebInspectorUI.proj file for use with MSBuild utility. * WebInspectorUI.vcxproj/WebInspectorUI.proj: Added. 2014-08-07 Benjamin Poulain 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 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 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 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 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 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 [Win] Build fix. * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: DebugSuffix target was missing proper path settings for final output. 2014-08-06 Wenson Hsieh 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 [Win] Remove uses of 'bash' in build system https://bugs.webkit.org/show_bug.cgi?id=134782 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 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 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 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 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 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 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 Add support for 5-tuple versioning. Reviewed by David Farler. * Configurations/Version.xcconfig: 2014-06-24 Jono Wells 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 [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 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 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 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 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 [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 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 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 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 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 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 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 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 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 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 [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 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 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 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 [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 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 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 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 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 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 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 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 [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 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 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 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 [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 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 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 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 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 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 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 [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 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 [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 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 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 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 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 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 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 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 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 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 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 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 [iOS] Define SYSTEM_VERSION_PREFIX consistently Reviewed by Dan Bernstein. * Configurations/Version.xcconfig: (SYSTEM_VERSION_PREFIX): Sync with Source/WebKit/mac/Version.xcconfig. 2014-03-14 Maciej Stachowiak Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers https://bugs.webkit.org/show_bug.cgi?id=130276 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 [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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Prune dead code for Web Inspector memory instrumentation. Reviewed by Sam Weinig. * UserInterface/Protocol/InspectorWebBackendCommands.js: 2014-02-24 Timothy Hatcher 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 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 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 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 Removed -Wno-format-y2k from WARNING_CFLAGS Rubber-stamped by Sam Weinig. * Configurations/Base.xcconfig: 2014-02-23 Diego Pino García [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 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 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 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 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 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 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 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 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 Revert r164486, causing a number of test failures. Unreviewed rollout. 2014-02-21 Joseph Pecoraro 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 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 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 governing gradient type and 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 for the angle, ensuring we have a "º" string added to the value. (WebInspector.CodeMirrorGradientEditingController.prototype._handleChangeEvent): Deal with changes in the 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 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 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 or a 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 [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 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 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 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 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 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 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 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 [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 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 Remove display:run-in support. Rubber-stamped by Anders Carlsson. * UserInterface/CSSKeywordCompletions.js: * UserInterface/External/CodeMirror/css.js: 2014-02-05 Brian Burg 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 [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 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 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 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 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 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 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 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 Unreviewed follow-up to r162965. Better coding style. Timothy Hatcher pointed out a clearer style for classes on the 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Remove the CSS selector profiler. 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 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 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 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 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 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 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 [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 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 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 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 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 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 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 [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 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 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 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 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 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 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 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 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 [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 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 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 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 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 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": , "contentFlow": , "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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Web Inspector: Fix PrettyPrinting Tool Load from Saved URL Reviewed by Timothy Hatcher. * Tools/PrettyPrinting/index.html: 2013-10-28 Alexandru Chiculita 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 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 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 Ran update-localizable-strings after changes made in r157947. Rubber-stamped by Timothy Hatcher. * Localizations/en.lproj/localizedStrings.js: 2013-10-24 Mark Rowe 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 Prepare for the mysterious future. Reviewed by David Kilzer. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: 2013-10-24 Timothy Hatcher 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 [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 [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 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 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 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 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 [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 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 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: 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 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 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 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 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 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 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 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 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 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 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 [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 [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 [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 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 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 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 Only modify numbers if they are identified by CodeMirror as a number. https://bugs.webkit.org/show_bug.cgi?id=120484 REGRESSION: Alt-up and Alt-down don't work when cursor is in unit 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 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 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 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 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 to an 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 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 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 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 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 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 [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 [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 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 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 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 Update localizedStrings - I think I checked in an unmerged version in the previous commit. * Localizations/en.lproj/localizedStrings.js: 2013-08-11 Dean Jackson Bootstrap canvas profiler https://bugs.webkit.org/show_bug.cgi?id=119652 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 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 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 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 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 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 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 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 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 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 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 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 Web Inspector: When right-clicking on a DataGrid column, show editing menu option as "Edit " 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 " (WebInspector.DataGrid.prototype._contextMenuInDataTable): 2013-07-21 Seokju Kwon 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 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 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 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 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 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 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 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 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 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 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 Ran update-webkit-localizable-strings. Rubber-stamped by Joseph Pecoraro. * Localizations/en.lproj/localizedStrings.js: 2013-06-28 Dean Jackson Update Apple System fonts in auto-complete https://bugs.webkit.org/show_bug.cgi?id=118205 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Web Inspector: JS PrettyPrinting Should have space between "do" and "{" Reviewed by Timothy Hatcher. * UserInterface/CodeMirrorFormatters.js: 2013-06-13 Joseph Pecoraro 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 ==