Title: [92958] trunk
Revision
92958
Author
[email protected]
Date
2011-08-12 06:54:10 -0700 (Fri, 12 Aug 2011)

Log Message

Web Inspector: make folders optional in the Scripts' panel file selector.
https://bugs.webkit.org/show_bug.cgi?id=66100

Reviewed by Yury Semikhatsky.

Source/WebCore:

* English.lproj/localizedStrings.js:
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._showScriptFoldersSettingChanged):
(WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered.optionCompare):
(WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered):
(WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect):
(WebInspector.ScriptsPanel.prototype.reset):
(WebInspector.ScriptsPanel.prototype._resetFilesSelect):
* inspector/front-end/Settings.js:
(WebInspector.Settings):
* inspector/front-end/SettingsScreen.js:
(WebInspector.SettingsScreen):

LayoutTests:

* http/tests/inspector/debugger-test.js:
(initialize_DebuggerTest):
* inspector/debugger/scripts-sorting-expected.txt:
* inspector/debugger/scripts-sorting.html:
* platform/chromium/inspector/debugger/scripts-sorting-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (92957 => 92958)


--- trunk/LayoutTests/ChangeLog	2011-08-12 13:03:09 UTC (rev 92957)
+++ trunk/LayoutTests/ChangeLog	2011-08-12 13:54:10 UTC (rev 92958)
@@ -1,3 +1,16 @@
+2011-08-12  Pavel Feldman  <[email protected]>
+
+        Web Inspector: make folders optional in the Scripts' panel file selector.
+        https://bugs.webkit.org/show_bug.cgi?id=66100
+
+        Reviewed by Yury Semikhatsky.
+
+        * http/tests/inspector/debugger-test.js:
+        (initialize_DebuggerTest):
+        * inspector/debugger/scripts-sorting-expected.txt:
+        * inspector/debugger/scripts-sorting.html:
+        * platform/chromium/inspector/debugger/scripts-sorting-expected.txt:
+
 2011-08-12  Pavel Podivilov  <[email protected]>
 
         Web Inspector: add space between error info and error message in source frame message bubble.

Modified: trunk/LayoutTests/http/tests/inspector/debugger-test.js (92957 => 92958)


