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 ==