Changeset 110694 in webkit


Ignore:
Timestamp:
Mar 14, 2012 5:23:08 AM (12 years ago)
Author:
vsevik@chromium.org
Message:

Web Inspector: Add snippets tab to scripts navigator.
https://bugs.webkit.org/show_bug.cgi?id=81018

Reviewed by Pavel Feldman.

Source/WebCore:

  • English.lproj/localizedStrings.js:
  • inspector/front-end/ScriptsNavigator.js:

(WebInspector.ScriptsNavigator):
(WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
(WebInspector.ScriptsNavigator.prototype.focus):
(WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
(WebInspector.ScriptsNavigator.prototype.reset):
(WebInspector.ScriptsNavigator.prototype._getOrCreateFolderTreeElement):
(WebInspector.ScriptsNavigator.prototype._createFolderTreeElement):
(WebInspector.ScriptsNavigator.prototype._getOrCreateSnippetEvaluationsFolderTreeElement):
(WebInspector.ScriptsNavigator.prototype._scriptFolderIdentifier):
(WebInspector.NavigatorTreeOutline):

  • inspector/front-end/ScriptsPanel.js:

(WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
(WebInspector.ScriptsPanel.prototype._revealExecutionLine):

  • inspector/front-end/SnippetsModel.js:

LayoutTests:

  • http/tests/inspector/debugger-test.js:
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r110693 r110694  
     12012-03-14  Vsevolod Vlasov  <vsevik@chromium.org>
     2
     3        Web Inspector: Add snippets tab to scripts navigator.
     4        https://bugs.webkit.org/show_bug.cgi?id=81018
     5
     6        Reviewed by Pavel Feldman.
     7
     8        * http/tests/inspector/debugger-test.js:
     9
    1102012-03-14  Pavel Feldman  <pfeldman@chromium.org>
    211
  • trunk/LayoutTests/http/tests/inspector/debugger-test.js

    r110434 r110694  
    179179{
    180180    InspectorTest.addResult("Dumping ScriptsNavigator 'Scripts' tab:");
    181     dumpNavigatorTreeOutline(navigator._navigatorScriptsTree);
     181    dumpNavigatorTreeOutline(navigator._scriptsTree);
    182182    InspectorTest.addResult("Dumping ScriptsNavigator 'Content scripts' tab:");
    183     dumpNavigatorTreeOutline(navigator._navigatorContentScriptsTree);
     183    dumpNavigatorTreeOutline(navigator._contentScriptsTree);
    184184
    185185    function dumpNavigatorTreeElement(prefix, treeElement)
  • trunk/Source/WebCore/ChangeLog

    r110693 r110694  
     12012-03-14  Vsevolod Vlasov  <vsevik@chromium.org>
     2
     3        Web Inspector: Add snippets tab to scripts navigator.
     4        https://bugs.webkit.org/show_bug.cgi?id=81018
     5
     6        Reviewed by Pavel Feldman.
     7
     8        * English.lproj/localizedStrings.js:
     9        * inspector/front-end/ScriptsNavigator.js:
     10        (WebInspector.ScriptsNavigator):
     11        (WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
     12        (WebInspector.ScriptsNavigator.prototype.focus):
     13        (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
     14        (WebInspector.ScriptsNavigator.prototype.reset):
     15        (WebInspector.ScriptsNavigator.prototype._getOrCreateFolderTreeElement):
     16        (WebInspector.ScriptsNavigator.prototype._createFolderTreeElement):
     17        (WebInspector.ScriptsNavigator.prototype._getOrCreateSnippetEvaluationsFolderTreeElement):
     18        (WebInspector.ScriptsNavigator.prototype._scriptFolderIdentifier):
     19        (WebInspector.NavigatorTreeOutline):
     20        * inspector/front-end/ScriptsPanel.js:
     21        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
     22        (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
     23        * inspector/front-end/SnippetsModel.js:
     24
    1252012-03-14  Pavel Feldman  <pfeldman@chromium.org>
    226
  • trunk/Source/WebCore/inspector/front-end/ScriptsNavigator.js

    r107708 r110694  
    4848    this._tabbedPane.element.appendChild(this._treeSearchBox);
    4949
    50     this._navigatorScriptsTreeElement = document.createElement("ol");
     50    var scriptsTreeElement = document.createElement("ol");
    5151    var scriptsView = new WebInspector.View();
    5252    scriptsView.element.addStyleClass("outline-disclosure");
    5353    scriptsView.element.addStyleClass("navigator");
    54     scriptsView.element.appendChild(this._navigatorScriptsTreeElement);
    55     this._navigatorScriptsTree = new WebInspector.NavigatorTreeOutline(this, this._navigatorScriptsTreeElement);
     54    scriptsView.element.appendChild(scriptsTreeElement);
     55    this._scriptsTree = new WebInspector.NavigatorTreeOutline(this, scriptsTreeElement);
    5656    this._tabbedPane.appendTab(WebInspector.ScriptsNavigator.ScriptsTab, WebInspector.UIString("Scripts"), scriptsView);
    5757    this._tabbedPane.selectTab(WebInspector.ScriptsNavigator.ScriptsTab);
    5858
    59     this._navigatorContentScriptsTreeElement = document.createElement("ol");
     59    var contentScriptsTreeElement = document.createElement("ol");
    6060    var contentScriptsView = new WebInspector.View();
    6161    contentScriptsView.element.addStyleClass("outline-disclosure");
    6262    contentScriptsView.element.addStyleClass("navigator");
    63     contentScriptsView.element.appendChild(this._navigatorContentScriptsTreeElement);
    64     this._navigatorContentScriptsTree = new WebInspector.NavigatorTreeOutline(this, this._navigatorContentScriptsTreeElement);
     63    contentScriptsView.element.appendChild(contentScriptsTreeElement);
     64    this._contentScriptsTree = new WebInspector.NavigatorTreeOutline(this, contentScriptsTreeElement);
    6565    this._tabbedPane.appendTab(WebInspector.ScriptsNavigator.ContentScriptsTab, WebInspector.UIString("Content scripts"), contentScriptsView);
     66
     67    var snippetsTreeElement = document.createElement("ol");
     68    var snippetsView = new WebInspector.View();
     69    snippetsView.element.addStyleClass("outline-disclosure");
     70    snippetsView.element.addStyleClass("navigator");
     71    snippetsView.element.appendChild(snippetsTreeElement);
     72    this._snippetsTree = new WebInspector.NavigatorTreeOutline(this, snippetsTreeElement);
     73    if (WebInspector.experimentsSettings.snippetsSupport.isEnabled())
     74        this._tabbedPane.appendTab(WebInspector.ScriptsNavigator.SnippetsTab, WebInspector.UIString("Snippets"), snippetsView);
    6675
    6776    this._folderTreeElements = {};
     
    7483WebInspector.ScriptsNavigator.ScriptsTab = "scripts";
    7584WebInspector.ScriptsNavigator.ContentScriptsTab = "contentScripts";
     85WebInspector.ScriptsNavigator.SnippetsTab = "snippets";
    7686
    7787WebInspector.ScriptsNavigator.prototype = {
     
    8191    get defaultFocusedElement()
    8292    {
    83         return this._navigatorScriptsTreeElement;
     93        return this._scriptsTree.element;
    8494    },
    8595
     
    111121    {
    112122        if (this._tabbedPane.selectedTabId === WebInspector.ScriptsNavigator.ScriptsTab)
    113             WebInspector.setCurrentFocusElement(this._navigatorScriptsTreeElement);
     123            WebInspector.setCurrentFocusElement(this._scriptsTree.element);
     124        else if (this._tabbedPane.selectedTabId === WebInspector.ScriptsNavigator.ContentScriptsTab)
     125            WebInspector.setCurrentFocusElement(this._contentScriptsTree.element);
    114126        else
    115             WebInspector.setCurrentFocusElement(this._navigatorContentScriptsTreeElement);
     127            WebInspector.setCurrentFocusElement(this._snippetsTree.element);
    116128    },
    117129
     
    127139        var scriptTreeElement = new WebInspector.NavigatorScriptTreeElement(this, uiSourceCode, scriptTitle);
    128140        this._scriptTreeElementsByUISourceCode.put(uiSourceCode, scriptTreeElement);
    129        
    130         var folderTreeElement = this._getOrCreateFolderTreeElement(uiSourceCode.isContentScript, uiSourceCode.domain, uiSourceCode.folderName);
     141
     142        var folderTreeElement = this._getOrCreateFolderTreeElement(uiSourceCode);
    131143        folderTreeElement.appendChild(scriptTreeElement);
    132144    },
     
    147159    revealUISourceCode: function(uiSourceCode)
    148160    {
     161        if (this._scriptsTree.selectedTreeElement)
     162            this._scriptsTree.selectedTreeElement.deselect();
     163        if (this._contentScriptsTree.selectedTreeElement)
     164            this._contentScriptsTree.selectedTreeElement.deselect();
     165        if (this._snippetsTree.selectedTreeElement)
     166            this._snippetsTree.selectedTreeElement.deselect();
     167
    149168        this._lastSelectedUISourceCode = uiSourceCode;
    150         this._tabbedPane.selectTab(uiSourceCode.isContentScript ? WebInspector.ScriptsNavigator.ContentScriptsTab : WebInspector.ScriptsNavigator.ScriptsTab);
     169
     170        var tab = WebInspector.ScriptsNavigator.ScriptsTab;
     171        if (uiSourceCode.isContentScript)
     172            tab = WebInspector.ScriptsNavigator.ContentScriptsTab;
     173        if (uiSourceCode.isSnippet || uiSourceCode.isSnippetEvaluation)
     174            tab = WebInspector.ScriptsNavigator.SnippetsTab;
     175
     176        this._tabbedPane.selectTab(tab);
    151177
    152178        var scriptTreeElement = this._scriptTreeElementsByUISourceCode.get(uiSourceCode);
     
    223249    _showScriptFoldersSettingChanged: function()
    224250    {
    225         var uiSourceCodes = this._navigatorScriptsTree.scriptTreeElements();
    226         uiSourceCodes = uiSourceCodes.concat(this._navigatorContentScriptsTree.scriptTreeElements());
     251        var uiSourceCodes = this._scriptsTree.scriptTreeElements();
     252        uiSourceCodes = uiSourceCodes.concat(this._contentScriptsTree.scriptTreeElements());
    227253        this.reset();
     254
    228255        for (var i = 0; i < uiSourceCodes.length; ++i)
    229256            this.addUISourceCode(uiSourceCodes[i]);
     
    235262    reset: function()
    236263    {
    237         this._navigatorScriptsTree.stopSearch();
    238         this._navigatorScriptsTree.removeChildren();
    239         this._navigatorContentScriptsTree.stopSearch();
    240         this._navigatorContentScriptsTree.removeChildren();
     264        this._scriptsTree.stopSearch();
     265        this._scriptsTree.removeChildren();
     266        this._contentScriptsTree.stopSearch();
     267        this._contentScriptsTree.removeChildren();
     268        this._snippetsTree.stopSearch();
     269        this._snippetsTree.removeChildren();
    241270        this._folderTreeElements = {};
    242271        this._scriptTreeElementsByUISourceCode.clear();
     272    },
     273
     274    /**
     275     * @param {WebInspector.UISourceCode} uiSourceCode
     276     */
     277    _getOrCreateFolderTreeElement: function(uiSourceCode)
     278    {
     279        if (uiSourceCode.isSnippet)
     280            return this._snippetsTree;
     281        if (uiSourceCode.isSnippetEvaluation)
     282            return this._getOrCreateSnippetEvaluationsFolderTreeElement();
     283        return this._getOrCreateScriptFolderTreeElement(uiSourceCode.isContentScript, uiSourceCode.domain, uiSourceCode.folderName);
     284    },
     285
     286    /**
     287     * @param {string} folderIdentifier
     288     * @param {string} domain
     289     * @param {string} folderName
     290     */
     291    _createFolderTreeElement: function(parentFolderElement, folderIdentifier, domain, folderName)
     292    {
     293        var folderTreeElement = new WebInspector.NavigatorFolderTreeElement(folderIdentifier, domain, folderName);
     294        parentFolderElement.appendChild(folderTreeElement);
     295        this._folderTreeElements[folderIdentifier] = folderTreeElement;
     296        return folderTreeElement;
     297    },
     298
     299    _getOrCreateSnippetEvaluationsFolderTreeElement: function()
     300    {
     301        const snippetEvaluationsFolderIdentifier = "snippetEvaluationsFolder";
     302        var folderTreeElement = this._folderTreeElements[snippetEvaluationsFolderIdentifier];
     303        if (folderTreeElement)
     304            return folderTreeElement;
     305        return this._createFolderTreeElement(this._snippetsTree, snippetEvaluationsFolderIdentifier, "", WebInspector.UIString("Evaluated snippets"));
    243306    },
    244307
     
    248311     * @param {string} folderName
    249312     */
    250     _folderIdentifier: function(isContentScript, domain, folderName)
     313    _scriptFolderIdentifier: function(isContentScript, domain, folderName)
    251314    {
    252315        var contentScriptPrefix = isContentScript ? "0" : "1";
     
    259322     * @param {string} folderName
    260323     */
    261     _getOrCreateFolderTreeElement: function(isContentScript, domain, folderName)
    262     {
    263         var folderIdentifier = this._folderIdentifier(isContentScript, domain, folderName);
     324    _getOrCreateScriptFolderTreeElement: function(isContentScript, domain, folderName)
     325    {
     326        var folderIdentifier = this._scriptFolderIdentifier(isContentScript, domain, folderName);
    264327       
    265328        if (this._folderTreeElements[folderIdentifier])
     
    269332       
    270333        if ((domain === "" && folderName === "") || !showScriptFolders)
    271             return isContentScript ? this._navigatorContentScriptsTree : this._navigatorScriptsTree;
    272        
    273         var folderTreeElement = new WebInspector.NavigatorFolderTreeElement(folderIdentifier, domain, folderName);
     334            return isContentScript ? this._contentScriptsTree : this._scriptsTree;
    274335       
    275336        var parentFolderElement;
    276337        if (folderName === "")
    277             parentFolderElement = isContentScript ? this._navigatorContentScriptsTree : this._navigatorScriptsTree;
     338            parentFolderElement = isContentScript ? this._contentScriptsTree : this._scriptsTree;
    278339        else
    279             parentFolderElement = this._getOrCreateFolderTreeElement(isContentScript, domain, "");
    280        
    281         parentFolderElement.appendChild(folderTreeElement);
    282        
    283         this._folderTreeElements[folderIdentifier] = folderTreeElement;
    284         return folderTreeElement;
     340            parentFolderElement = this._getOrCreateScriptFolderTreeElement(isContentScript, domain, "");
     341       
     342        return this._createFolderTreeElement(parentFolderElement, folderIdentifier, domain, folderName);
    285343    }
    286344}
     
    296354{
    297355    TreeOutline.call(this, element);
     356    this.element = element;
    298357
    299358    this._navigator = navigator;
  • trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js

    r109903 r110694  
    260260        var uiSourceCode = /** @type {WebInspector.UISourceCode} */ event.data;
    261261
    262         if (!uiSourceCode.url) {
    263             // Anonymous sources are shown only when stepping.
     262        if (!uiSourceCode.url || uiSourceCode.isSnippetEvaluation) {
     263            // Anonymous sources and snippets evaluations are shown only when stepping.
    264264            return;
    265265        }
     
    615615    _revealExecutionLine: function(uiLocation)
    616616    {
    617         // Anonymous scripts are not added to files select by default.
     617        // Some scripts (anonymous and snippets evaluations) are not added to files select by default.
    618618        this._addUISourceCode(uiLocation.uiSourceCode);
    619619        var sourceFrame = this._showFile(uiLocation.uiSourceCode);
  • trunk/Source/WebCore/inspector/front-end/SnippetsModel.js

    r110681 r110694  
    139139    /**
    140140     * @param {string} sourceURL
    141      * @return {string}
     141     * @return {string|null}
    142142     */
    143143    snippetIdForSourceURL: function(sourceURL)
     
    149149    /**
    150150     * @param {string} sourceURL
    151      * @return {WebInspector.Snippet}
     151     * @return {WebInspector.Snippet|null}
    152152     */
    153153    snippetForSourceURL: function(sourceURL)
Note: See TracChangeset for help on using the changeset viewer.