Changeset 80228 in webkit


Ignore:
Timestamp:
Mar 3, 2011 3:27:00 AM (13 years ago)
Author:
podivilov@chromium.org
Message:

2011-03-02 Pavel Podivilov <podivilov@chromium.org>

Reviewed by Yury Semikhatsky.

Web Inspector: make selected call frame debugger presentation model property.
https://bugs.webkit.org/show_bug.cgi?id=55582

  • inspector/front-end/CallStackSidebarPane.js: (WebInspector.CallStackSidebarPane): (WebInspector.CallStackSidebarPane.prototype.update): (WebInspector.CallStackSidebarPane.prototype.set selectedCallFrame): (WebInspector.CallStackSidebarPane.prototype._selectedCallFrameIndex):
  • inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.completions):
  • inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype.set selectedCallFrame): (WebInspector.DebuggerPresentationModel.prototype.get selectedCallFrame):
  • inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): (WebInspector.ScriptsPanel.prototype.getCompletionsOnCallFrame): (WebInspector.ScriptsPanel.prototype._debuggerResumed): (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded): (WebInspector.ScriptsPanel.prototype._callFrameSelected):

2011-03-03 Pavel Podivilov <podivilov@chromium.org>

Reviewed by Yury Semikhatsky.

Web Inspector: make selected call frame debugger presentation model property.
https://bugs.webkit.org/show_bug.cgi?id=55582

  • src/js/Tests.js:
