diff options
Diffstat (limited to 'chrome/browser/renderer_host/render_view_host.cc')
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index 41cbd00..95a53dd 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -1609,7 +1609,9 @@ void RenderViewHost::OnExtensionRequest(const std::string& name, bool has_callback) { if (!ChildProcessSecurityPolicy::GetInstance()-> HasExtensionBindings(process()->id())) { - NOTREACHED() << "Blocked unauthorized use of extension bindings."; + // This can happen if someone uses window.open() to open an extension URL + // from a non-extension context. + BlockExtensionRequest(request_id); return; } @@ -1623,6 +1625,11 @@ void RenderViewHost::SendExtensionResponse(int request_id, bool success, response, error)); } +void RenderViewHost::BlockExtensionRequest(int request_id) { + SendExtensionResponse(request_id, false, "", + "Access to extension API denied."); +} + void RenderViewHost::OnExtensionPostMessage( int port_id, const std::string& message) { if (process()->profile()->GetExtensionMessageService()) { |