Index: chrome/browser/renderer_host/render_view_host.cc |
=================================================================== |
--- chrome/browser/renderer_host/render_view_host.cc (revision 17323) |
+++ chrome/browser/renderer_host/render_view_host.cc (working copy) |
@@ -145,11 +145,16 @@ |
DCHECK(process()->channel()); |
DCHECK(process()->profile()); |
- if (enabled_bindings_ & BindingsPolicy::DOM_UI) { |
+ if (BindingsPolicy::is_dom_ui_enabled(enabled_bindings_)) { |
ChildProcessSecurityPolicy::GetInstance()->GrantDOMUIBindings( |
process()->pid()); |
} |
+ if (BindingsPolicy::is_extension_enabled(enabled_bindings_)) { |
+ ChildProcessSecurityPolicy::GetInstance()->GrantExtensionBindings( |
+ process()->pid()); |
+ } |
+ |
renderer_initialized_ = true; |
#if defined(OS_WIN) |
@@ -1424,8 +1429,11 @@ |
const std::string& args, |
int request_id, |
bool has_callback) { |
- // TODO(aa): Here is where we can check that this renderer was supposed to be |
- // able to call extension APIs. |
+ if (!BindingsPolicy::is_extension_enabled(enabled_bindings_)) { |
+ NOTREACHED() << "Blocked unauthorized use of extension bindings."; |
+ return; |
+ } |
+ |
DCHECK(extension_function_dispatcher_.get()); |
extension_function_dispatcher_->HandleRequest(name, args, request_id, |
has_callback); |