Location:
trunk/Source
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r80226 r80228  
     12011-03-02  Pavel Podivilov  <podivilov@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: make selected call frame debugger presentation model property.
     6        https://bugs.webkit.org/show_bug.cgi?id=55582
     7
     8        * inspector/front-end/CallStackSidebarPane.js:
     9        (WebInspector.CallStackSidebarPane):
     10        (WebInspector.CallStackSidebarPane.prototype.update):
     11        (WebInspector.CallStackSidebarPane.prototype.set selectedCallFrame):
     12        (WebInspector.CallStackSidebarPane.prototype._selectedCallFrameIndex):
     13        * inspector/front-end/ConsoleView.js:
     14        (WebInspector.ConsoleView.prototype.completions):
     15        * inspector/front-end/DebuggerPresentationModel.js:
     16        (WebInspector.DebuggerPresentationModel.prototype.set selectedCallFrame):
     17        (WebInspector.DebuggerPresentationModel.prototype.get selectedCallFrame):
     18        * inspector/front-end/ScriptsPanel.js:
     19        (WebInspector.ScriptsPanel):
     20        (WebInspector.ScriptsPanel.prototype.getCompletionsOnCallFrame):
     21        (WebInspector.ScriptsPanel.prototype._debuggerResumed):
     22        (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded):
     23        (WebInspector.ScriptsPanel.prototype._callFrameSelected):
     24
    1252011-03-03  Jia Pu  <jpu@apple.com>
    226
  • trunk/Source/WebCore/inspector/front-end/CallStackSidebarPane.js

    r78482 r80228  
    2424 */
    2525
    26 WebInspector.CallStackSidebarPane = function()
     26WebInspector.CallStackSidebarPane = function(model)
    2727{
    2828    WebInspector.SidebarPane.call(this, WebInspector.UIString("Call Stack"));
     29    this._model = model;
    2930}
    3031
     
    3536
    3637        this.placards = [];
    37         delete this._selectedCallFrame;
    3838
    3939        if (!details) {
     
    6767                subtitle = WebInspector.UIString("(internal script)");
    6868
    69             if (callFrame.line > 0) {
    70                 if (subtitle)
    71                     subtitle += ":" + callFrame.line;
    72                 else
    73                     subtitle = WebInspector.UIString("line %d", callFrame.line);
    74             }
     69            if (subtitle)
     70                subtitle += ":" + (callFrame.line + 1);
     71            else
     72                subtitle = WebInspector.UIString("line %d", callFrame.line + 1);
    7573
    7674            var placard = new WebInspector.Placard(title, subtitle);
     
    8987    },
    9088
    91     get selectedCallFrame()
    92     {
    93         return this._selectedCallFrame;
    94     },
    95 
    9689    set selectedCallFrame(x)
    9790    {
    98         this._selectedCallFrame = x;
     91        this._model.selectedCallFrame = x;
    9992
    10093        for (var i = 0; i < this.placards.length; ++i) {
    10194            var placard = this.placards[i];
    102             placard.selected = (placard.callFrame === this._selectedCallFrame);
     95            placard.selected = (placard.callFrame === x);
    10396        }
    104 
    105         this.dispatchEventToListeners("call frame selected");
    10697    },
    10798
     
    142133    _selectedCallFrameIndex: function()
    143134    {
    144         if (!this._selectedCallFrame)
     135        if (!this._model.selectedCallFrame)
    145136            return -1;
    146137        for (var i = 0; i < this.placards.length; ++i) {
    147138            var placard = this.placards[i];
    148             if (placard.callFrame === this._selectedCallFrame)
     139            if (placard.callFrame === this._model.selectedCallFrame)
    149140                return i;
    150141        }
  • trunk/Source/WebCore/inspector/front-end/ConsoleView.js

    r79345 r80228  
    358358
    359359        var includeCommandLineAPI = (!dotNotation && !bracketNotation);
    360         if (WebInspector.panels.scripts && WebInspector.panels.scripts.paused)
    361             DebuggerAgent.getCompletionsOnCallFrame(WebInspector.panels.scripts.selectedCallFrameId(), expressionString, includeCommandLineAPI, reportCompletions);
     360        if (WebInspector.panels.scripts.paused)
     361            WebInspector.panels.scripts.getCompletionsOnCallFrame(expressionString, includeCommandLineAPI, reportCompletions);
    362362        else
    363363            RuntimeAgent.getCompletions(expressionString, includeCommandLineAPI, reportCompletions);
  • trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js

    r80224 r80228  
    106106    },
    107107
     108    set selectedCallFrame(callFrame)
     109    {
     110        this._selectedCallFrame = callFrame;
     111        if (!callFrame)
     112            return;
     113
     114        var script = WebInspector.debuggerModel.scriptForSourceID(callFrame.sourceID);
     115        callFrame.sourceLocation = this._actualLocationToSourceLocation(script.sourceURL || script.sourceID, callFrame.line, callFrame.column);
     116        this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Events.CallFrameSelected, callFrame);
     117    },
     118
     119    get selectedCallFrame()
     120    {
     121        return this._selectedCallFrame;
     122    },
     123
    108124    _actualLocationToSourceLocation: function(sourceID, lineNumber, columnNumber)
    109125    {
  • trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js

    r80224 r80228  
    141141    this.sidebarPanes = {};
    142142    this.sidebarPanes.watchExpressions = new WebInspector.WatchExpressionsSidebarPane();
    143     this.sidebarPanes.callstack = new WebInspector.CallStackSidebarPane();
     143    this.sidebarPanes.callstack = new WebInspector.CallStackSidebarPane(this._presentationModel);
    144144    this.sidebarPanes.scopechain = new WebInspector.ScopeChainSidebarPane();
    145145    this.sidebarPanes.jsBreakpoints = new WebInspector.JavaScriptBreakpointsSidebarPane();
     
    156156
    157157    this.sidebarPanes.callstack.expanded = true;
    158     this.sidebarPanes.callstack.addEventListener("call frame selected", this._callFrameSelected, this);
    159158
    160159    this.sidebarPanes.scopechain.expanded = true;
     
    194193    this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.BreakpointAdded, this._breakpointAdded, this);
    195194    this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.BreakpointRemoved, this._breakpointRemoved, this);
     195    this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.CallFrameSelected, this._callFrameSelected, this);
    196196}
    197197
     
    404404    },
    405405
    406     selectedCallFrameId: function()
    407     {
    408         var selectedCallFrame = this.sidebarPanes.callstack.selectedCallFrame;
    409         if (!selectedCallFrame)
    410             return null;
    411         return selectedCallFrame.id;
     406    getCompletionsOnCallFrame: function(expressionString, includeCommandLineAPI, callback)
     407    {
     408        var selectedCallFrame = this._presentationModel.selectedCallFrame;
     409        if (!this._paused || !selectedCallFrame)
     410            return;
     411
     412        DebuggerAgent.getCompletionsOnCallFrame(selectedCallFrame.id, expressionString, includeCommandLineAPI, callback);
    412413    },
    413414
    414415    evaluateInSelectedCallFrame: function(code, updateInterface, objectGroup, includeCommandLineAPI, callback)
    415416    {
    416         var selectedCallFrame = this.sidebarPanes.callstack.selectedCallFrame;
     417        var selectedCallFrame = this._presentationModel.selectedCallFrame;
    417418        if (!this._paused || !selectedCallFrame)
    418419            return;
     
    453454    _debuggerResumed: function()
    454455    {
     456        this._presentationModel.selectedCallFrame = null;
     457
    455458        this._paused = false;
    456459        this._waitingToPause = false;
     
    642645        }
    643646
    644         var selectedCallFrame = this.sidebarPanes.callstack.selectedCallFrame;
     647        var selectedCallFrame = this._presentationModel.selectedCallFrame;
    645648        if (selectedCallFrame) {
    646             var script = WebInspector.debuggerModel.scriptForSourceID(selectedCallFrame.sourceID);
    647             if (this._sourceFileIdForScript(script) === sourceFileId) {
    648                 sourceFrame.setExecutionLine(selectedCallFrame.line);
     649            if (selectedCallFrame.sourceLocation.sourceFileId === sourceFileId) {
     650                sourceFrame.setExecutionLine(selectedCallFrame.sourceLocation.lineNumber);
    649651                this._executionSourceFrame = sourceFrame;
    650652            }
     
    673675    },
    674676
    675     _callFrameSelected: function()
    676     {
     677    _callFrameSelected: function(event)
     678    {
     679        var callFrame = event.data;
     680
    677681        this._clearCurrentExecutionLine();
    678682
    679         var callStackPane = this.sidebarPanes.callstack;
    680         var currentFrame = callStackPane.selectedCallFrame;
    681         if (!currentFrame)
    682             return;
    683 
    684         this.sidebarPanes.scopechain.update(currentFrame);
     683        if (!callFrame)
     684            return;
     685
     686        this.sidebarPanes.scopechain.update(callFrame);
    685687        this.sidebarPanes.watchExpressions.refreshExpressions();
    686688
    687         var script = WebInspector.debuggerModel.scriptForSourceID(currentFrame.sourceID);
    688         var sourceFileId = this._sourceFileIdForScript(script);
     689        var sourceFileId = callFrame.sourceLocation.sourceFileId;
    689690        if (!(sourceFileId in this._sourceFileIdToFilesSelectOption)) {
    690691            // This happens in two cases:
     
    695696        var sourceFrame = this._showSourceFrameAndAddToHistory(sourceFileId);
    696697        if (sourceFrame.loaded) {
    697             sourceFrame.setExecutionLine(currentFrame.line);
     698            sourceFrame.setExecutionLine(callFrame.sourceLocation.lineNumber);
    698699            this._executionSourceFrame = sourceFrame;
    699700        }
  • trunk/Source/WebKit/chromium/ChangeLog

    r80219 r80228  
     12011-03-03  Pavel Podivilov  <podivilov@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: make selected call frame debugger presentation model property.
     6        https://bugs.webkit.org/show_bug.cgi?id=55582
     7
     8        * src/js/Tests.js:
     9
    1102011-03-03  Bill Budge  <bbudge@chromium.org>
    211
  • trunk/Source/WebKit/chromium/src/js/Tests.js

    r79555 r80228  
    455455    // Script execution can already be paused.
    456456    if (WebInspector.currentPanel.paused) {
    457         var callFrame = WebInspector.currentPanel.sidebarPanes.callstack.selectedCallFrame;
     457        var callFrame = WebInspector.currentPanel._presentationModel.selectedCallFrame;
    458458        this.assertEquals(expectations.functionsOnStack[0], callFrame.functionName);
    459459        var callbackInvoked = false;
Note: See TracChangeset for help on using the changeset viewer.