diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-12 23:19:46 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-12 23:19:46 +0000 |
commit | c74e80bdba0edd3e4f30b2316579cfb88d17ad9f (patch) | |
tree | 7b13a35d5857851b90c4da0587713c6d5df2646b /chrome/renderer | |
parent | 13add42e40146f296ce11b56fa20d9aee8cb54a2 (diff) | |
download | chromium_src-c74e80bdba0edd3e4f30b2316579cfb88d17ad9f.zip chromium_src-c74e80bdba0edd3e4f30b2316579cfb88d17ad9f.tar.gz chromium_src-c74e80bdba0edd3e4f30b2316579cfb88d17ad9f.tar.bz2 |
Allow extensions to use APIs that they didn't ask permission to use.
BUG=no
TEST=no
Review URL: http://codereview.chromium.org/165408
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23245 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/extensions/event_bindings.cc | 7 | ||||
-rw-r--r-- | chrome/renderer/extensions/extension_process_bindings.cc | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/chrome/renderer/extensions/event_bindings.cc b/chrome/renderer/extensions/event_bindings.cc index fcc0bcf..5003b82 100644 --- a/chrome/renderer/extensions/event_bindings.cc +++ b/chrome/renderer/extensions/event_bindings.cc @@ -79,10 +79,15 @@ class ExtensionImpl : public ExtensionBase { std::string event_name(*v8::String::AsciiValue(args[0])); bool has_permission = ExtensionProcessBindings::CurrentContextHasPermission(event_name); +#if EXTENSION_TIME_TO_BREAK_API + bool allow_api = has_permission; +#else + bool allow_api = true; +#endif // Increment the count even if the caller doesn't have permission, so that // refcounts stay balanced. - if (EventIncrementListenerCount(event_name) == 1 && has_permission) { + if (EventIncrementListenerCount(event_name) == 1 && allow_api) { EventBindings::GetRenderThread()->Send( new ViewHostMsg_ExtensionAddListener(event_name)); } diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc index 78afca5..cf0f344 100644 --- a/chrome/renderer/extensions/extension_process_bindings.cc +++ b/chrome/renderer/extensions/extension_process_bindings.cc @@ -202,8 +202,13 @@ class ExtensionImpl : public ExtensionBase { return v8::Undefined(); } - if (!ExtensionProcessBindings::CurrentContextHasPermission(name)) + if (!ExtensionProcessBindings::CurrentContextHasPermission(name)) { +#if EXTENSION_TIME_TO_BREAK_API return ExtensionProcessBindings::ThrowPermissionDeniedException(name); +#else + ExtensionProcessBindings::ThrowPermissionDeniedException(name); +#endif + } std::string json_args = *v8::String::Utf8Value(args[1]); int request_id = args[2]->Int32Value(); |