diff options
author | pneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-20 21:54:29 +0000 |
---|---|---|
committer | pneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-20 21:54:29 +0000 |
commit | 0d17cd746d7e442296e6ab5d99573a2271487806 (patch) | |
tree | 48b64bb55cea0ebceffec0e88e5dd0b4db7d1a16 /extensions/renderer/utils_native_handler.cc | |
parent | 8d42db5bdc8f9f8cd7a041895a78003fc42bab2b (diff) | |
download | chromium_src-0d17cd746d7e442296e6ab5d99573a2271487806.zip chromium_src-0d17cd746d7e442296e6ab5d99573a2271487806.tar.gz chromium_src-0d17cd746d7e442296e6ab5d99573a2271487806.tar.bz2 |
enterprise.platformKeys: Copy-on-read the 'algorithm' member of Key objects.
With this change, a Key object's algorithm member is copied on every read access. Effectively preventing it's modification as required by the WebCrypto specification.
BUG=385143
R=bartfab@chromium.org, kalman@chromium.org
Review URL: https://codereview.chromium.org/332233002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278833 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions/renderer/utils_native_handler.cc')
-rw-r--r-- | extensions/renderer/utils_native_handler.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/extensions/renderer/utils_native_handler.cc b/extensions/renderer/utils_native_handler.cc index 1c0941f..a59cc7c 100644 --- a/extensions/renderer/utils_native_handler.cc +++ b/extensions/renderer/utils_native_handler.cc @@ -7,6 +7,7 @@ #include "base/strings/stringprintf.h" #include "extensions/renderer/script_context.h" #include "third_party/WebKit/public/web/WebScopedMicrotaskSuppression.h" +#include "third_party/WebKit/public/web/WebSerializedScriptValue.h" namespace extensions { @@ -15,6 +16,9 @@ UtilsNativeHandler::UtilsNativeHandler(ScriptContext* context) RouteFunction("createClassWrapper", base::Bind(&UtilsNativeHandler::CreateClassWrapper, base::Unretained(this))); + RouteFunction( + "deepCopy", + base::Bind(&UtilsNativeHandler::DeepCopy, base::Unretained(this))); } UtilsNativeHandler::~UtilsNativeHandler() {} @@ -81,4 +85,11 @@ void UtilsNativeHandler::CreateClassWrapper( args.GetReturnValue().Set(result); } +void UtilsNativeHandler::DeepCopy( + const v8::FunctionCallbackInfo<v8::Value>& args) { + CHECK_EQ(1, args.Length()); + args.GetReturnValue().Set( + blink::WebSerializedScriptValue::serialize(args[0]).deserialize()); +} + } // namespace extensions |