Changeset 117302 in webkit


Ignore:
Timestamp:
May 16, 2012 9:38:33 AM (12 years ago)
Author:
pfeldman@chromium.org
Message:

Web Inspector: extract CompositeUISourceCodeProvider from DebuggerScriptMapping.
https://bugs.webkit.org/show_bug.cgi?id=86634

Reviewed by Vsevolod Vlasov.

Source/WebCore:

Extract refactoring.

  • inspector/front-end/DebuggerScriptMapping.js:

(WebInspector.DebuggerScriptMapping):
(WebInspector.DebuggerScriptMapping.prototype.uiSourceCodeProviders):
(WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):

  • inspector/front-end/ScriptsPanel.js:

(WebInspector.ScriptsPanel.prototype._loadUISourceCodes):
(WebInspector.ScriptsPanel.prototype._toggleFormatSource):
(WebInspector.CompositeUISourceCodeProvider):
(WebInspector.CompositeUISourceCodeProvider.prototype._registerUISourceCodeProvider):
(WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeAdded):
(WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeReplaced):
(WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeRemoved):
(WebInspector.CompositeUISourceCodeProvider.prototype.uiSourceCodes):

  • inspector/front-end/UISourceCode.js:

(WebInspector.UISourceCodeProvider.prototype.uiSourceCodes):
(WebInspector.UISourceCodeProvider.prototype.addEventListener):
(WebInspector.UISourceCodeProvider.prototype.removeEventListener):

LayoutTests:

  • http/tests/inspector/compiler-script-mapping.html:
  • http/tests/inspector/debugger-test.js:

