| Index: chrome/browser/extensions/extension_host.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_host.cc (revision 80315)
|
| +++ chrome/browser/extensions/extension_host.cc (working copy)
|
| @@ -16,7 +16,7 @@
|
| #include "chrome/browser/debugger/devtools_manager.h"
|
| #include "chrome/browser/debugger/devtools_handler.h"
|
| #include "chrome/browser/desktop_notification_handler.h"
|
| -#include "chrome/browser/extensions/extension_message_service.h"
|
| +#include "chrome/browser/extensions/extension_message_handler.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/extensions/extension_tabs_module.h"
|
| #include "chrome/browser/file_select_helper.h"
|
| @@ -32,7 +32,6 @@
|
| #include "chrome/common/bindings_policy.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_constants.h"
|
| -#include "chrome/common/extensions/extension_messages.h"
|
| #include "chrome/common/render_messages.h"
|
| #include "chrome/common/url_constants.h"
|
| #include "chrome/common/view_types.h"
|
| @@ -160,6 +159,8 @@
|
| desktop_notification_handler_.reset(
|
| new DesktopNotificationHandler(NULL, render_process_host()));
|
| dev_tools_handler_.reset(new DevToolsHandler(NULL, render_view_host_));
|
| + extension_message_handler_.reset(new ExtensionMessageHandler(
|
| + render_process_host()->id(), render_view_host_, profile_));
|
| }
|
|
|
| ExtensionHost::~ExtensionHost() {
|
| @@ -336,7 +337,7 @@
|
| return;
|
|
|
| if (!params.url.SchemeIs(chrome::kExtensionScheme)) {
|
| - extension_function_dispatcher_.reset(NULL);
|
| + SetExtensionFunctionDispatcher(NULL);
|
| url_ = params.url;
|
| return;
|
| }
|
| @@ -351,12 +352,12 @@
|
| // it's better than the alternative.
|
| // TODO(erikkay) Perhaps we should display errors in developer mode.
|
| if (params.url.host() != extension_->id()) {
|
| - extension_function_dispatcher_.reset(NULL);
|
| + SetExtensionFunctionDispatcher(NULL);
|
| return;
|
| }
|
|
|
| url_ = params.url;
|
| - extension_function_dispatcher_.reset(
|
| + SetExtensionFunctionDispatcher(
|
| ExtensionFunctionDispatcher::Create(render_view_host_, this, url_));
|
| }
|
|
|
| @@ -556,13 +557,6 @@
|
| return webkit_prefs;
|
| }
|
|
|
| -void ExtensionHost::ProcessWebUIMessage(
|
| - const ExtensionHostMsg_DomMessage_Params& params) {
|
| - if (extension_function_dispatcher_.get()) {
|
| - extension_function_dispatcher_->HandleRequest(params);
|
| - }
|
| -}
|
| -
|
| RenderViewHostDelegate::View* ExtensionHost::GetViewDelegate() {
|
| return this;
|
| }
|
| @@ -794,7 +788,6 @@
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(ExtensionHost, message)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_RunFileChooser, OnRunFileChooser)
|
| - IPC_MESSAGE_HANDLER(ExtensionHostMsg_PostMessage, OnPostMessage)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
|
|
| @@ -802,6 +795,8 @@
|
| handled = desktop_notification_handler_->OnMessageReceived(message);
|
| if (!handled)
|
| handled = dev_tools_handler_->OnMessageReceived(message);
|
| + if (!handled)
|
| + handled = extension_message_handler_->OnMessageReceived(message);
|
| return handled;
|
| }
|
|
|
| @@ -817,7 +812,7 @@
|
| // we'll create 2 EFDs for the first navigation. We should try to find a
|
| // better way to unify them.
|
| // See http://code.google.com/p/chromium/issues/detail?id=18240
|
| - extension_function_dispatcher_.reset(
|
| + SetExtensionFunctionDispatcher(
|
| ExtensionFunctionDispatcher::Create(render_view_host, this, url_));
|
|
|
| if (extension_host_type_ == ViewType::EXTENSION_POPUP ||
|
| @@ -852,9 +847,8 @@
|
| file_select_helper_->RunFileChooser(render_view_host_, params);
|
| }
|
|
|
| -void ExtensionHost::OnPostMessage(int port_id, const std::string& message) {
|
| - if (profile()->GetExtensionMessageService()) {
|
| - profile()->GetExtensionMessageService()->PostMessageFromRenderer(
|
| - port_id, message);
|
| - }
|
| +void ExtensionHost::SetExtensionFunctionDispatcher(
|
| + ExtensionFunctionDispatcher* efd) {
|
| + extension_function_dispatcher_.reset(efd);
|
| + extension_message_handler_->set_extension_function_dispatcher(efd);
|
| }
|
|
|