diff options
author | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-02 06:01:53 +0000 |
---|---|---|
committer | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-02 06:01:53 +0000 |
commit | afed5113d24a8950c348dd3fed9a2f66caeeb0a2 (patch) | |
tree | a840cf0e9a940066d0cffbf9771d4427a562d91a /apps | |
parent | 21aa42a0f242394b05c1855abfacc94935d8df5c (diff) | |
download | chromium_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.cc | 8 | ||||
-rw-r--r-- | apps/shell/shell_content_browser_client.h | 3 |
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; |