Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1007)

Unified Diff: third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js

Issue 1811853002: [DevTools] Move evaluateOnCallFrame to native (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js
diff --git a/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js b/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js
index 52df6263e3eb134683dff6f4a134ea39f937ed3c..146004b82271736f4c9f1c83798acefb6c0d2af1 100644
--- a/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js
+++ b/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js
@@ -289,13 +289,14 @@ InjectedScript.prototype = {
* @param {*} object
* @param {string} groupName
* @param {boolean} canAccessInspectedGlobalObject
+ * @param {boolean} forceValueType
* @param {boolean} generatePreview
* @return {!RuntimeAgent.RemoteObject}
*/
- wrapObject: function(object, groupName, canAccessInspectedGlobalObject, generatePreview)
+ wrapObject: function(object, groupName, canAccessInspectedGlobalObject, forceValueType, generatePreview)
{
if (canAccessInspectedGlobalObject)
- return this._wrapObject(object, groupName, false, generatePreview);
+ return this._wrapObject(object, groupName, forceValueType, generatePreview);
return this._fallbackWrapper(object);
},
@@ -404,6 +405,14 @@ InjectedScript.prototype = {
},
/**
+ * @param {*} result
+ */
+ setLastEvaluationResult: function(result)
+ {
+ this._lastResult = result;
+ },
+
+ /**
* @param {string} objectId
* @param {boolean} ownProperties
* @param {boolean} accessorPropertiesOnly
@@ -646,7 +655,16 @@ InjectedScript.prototype = {
*/
evaluate: function(expression, objectGroup, injectCommandLineAPI, returnByValue, generatePreview)
{
- return this._evaluateAndWrap(null, expression, objectGroup, injectCommandLineAPI, returnByValue, generatePreview);
+ var scopeExtensionForEval = injectCommandLineAPI ? new CommandLineAPI(this._commandLineAPIImpl) : undefined;
+ var wrappedResult = InjectedScriptHost.evaluateWithExceptionDetails(expression, scopeExtensionForEval);
+ if (objectGroup === "console" && !wrappedResult.exceptionDetails)
+ this._lastResult = wrappedResult.result;
+ if (!wrappedResult.exceptionDetails) {
+ return { wasThrown: false,
+ result: this._wrapObject(wrappedResult.result, objectGroup, returnByValue, generatePreview),
+ __proto__: null };
+ }
+ return this._createThrownValue(wrappedResult.result, objectGroup, generatePreview, wrappedResult.exceptionDetails);
},
/**
@@ -779,26 +797,6 @@ InjectedScript.prototype = {
},
/**
- * @param {?JavaScriptCallFrame} callFrame
- * @param {string} expression
- * @param {string} objectGroup
- * @param {boolean} injectCommandLineAPI
- * @param {boolean} returnByValue
- * @param {boolean} generatePreview
- * @return {!Object}
- */
- _evaluateAndWrap: function(callFrame, expression, objectGroup, injectCommandLineAPI, returnByValue, generatePreview)
- {
- var wrappedResult = this._evaluateOn(callFrame, objectGroup, expression, injectCommandLineAPI);
- if (!wrappedResult.exceptionDetails) {
- return { wasThrown: false,
- result: this._wrapObject(wrappedResult.result, objectGroup, returnByValue, generatePreview),
- __proto__: null };
- }
- return this._createThrownValue(wrappedResult.result, objectGroup, generatePreview, wrappedResult.exceptionDetails);
- },
-
- /**
* @param {*} value
* @param {string|undefined} objectGroup
* @param {boolean} generatePreview
@@ -817,27 +815,6 @@ InjectedScript.prototype = {
},
/**
- * @param {?JavaScriptCallFrame} callFrame
- * @param {string} objectGroup
- * @param {string} expression
- * @param {boolean} injectCommandLineAPI
- * @return {*}
- */
- _evaluateOn: function(callFrame, objectGroup, expression, injectCommandLineAPI)
- {
- // Only install command line api object for the time of evaluation.
- // Surround the expression in with statements to inject our command line API so that
- // the window object properties still take more precedent than our API functions.
-
- var scopeExtensionForEval = (callFrame && injectCommandLineAPI) ? new CommandLineAPI(this._commandLineAPIImpl, callFrame) : undefined;
- var wrappedResult = callFrame ? callFrame.evaluateWithExceptionDetails(expression, scopeExtensionForEval) : InjectedScriptHost.evaluateWithExceptionDetails(expression, injectCommandLineAPI ? new CommandLineAPI(this._commandLineAPIImpl, callFrame) : undefined);
- if (objectGroup === "console" && !wrappedResult.exceptionDetails)
- this._lastResult = wrappedResult.result;
- return wrappedResult;
-
- },
-
- /**
* @param {?Object} callFrame
* @return {!Array.<!InjectedScript.CallFrameProxy>|boolean}
*/
@@ -857,29 +834,11 @@ InjectedScript.prototype = {
},
/**
- * @param {!JavaScriptCallFrame} topCallFrame
- * @param {string} callFrameId
- * @param {string} expression
- * @param {string} objectGroup
- * @param {boolean} injectCommandLineAPI
- * @param {boolean} returnByValue
- * @param {boolean} generatePreview
- * @return {*}
- */
- evaluateOnCallFrame: function(topCallFrame, callFrameId, expression, objectGroup, injectCommandLineAPI, returnByValue, generatePreview)
- {
- var callFrame = this._callFrameForId(topCallFrame, callFrameId);
- if (!callFrame)
- return "Could not find call frame with given id";
- return this._evaluateAndWrap(callFrame, expression, objectGroup, injectCommandLineAPI, returnByValue, generatePreview);
- },
-
- /**
* @return {!CommandLineAPI}
*/
commandLineAPI: function()
{
- return new CommandLineAPI(this._commandLineAPIImpl, null);
+ return new CommandLineAPI(this._commandLineAPIImpl);
},
/**
@@ -1481,25 +1440,10 @@ InjectedScript.CallFrameProxy._createScopeJson = function(scopeTypeCode, scopeNa
/**
* @constructor
* @param {!CommandLineAPIImpl} commandLineAPIImpl
- * @param {?JavaScriptCallFrame} callFrame
*/
-function CommandLineAPI(commandLineAPIImpl, callFrame)
+function CommandLineAPI(commandLineAPIImpl)
{
/**
- * @param {string} member
- * @return {boolean}
- */
- function inScopeVariables(member)
- {
- var scopeChain = callFrame.scopeChain;
- for (var i = 0; i < scopeChain.length; ++i) {
- if (member in scopeChain[i])
- return true;
- }
- return false;
- }
-
- /**
* @param {string} name The name of the method for which a toString method should be generated.
* @return {function():string}
*/
@@ -1523,18 +1467,12 @@ function CommandLineAPI(commandLineAPIImpl, callFrame)
for (var i = 0; i < CommandLineAPI.members_.length; ++i) {
var member = CommandLineAPI.members_[i];
- if (callFrame && inScopeVariables(member))
- continue;
-
this[member] = bind(commandLineAPIImpl[member], commandLineAPIImpl);
this[member].toString = customToStringMethod(member);
}
for (var i = 0; i < 5; ++i) {
var member = "$" + i;
- if (callFrame && inScopeVariables(member))
- continue;
-
this[member] = bind(commandLineAPIImpl._inspectedObject, commandLineAPIImpl, i);
}

Powered by Google App Engine
This is Rietveld 408576698