--- trunk/LayoutTests/http/tests/inspector/debugger-test.js	2011-08-12 13:03:09 UTC (rev 92957)
+++ trunk/LayoutTests/http/tests/inspector/debugger-test.js	2011-08-12 13:54:10 UTC (rev 92958)
@@ -159,7 +159,7 @@
 {
     var filesSelect = document.getElementById("scripts-files");
     for (var i = 0; i < filesSelect.length; ++i) {
-        if (filesSelect[i].scriptNameForTest === scriptName) {
+        if (filesSelect[i].displayName === scriptName) {
             filesSelect.selectedIndex = i;
             WebInspector.panels.scripts._filesSelectChanged();
             var sourceFrame = WebInspector.panels.scripts.visibleView;

Modified: trunk/LayoutTests/inspector/debugger/scripts-sorting-expected.txt (92957 => 92958)


--- trunk/LayoutTests/inspector/debugger/scripts-sorting-expected.txt	2011-08-12 13:03:09 UTC (rev 92957)
+++ trunk/LayoutTests/inspector/debugger/scripts-sorting-expected.txt	2011-08-12 13:54:10 UTC (rev 92958)
@@ -1,5 +1,11 @@
 Tests scripts sorting in the scripts panel.
 
 Debugger was enabled.
+
+WebInspector.settings.showScriptFolders = true
+
+WebInspector.settings.showScriptFolders = false
+
+WebInspector.settings.showScriptFolders = true
 Debugger was disabled.
 

Modified: trunk/LayoutTests/inspector/debugger/scripts-sorting.html (92957 => 92958)


--- trunk/LayoutTests/inspector/debugger/scripts-sorting.html	2011-08-12 13:03:09 UTC (rev 92957)
+++ trunk/LayoutTests/inspector/debugger/scripts-sorting.html	2011-08-12 13:54:10 UTC (rev 92958)
@@ -30,6 +30,21 @@
 
     function step1()
     {
+        try {
+            dumpScriptsList();
+            WebInspector.settings.showScriptFolders.set(false);
+            dumpScriptsList();
+        } finally {
+            WebInspector.settings.showScriptFolders.set(true);
+        }
+        dumpScriptsList();
+        InspectorTest.completeDebuggerTest();
+    }
+
+    function dumpScriptsList()
+    {
+        InspectorTest.addResult("");
+        InspectorTest.addResult("WebInspector.settings.showScriptFolders = " + WebInspector.settings.showScriptFolders.get());
         var select = WebInspector.panels.scripts._filesSelectElement;
         for (var i = 0; i < select.length; ++i) {
             var text = select[i].textContent.replace(/\u00a0/g, " ");
@@ -37,7 +52,6 @@
                 continue;
             InspectorTest.addResult(text);
         }
-        InspectorTest.completeDebuggerTest();
     }
 }
 </script>

Modified: trunk/LayoutTests/platform/chromium/inspector/debugger/scripts-sorting-expected.txt (92957 => 92958)


--- trunk/LayoutTests/platform/chromium/inspector/debugger/scripts-sorting-expected.txt	2011-08-12 13:03:09 UTC (rev 92957)
+++ trunk/LayoutTests/platform/chromium/inspector/debugger/scripts-sorting-expected.txt	2011-08-12 13:54:10 UTC (rev 92958)
@@ -1,6 +1,8 @@
 Tests scripts sorting in the scripts panel.
 
 Debugger was enabled.
+
+WebInspector.settings.showScriptFolders = true
     *Non*URL*path
 — foo.com —
     block.js?block=foo
@@ -15,5 +17,33 @@
 /i/js
     jquery-1.5.1.min.js
     jquery.cookie.js
+
+WebInspector.settings.showScriptFolders = false
+*Non*URL*path
+block.js?block=foo
+ga.js
+jquery-1.5.1.min.js
+jquery.cookie.js
+lenta.ban?pg=4883&ifr=1
+lenta.ban?pg=5309&ifr=1
+motor.js?1308927432
+top100.jcn?80674
+xgemius.js
+
+WebInspector.settings.showScriptFolders = true
+    *Non*URL*path
+— foo.com —
+    block.js?block=foo
+    ga.js
+    lenta.ban?pg=4883&ifr=1
+    lenta.ban?pg=5309&ifr=1
+    top100.jcn?80674
+/_js/production
+    motor.js?1308927432
+/i
+    xgemius.js
+/i/js
+    jquery-1.5.1.min.js
+    jquery.cookie.js
 Debugger was disabled.
 

Modified: trunk/Source/WebCore/ChangeLog (92957 => 92958)


--- trunk/Source/WebCore/ChangeLog	2011-08-12 13:03:09 UTC (rev 92957)
+++ trunk/Source/WebCore/ChangeLog	2011-08-12 13:54:10 UTC (rev 92958)
@@ -1,3 +1,23 @@
+2011-08-12  Pavel Feldman  <[email protected]>
+
+        Web Inspector: make folders optional in the Scripts' panel file selector.
+        https://bugs.webkit.org/show_bug.cgi?id=66100
+
+        Reviewed by Yury Semikhatsky.
+
+        * English.lproj/localizedStrings.js:
+        * inspector/front-end/ScriptsPanel.js:
+        (WebInspector.ScriptsPanel.prototype._showScriptFoldersSettingChanged):
+        (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered.optionCompare):
+        (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered):
+        (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect):
+        (WebInspector.ScriptsPanel.prototype.reset):
+        (WebInspector.ScriptsPanel.prototype._resetFilesSelect):
+        * inspector/front-end/Settings.js:
+        (WebInspector.Settings):
+        * inspector/front-end/SettingsScreen.js:
+        (WebInspector.SettingsScreen):
+
 2011-08-12  Pavel Podivilov  <[email protected]>
 
         Web Inspector: add space between error info and error message in source frame message bubble.

Modified: trunk/Source/WebCore/English.lproj/localizedStrings.js


(Binary files differ)

Modified: trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js (92957 => 92958)


--- trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2011-08-12 13:03:09 UTC (rev 92957)
+++ trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2011-08-12 13:54:10 UTC (rev 92958)
@@ -169,6 +169,8 @@
     var enableDebugger = Preferences.debuggerAlwaysEnabled || WebInspector.settings.debuggerEnabled.get();
     if (enableDebugger)
         WebInspector.debuggerModel.enableDebugger();
+
+    WebInspector.settings.showScriptFolders.addChangeListener(this._showScriptFoldersSettingChanged.bind(this));
 }
 
 // Keep these in sync with WebCore::ScriptDebugServer
@@ -254,8 +256,28 @@
             this._showSourceFrameAndAddToHistory(sourceFile.id);
     },
 
+    _showScriptFoldersSettingChanged: function()
+    {
+        var selectedOption = this._filesSelectElement[this._filesSelectElement.selectedIndex];
+        var sourceFileId = selectedOption._sourceFileId;
+
+        var options = Array.prototype.slice.call(this._filesSelectElement);
+        this._resetFilesSelect();
+        for (var i = 0; i < options.length; ++i) {
+            if (options[i]._sourceFile)
+                this._addOptionToFilesSelect(options[i]._sourceFile);
+        }
+
+        if (sourceFileId) {
+            var index = this._sourceFileIdToFilesSelectOption[sourceFileId].index;
+            this._filesSelectElement.selectedIndex = index;
+        }
+    },
+
     _addOptionToFilesSelect: function(sourceFile)
     {
+        var showScriptFolders = WebInspector.settings.showScriptFolders.get();
+
         var select = this._filesSelectElement;
         if (!select.domainOptions)
             select.domainOptions = {};
@@ -263,12 +285,13 @@
             select.folderOptions = {};
 
         var option = document.createElement("option");
+        option._sourceFile = sourceFile;
         var parsedURL = sourceFile.url.asParsedURL();
 
         var names = this._folderAndDisplayNameForScriptURL(sourceFile.url);
-        const indent = WebInspector.isMac() ? "" : "\u00a0\u00a0\u00a0\u00a0";
+        const indent = (!showScriptFolders || WebInspector.isMac()) ? "" : "\u00a0\u00a0\u00a0\u00a0";
         option.text = indent + (names.displayName ? names.displayName : WebInspector.UIString("(program)"));
-        option.scriptNameForTest = names.displayName;
+        option.displayName = names.displayName;
 
         var folderNameForSorting;
         if (sourceFile.isContentScript)
@@ -285,7 +308,10 @@
         {
             function optionCompare(a, b)
             {
-                return a.nameForSorting.localeCompare(b.nameForSorting);
+                if (showScriptFolders)
+                    return a.nameForSorting.localeCompare(b.nameForSorting);
+                else
+                    return a.displayName.localeCompare(b.displayName);
             }
             var insertionIndex = insertionIndexForObjectInListSortedByFunction(option, select.childNodes, optionCompare);
             select.insertBefore(option, insertionIndex < 0 ? null : select.childNodes.item(insertionIndex));
@@ -302,7 +328,7 @@
             insertOrdered(contentScriptSection);
         }
 
-        if (!sourceFile.isContentScript && names.domain && !select.domainOptions[names.domain]) {
+        if (showScriptFolders && !sourceFile.isContentScript && names.domain && !select.domainOptions[names.domain]) {
             var domainOption = document.createElement("option");
             domainOption.text = "\u2014 " + names.domain + " \u2014";
             domainOption.nameForSorting = "0:" + names.domain;
@@ -311,7 +337,7 @@
             insertOrdered(domainOption);
         }
 
-        if (names.folderName && !select.folderOptions[names.folderName]) {
+        if (showScriptFolders && names.folderName && !select.folderOptions[names.folderName]) {
             var folderOption = document.createElement("option");
             folderOption.text = names.folderName;
             folderOption.nameForSorting = folderNameForSorting;
@@ -530,13 +556,9 @@
         }
 
         this._sourceFileIdToSourceFrame = {};
-        this._sourceFileIdToFilesSelectOption = {};
-        this._filesSelectElement.removeChildren();
-        this._filesSelectElement.removeChildren();
-        this._filesSelectElement.domainOptions = {};
-        this._filesSelectElement.folderOptions = {};
+
+        this._resetFilesSelect();
         delete this._filesSelectElement.initialSelectionProcessed;
-        delete this._filesSelectElement.contentScriptSection;
 
         this.functionsSelectElement.removeChildren();
         this.viewsContainerElement.removeChildren();
@@ -547,6 +569,15 @@
             this.sidebarPanes.workers.reset();
     },
 
+    _resetFilesSelect: function()
+    {
+        this._sourceFileIdToFilesSelectOption = {};
+        this._filesSelectElement.removeChildren();
+        this._filesSelectElement.domainOptions = {};
+        this._filesSelectElement.folderOptions = {};
+        delete this._filesSelectElement.contentScriptSection;
+    },
+
     get visibleView()
     {
         return this._visibleView;

Modified: trunk/Source/WebCore/inspector/front-end/Settings.js (92957 => 92958)


--- trunk/Source/WebCore/inspector/front-end/Settings.js	2011-08-12 13:03:09 UTC (rev 92957)
+++ trunk/Source/WebCore/inspector/front-end/Settings.js	2011-08-12 13:54:10 UTC (rev 92958)
@@ -85,6 +85,7 @@
     this.installApplicationSetting("xhrBreakpoints", []);
     this.installApplicationSetting("workerInspectionEnabled", []);
     this.installApplicationSetting("cacheDisabled", false);
+    this.installApplicationSetting("showScriptFolders", true);
 
     // If there are too many breakpoints in a storage, it is likely due to a recent bug that caused
     // periodical breakpoints duplication leading to inspector slowness.

Modified: trunk/Source/WebCore/inspector/front-end/SettingsScreen.js (92957 => 92958)


--- trunk/Source/WebCore/inspector/front-end/SettingsScreen.js	2011-08-12 13:03:09 UTC (rev 92957)
+++ trunk/Source/WebCore/inspector/front-end/SettingsScreen.js	2011-08-12 13:54:10 UTC (rev 92958)
@@ -47,11 +47,14 @@
     p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Show user agent styles"), WebInspector.settings.showUserAgentStyles));
 
     if (Preferences.canDisableCache) {
-        p = this._appendSection(WebInspector.UIString("Network"));
+        p = this._appendSection(WebInspector.UIString("Network"), true);
         p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Disable cache"), WebInspector.settings.cacheDisabled));
     }
 
-    p = this._appendSection(WebInspector.UIString("Console"));
+    p = this._appendSection(WebInspector.UIString("Scripts"), true);
+    p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Show script folders"), WebInspector.settings.showScriptFolders));
+
+    p = this._appendSection(WebInspector.UIString("Console"), true);
     p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Log XMLHttpRequests"), WebInspector.settings.monitoringXHREnabled));
     p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Preserve log upon navigation"), WebInspector.settings.preserveConsoleLog));
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to