Index: chrome/browser/extensions/extension_host.cc |
diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc |
index 276a432f4eb5995bf09a6f5c98e0b9c8fed1de40..aff6eabdb04b7a1248d8b48103e47692db7fc38d 100644 |
--- a/chrome/browser/extensions/extension_host.cc |
+++ b/chrome/browser/extensions/extension_host.cc |
@@ -26,6 +26,7 @@ |
#include "chrome/common/pref_names.h" |
#include "chrome/common/pref_service.h" |
#include "chrome/common/render_messages.h" |
+#include "chrome/common/url_constants.h" |
#include "grit/browser_resources.h" |
#include "grit/generated_resources.h" |
@@ -193,6 +194,10 @@ void ExtensionHost::DidNavigate(RenderViewHost* render_view_host, |
} |
url_ = params.url; |
+ if (!url_.SchemeIs(chrome::kExtensionScheme)) { |
+ extension_function_dispatcher_.reset(NULL); |
+ return; |
+ } |
extension_function_dispatcher_.reset( |
new ExtensionFunctionDispatcher(render_view_host_, this, url_)); |
} |
@@ -244,8 +249,10 @@ void ExtensionHost::ProcessDOMUIMessage(const std::string& message, |
const std::string& content, |
int request_id, |
bool has_callback) { |
- extension_function_dispatcher_->HandleRequest(message, content, request_id, |
- has_callback); |
+ if (extension_function_dispatcher_.get()) { |
+ extension_function_dispatcher_->HandleRequest(message, content, request_id, |
+ has_callback); |
+ } |
} |
void ExtensionHost::DidInsertCSS() { |