Commit 5820eeaa authored by kalman@chromium.org's avatar kalman@chromium.org

Move ExtensionHostMsg_PostMessage IPC handling from

ChromeExtensionWebContentsObserver to ChromeExtensionMessageFilter.

BUG=394383
R=jamescook@chromium.org, thestig@chromium.org

Review URL: https://codereview.chromium.org/402673003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283963 0039d316-1c4b-4281-b951-d872f2087c98
parent eddfef94
......@@ -4,7 +4,6 @@
#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
#include "chrome/browser/extensions/api/messaging/message_service.h"
#include "chrome/browser/extensions/error_console/error_console.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/common/extensions/chrome_extension_messages.h"
......@@ -13,8 +12,6 @@
#include "content/public/browser/render_view_host.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/api/messaging/message.h"
#include "extensions/common/extension_messages.h"
#include "extensions/common/extension_urls.h"
using content::BrowserContext;
......@@ -36,16 +33,6 @@ void ChromeExtensionWebContentsObserver::RenderViewCreated(
ExtensionWebContentsObserver::RenderViewCreated(render_view_host);
}
bool ChromeExtensionWebContentsObserver::OnMessageReceived(
const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(ChromeExtensionWebContentsObserver, message)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_PostMessage, OnPostMessage)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
}
bool ChromeExtensionWebContentsObserver::OnMessageReceived(
const IPC::Message& message,
content::RenderFrameHost* render_frame_host) {
......@@ -91,14 +78,6 @@ void ChromeExtensionWebContentsObserver::OnDetailedConsoleMessageAdded(
#endif
}
void ChromeExtensionWebContentsObserver::OnPostMessage(int port_id,
const Message& message) {
MessageService* message_service = MessageService::Get(browser_context());
if (message_service) {
message_service->PostMessage(port_id, message);
}
}
void ChromeExtensionWebContentsObserver::ReloadIfTerminated(
content::RenderViewHost* render_view_host) {
std::string extension_id = GetExtensionId(render_view_host);
......
......@@ -16,7 +16,6 @@ class RenderFrameHost;
}
namespace extensions {
struct Message;
// An ExtensionWebContentsObserver that adds support for the extension error
// console, reloading crashed extensions and routing extension messages between
......@@ -34,14 +33,10 @@ class ChromeExtensionWebContentsObserver
// content::WebContentsObserver overrides.
virtual void RenderViewCreated(content::RenderViewHost* render_view_host)
OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
virtual bool OnMessageReceived(
const IPC::Message& message,
content::RenderFrameHost* render_frame_host) OVERRIDE;
// Routes a message to the extensions MessageService.
void OnPostMessage(int port_id, const Message& message);
// Adds a message to the extensions ErrorConsole.
void OnDetailedConsoleMessageAdded(const base::string16& message,
const base::string16& source,
......
......@@ -22,6 +22,7 @@
#include "content/public/browser/notification_service.h"
#include "content/public/browser/render_process_host.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/api/messaging/message.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension_messages.h"
#include "extensions/common/file_util.h"
......@@ -96,6 +97,7 @@ bool ChromeExtensionMessageFilter::OnMessageReceived(
IPC_MESSAGE_HANDLER(ExtensionHostMsg_OpenChannelToTab, OnOpenChannelToTab)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_OpenChannelToNativeApp,
OnOpenChannelToNativeApp)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_PostMessage, OnPostMessage)
IPC_MESSAGE_HANDLER_DELAY_REPLY(ExtensionHostMsg_GetMessageBundle,
OnGetExtMessageBundle)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_CloseChannel, OnExtensionCloseChannel)
......@@ -114,6 +116,7 @@ bool ChromeExtensionMessageFilter::OnMessageReceived(
void ChromeExtensionMessageFilter::OverrideThreadForMessage(
const IPC::Message& message, BrowserThread::ID* thread) {
switch (message.type()) {
case ExtensionHostMsg_PostMessage::ID:
case ExtensionHostMsg_CloseChannel::ID:
*thread = BrowserThread::UI;
break;
......@@ -168,7 +171,7 @@ void ChromeExtensionMessageFilter::OpenChannelToExtensionOnUIThread(
const ExtensionMsg_ExternalConnectionInfo& info,
const std::string& channel_name,
bool include_tls_channel_id) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (profile_) {
extensions::MessageService::Get(profile_)
->OpenChannelToExtension(source_process_id,
......@@ -202,7 +205,7 @@ void ChromeExtensionMessageFilter::OpenChannelToNativeAppOnUIThread(
int receiver_port_id,
const std::string& source_extension_id,
const std::string& native_app_name) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (profile_) {
extensions::MessageService::Get(profile_)
->OpenChannelToNativeApp(render_process_id_,
......@@ -232,7 +235,7 @@ void ChromeExtensionMessageFilter::OpenChannelToTabOnUIThread(
int tab_id,
const std::string& extension_id,
const std::string& channel_name) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (profile_) {
extensions::MessageService::Get(profile_)
->OpenChannelToTab(source_process_id,
......@@ -244,6 +247,12 @@ void ChromeExtensionMessageFilter::OpenChannelToTabOnUIThread(
}
}
void ChromeExtensionMessageFilter::OnPostMessage(
int port_id,
const extensions::Message& message) {
extensions::MessageService::Get(profile_)->PostMessage(port_id, message);
}
void ChromeExtensionMessageFilter::OnGetExtMessageBundle(
const std::string& extension_id, IPC::Message* reply_msg) {
const extensions::Extension* extension =
......
......@@ -24,6 +24,7 @@ class FilePath;
namespace extensions {
class InfoMap;
struct Message;
}
// This class filters out incoming Chrome-specific IPC messages from the
......@@ -80,6 +81,7 @@ class ChromeExtensionMessageFilter : public content::BrowserMessageFilter,
int receiver_port_id,
int tab_id, const std::string& extension_id,
const std::string& channel_name);
void OnPostMessage(int port_id, const extensions::Message& message);
void OnGetExtMessageBundle(const std::string& extension_id,
IPC::Message* reply_msg);
void OnGetExtMessageBundleOnBlockingPool(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment