| Index: chrome/browser/renderer_host/render_view_host.cc
|
| diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc
|
| index 41cbd002608fff8d722fc45aa992d42cf9ea7f82..95a53ddea2b1b1b3f729f87923dbd46b0e0832fd 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()) {
|
|
|