summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-02 06:01:53 +0000
committerjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-02 06:01:53 +0000
commitafed5113d24a8950c348dd3fed9a2f66caeeb0a2 (patch)
treea840cf0e9a940066d0cffbf9771d4427a562d91a /apps
parent21aa42a0f242394b05c1855abfacc94935d8df5c (diff)
downloadchromium_src-afed5113d24a8950c348dd3fed9a2f66caeeb0a2.zip
chromium_src-afed5113d24a8950c348dd3fed9a2f66caeeb0a2.tar.gz
chromium_src-afed5113d24a8950c348dd3fed9a2f66caeeb0a2.tar.bz2
Move extensions IPC filtering to extensions::ExtensionMessageFilter
This moves a bunch of message filtering out of ChromeRenderMessageFilter and into the extensions module. This allows other clients of src/extensions (e.g. app_shell) to handle these IPCs. With this change app_shell can register handlers for events like chrome.runtime.onStartup() and do something useful with them. BUG=335632,339637 TEST=existing browser_tests (Extension*) Review URL: https://codereview.chromium.org/138283004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248386 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'apps')
-rw-r--r--apps/shell/shell_content_browser_client.cc8
-rw-r--r--apps/shell/shell_content_browser_client.h3
2 files changed, 11 insertions, 0 deletions
diff --git a/apps/shell/shell_content_browser_client.cc b/apps/shell/shell_content_browser_client.cc
index 0cedd4d..e6486b5 100644
--- a/apps/shell/shell_content_browser_client.cc
+++ b/apps/shell/shell_content_browser_client.cc
@@ -16,6 +16,7 @@
#include "content/public/common/content_switches.h"
#include "content/public/common/url_constants.h"
#include "content/shell/browser/shell_browser_context.h"
+#include "extensions/browser/extension_message_filter.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/info_map.h"
#include "extensions/browser/process_map.h"
@@ -42,6 +43,13 @@ content::BrowserMainParts* ShellContentBrowserClient::CreateBrowserMainParts(
return browser_main_parts_;
}
+void ShellContentBrowserClient::RenderProcessWillLaunch(
+ content::RenderProcessHost* host) {
+ int render_process_id = host->GetID();
+ host->AddFilter(new extensions::ExtensionMessageFilter(
+ render_process_id, browser_main_parts_->browser_context()));
+}
+
net::URLRequestContextGetter*
ShellContentBrowserClient::CreateRequestContext(
content::BrowserContext* content_browser_context,
diff --git a/apps/shell/shell_content_browser_client.h b/apps/shell/shell_content_browser_client.h
index db0f5a8..4fede7d 100644
--- a/apps/shell/shell_content_browser_client.h
+++ b/apps/shell/shell_content_browser_client.h
@@ -17,6 +17,7 @@ class Extension;
namespace apps {
class ShellBrowserMainParts;
+// Content module browser process support for app_shell.
class ShellContentBrowserClient : public content::ContentBrowserClient {
public:
ShellContentBrowserClient();
@@ -25,6 +26,8 @@ class ShellContentBrowserClient : public content::ContentBrowserClient {
// content::ContentBrowserClient overrides.
virtual content::BrowserMainParts* CreateBrowserMainParts(
const content::MainFunctionParams& parameters) OVERRIDE;
+ virtual void RenderProcessWillLaunch(
+ content::RenderProcessHost* host) OVERRIDE;
virtual net::URLRequestContextGetter* CreateRequestContext(
content::BrowserContext* browser_context,
content::ProtocolHandlerMap* protocol_handlers) OVERRIDE;