(initialize_DebuggerTest):

  • inspector/debugger/linkifier.html:
  • inspector/debugger/scripts-panel.html:
Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r117299 r117302  
     12012-05-16  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Web Inspector: extract CompositeUISourceCodeProvider from DebuggerScriptMapping.
     4        https://bugs.webkit.org/show_bug.cgi?id=86634
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        * http/tests/inspector/compiler-script-mapping.html:
     9        * http/tests/inspector/debugger-test.js:
     10        (initialize_DebuggerTest):
     11        * inspector/debugger/linkifier.html:
     12        * inspector/debugger/scripts-panel.html:
     13
    1142012-05-16  Vsevolod Vlasov  <vsevik@chromium.org>
    215
  • trunk/LayoutTests/http/tests/inspector/compiler-script-mapping.html

    r117277 r117302  
    194194            WebInspector.debuggerModel._reset();
    195195            var debuggerScriptMapping = new WebInspector.DebuggerScriptMapping();
    196             debuggerScriptMapping.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, uiSourceCodeAdded);
     196            var uiSourceCodeProvider = new WebInspector.CompositeUISourceCodeProvider(debuggerScriptMapping.uiSourceCodeProviders());
     197            uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, uiSourceCodeAdded);
    197198
    198199            var script = InspectorTest.createScriptMock("compiled.js", 0, 0, true, "");
  • trunk/LayoutTests/http/tests/inspector/debugger-test.js

    r117235 r117302  
    156156InspectorTest.showScriptSourceOnScriptsPanel = function(panel, scriptName, callback)
    157157{
    158     var uiSourceCodes = panel._scriptMapping.uiSourceCodes();
     158    var uiSourceCodes = panel._uiSourceCodeProvider.uiSourceCodes();
    159159    for (var i = 0; i < uiSourceCodes.length; ++i) {
    160160        if (uiSourceCodes[i].parsedURL.lastPathComponent === scriptName) {
  • trunk/LayoutTests/inspector/debugger/linkifier.html

    r117235 r117302  
    3434            }
    3535        }
    36         var uiSourceCodes = WebInspector.panels.scripts._scriptMapping.uiSourceCodes();
     36        var uiSourceCodes = WebInspector.panels.scripts._uiSourceCodeProvider.uiSourceCodes();
    3737        for (var i = 0; i < uiSourceCodes.length; ++i) {
    3838            if (uiSourceCodes[i].url === WebInspector.inspectedPageURL) {
  • trunk/LayoutTests/inspector/debugger/scripts-panel.html

    r117277 r117302  
    1919    };
    2020
    21     function createDebuggerScriptMappingMock()
     21    function createUISourceCodeProviderMock()
    2222    {
    23         var model = new WebInspector.Object();
    24         model.breakpointsForUISourceCode = function() { return []; };
    25         model.messagesForUISourceCode = function() { return []; };
    26         model.canEditScriptSource = function() { return true; };
     23        var provider = new WebInspector.Object();
    2724        uiSourceCodes = [];
    28         model.uiSourceCodes = function() { return uiSourceCodes.slice(); };
    29         model._addUISourceCode = function(uiSourceCode)
     25        provider.uiSourceCodes = function() { return uiSourceCodes.slice(); };
     26        provider._addUISourceCode = function(uiSourceCode)
    3027        {
    3128            uiSourceCodes.push(uiSourceCode);
    3229            this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, uiSourceCode);
    3330        }
    34         model._reset = function(preservedItems)
     31        provider._reset = function(preservedItems)
    3532        {
    3633            uiSourceCodes = preservedItems || [];
    3734            WebInspector.debuggerModel.dispatchEventToListeners(WebInspector.DebuggerModel.Events.GlobalObjectCleared);
    3835        }
    39         model._replaceUISourceCode = function(oldUISourceCode, uiSourceCode)
     36        provider._replaceUISourceCode = function(oldUISourceCode, uiSourceCode)
    4037        {
    4138            uiSourceCodes.remove(oldUISourceCode);
     
    4441            this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, data);
    4542        }
    46         return model;
     43        return provider;
    4744    }
    4845    function createUISouceCode(url)
     
    6158        function testInitialLoad(next)
    6259        {
    63             var mapping = createDebuggerScriptMappingMock();
     60            var provider = createUISourceCodeProviderMock();
    6461            var uiSourceCode = createUISouceCode("foobar.js");
    6562            var uiSourceCodeFoo = createUISouceCode("foo.js");
     
    6764            var uiSourceCodeBaz = createUISouceCode("baz.js");
    6865
    69             mapping._addUISourceCode(uiSourceCode);
     66            provider._addUISourceCode(uiSourceCode);
    7067
    71             var panel = new WebInspector.ScriptsPanel(mapping);
     68            var panel = new WebInspector.ScriptsPanel(provider);
    7269            panel.show();
    7370
    74             mapping._addUISourceCode(uiSourceCodeFoo);
    75             mapping._addUISourceCode(uiSourceCodeBar);
    76             mapping._addUISourceCode(uiSourceCodeBaz);
     71            provider._addUISourceCode(uiSourceCodeFoo);
     72            provider._addUISourceCode(uiSourceCodeBar);
     73            provider._addUISourceCode(uiSourceCodeBaz);
    7774
    7875            InspectorTest.dumpScriptsNavigator(panel._navigator);
     
    8784        function testReset(next)
    8885        {
    89             var mapping = createDebuggerScriptMappingMock();
    90             var panel = new WebInspector.ScriptsPanel(mapping);
     86            var provider = createUISourceCodeProviderMock();
     87            var panel = new WebInspector.ScriptsPanel(provider);
    9188            panel.show();
    9289
     
    9592            var uiSourceCodeBaz = createUISouceCode("baz.js");
    9693
    97             mapping._addUISourceCode(uiSourceCodeFoo);
    98             mapping._addUISourceCode(uiSourceCodeBar);
    99             mapping._addUISourceCode(uiSourceCodeBaz);
     94            provider._addUISourceCode(uiSourceCodeFoo);
     95            provider._addUISourceCode(uiSourceCodeBar);
     96            provider._addUISourceCode(uiSourceCodeBaz);
    10097
    10198            InspectorTest.dumpScriptsNavigator(panel._navigator);
    10299
    103             mapping._reset([uiSourceCodeBar]);
     100            provider._reset([uiSourceCodeBar]);
    104101            InspectorTest.dumpScriptsNavigator(panel._navigator);
    105102
     
    110107        function testSourceReplaced(next)
    111108        {
    112             var mapping = createDebuggerScriptMappingMock();
    113             var panel = new WebInspector.ScriptsPanel(mapping);
     109            var provider = createUISourceCodeProviderMock();
     110            var panel = new WebInspector.ScriptsPanel(provider);
    114111            panel.show();
    115112
    116113            var uiSourceCodeFoo = createUISouceCode("foo.js");
    117             mapping._addUISourceCode(uiSourceCodeFoo);
     114            provider._addUISourceCode(uiSourceCodeFoo);
    118115            var compiledSourceCode = createUISouceCode("compiled.js");
    119             mapping._addUISourceCode(compiledSourceCode);
     116            provider._addUISourceCode(compiledSourceCode);
    120117
    121118            InspectorTest.dumpScriptsNavigator(panel._navigator);
     
    123120            // Plug compiler source mapping.
    124121            var sourceSourceCode = createUISouceCode("source.js");
    125             mapping._replaceUISourceCode(compiledSourceCode, sourceSourceCode);
     122            provider._replaceUISourceCode(compiledSourceCode, sourceSourceCode);
    126123
    127124            InspectorTest.dumpScriptsNavigator(panel._navigator);
  • trunk/Source/WebCore/ChangeLog

    r117300 r117302  
     12012-05-16  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Web Inspector: extract CompositeUISourceCodeProvider from DebuggerScriptMapping.
     4        https://bugs.webkit.org/show_bug.cgi?id=86634
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        Extract refactoring.
     9
     10        * inspector/front-end/DebuggerScriptMapping.js:
     11        (WebInspector.DebuggerScriptMapping):
     12        (WebInspector.DebuggerScriptMapping.prototype.uiSourceCodeProviders):
     13        (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
     14        * inspector/front-end/ScriptsPanel.js:
     15        (WebInspector.ScriptsPanel.prototype._loadUISourceCodes):
     16        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
     17        (WebInspector.CompositeUISourceCodeProvider):
     18        (WebInspector.CompositeUISourceCodeProvider.prototype._registerUISourceCodeProvider):
     19        (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeAdded):
     20        (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeReplaced):
     21        (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeRemoved):
     22        (WebInspector.CompositeUISourceCodeProvider.prototype.uiSourceCodes):
     23        * inspector/front-end/UISourceCode.js:
     24        (WebInspector.UISourceCodeProvider.prototype.uiSourceCodes):
     25        (WebInspector.UISourceCodeProvider.prototype.addEventListener):
     26        (WebInspector.UISourceCodeProvider.prototype.removeEventListener):
     27
    1282012-05-16  Alexander Pavlov  <apavlov@chromium.org>
    229
  • trunk/Source/WebCore/inspector/front-end/DebuggerScriptMapping.js

    r117277 r117302  
    3131/**
    3232 * @constructor
    33  * @extends {WebInspector.Object}
    34  * @implements {WebInspector.UISourceCodeProvider}
    3533 */
    3634WebInspector.DebuggerScriptMapping = function()
     
    4442    this._snippetMapping = WebInspector.scriptSnippetModel.scriptMapping;
    4543    this._mappings.push(this._snippetMapping);
    46     for (var i = 0; i < this._mappings.length; ++i) {
    47         this._mappings[i].addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, this._handleUISourceCodeAdded, this);
    48         this._mappings[i].addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, this._handleUISourceCodeReplaced, this);
    49         this._mappings[i].addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, this._handleUISourceCodeRemoved, this);
    50     }
    5144
    5245    WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this);
     
    5750WebInspector.DebuggerScriptMapping.prototype = {
    5851    /**
     52     * @return {Array.<WebInspector.UISourceCodeProvider>}
     53     */
     54    uiSourceCodeProviders: function()
     55    {
     56        return this._mappings;
     57    },
     58
     59    /**
    5960     * @param {WebInspector.Event} event
    6061     */
     
    6465        var mapping = this._mappingForScript(script);
    6566        mapping.addScript(script);
    66     },
    67 
    68     /**
    69      * @return {Array.<WebInspector.UISourceCode>}
    70      */
    71     uiSourceCodes: function()
    72     {
    73         var result = [];
    74         for (var i = 0; i < this._mappings.length; ++i) {
    75             var uiSourceCodeList = this._mappings[i].uiSourceCodes();
    76             for (var j = 0; j < uiSourceCodeList.length; ++j)
    77                 result.push(uiSourceCodeList[j]);
    78         }
    79         return result;
    80     },
    81 
    82     /**
    83      * @param {WebInspector.Event} event
    84      */
    85     _handleUISourceCodeAdded: function(event)
    86     {
    87         this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, event.data);
    88     },
    89 
    90     /**
    91      * @param {WebInspector.Event} event
    92      */
    93     _handleUISourceCodeReplaced: function(event)
    94     {
    95         this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, event.data);
    96     },
    97 
    98     /**
    99      * @param {WebInspector.Event} event
    100      */
    101     _handleUISourceCodeRemoved: function(event)
    102     {
    103         this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, event.data);
    10467    },
    10568
     
    12992    }
    13093}
    131 
    132 WebInspector.DebuggerScriptMapping.prototype.__proto__ = WebInspector.Object.prototype;
  • trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js

    r117299 r117302  
    2929 * @implements {WebInspector.TabbedEditorContainerDelegate}
    3030 * @extends {WebInspector.Panel}
    31  * @param {WebInspector.DebuggerScriptMapping=} scriptMappingForTest
     31 * @param {WebInspector.CompositeUISourceCodeProvider=} uiSourceCodeProviderForTest
    3232 */
    33 WebInspector.ScriptsPanel = function(scriptMappingForTest)
     33WebInspector.ScriptsPanel = function(uiSourceCodeProviderForTest)
    3434{
    3535    WebInspector.Panel.call(this, "scripts");
     
    4040    WebInspector.settings.debuggerSidebarHidden = WebInspector.settings.createSetting("debuggerSidebarHidden", false);
    4141
    42     this._scriptMapping = scriptMappingForTest || new WebInspector.DebuggerScriptMapping();
    43     new WebInspector.PresentationConsoleMessageHelper(this._scriptMapping);
    44     new WebInspector.DebuggerResourceBinding(this._scriptMapping);
     42    var scriptMapping = new WebInspector.DebuggerScriptMapping();
     43    this._uiSourceCodeProvider = uiSourceCodeProviderForTest || new WebInspector.CompositeUISourceCodeProvider(scriptMapping.uiSourceCodeProviders());
     44
     45    new WebInspector.PresentationConsoleMessageHelper(this._uiSourceCodeProvider);
     46    new WebInspector.DebuggerResourceBinding(this._uiSourceCodeProvider);
    4547
    4648    function viewGetter()
     
    8082    this._editorContainer = new WebInspector.TabbedEditorContainer(this, "previouslyViewedFiles");
    8183    this._editorContainer.show(this.editorView.mainElement);
    82     WebInspector.OpenScriptDialog.install(this, this._scriptMapping, this.editorView.mainElement);
     84    WebInspector.OpenScriptDialog.install(this, this._uiSourceCodeProvider, this.editorView.mainElement);
    8385
    8486    this._navigatorController = new WebInspector.NavigatorOverlayController(this, this.editorView, this._navigator.view, this._editorContainer.view);
     
    173175    WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.BreakpointsActiveStateChanged, this._breakpointsActiveStateChanged, this);
    174176
    175     this._scriptMapping.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, this._handleUISourceCodeAdded, this);
    176     this._scriptMapping.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, this._uiSourceCodeReplaced, this);
    177     this._scriptMapping.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, this._uiSourceCodeRemoved, this);
     177    this._uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, this._handleUISourceCodeAdded, this);
     178    this._uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, this._uiSourceCodeReplaced, this);
     179    this._uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, this._uiSourceCodeRemoved, this);
    178180
    179181    var enableDebugger = !Capabilities.debuggerCausesRecompilation || WebInspector.settings.debuggerEnabled.get();
     
    181183        WebInspector.debuggerModel.enableDebugger();
    182184
    183     WebInspector.advancedSearchController.registerSearchScope(new WebInspector.ScriptsSearchScope(this._scriptMapping));
     185    WebInspector.advancedSearchController.registerSearchScope(new WebInspector.ScriptsSearchScope(this._uiSourceCodeProvider));
    184186}
    185187
     
    235237    _loadUISourceCodes: function()
    236238    {
    237         var uiSourceCodes = this._scriptMapping.uiSourceCodes();
     239        var uiSourceCodes = this._uiSourceCodeProvider.uiSourceCodes();
    238240        for (var i = 0; i < uiSourceCodes.length; ++i)
    239241            this._uiSourceCodeAdded(uiSourceCodes[i]);
     
    914916    {
    915917        this._toggleFormatSourceButton.toggled = !this._toggleFormatSourceButton.toggled;
    916         var uiSourceCodes = this._scriptMapping.uiSourceCodes();
     918        var uiSourceCodes = this._uiSourceCodeProvider.uiSourceCodes();
    917919        for (var i = 0; i < uiSourceCodes.length; ++i)
    918920            uiSourceCodes[i].setFormatted(this._toggleFormatSourceButton.toggled);
     
    995997            this._showSourceLine(snippetJavaScriptSource);
    996998        }
     999    },
     1000
     1001    /**
     1002     * @param {WebInspector.UISourceCodeProvider} uiSourceCodeProvider
     1003     */
     1004    registerUISourceCodeProvider: function(uiSourceCodeProvider)
     1005    {
     1006        this._uiSourceCodeProvider._registerUISourceCodeProvider(uiSourceCodeProvider);
    9971007    }
    9981008}
    9991009
    10001010WebInspector.ScriptsPanel.prototype.__proto__ = WebInspector.Panel.prototype;
     1011
     1012/**
     1013 * @constructor
     1014 * @extends {WebInspector.Object}
     1015 * @implements {WebInspector.UISourceCodeProvider}
     1016 * @param {Array.<WebInspector.UISourceCodeProvider>} uiSourceCodeProviders
     1017 */
     1018WebInspector.CompositeUISourceCodeProvider = function(uiSourceCodeProviders)
     1019{
     1020    WebInspector.Object.call(this);
     1021    this._uiSourceCodeProviders = [];
     1022    for (var i = 0; i < uiSourceCodeProviders.length; ++i)
     1023        this._registerUISourceCodeProvider(uiSourceCodeProviders[i]);
     1024}
     1025
     1026WebInspector.CompositeUISourceCodeProvider.prototype = {
     1027    /**
     1028     * @param {WebInspector.UISourceCodeProvider} uiSourceCodeProvider
     1029     */
     1030    _registerUISourceCodeProvider: function(uiSourceCodeProvider)
     1031    {
     1032        this._uiSourceCodeProviders.push(uiSourceCodeProvider);
     1033        uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, this._handleUISourceCodeAdded, this);
     1034        uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, this._handleUISourceCodeReplaced, this);
     1035        uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, this._handleUISourceCodeRemoved, this);
     1036    },
     1037
     1038    _handleUISourceCodeAdded: function(event)
     1039    {
     1040        this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, event.data);
     1041    },
     1042
     1043    /**
     1044     * @param {WebInspector.Event} event
     1045     */
     1046    _handleUISourceCodeReplaced: function(event)
     1047    {
     1048        this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, event.data);
     1049    },
     1050
     1051    /**
     1052     * @param {WebInspector.Event} event
     1053     */
     1054    _handleUISourceCodeRemoved: function(event)
     1055    {
     1056        this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, event.data);
     1057    },
     1058
     1059    /**
     1060     * @return {Array.<WebInspector.UISourceCode>}
     1061     */
     1062    uiSourceCodes: function()
     1063    {
     1064        var result = [];
     1065        for (var i = 0; i < this._uiSourceCodeProviders.length; ++i) {
     1066            var uiSourceCodes = this._uiSourceCodeProviders[i].uiSourceCodes();
     1067            for (var j = 0; j < uiSourceCodes.length; ++j)
     1068                result.push(uiSourceCodes[j]);
     1069        }
     1070        return result;
     1071    }
     1072}
     1073
     1074WebInspector.CompositeUISourceCodeProvider.prototype.__proto__ = WebInspector.Object.prototype;
  • trunk/Source/WebCore/inspector/front-end/UISourceCode.js

    r117277 r117302  
    307307     * @return {Array.<WebInspector.UISourceCode>}
    308308     */
    309     uiSourceCodes: function() {}
     309    uiSourceCodes: function() {},
     310
     311    /**
     312     * @param {string} eventType
     313     * @param {function(WebInspector.Event)} listener
     314     * @param {Object=} thisObject
     315     */
     316    addEventListener: function(eventType, listener, thisObject) { },
     317
     318    /**
     319     * @param {string} eventType
     320     * @param {function(WebInspector.Event)} listener
     321     * @param {Object=} thisObject
     322     */
     323    removeEventListener: function(eventType, listener, thisObject) { }
    310324}
    311325
  • trunk/Source/WebKit/chromium/src/js/Tests.js

    r117290 r117302  
    650650    }
    651651
    652     var uiSourceCodes = WebInspector.panels.scripts._scriptMapping.uiSourceCodes();
     652    var uiSourceCodes = WebInspector.panels.scripts._uiSourceCodeProvider.uiSourceCodes();
    653653    return uiSourceCodes.filter(filterOutAnonymous);
    654654};
Note: See TracChangeset for help on using the changeset viewer.