Changeset 99864 in webkit
- Timestamp:
- Nov 10, 2011 8:49:32 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r99862 r99864 1 2011-11-10 Andrey Kosyakov <caseq@chromium.org> 2 3 Web Inspector: wrong JSON.stringify used in webInspector.inspectedWindow.eval() backend 4 https://bugs.webkit.org/show_bug.cgi?id=63083 5 6 Reviewed by Pavel Feldman. 7 8 * inspector/extensions/extensions-eval-expected.txt: 9 * inspector/extensions/extensions-eval.html: 10 * platform/chromium/inspector/extensions/extensions-eval-expected.txt: Removed. 11 1 12 2011-11-10 Florin Malita <fmalita@google.com> 2 13 -
trunk/LayoutTests/inspector/extensions/extensions-eval-expected.txt
r92961 r99864 7 7 RUNNING TEST: extension_testEvalDefinesGlobalSymbols 8 8 Evaluate: {"func":"function","variable":42} (exception: undefined) 9 RUNNING TEST: extension_testEvalFailed10 Evaluate: "TypeError: JSON.stringify cannot serialize cyclic structures." (exception: true)11 9 RUNNING TEST: extension_testEvalOk 12 10 Evaluate: {"str":"foo","num":42} (exception: undefined) 13 11 RUNNING TEST: extension_testEvalStatement 14 12 Evaluate: 0 (exception: undefined) 13 RUNNING TEST: extension_testEvalStringifyingLoopFailed 14 Evaluate: "Object has too long reference chain(must not be longer than 1000)" (exception: true) 15 15 RUNNING TEST: extension_testEvalUndefined 16 16 Evaluate: undefined (exception: undefined) 17 RUNNING TEST: extension_testWithStringifyOverridden 18 Evaluate: "OK" (exception: undefined) 17 19 All tests done. 18 20 -
trunk/LayoutTests/inspector/extensions/extensions-eval.html
r82713 r99864 7 7 window.inspectedValue = { str: "foo", num: 42 }; 8 8 9 window.loop = { }; 10 window.loop.next = window.loop; 11 9 12 function extension_testEvalOk(nextTest) 10 13 { … … 12 15 } 13 16 14 function extension_testEval Failed(nextTest)17 function extension_testEvalStringifyingLoopFailed(nextTest) 15 18 { 16 webInspector.inspectedWindow.eval(" document.body", callbackAndNextTest(extension_onEval, nextTest));19 webInspector.inspectedWindow.eval("window.loop", callbackAndNextTest(extension_onEval, nextTest)); 17 20 } 18 21 … … 39 42 } 40 43 44 function extension_testWithStringifyOverridden(nextTest) 45 { 46 webInspector.inspectedWindow.eval("(JSON.stringify = function() { throw 'oops! you can not use JSON.stringify'; }), 'OK'", callbackAndNextTest(extension_onEval, nextTest)); 47 } 48 41 49 function extension_onEval(value, isException) 42 50 { -
trunk/Source/WebCore/ChangeLog
r99862 r99864 1 2011-11-10 Andrey Kosyakov <caseq@chromium.org> 2 3 Web Inspector: wrong JSON.stringify used in webInspector.inspectedWindow.eval() backend 4 https://bugs.webkit.org/show_bug.cgi?id=63083 5 6 Reviewed by Pavel Feldman. 7 8 * inspector/front-end/ExtensionAPI.js: 9 (injectedExtensionAPI.InspectedWindow.prototype.eval): 10 * inspector/front-end/ExtensionServer.js: 11 (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage): 12 1 13 2011-11-10 Florin Malita <fmalita@google.com> 2 14 -
trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js
r99575 r99864 507 507 function callbackWrapper(result) 508 508 { 509 var value = result.value; 510 if (!result.isException) 511 value = value === "undefined" ? undefined : JSON.parse(value); 512 callback(value, result.isException); 509 callback(result.value, result.isException); 513 510 } 514 511 return extensionServer.sendRequest({ command: "evaluateOnInspectedPage", expression: expression }, callback && callbackWrapper); -
trunk/Source/WebCore/inspector/front-end/ExtensionServer.js
r98541 r99864 299 299 function callback(error, resultPayload, wasThrown) 300 300 { 301 if (error)302 return;303 var resultObject = WebInspector.RemoteObject.fromPayload(resultPayload);304 301 var result = {}; 302 if (error) { 303 result.isException = true; 304 result.value = error.message; 305 } else 306 result.value = resultPayload.value; 307 305 308 if (wasThrown) 306 309 result.isException = true; 307 result.value = resultObject.description;310 308 311 this._dispatchCallback(message.requestId, port, result); 309 312 } 310 var evalExpression = "JSON.stringify(eval(unescape('" + escape(message.expression) + "')));"; 311 RuntimeAgent.evaluate(evalExpression, "", true, undefined, undefined, undefined, callback.bind(this)); 313 RuntimeAgent.evaluate(message.expression, "", true, undefined, undefined, true, callback.bind(this)); 312 314 }, 313 315
Note: See TracChangeset
for help on using the changeset viewer.