Changeset 96319 in webkit


Ignore:
Timestamp:
Sep 29, 2011 4:39:11 AM (13 years ago)
Author:
pfeldman@chromium.org
Message:

Web Inspector: Scripts panel without folders causes errors when creating content scripts section.
https://bugs.webkit.org/show_bug.cgi?id=68827

Reviewed by Yury Semikhatsky.

Source/WebCore:

  • inspector/front-end/ScriptsPanel.js:

(WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered.optionCompare):
(WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered):
(WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect):

LayoutTests:

  • inspector/debugger/scripts-panel-expected.txt:
  • inspector/debugger/scripts-panel.html:
  • inspector/debugger/scripts-sorting-expected.txt:
  • inspector/debugger/scripts-sorting.html:
  • platform/chromium-win/inspector/debugger/scripts-panel-expected.txt: Removed.
  • platform/chromium/inspector/debugger/scripts-sorting-expected.txt: Removed.
  • platform/mac/inspector/debugger/scripts-panel-expected.txt: Removed.
  • platform/win/inspector/debugger/scripts-panel-expected.txt: Removed.
Location:
trunk
Files:
4 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r96316 r96319  
     12011-09-27  Pavel Feldman  <pfeldman@google.com>
     2
     3        Web Inspector: Scripts panel without folders causes errors when creating content scripts section.
     4        https://bugs.webkit.org/show_bug.cgi?id=68827
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * inspector/debugger/scripts-panel-expected.txt:
     9        * inspector/debugger/scripts-panel.html:
     10        * inspector/debugger/scripts-sorting-expected.txt:
     11        * inspector/debugger/scripts-sorting.html:
     12        * platform/chromium-win/inspector/debugger/scripts-panel-expected.txt: Removed.
     13        * platform/chromium/inspector/debugger/scripts-sorting-expected.txt: Removed.
     14        * platform/mac/inspector/debugger/scripts-panel-expected.txt: Removed.
     15        * platform/win/inspector/debugger/scripts-panel-expected.txt: Removed.
     16
    1172011-09-29  Arun Patole  <bmf834@motorola.com>
    218
  • trunk/LayoutTests/inspector/debugger/scripts-panel-expected.txt

    r92842 r96319  
    2929    script.js(<root>/foo/baz/script.js)
    3030— Content scripts —
     31LayoutTests/inspector/debugger/foo/bar
    3132    contentScript.js?a=1(<root>/foo/bar/contentScript.js?a=1)
    3233    contentScript.js?a=2(<root>/foo/bar/contentScript.js?a=2)
  • trunk/LayoutTests/inspector/debugger/scripts-panel.html

    r94842 r96319  
    77function test()
    88{
     9    // Always use indentation in scripts drop box
     10    WebInspector._isMac = false;
     11
    912    function createDebuggerPresentationModelMock()
    1013    {
  • trunk/LayoutTests/inspector/debugger/scripts-sorting-expected.txt

    r92958 r96319  
    44
    55WebInspector.settings.showScriptFolders = true
     6    *Non*URL*path
     7— bar.com —
     8/foo/path
     9    bar.js?file=bar/zzz.js
     10    foo.js?file=bar/aaa.js
     11— foo.com —
     12    block.js?block=foo
     13    ga.js
     14    lenta.ban?pg=4883&ifr=1
     15    lenta.ban?pg=5309&ifr=1
     16    top100.jcn?80674
     17/_js/production
     18    motor.js?1308927432
     19/foo/path
     20    bar.js?file=bar/zzz.js
     21    foo.js?file=bar/aaa.js
     22/i
     23    xgemius.js
     24/i/js
     25    jquery-1.5.1.min.js
     26    jquery.cookie.js
     27— Content scripts —
     28    *Non*URL*path
     29extension-name
     30    bar.js
     31extension-name/folder
     32    baz.js
    633
    734WebInspector.settings.showScriptFolders = false
     35*Non*URL*path
     36bar.js?file=bar/zzz.js
     37bar.js?file=bar/zzz.js
     38block.js?block=foo
     39foo.js?file=bar/aaa.js
     40foo.js?file=bar/aaa.js
     41ga.js
     42jquery-1.5.1.min.js
     43jquery.cookie.js
     44lenta.ban?pg=4883&ifr=1
     45lenta.ban?pg=5309&ifr=1
     46motor.js?1308927432
     47top100.jcn?80674
     48xgemius.js
     49— Content scripts —
     50*Non*URL*path
     51extension-name/bar.js
     52extension-name/folder/baz.js
    853
    954WebInspector.settings.showScriptFolders = true
     55    *Non*URL*path
     56— bar.com —
     57/foo/path
     58    bar.js?file=bar/zzz.js
     59    foo.js?file=bar/aaa.js
     60— foo.com —
     61    block.js?block=foo
     62    ga.js
     63    lenta.ban?pg=4883&ifr=1
     64    lenta.ban?pg=5309&ifr=1
     65    top100.jcn?80674
     66/_js/production
     67    motor.js?1308927432
     68/foo/path
     69    bar.js?file=bar/zzz.js
     70    foo.js?file=bar/aaa.js
     71/i
     72    xgemius.js
     73/i/js
     74    jquery-1.5.1.min.js
     75    jquery.cookie.js
     76— Content scripts —
     77    *Non*URL*path
     78extension-name
     79    bar.js
     80extension-name/folder
     81    baz.js
    1082Debugger was disabled.
    1183
  • trunk/LayoutTests/inspector/debugger/scripts-sorting.html

    r94067 r96319  
    55
    66<script>
    7 var scripts = [
    8     "block.js?block=foo",
    9     "ga.js",
    10     "lenta.ban?pg=4883&ifr=1",
    11     "lenta.ban?pg=5309&ifr=1",
    12     "top100.jcn?80674",
    13     "_js/production/motor.js?1308927432",
    14     "i/xgemius.js",
    15     "i/js/jquery-1.5.1.min.js",
    16     "i/js/jquery.cookie.js",
    17     "foo/path/bar.js?file=bar/zzz.js",
    18     "foo/path/foo.js?file=bar/aaa.js" ];
    19 
    20 for (var i = 0; i < scripts.length; ++i)
    21     window.eval("function func" + i + "() {} //@ sourceURL=http://foo.com/" + scripts[i]);
    22 
    23 window.eval("function funcNonURL() {} //@ sourceURL=*Non*URL*path");
    24 
    25 </script>
    26 
    27 <script>
    287function test()
    298{
    30     var scripts = [];
     9    // Always use indentation in scripts drop box
     10    WebInspector._isMac = false;
     11
    3112    InspectorTest.startDebuggerTest(step1);
    3213
    3314    function step1()
    3415    {
     16        var scripts = [
     17            "block.js?block=foo",
     18            "ga.js",
     19            "lenta.ban?pg=4883&ifr=1",
     20            "lenta.ban?pg=5309&ifr=1",
     21            "top100.jcn?80674",
     22            "_js/production/motor.js?1308927432",
     23            "i/xgemius.js",
     24            "i/js/jquery-1.5.1.min.js",
     25            "i/js/jquery.cookie.js",
     26            "foo/path/bar.js?file=bar/zzz.js",
     27            "foo/path/foo.js?file=bar/aaa.js" ];
     28        for (var i = 0; i < scripts.length; ++i)
     29            addOption("http://foo.com/" + scripts[i]);
     30
     31        var scripts2 = [
     32            "foo/path/bar.js?file=bar/zzz.js",
     33            "foo/path/foo.js?file=bar/aaa.js" ];
     34        for (var i = 0; i < scripts2.length; ++i)
     35            addOption("http://bar.com/" + scripts2[i]);
     36        addOption("*Non*URL*path");
     37
     38        var extensions = [
     39            "extension-schema://extension-name/bar.js",
     40            "extension-schema://extension-name/folder/baz.js" ];
     41        for (var i = 0; i < extensions.length; ++i)
     42            addOption(extensions[i], true);
     43        addOption("*Non*URL*path", true);
     44
    3545        try {
    3646            dumpScriptsList();
     
    4454    }
    4555
     56    var nextId = 1;
     57
     58    function addOption(url, isContentScript)
     59    {
     60        WebInspector.panels.scripts._addOptionToFilesSelect({ id: nextId++, url: url, isContentScript: isContentScript });
     61    }
     62
    4663    function dumpScriptsList()
    4764    {
     
    5067        var select = WebInspector.panels.scripts._filesSelectElement;
    5168        for (var i = 0; i < select.length; ++i) {
    52             var text = select[i].textContent.replace(/\u00a0/g, " ");
    53             if (select[i].nameForSorting.indexOf("LayoutTests/") !== -1)
     69            if (select[i]._uiSourceCode && select[i]._uiSourceCode.url.indexOf("LayoutTests/") !== -1)
    5470                continue;
    55             InspectorTest.addResult(text);
     71            if (select[i].textContent.indexOf("LayoutTests/") !== -1)
     72                continue;
     73            InspectorTest.addResult(select[i].textContent.replace(/\u00a0/g, " "));
    5674        }
    5775    }
  • trunk/Source/WebCore/ChangeLog

    r96318 r96319  
     12011-09-27  Pavel Feldman  <pfeldman@google.com>
     2
     3        Web Inspector: Scripts panel without folders causes errors when creating content scripts section.
     4        https://bugs.webkit.org/show_bug.cgi?id=68827
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * inspector/front-end/ScriptsPanel.js:
     9        (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered.optionCompare):
     10        (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered):
     11        (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect):
     12
    1132011-09-28  Andrey Kosyakov  <caseq@chromium.org>
    214
  • trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js

    r95538 r96319  
    285285        var parsedURL = uiSourceCode.url.asParsedURL();
    286286
     287        const indent = WebInspector.isMac() ? "" : "\u00a0\u00a0\u00a0\u00a0";
     288
    287289        var names = this._folderAndDisplayNameForScriptURL(uiSourceCode.url);
    288         const indent = (!showScriptFolders || WebInspector.isMac()) ? "" : "\u00a0\u00a0\u00a0\u00a0";
    289         option.text = indent + (names.displayName ? names.displayName : WebInspector.UIString("(program)"));
    290290        option.displayName = names.displayName;
    291291
    292         var folderNameForSorting;
    293         if (uiSourceCode.isContentScript)
    294             folderNameForSorting = "2:" + names.folderName;
    295         else
    296             folderNameForSorting = "0:" + (names.domain ? names.domain + "\t\t" : "") + names.folderName;
    297 
    298         option.nameForSorting = folderNameForSorting + "\t/\t" + names.displayName; // Use '\t' to make files stick to their folder.
     292        var contentScriptPrefix = uiSourceCode.isContentScript ? "2:" : "0:";
     293
     294        if (uiSourceCode.isContentScript && names.domain) {
     295            // Render extension domain as a path in structured view
     296            names.folderName = names.domain + (names.folderName ? names.folderName : "");
     297            delete names.domain;
     298        }
     299
     300        var folderNameForSorting = contentScriptPrefix + (names.domain ? names.domain + "\t\t" : "") + names.folderName;
     301
     302        if (showScriptFolders) {
     303            option.text = indent + (names.displayName ? names.displayName : WebInspector.UIString("(program)"));
     304            option.nameForSorting = folderNameForSorting + "\t/\t" + names.displayName; // Use '\t' to make files stick to their folder.
     305        } else {
     306            option.text = names.displayName ? names.displayName : WebInspector.UIString("(program)");
     307            // Content script should contain its domain name as a prefix
     308            if (uiSourceCode.isContentScript && names.folderName)
     309                option.text = names.folderName + "/" + option.text;
     310            option.nameForSorting = contentScriptPrefix + option.text;
     311        }
    299312        option.title = uiSourceCode.url;
     313
    300314        if (uiSourceCode.isContentScript)
    301315            option.addStyleClass("extension-script");
     
    305319            function optionCompare(a, b)
    306320            {
    307                 if (showScriptFolders)
    308                     return a.nameForSorting.localeCompare(b.nameForSorting);
    309                 else
    310                     return a.displayName.localeCompare(b.displayName);
     321                return a.nameForSorting.localeCompare(b.nameForSorting);
    311322            }
    312323            var insertionIndex = insertionIndexForObjectInListSortedByFunction(option, select.childNodes, optionCompare);
     
    334345        }
    335346
    336         if (showScriptFolders && names.folderName && !select.folderOptions[names.folderName]) {
     347        if (showScriptFolders && names.folderName && !select.folderOptions[folderNameForSorting]) {
    337348            var folderOption = document.createElement("option");
    338349            folderOption.text = names.folderName;
    339350            folderOption.nameForSorting = folderNameForSorting;
    340351            folderOption.disabled = true;
    341             select.folderOptions[names.folderName] = folderOption;
     352            select.folderOptions[folderNameForSorting] = folderOption;
    342353            insertOrdered(folderOption);
    343354        }
Note: See TracChangeset for help on using the changeset viewer.