Changeset 86768 in webkit


Ignore:
Timestamp:
May 18, 2011 8:52:57 AM (13 years ago)
Author:
pfeldman@chromium.org
Message:

2011-05-18 Pavel Feldman <pfeldman@google.com>

Reviewed by Yury Semikhatsky.

Web Inspector: [REGRESSION] Completion while on a breakpoint is not working.
https://bugs.webkit.org/show_bug.cgi?id=60811

  • inspector/debugger/debugger-completions-on-call-frame-expected.txt: Added.
  • inspector/debugger/debugger-completions-on-call-frame.html: Added.

2011-05-18 Pavel Feldman <pfeldman@google.com>

Reviewed by Yury Semikhatsky.

Web Inspector: [REGRESSION] Completion while on a breakpoint is not working.
https://bugs.webkit.org/show_bug.cgi?id=60811

Test: inspector/debugger/debugger-completions-on-call-frame.html

  • inspector/InjectedScriptSource.js:
  • inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.completions.else.evaluated):
  • inspector/front-end/DebuggerPresentationModel.js: (WebInspector.PresenationCallFrame.prototype.get variables):
  • inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.selectedCallFrameVariables):
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r86765 r86768  
     12011-05-18  Pavel Feldman  <pfeldman@google.com>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: [REGRESSION] Completion while on a breakpoint is not working.
     6        https://bugs.webkit.org/show_bug.cgi?id=60811
     7
     8        * inspector/debugger/debugger-completions-on-call-frame-expected.txt: Added.
     9        * inspector/debugger/debugger-completions-on-call-frame.html: Added.
     10
    1112011-05-18  Nikolas Zimmermann  <nzimmermann@rim.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r86765 r86768  
     12011-05-18  Pavel Feldman  <pfeldman@google.com>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: [REGRESSION] Completion while on a breakpoint is not working.
     6        https://bugs.webkit.org/show_bug.cgi?id=60811
     7
     8        Test: inspector/debugger/debugger-completions-on-call-frame.html
     9
     10        * inspector/InjectedScriptSource.js:
     11        * inspector/front-end/ConsoleView.js:
     12        (WebInspector.ConsoleView.prototype.completions.else.evaluated):
     13        * inspector/front-end/DebuggerPresentationModel.js:
     14        (WebInspector.PresenationCallFrame.prototype.get variables):
     15        * inspector/front-end/ScriptsPanel.js:
     16        (WebInspector.ScriptsPanel.prototype.selectedCallFrameVariables):
     17
    1182011-05-18  Nikolas Zimmermann  <nzimmermann@rim.com>
    219
  • trunk/Source/WebCore/inspector/front-end/ConsoleView.js

    r86672 r86768  
    351351        var expressionRange = wordRange.startContainer.rangeOfWord(wordRange.startOffset, ExpressionStopCharacters, this.promptElement, "backward");
    352352        var expressionString = expressionRange.toString();
     353        var prefix = wordRange.toString();
     354        this._completions(expressionString, prefix, bestMatchOnly, completionsReadyCallback);
     355    },
     356
     357    _completions: function(expressionString, prefix, bestMatchOnly, completionsReadyCallback)
     358    {
    353359        var lastIndex = expressionString.length - 1;
    354360
     
    359365            expressionString = expressionString.substr(0, lastIndex);
    360366
    361         var prefix = wordRange.toString();
    362367        if (!expressionString && !prefix)
    363368            return;
    364369
    365         this.evalInInspectedWindow(expressionString, "completion", true, evaluated.bind(this));
     370        if (!expressionString && WebInspector.panels.scripts.paused)
     371            WebInspector.panels.scripts.getSelectedCallFrameVariables(reportCompletions.bind(this));
     372        else
     373            this.evalInInspectedWindow(expressionString, "completion", true, evaluated.bind(this));
    366374
    367375        function evaluated(result, wasThrown)
     
    375383        {
    376384            RuntimeAgent.releaseObjectGroup("completion");
    377             var propertyNames = [];
     385            var propertyNames = {};
    378386            for (var i = 0; properties && i < properties.length; ++i)
    379                 propertyNames.push(properties[i].name);
    380 
     387                propertyNames[properties[i].name] = true;
     388            reportCompletions.call(this, propertyNames);
     389        }
     390
     391        function reportCompletions(propertyNames)
     392        {
    381393            var includeCommandLineAPI = (!dotNotation && !bracketNotation);
    382             if (includeCommandLineAPI)
    383                 propertyNames.splice(0, 0, "dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents", "inspect", "copy", "clear");
    384             this._reportCompletions(bestMatchOnly, completionsReadyCallback, dotNotation, bracketNotation, prefix, propertyNames);
     394            if (includeCommandLineAPI) {
     395                const commandLineAPI = ["dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents", "inspect", "copy", "clear"];
     396                for (var i = 0; i < commandLineAPI.length; ++i)
     397                    propertyNames[commandLineAPI[i]] = true;
     398            }
     399           
     400            this._reportCompletions(bestMatchOnly, completionsReadyCallback, dotNotation, bracketNotation, prefix, Object.keys(propertyNames));
    385401        }
    386402    },
  • trunk/Source/WebCore/inspector/front-end/RemoteObject.js

    r82609 r86768  
    126126        function remoteObjectBinder(error, properties)
    127127        {
    128             if (error)
     128            if (error) {
     129                callback(null);
    129130                return;
     131            }
    130132            for (var i = 0; properties && i < properties.length; ++i)
    131133                properties[i].value = WebInspector.RemoteObject.fromPayload(properties[i].value);
  • trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js

    r86757 r86768  
    377377    },
    378378
     379    getSelectedCallFrameVariables: function(callback)
     380    {
     381        var result = { this: true };
     382
     383        var selectedCallFrame = this._presentationModel.selectedCallFrame;
     384        if (!selectedCallFrame)
     385            callback(result);
     386
     387        var pendingRequests = 0;
     388
     389        function propertiesCollected(properties)
     390        {
     391            for (var i = 0; properties && i < properties.length; ++i)
     392                result[properties[i].name] = true;
     393            if (--pendingRequests == 0)
     394                callback(result);
     395        }
     396
     397        for (var i = 0; i < selectedCallFrame.scopeChain.length; ++i) {
     398            var scope = selectedCallFrame.scopeChain[i];
     399            var object = WebInspector.RemoteObject.fromPayload(scope.object);
     400            pendingRequests++;
     401            object.getAllProperties(propertiesCollected);
     402        }
     403    },
     404
    379405    _debuggerPaused: function(event)
    380406    {
Note: See TracChangeset for help on using the changeset viewer.