diff options
author | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-09 20:30:19 +0000 |
---|---|---|
committer | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-09 20:30:19 +0000 |
commit | 2d58238b78d653db0293b107997022b7046c0e83 (patch) | |
tree | 8ed2dfb54214ac12380b2363ec3bdf7a674149ba /chrome/renderer/resources/extensions/send_request.js | |
parent | 395f7e2929bacb73128bbe2c5833b1f21a71ca72 (diff) | |
download | chromium_src-2d58238b78d653db0293b107997022b7046c0e83.zip chromium_src-2d58238b78d653db0293b107997022b7046c0e83.tar.gz chromium_src-2d58238b78d653db0293b107997022b7046c0e83.tar.bz2 |
Allow serialization of ArrayBuffer params in extension/apps API methods
This changes the V8ValueConverter to do ArrayBuffer<->BinaryValue conversions,
as well as supporting ArrayBufferView subclasses as request parameters (but
not response ones, since that's unnecessary).
Also adds an experimental API for testing ArrayBuffers in request/response
parameters.
(This is re-landing https://chromiumcodereview.appspot.com/10161038, which
ran into some test failures fixed by crrev.com/135933)
TBR=asargent@chromium.org
BUG=122675
TEST=Included browser tests should pass
Review URL: https://chromiumcodereview.appspot.com/10377063
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136114 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/resources/extensions/send_request.js')
-rw-r--r-- | chrome/renderer/resources/extensions/send_request.js | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/chrome/renderer/resources/extensions/send_request.js b/chrome/renderer/resources/extensions/send_request.js index 045e270..2e79b8a 100644 --- a/chrome/renderer/resources/extensions/send_request.js +++ b/chrome/renderer/resources/extensions/send_request.js @@ -107,8 +107,13 @@ function sendRequest(functionName, args, argSchemas, opt_args) { if (request.args === undefined) request.args = null; - var sargs = opt_args.noStringify ? - request.args : chromeHidden.JSON.stringify(request.args); + // TODO(asargent) - convert all optional native functions to accept raw + // v8 values instead of expecting JSON strings. + var doStringify = false; + if (opt_args.nativeFunction && !opt_args.noStringify) + doStringify = true; + var requestArgs = doStringify ? + chromeHidden.JSON.stringify(request.args) : request.args; var nativeFunction = opt_args.nativeFunction || natives.StartRequest; var requestId = natives.GetNextRequestId(); @@ -116,7 +121,7 @@ function sendRequest(functionName, args, argSchemas, opt_args) { requests[requestId] = request; var hasCallback = (request.callback || opt_args.customCallback) ? true : false; - return nativeFunction(functionName, sargs, requestId, hasCallback, + return nativeFunction(functionName, requestArgs, requestId, hasCallback, opt_args.forIOThread); } |