diff options
Diffstat (limited to 'chrome/browser/renderer_host')
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.cc | 5 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_view_host_delegate.h | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index 21b8d34..bd4f092 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -890,8 +890,8 @@ void RenderViewHost::OnMsgNavigate(const IPC::Message& msg) { if (PageTransition::IsMainFrame(validated_params.transition)) { ExtensionFunctionDispatcher* new_efd = NULL; if (validated_params.url.SchemeIs(chrome::kExtensionScheme)) { - new_efd = new ExtensionFunctionDispatcher(this, - validated_params.url.host()); + new_efd = delegate()->CreateExtensionFunctionDispatcher(this, + validated_params.url.host()); } extension_function_dispatcher_.reset(new_efd); } @@ -1352,6 +1352,7 @@ void RenderViewHost::OnExtensionRequest(const std::string& name, int callback_id) { // TODO(aa): Here is where we can check that this renderer was supposed to be // able to call extension APIs. + DCHECK(extension_function_dispatcher_.get()); extension_function_dispatcher_->HandleRequest(name, args, callback_id); } diff --git a/chrome/browser/renderer_host/render_view_host_delegate.h b/chrome/browser/renderer_host/render_view_host_delegate.h index ba69b03..18b1f38 100644 --- a/chrome/browser/renderer_host/render_view_host_delegate.h +++ b/chrome/browser/renderer_host/render_view_host_delegate.h @@ -19,7 +19,10 @@ #include "webkit/glue/webpreferences.h" #include "webkit/glue/window_open_disposition.h" +#include "chrome/browser/extensions/extension_function_dispatcher.h" + class AutofillForm; +class ExtensionFunctionDispatcher; class NavigationEntry; class Profile; class RenderProcessHost; @@ -147,6 +150,14 @@ class RenderViewHostDelegate { // Retrieves the profile to be used. virtual Profile* GetProfile() const = 0; + // Create a new browser window to be sized, shown and contents managed + // by the caller. + virtual ExtensionFunctionDispatcher *CreateExtensionFunctionDispatcher( + RenderViewHost* render_view_host, + const std::string& extension_id) { + return NULL; + } + // Return this object cast to a WebContents, if it is one. virtual WebContents* GetAsWebContents() { return NULL; } |