summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/automation/automation_resource_message_filter.cc3
-rw-r--r--chrome/browser/automation/automation_resource_message_filter.h7
-rw-r--r--chrome/browser/chrome_benchmarking_message_filter.h6
-rw-r--r--chrome/browser/chrome_plugin_message_filter.h2
-rw-r--r--chrome/browser/extensions/extension_webrequest_api.cc3
-rw-r--r--chrome/browser/printing/printing_message_filter.h6
-rw-r--r--chrome/browser/renderer_host/chrome_render_message_filter.h8
-rw-r--r--chrome/browser/renderer_host/plugin_info_message_filter.h8
-rw-r--r--chrome/browser/search_engines/search_provider_install_state_message_filter.h7
-rw-r--r--chrome/browser/spellchecker/spellcheck_message_filter.h6
-rw-r--r--chrome/browser/spellchecker/spellcheck_platform_mac.h4
-rw-r--r--chrome/browser/spellchecker/spellcheck_platform_mac.mm3
-rw-r--r--content/browser/appcache/appcache_dispatcher_host.cc1
-rw-r--r--content/browser/appcache/appcache_dispatcher_host.h6
-rw-r--r--content/browser/debugger/worker_devtools_message_filter.h6
-rw-r--r--content/browser/device_orientation/message_filter.h6
-rw-r--r--content/browser/file_system/file_system_dispatcher_host.cc1
-rw-r--r--content/browser/file_system/file_system_dispatcher_host.h6
-rw-r--r--content/browser/geolocation/geolocation_dispatcher_host.h4
-rw-r--r--content/browser/in_process_webkit/dom_storage_message_filter.cc1
-rw-r--r--content/browser/in_process_webkit/dom_storage_message_filter.h6
-rw-r--r--content/browser/in_process_webkit/indexed_db_dispatcher_host.cc1
-rw-r--r--content/browser/in_process_webkit/indexed_db_dispatcher_host.h6
-rw-r--r--content/browser/mime_registry_message_filter.h4
-rw-r--r--content/browser/profiler_message_filter.cc1
-rw-r--r--content/browser/profiler_message_filter.h8
-rw-r--r--content/browser/renderer_host/blob_message_filter.cc1
-rw-r--r--content/browser/renderer_host/blob_message_filter.h6
-rw-r--r--content/browser/renderer_host/clipboard_message_filter.h4
-rw-r--r--content/browser/renderer_host/database_message_filter.cc1
-rw-r--r--content/browser/renderer_host/database_message_filter.h6
-rw-r--r--content/browser/renderer_host/file_utilities_message_filter.h6
-rw-r--r--content/browser/renderer_host/gamepad_browser_message_filter.cc2
-rw-r--r--content/browser/renderer_host/gamepad_browser_message_filter.h6
-rw-r--r--content/browser/renderer_host/gpu_message_filter.h6
-rw-r--r--content/browser/renderer_host/media/audio_input_renderer_host.cc1
-rw-r--r--content/browser/renderer_host/media/audio_input_renderer_host.h6
-rw-r--r--content/browser/renderer_host/media/audio_renderer_host.cc1
-rw-r--r--content/browser/renderer_host/media/audio_renderer_host.h6
-rw-r--r--content/browser/renderer_host/media/media_stream_dispatcher_host.cc1
-rw-r--r--content/browser/renderer_host/media/media_stream_dispatcher_host.h6
-rw-r--r--content/browser/renderer_host/media/video_capture_host.cc1
-rw-r--r--content/browser/renderer_host/media/video_capture_host.h6
-rw-r--r--content/browser/renderer_host/p2p/socket_dispatcher_host.cc1
-rw-r--r--content/browser/renderer_host/p2p/socket_dispatcher_host.h6
-rw-r--r--content/browser/renderer_host/pepper_file_message_filter.h6
-rw-r--r--content/browser/renderer_host/pepper_message_filter.h6
-rw-r--r--content/browser/renderer_host/quota_dispatcher_host.h4
-rw-r--r--content/browser/renderer_host/render_message_filter.cc1
-rw-r--r--content/browser/renderer_host/render_message_filter.h6
-rw-r--r--content/browser/renderer_host/render_process_host_impl.cc1
-rw-r--r--content/browser/renderer_host/render_view_host.cc3
-rw-r--r--content/browser/renderer_host/resource_message_filter.cc2
-rw-r--r--content/browser/renderer_host/resource_message_filter.h7
-rw-r--r--content/browser/renderer_host/socket_stream_dispatcher_host.h6
-rw-r--r--content/browser/renderer_host/text_input_client_message_filter.h6
-rw-r--r--content/browser/renderer_host/text_input_client_message_filter.mm2
-rw-r--r--content/browser/resolve_proxy_msg_helper.h7
-rw-r--r--content/browser/speech/speech_input_dispatcher_host.h6
-rw-r--r--content/browser/trace_controller.cc3
-rw-r--r--content/browser/trace_message_filter.cc1
-rw-r--r--content/browser/trace_message_filter.h8
-rw-r--r--content/browser/worker_host/worker_message_filter.cc1
-rw-r--r--content/browser/worker_host/worker_message_filter.h6
-rw-r--r--content/content_browser.gypi4
-rw-r--r--content/public/browser/browser_message_filter.cc131
-rw-r--r--content/public/browser/browser_message_filter.h75
67 files changed, 363 insertions, 122 deletions
diff --git a/chrome/browser/automation/automation_resource_message_filter.cc b/chrome/browser/automation/automation_resource_message_filter.cc
index 79d98d3..612bd57 100644
--- a/chrome/browser/automation/automation_resource_message_filter.cc
+++ b/chrome/browser/automation/automation_resource_message_filter.cc
@@ -14,13 +14,14 @@
#include "chrome/common/automation_messages.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/render_messages.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "content/public/browser/browser_thread.h"
#include "googleurl/src/gurl.h"
#include "net/base/net_errors.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_filter.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
base::LazyInstance<AutomationResourceMessageFilter::RenderViewMap>
diff --git a/chrome/browser/automation/automation_resource_message_filter.h b/chrome/browser/automation/automation_resource_message_filter.h
index d95886d..1fbe22d 100644
--- a/chrome/browser/automation/automation_resource_message_filter.h
+++ b/chrome/browser/automation/automation_resource_message_filter.h
@@ -16,9 +16,12 @@
#include "net/base/completion_callback.h"
class GURL;
-class BrowserMessageFilter;
class URLRequestAutomationJob;
+namespace content {
+class BrowserMessageFilter;
+} // namespace content
+
namespace net {
class URLRequestContext;
} // namespace net
@@ -109,7 +112,7 @@ class AutomationResourceMessageFilter
// Retrieves cookies for the url passed in from the external host. The
// callback passed in is notified on success or failure asynchronously.
- static void GetCookiesForUrl(BrowserMessageFilter* filter,
+ static void GetCookiesForUrl(content::BrowserMessageFilter* filter,
net::URLRequestContext* context,
int render_process_id,
IPC::Message* reply_msg,
diff --git a/chrome/browser/chrome_benchmarking_message_filter.h b/chrome/browser/chrome_benchmarking_message_filter.h
index 98e8549..7f0ecb4 100644
--- a/chrome/browser/chrome_benchmarking_message_filter.h
+++ b/chrome/browser/chrome_benchmarking_message_filter.h
@@ -6,7 +6,7 @@
#define CHROME_BROWSER_CHROME_BENCHMARKING_MESSAGE_FILTER_H_
#pragma once
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebCache.h"
namespace net {
@@ -17,14 +17,14 @@ class Profile;
// This class filters out incoming Chrome-specific benchmarking IPC messages
// for the renderer process on the IPC thread.
-class ChromeBenchmarkingMessageFilter : public BrowserMessageFilter {
+class ChromeBenchmarkingMessageFilter : public content::BrowserMessageFilter {
public:
ChromeBenchmarkingMessageFilter(
int render_process_id,
Profile* profile,
net::URLRequestContextGetter* request_context);
- // BrowserMessageFilter methods:
+ // content::BrowserMessageFilter methods:
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/chrome/browser/chrome_plugin_message_filter.h b/chrome/browser/chrome_plugin_message_filter.h
index 67642ca..5ea5088 100644
--- a/chrome/browser/chrome_plugin_message_filter.h
+++ b/chrome/browser/chrome_plugin_message_filter.h
@@ -22,7 +22,7 @@ class ChromePluginMessageFilter : public IPC::ChannelProxy::MessageFilter,
public:
explicit ChromePluginMessageFilter(PluginProcessHost* process);
- // BrowserMessageFilter methods:
+ // IPC::ChannelProxy::MessageFilter methods:
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
// IPC::Message::Sender methods:
diff --git a/chrome/browser/extensions/extension_webrequest_api.cc b/chrome/browser/extensions/extension_webrequest_api.cc
index 19e5460..9e4d944 100644
--- a/chrome/browser/extensions/extension_webrequest_api.cc
+++ b/chrome/browser/extensions/extension_webrequest_api.cc
@@ -32,9 +32,9 @@
#include "chrome/common/extensions/extension_messages.h"
#include "chrome/common/extensions/url_pattern.h"
#include "chrome/common/url_constants.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/renderer_host/resource_dispatcher_host.h"
#include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
+#include "content/public/browser/browser_message_filter.h"
#include "content/public/browser/browser_thread.h"
#include "googleurl/src/gurl.h"
#include "grit/generated_resources.h"
@@ -45,6 +45,7 @@
#include "net/url_request/url_request.h"
#include "ui/base/l10n/l10n_util.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
namespace helpers = extension_webrequest_api_helpers;
diff --git a/chrome/browser/printing/printing_message_filter.h b/chrome/browser/printing/printing_message_filter.h
index 7531749..9405211 100644
--- a/chrome/browser/printing/printing_message_filter.h
+++ b/chrome/browser/printing/printing_message_filter.h
@@ -9,7 +9,7 @@
#include <string>
#include "base/compiler_specific.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#if defined(OS_WIN)
#include "base/shared_memory.h"
@@ -28,11 +28,11 @@ class PrintJobManager;
// This class filters out incoming printing related IPC messages for the
// renderer process on the IPC thread.
-class PrintingMessageFilter : public BrowserMessageFilter {
+class PrintingMessageFilter : public content::BrowserMessageFilter {
public:
PrintingMessageFilter();
- // BrowserMessageFilter methods.
+ // content::BrowserMessageFilter methods.
virtual void OverrideThreadForMessage(
const IPC::Message& message,
content::BrowserThread::ID* thread) OVERRIDE;
diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.h b/chrome/browser/renderer_host/chrome_render_message_filter.h
index 7e4c79e..7ba1f5c 100644
--- a/chrome/browser/renderer_host/chrome_render_message_filter.h
+++ b/chrome/browser/renderer_host/chrome_render_message_filter.h
@@ -11,9 +11,9 @@
#include "base/file_path.h"
#include "base/memory/weak_ptr.h"
-#include "chrome/common/content_settings.h"
#include "chrome/browser/profiles/profile.h"
-#include "content/browser/browser_message_filter.h"
+#include "chrome/common/content_settings.h"
+#include "content/public/browser/browser_message_filter.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebCache.h"
class CookieSettings;
@@ -27,13 +27,13 @@ class URLRequestContextGetter;
// This class filters out incoming Chrome-specific IPC messages for the renderer
// process on the IPC thread.
-class ChromeRenderMessageFilter : public BrowserMessageFilter {
+class ChromeRenderMessageFilter : public content::BrowserMessageFilter {
public:
ChromeRenderMessageFilter(int render_process_id,
Profile* profile,
net::URLRequestContextGetter* request_context);
- // BrowserMessageFilter methods:
+ // content::BrowserMessageFilter methods:
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
virtual void OverrideThreadForMessage(
diff --git a/chrome/browser/renderer_host/plugin_info_message_filter.h b/chrome/browser/renderer_host/plugin_info_message_filter.h
index 85a44b1..bdafda7 100644
--- a/chrome/browser/renderer_host/plugin_info_message_filter.h
+++ b/chrome/browser/renderer_host/plugin_info_message_filter.h
@@ -13,7 +13,7 @@
#include "base/memory/weak_ptr.h"
#include "chrome/browser/prefs/pref_member.h"
#include "chrome/common/content_settings.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
struct ChromeViewHostMsg_GetPluginInfo_Status;
class GURL;
@@ -29,12 +29,12 @@ struct WebPluginInfo;
}
// This class filters out incoming IPC messages requesting plug-in information.
-class PluginInfoMessageFilter : public BrowserMessageFilter {
+class PluginInfoMessageFilter : public content::BrowserMessageFilter {
public:
PluginInfoMessageFilter(int render_process_id, Profile* profile);
virtual ~PluginInfoMessageFilter();
- // BrowserMessageFilter methods:
+ // content::BrowserMessageFilter methods:
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
virtual void OnDestruct() const OVERRIDE;
@@ -85,4 +85,4 @@ class PluginInfoMessageFilter : public BrowserMessageFilter {
DISALLOW_COPY_AND_ASSIGN(PluginInfoMessageFilter);
};
-#endif // CHROME_BROWSER_RENDERER_HOST_CHROME_RENDER_MESSAGE_FILTER_H_
+#endif // CHROME_BROWSER_RENDERER_HOST_PLUGIN_INFO_MESSAGE_FILTER_H_
diff --git a/chrome/browser/search_engines/search_provider_install_state_message_filter.h b/chrome/browser/search_engines/search_provider_install_state_message_filter.h
index 4f9c65c..f19aa9d 100644
--- a/chrome/browser/search_engines/search_provider_install_state_message_filter.h
+++ b/chrome/browser/search_engines/search_provider_install_state_message_filter.h
@@ -8,20 +8,21 @@
#include "base/memory/weak_ptr.h"
#include "chrome/browser/search_engines/search_provider_install_data.h"
#include "chrome/common/search_provider.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
class GURL;
class Profile;
// Handles messages regarding search provider install state on the I/O thread.
-class SearchProviderInstallStateMessageFilter : public BrowserMessageFilter {
+class SearchProviderInstallStateMessageFilter
+ : public content::BrowserMessageFilter {
public:
// Unlike the other methods, the constructor is called on the UI thread.
SearchProviderInstallStateMessageFilter(int render_process_id,
Profile* profile);
virtual ~SearchProviderInstallStateMessageFilter();
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/chrome/browser/spellchecker/spellcheck_message_filter.h b/chrome/browser/spellchecker/spellcheck_message_filter.h
index 2c0f2ae..5d3529e 100644
--- a/chrome/browser/spellchecker/spellcheck_message_filter.h
+++ b/chrome/browser/spellchecker/spellcheck_message_filter.h
@@ -5,16 +5,16 @@
#ifndef CHROME_BROWSER_SPELLCHECKER_SPELLCHECK_MESSAGE_FILTER_H_
#define CHROME_BROWSER_SPELLCHECKER_SPELLCHECK_MESSAGE_FILTER_H_
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
// A message filter implementation that receives
// the platform spell checker requests from SpellCheckProvider.
-class SpellCheckMessageFilter : public BrowserMessageFilter {
+class SpellCheckMessageFilter : public content::BrowserMessageFilter {
public:
explicit SpellCheckMessageFilter(int render_process_id);
virtual ~SpellCheckMessageFilter();
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OverrideThreadForMessage(
const IPC::Message& message,
content::BrowserThread::ID* thread) OVERRIDE;
diff --git a/chrome/browser/spellchecker/spellcheck_platform_mac.h b/chrome/browser/spellchecker/spellcheck_platform_mac.h
index 89db072..3403af5c 100644
--- a/chrome/browser/spellchecker/spellcheck_platform_mac.h
+++ b/chrome/browser/spellchecker/spellcheck_platform_mac.h
@@ -15,7 +15,9 @@
#include "base/callback_forward.h"
#include "base/string16.h"
+namespace content {
class BrowserMessageFilter;
+} // namespace content
namespace spellcheck_mac {
@@ -87,7 +89,7 @@ void RequestTextCheck(int route_id,
int identifier,
int document_tag,
const string16& text,
- BrowserMessageFilter* destination);
+ content::BrowserMessageFilter* destination);
} // namespace spellcheck_mac
diff --git a/chrome/browser/spellchecker/spellcheck_platform_mac.mm b/chrome/browser/spellchecker/spellcheck_platform_mac.mm
index be90d06..4fcdd730 100644
--- a/chrome/browser/spellchecker/spellcheck_platform_mac.mm
+++ b/chrome/browser/spellchecker/spellcheck_platform_mac.mm
@@ -17,11 +17,12 @@
#include "base/time.h"
#include "chrome/common/spellcheck_common.h"
#include "chrome/common/spellcheck_messages.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "content/public/browser/browser_thread.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebTextCheckingResult.h"
using base::TimeTicks;
+using content::BrowserMessageFilter;
using content::BrowserThread;
namespace {
diff --git a/content/browser/appcache/appcache_dispatcher_host.cc b/content/browser/appcache/appcache_dispatcher_host.cc
index f8f4260..0ac5d94 100644
--- a/content/browser/appcache/appcache_dispatcher_host.cc
+++ b/content/browser/appcache/appcache_dispatcher_host.cc
@@ -10,6 +10,7 @@
#include "content/common/appcache_messages.h"
#include "content/public/browser/user_metrics.h"
+using content::BrowserMessageFilter;
using content::UserMetricsAction;
AppCacheDispatcherHost::AppCacheDispatcherHost(
diff --git a/content/browser/appcache/appcache_dispatcher_host.h b/content/browser/appcache/appcache_dispatcher_host.h
index ae13aa6..5e868fd 100644
--- a/content/browser/appcache/appcache_dispatcher_host.h
+++ b/content/browser/appcache/appcache_dispatcher_host.h
@@ -12,8 +12,8 @@
#include "base/memory/scoped_ptr.h"
#include "base/process.h"
#include "content/browser/appcache/appcache_frontend_proxy.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/renderer_host/resource_dispatcher_host.h"
+#include "content/public/browser/browser_message_filter.h"
#include "webkit/appcache/appcache_backend_impl.h"
class ChromeAppCacheService;
@@ -22,7 +22,7 @@ class ChromeAppCacheService;
// its child processes. There is a distinct host for each child process.
// Messages are handled on the IO thread. The BrowserRenderProcessHost and
// WorkerProcessHost create an instance and delegates calls to it.
-class AppCacheDispatcherHost : public BrowserMessageFilter {
+class AppCacheDispatcherHost : public content::BrowserMessageFilter {
public:
AppCacheDispatcherHost(ChromeAppCacheService* appcache_service,
int process_id);
@@ -34,7 +34,7 @@ class AppCacheDispatcherHost : public BrowserMessageFilter {
bool* message_was_ok) OVERRIDE;
private:
- // BrowserMessageFilter override.
+ // content::BrowserMessageFilter override.
virtual void BadMessageReceived() OVERRIDE;
// IPC message handlers
diff --git a/content/browser/debugger/worker_devtools_message_filter.h b/content/browser/debugger/worker_devtools_message_filter.h
index bfa96bd..839ca35 100644
--- a/content/browser/debugger/worker_devtools_message_filter.h
+++ b/content/browser/debugger/worker_devtools_message_filter.h
@@ -7,18 +7,18 @@
#pragma once
#include "base/callback_forward.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
namespace content {
-class WorkerDevToolsMessageFilter : public BrowserMessageFilter {
+class WorkerDevToolsMessageFilter : public content::BrowserMessageFilter {
public:
explicit WorkerDevToolsMessageFilter(int worker_process_host_id);
private:
virtual ~WorkerDevToolsMessageFilter();
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
// Message handlers.
diff --git a/content/browser/device_orientation/message_filter.h b/content/browser/device_orientation/message_filter.h
index 2147dae..a675c18 100644
--- a/content/browser/device_orientation/message_filter.h
+++ b/content/browser/device_orientation/message_filter.h
@@ -7,16 +7,16 @@
#include <map>
-#include "content/browser/browser_message_filter.h"
#include "content/browser/device_orientation/provider.h"
+#include "content/public/browser/browser_message_filter.h"
namespace device_orientation {
-class MessageFilter : public BrowserMessageFilter {
+class MessageFilter : public content::BrowserMessageFilter {
public:
MessageFilter();
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/file_system/file_system_dispatcher_host.cc b/content/browser/file_system/file_system_dispatcher_host.cc
index 2f60fc9..7034be2 100644
--- a/content/browser/file_system/file_system_dispatcher_host.cc
+++ b/content/browser/file_system/file_system_dispatcher_host.cc
@@ -24,6 +24,7 @@
#include "webkit/fileapi/file_system_quota_util.h"
#include "webkit/fileapi/file_system_util.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
using content::UserMetricsAction;
using fileapi::FileSystemCallbackDispatcher;
diff --git a/content/browser/file_system/file_system_dispatcher_host.h b/content/browser/file_system/file_system_dispatcher_host.h
index 54f3ff0..17fe2db 100644
--- a/content/browser/file_system/file_system_dispatcher_host.h
+++ b/content/browser/file_system/file_system_dispatcher_host.h
@@ -9,7 +9,7 @@
#include "base/basictypes.h"
#include "base/id_map.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "webkit/fileapi/file_system_types.h"
class FilePath;
@@ -29,7 +29,7 @@ class URLRequestContext;
class URLRequestContextGetter;
} // namespace net
-class FileSystemDispatcherHost : public BrowserMessageFilter {
+class FileSystemDispatcherHost : public content::BrowserMessageFilter {
public:
// Used by the renderer process host on the UI thread.
FileSystemDispatcherHost(
@@ -41,7 +41,7 @@ class FileSystemDispatcherHost : public BrowserMessageFilter {
fileapi::FileSystemContext* file_system_context);
virtual ~FileSystemDispatcherHost();
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
virtual void OverrideThreadForMessage(
const IPC::Message& message,
diff --git a/content/browser/geolocation/geolocation_dispatcher_host.h b/content/browser/geolocation/geolocation_dispatcher_host.h
index c890043..acd46d6 100644
--- a/content/browser/geolocation/geolocation_dispatcher_host.h
+++ b/content/browser/geolocation/geolocation_dispatcher_host.h
@@ -6,13 +6,13 @@
#define CONTENT_BROWSER_GEOLOCATION_GEOLOCATION_DISPATCHER_HOST_H_
#pragma once
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
class GeolocationPermissionContext;
// GeolocationDispatcherHost is a browser filter for Geolocation messages.
// It's the complement of GeolocationDispatcher (owned by RenderView).
-class GeolocationDispatcherHost : public BrowserMessageFilter {
+class GeolocationDispatcherHost : public content::BrowserMessageFilter {
public:
static GeolocationDispatcherHost* New(
int render_process_id,
diff --git a/content/browser/in_process_webkit/dom_storage_message_filter.cc b/content/browser/in_process_webkit/dom_storage_message_filter.cc
index 52a3c0e..1261601 100644
--- a/content/browser/in_process_webkit/dom_storage_message_filter.cc
+++ b/content/browser/in_process_webkit/dom_storage_message_filter.cc
@@ -13,6 +13,7 @@
#include "content/public/browser/browser_thread.h"
#include "googleurl/src/gurl.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
using WebKit::WebStorageArea;
diff --git a/content/browser/in_process_webkit/dom_storage_message_filter.h b/content/browser/in_process_webkit/dom_storage_message_filter.h
index 1717320..bc6d8fa 100644
--- a/content/browser/in_process_webkit/dom_storage_message_filter.h
+++ b/content/browser/in_process_webkit/dom_storage_message_filter.h
@@ -8,10 +8,10 @@
#include "base/memory/ref_counted.h"
#include "base/process.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/in_process_webkit/dom_storage_area.h"
#include "content/browser/in_process_webkit/webkit_context.h"
#include "content/common/dom_storage_common.h"
+#include "content/public/browser/browser_message_filter.h"
class DOMStorageContext;
class GURL;
@@ -20,12 +20,12 @@ struct DOMStorageMsg_Event_Params;
// This class handles the logistics of DOM Storage within the browser process.
// It mostly ferries information between IPCs and the WebKit implementations,
// but it also handles some special cases like when renderer processes die.
-class DOMStorageMessageFilter : public BrowserMessageFilter {
+class DOMStorageMessageFilter : public content::BrowserMessageFilter {
public:
// Only call the constructor from the UI thread.
DOMStorageMessageFilter(int process_id, WebKitContext* webkit_context);
- // BrowserMessageFilter implementation
+ // content::BrowserMessageFilter implementation
virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
virtual void OverrideThreadForMessage(
const IPC::Message& message,
diff --git a/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc b/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc
index 21fe1ea..9404aef 100644
--- a/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc
+++ b/content/browser/in_process_webkit/indexed_db_dispatcher_host.cc
@@ -30,6 +30,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebVector.h"
#include "webkit/glue/webkit_glue.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
using content::UserMetricsAction;
using WebKit::WebDOMStringList;
diff --git a/content/browser/in_process_webkit/indexed_db_dispatcher_host.h b/content/browser/in_process_webkit/indexed_db_dispatcher_host.h
index 5f49f6e..283eea1 100644
--- a/content/browser/in_process_webkit/indexed_db_dispatcher_host.h
+++ b/content/browser/in_process_webkit/indexed_db_dispatcher_host.h
@@ -8,8 +8,8 @@
#include "base/basictypes.h"
#include "base/id_map.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/in_process_webkit/webkit_context.h"
+#include "content/public/browser/browser_message_filter.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebExceptionCode.h"
class IndexedDBKey;
@@ -37,12 +37,12 @@ class SerializedScriptValue;
}
// Handles all IndexedDB related messages from a particular renderer process.
-class IndexedDBDispatcherHost : public BrowserMessageFilter {
+class IndexedDBDispatcherHost : public content::BrowserMessageFilter {
public:
// Only call the constructor from the UI thread.
IndexedDBDispatcherHost(int process_id, WebKitContext* webkit_context);
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelClosing() OVERRIDE;
virtual void OverrideThreadForMessage(
const IPC::Message& message,
diff --git a/content/browser/mime_registry_message_filter.h b/content/browser/mime_registry_message_filter.h
index 5e69152..3b27d6b 100644
--- a/content/browser/mime_registry_message_filter.h
+++ b/content/browser/mime_registry_message_filter.h
@@ -6,9 +6,9 @@
#define CONTENT_BROWSER_MIME_REGISTRY_MESSAGE_FILTER_H_
#include "base/file_path.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
-class MimeRegistryMessageFilter : public BrowserMessageFilter {
+class MimeRegistryMessageFilter : public content::BrowserMessageFilter {
public:
MimeRegistryMessageFilter();
diff --git a/content/browser/profiler_message_filter.cc b/content/browser/profiler_message_filter.cc
index f11b670..7df676e 100644
--- a/content/browser/profiler_message_filter.cc
+++ b/content/browser/profiler_message_filter.cc
@@ -9,6 +9,7 @@
#include "content/browser/profiler_controller_impl.h"
#include "content/common/child_process_messages.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
ProfilerMessageFilter::ProfilerMessageFilter() {
diff --git a/content/browser/profiler_message_filter.h b/content/browser/profiler_message_filter.h
index 3790527..79e6e94 100644
--- a/content/browser/profiler_message_filter.h
+++ b/content/browser/profiler_message_filter.h
@@ -7,22 +7,22 @@
#include <string>
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
namespace base {
class DictionaryValue;
}
// This class sends and receives profiler messages in the browser process.
-class ProfilerMessageFilter : public BrowserMessageFilter {
+class ProfilerMessageFilter : public content::BrowserMessageFilter {
public:
ProfilerMessageFilter();
virtual ~ProfilerMessageFilter();
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/renderer_host/blob_message_filter.cc b/content/browser/renderer_host/blob_message_filter.cc
index 3c90dec..c5e74c4 100644
--- a/content/browser/renderer_host/blob_message_filter.cc
+++ b/content/browser/renderer_host/blob_message_filter.cc
@@ -11,6 +11,7 @@
#include "webkit/blob/blob_data.h"
#include "webkit/blob/blob_storage_controller.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
using webkit_blob::BlobData;
diff --git a/content/browser/renderer_host/blob_message_filter.h b/content/browser/renderer_host/blob_message_filter.h
index 762763a..d8ddf07 100644
--- a/content/browser/renderer_host/blob_message_filter.h
+++ b/content/browser/renderer_host/blob_message_filter.h
@@ -7,7 +7,7 @@
#include "base/hash_tables.h"
#include "base/shared_memory.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "webkit/blob/blob_data.h"
class ChromeBlobStorageContext;
@@ -17,13 +17,13 @@ namespace IPC {
class Message;
}
-class BlobMessageFilter : public BrowserMessageFilter {
+class BlobMessageFilter : public content::BrowserMessageFilter {
public:
BlobMessageFilter(int process_id,
ChromeBlobStorageContext* blob_storage_context);
virtual ~BlobMessageFilter();
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelClosing() OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/renderer_host/clipboard_message_filter.h b/content/browser/renderer_host/clipboard_message_filter.h
index 72169e0..8f54822 100644
--- a/content/browser/renderer_host/clipboard_message_filter.h
+++ b/content/browser/renderer_host/clipboard_message_filter.h
@@ -9,12 +9,12 @@
#include <vector>
#include "base/basictypes.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "ui/base/clipboard/clipboard.h"
class GURL;
-class ClipboardMessageFilter : public BrowserMessageFilter {
+class ClipboardMessageFilter : public content::BrowserMessageFilter {
public:
ClipboardMessageFilter();
diff --git a/content/browser/renderer_host/database_message_filter.cc b/content/browser/renderer_host/database_message_filter.cc
index 6cc293c..1502cbc 100644
--- a/content/browser/renderer_host/database_message_filter.cc
+++ b/content/browser/renderer_host/database_message_filter.cc
@@ -25,6 +25,7 @@
#include "base/file_descriptor_posix.h"
#endif
+using content::BrowserMessageFilter;
using content::BrowserThread;
using content::UserMetricsAction;
using quota::QuotaManager;
diff --git a/content/browser/renderer_host/database_message_filter.h b/content/browser/renderer_host/database_message_filter.h
index a9a1aa6..2bde92d 100644
--- a/content/browser/renderer_host/database_message_filter.h
+++ b/content/browser/renderer_host/database_message_filter.h
@@ -8,18 +8,18 @@
#include "base/hash_tables.h"
#include "base/string16.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "webkit/database/database_connections.h"
#include "webkit/database/database_tracker.h"
#include "webkit/quota/quota_types.h"
class DatabaseMessageFilter
- : public BrowserMessageFilter,
+ : public content::BrowserMessageFilter,
public webkit_database::DatabaseTracker::Observer {
public:
explicit DatabaseMessageFilter(webkit_database::DatabaseTracker* db_tracker);
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelClosing() OVERRIDE;
virtual void OverrideThreadForMessage(
const IPC::Message& message,
diff --git a/content/browser/renderer_host/file_utilities_message_filter.h b/content/browser/renderer_host/file_utilities_message_filter.h
index 47a1926..5076aac 100644
--- a/content/browser/renderer_host/file_utilities_message_filter.h
+++ b/content/browser/renderer_host/file_utilities_message_filter.h
@@ -7,7 +7,7 @@
#include "base/basictypes.h"
#include "base/file_path.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "ipc/ipc_platform_file.h"
namespace base {
@@ -18,11 +18,11 @@ namespace IPC {
class Message;
}
-class FileUtilitiesMessageFilter : public BrowserMessageFilter {
+class FileUtilitiesMessageFilter : public content::BrowserMessageFilter {
public:
explicit FileUtilitiesMessageFilter(int process_id);
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OverrideThreadForMessage(
const IPC::Message& message,
content::BrowserThread::ID* thread) OVERRIDE;
diff --git a/content/browser/renderer_host/gamepad_browser_message_filter.cc b/content/browser/renderer_host/gamepad_browser_message_filter.cc
index 38d7110..3701c7f 100644
--- a/content/browser/renderer_host/gamepad_browser_message_filter.cc
+++ b/content/browser/renderer_host/gamepad_browser_message_filter.cc
@@ -7,6 +7,8 @@
#include "content/browser/gamepad/gamepad_service.h"
#include "content/common/gamepad_messages.h"
+using content::BrowserMessageFilter;
+
namespace content {
GamepadBrowserMessageFilter::GamepadBrowserMessageFilter(
diff --git a/content/browser/renderer_host/gamepad_browser_message_filter.h b/content/browser/renderer_host/gamepad_browser_message_filter.h
index 2928b28..042ce64 100644
--- a/content/browser/renderer_host/gamepad_browser_message_filter.h
+++ b/content/browser/renderer_host/gamepad_browser_message_filter.h
@@ -8,18 +8,18 @@
#include "base/compiler_specific.h"
#include "base/shared_memory.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
namespace content {
class GamepadService;
class RenderProcessHost;
-class GamepadBrowserMessageFilter : public BrowserMessageFilter {
+class GamepadBrowserMessageFilter : public content::BrowserMessageFilter {
public:
explicit GamepadBrowserMessageFilter(RenderProcessHost* rph);
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
GamepadBrowserMessageFilter();
diff --git a/content/browser/renderer_host/gpu_message_filter.h b/content/browser/renderer_host/gpu_message_filter.h
index a1ff2a7..f3fac5b 100644
--- a/content/browser/renderer_host/gpu_message_filter.h
+++ b/content/browser/renderer_host/gpu_message_filter.h
@@ -7,8 +7,8 @@
#pragma once
#include "base/memory/ref_counted.h"
-#include "content/browser/browser_message_filter.h"
#include "content/common/gpu/gpu_process_launch_causes.h"
+#include "content/public/browser/browser_message_filter.h"
#include "ui/gfx/native_widget_types.h"
class GpuProcessHost;
@@ -22,13 +22,13 @@ struct GPUInfo;
// A message filter for messages from the renderer to the GpuProcessHost(UIShim)
// in the browser. Such messages are typically destined for the GPU process,
// but need to be mediated by the browser.
-class GpuMessageFilter : public BrowserMessageFilter,
+class GpuMessageFilter : public content::BrowserMessageFilter,
public base::SupportsWeakPtr<GpuMessageFilter> {
public:
GpuMessageFilter(int render_process_id,
RenderWidgetHelper* render_widget_helper);
- // BrowserMessageFilter methods:
+ // content::BrowserMessageFilter methods:
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/renderer_host/media/audio_input_renderer_host.cc b/content/browser/renderer_host/media/audio_input_renderer_host.cc
index 8d5131c..a600e0f 100644
--- a/content/browser/renderer_host/media/audio_input_renderer_host.cc
+++ b/content/browser/renderer_host/media/audio_input_renderer_host.cc
@@ -16,6 +16,7 @@
#include "content/common/media/audio_messages.h"
#include "ipc/ipc_logging.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
AudioInputRendererHost::AudioEntry::AudioEntry()
diff --git a/content/browser/renderer_host/media/audio_input_renderer_host.h b/content/browser/renderer_host/media/audio_input_renderer_host.h
index 617bd50..d5f1190 100644
--- a/content/browser/renderer_host/media/audio_input_renderer_host.h
+++ b/content/browser/renderer_host/media/audio_input_renderer_host.h
@@ -63,8 +63,8 @@
#include "base/memory/scoped_ptr.h"
#include "base/process.h"
#include "base/shared_memory.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/renderer_host/media/audio_input_device_manager_event_handler.h"
+#include "content/public/browser/browser_message_filter.h"
#include "content/public/browser/browser_thread.h"
#include "media/audio/audio_input_controller.h"
#include "media/audio/audio_io.h"
@@ -78,7 +78,7 @@ class AudioManager;
struct AudioParameters;
class CONTENT_EXPORT AudioInputRendererHost
- : public BrowserMessageFilter,
+ : public content::BrowserMessageFilter,
public media::AudioInputController::EventHandler,
public media_stream::AudioInputDeviceManagerEventHandler {
public:
@@ -107,7 +107,7 @@ class CONTENT_EXPORT AudioInputRendererHost
explicit AudioInputRendererHost(
const content::ResourceContext* resource_context);
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelClosing() OVERRIDE;
virtual void OnDestruct() const OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message,
diff --git a/content/browser/renderer_host/media/audio_renderer_host.cc b/content/browser/renderer_host/media/audio_renderer_host.cc
index 4d331b8..c77c84b 100644
--- a/content/browser/renderer_host/media/audio_renderer_host.cc
+++ b/content/browser/renderer_host/media/audio_renderer_host.cc
@@ -16,6 +16,7 @@
#include "media/audio/audio_util.h"
#include "ipc/ipc_logging.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
AudioRendererHost::AudioEntry::AudioEntry()
diff --git a/content/browser/renderer_host/media/audio_renderer_host.h b/content/browser/renderer_host/media/audio_renderer_host.h
index cfa6245..20e11f1 100644
--- a/content/browser/renderer_host/media/audio_renderer_host.h
+++ b/content/browser/renderer_host/media/audio_renderer_host.h
@@ -60,8 +60,8 @@
#include "base/memory/scoped_ptr.h"
#include "base/process.h"
#include "base/shared_memory.h"
-#include "content/browser/browser_message_filter.h"
#include "content/common/content_export.h"
+#include "content/public/browser/browser_message_filter.h"
#include "content/public/browser/browser_thread.h"
#include "media/audio/audio_io.h"
#include "media/audio/audio_output_controller.h"
@@ -76,7 +76,7 @@ class ResourceContext;
} // namespace content
class CONTENT_EXPORT AudioRendererHost
- : public BrowserMessageFilter,
+ : public content::BrowserMessageFilter,
public media::AudioOutputController::EventHandler {
public:
struct AudioEntry {
@@ -107,7 +107,7 @@ class CONTENT_EXPORT AudioRendererHost
// Called from UI thread from the owner of this object.
AudioRendererHost(const content::ResourceContext* resource_context);
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelClosing() OVERRIDE;
virtual void OnDestruct() const OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message,
diff --git a/content/browser/renderer_host/media/media_stream_dispatcher_host.cc b/content/browser/renderer_host/media/media_stream_dispatcher_host.cc
index b978df8..21a438c 100644
--- a/content/browser/renderer_host/media/media_stream_dispatcher_host.cc
+++ b/content/browser/renderer_host/media/media_stream_dispatcher_host.cc
@@ -8,6 +8,7 @@
#include "content/common/media/media_stream_messages.h"
#include "content/common/media/media_stream_options.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
namespace media_stream {
diff --git a/content/browser/renderer_host/media/media_stream_dispatcher_host.h b/content/browser/renderer_host/media/media_stream_dispatcher_host.h
index b57ea58..4f340f0 100644
--- a/content/browser/renderer_host/media/media_stream_dispatcher_host.h
+++ b/content/browser/renderer_host/media/media_stream_dispatcher_host.h
@@ -9,11 +9,11 @@
#include <string>
#include <utility>
-#include "content/browser/browser_message_filter.h"
#include "content/browser/renderer_host/media/media_stream_manager.h"
#include "content/browser/renderer_host/media/media_stream_requester.h"
#include "content/common/content_export.h"
#include "content/common/media/media_stream_options.h"
+#include "content/public/browser/browser_message_filter.h"
namespace content {
class ResourceContext;
@@ -25,7 +25,7 @@ namespace media_stream {
// MediaStreamImpl. It's the complement of MediaStreamDispatcher
// (owned by RenderView).
class CONTENT_EXPORT MediaStreamDispatcherHost
- : public BrowserMessageFilter,
+ : public content::BrowserMessageFilter,
public MediaStreamRequester {
public:
MediaStreamDispatcherHost(const content::ResourceContext* resource_context,
@@ -42,7 +42,7 @@ class CONTENT_EXPORT MediaStreamDispatcherHost
virtual void AudioDeviceFailed(const std::string& label, int index) OVERRIDE;
virtual void VideoDeviceFailed(const std::string& label, int index) OVERRIDE;
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
virtual void OnChannelClosing() OVERRIDE;
diff --git a/content/browser/renderer_host/media/video_capture_host.cc b/content/browser/renderer_host/media/video_capture_host.cc
index 026b40e..cee39ee 100644
--- a/content/browser/renderer_host/media/video_capture_host.cc
+++ b/content/browser/renderer_host/media/video_capture_host.cc
@@ -12,6 +12,7 @@
#include "content/browser/resource_context.h"
#include "content/common/media/video_capture_messages.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
struct VideoCaptureHost::Entry {
diff --git a/content/browser/renderer_host/media/video_capture_host.h b/content/browser/renderer_host/media/video_capture_host.h
index 21710e6..5ac47e9 100644
--- a/content/browser/renderer_host/media/video_capture_host.h
+++ b/content/browser/renderer_host/media/video_capture_host.h
@@ -39,9 +39,9 @@
#include <map>
#include "base/memory/ref_counted.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/renderer_host/media/video_capture_controller.h"
#include "content/common/content_export.h"
+#include "content/public/browser/browser_message_filter.h"
#include "ipc/ipc_message.h"
namespace content {
@@ -49,12 +49,12 @@ class ResourceContext;
} // namespace content
class CONTENT_EXPORT VideoCaptureHost
- : public BrowserMessageFilter,
+ : public content::BrowserMessageFilter,
public VideoCaptureControllerEventHandler {
public:
explicit VideoCaptureHost(const content::ResourceContext* resource_context);
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelClosing() OVERRIDE;
virtual void OnDestruct() const OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message,
diff --git a/content/browser/renderer_host/p2p/socket_dispatcher_host.cc b/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
index ee337ce..710a575 100644
--- a/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
+++ b/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
@@ -16,6 +16,7 @@
#include "net/base/single_request_host_resolver.h"
#include "net/base/sys_addrinfo.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
namespace content {
diff --git a/content/browser/renderer_host/p2p/socket_dispatcher_host.h b/content/browser/renderer_host/p2p/socket_dispatcher_host.h
index ea89f78..25a3d50 100644
--- a/content/browser/renderer_host/p2p/socket_dispatcher_host.h
+++ b/content/browser/renderer_host/p2p/socket_dispatcher_host.h
@@ -7,8 +7,8 @@
#include <map>
-#include "content/browser/browser_message_filter.h"
#include "content/common/p2p_sockets.h"
+#include "content/public/browser/browser_message_filter.h"
#include "net/base/ip_endpoint.h"
#include "net/base/network_change_notifier.h"
@@ -18,13 +18,13 @@ class P2PSocketHost;
class ResourceContext;
class P2PSocketDispatcherHost
- : public BrowserMessageFilter,
+ : public content::BrowserMessageFilter,
public net::NetworkChangeNotifier::IPAddressObserver {
public:
P2PSocketDispatcherHost(const content::ResourceContext* resource_context);
virtual ~P2PSocketDispatcherHost();
- // BrowserMessageFilter overrides.
+ // content::BrowserMessageFilter overrides.
virtual void OnChannelClosing() OVERRIDE;
virtual void OnDestruct() const OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message,
diff --git a/content/browser/renderer_host/pepper_file_message_filter.h b/content/browser/renderer_host/pepper_file_message_filter.h
index 29b98a6..416eb3c 100644
--- a/content/browser/renderer_host/pepper_file_message_filter.h
+++ b/content/browser/renderer_host/pepper_file_message_filter.h
@@ -14,7 +14,7 @@
#include "base/process.h"
#include "base/task.h"
#include "build/build_config.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "ipc/ipc_platform_file.h"
#include "webkit/plugins/ppapi/dir_contents.h"
@@ -29,12 +29,12 @@ class PepperFilePath;
}
// A message filter for Pepper-specific File I/O messages.
-class PepperFileMessageFilter : public BrowserMessageFilter {
+class PepperFileMessageFilter : public content::BrowserMessageFilter {
public:
PepperFileMessageFilter(int child_id,
content::BrowserContext* browser_context);
- // BrowserMessageFilter methods:
+ // content::BrowserMessageFilter methods:
virtual void OverrideThreadForMessage(
const IPC::Message& message,
content::BrowserThread::ID* thread) OVERRIDE;
diff --git a/content/browser/renderer_host/pepper_message_filter.h b/content/browser/renderer_host/pepper_message_filter.h
index 1afcdc8..8da6c92 100644
--- a/content/browser/renderer_host/pepper_message_filter.h
+++ b/content/browser/renderer_host/pepper_message_filter.h
@@ -14,8 +14,8 @@
#include "base/memory/scoped_ptr.h"
#include "base/process.h"
#include "base/time.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/font_list_async.h"
+#include "content/public/browser/browser_message_filter.h"
#include "net/base/ssl_config_service.h"
#include "ppapi/c/pp_stdint.h"
@@ -38,14 +38,14 @@ class HostResolver;
// PPAPI plugins and any requests that the PPAPI implementation code in the
// renderer needs to make. The second is on the plugin->browser channel to
// handle requests that out-of-process plugins send directly to the browser.
-class PepperMessageFilter : public BrowserMessageFilter {
+class PepperMessageFilter : public content::BrowserMessageFilter {
public:
explicit PepperMessageFilter(
const content::ResourceContext* resource_context);
explicit PepperMessageFilter(net::HostResolver* host_resolver);
virtual ~PepperMessageFilter();
- // BrowserMessageFilter methods.
+ // content::BrowserMessageFilter methods.
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/renderer_host/quota_dispatcher_host.h b/content/browser/renderer_host/quota_dispatcher_host.h
index 1d90ef5..77553d9 100644
--- a/content/browser/renderer_host/quota_dispatcher_host.h
+++ b/content/browser/renderer_host/quota_dispatcher_host.h
@@ -7,7 +7,7 @@
#include "base/basictypes.h"
#include "base/id_map.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "webkit/quota/quota_types.h"
class GURL;
@@ -22,7 +22,7 @@ class QuotaManager;
class QuotaPermissionContext;
-class QuotaDispatcherHost : public BrowserMessageFilter {
+class QuotaDispatcherHost : public content::BrowserMessageFilter {
public:
QuotaDispatcherHost(int process_id,
quota::QuotaManager* quota_manager,
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
index e32933e..7478a19 100644
--- a/content/browser/renderer_host/render_message_filter.cc
+++ b/content/browser/renderer_host/render_message_filter.cc
@@ -66,6 +66,7 @@
#include "base/file_descriptor_posix.h"
#endif
+using content::BrowserMessageFilter;
using content::BrowserThread;
using content::ChildProcessHostImpl;
using content::PluginServiceFilter;
diff --git a/content/browser/renderer_host/render_message_filter.h b/content/browser/renderer_host/render_message_filter.h
index e61ffa4..4e4d403 100644
--- a/content/browser/renderer_host/render_message_filter.h
+++ b/content/browser/renderer_host/render_message_filter.h
@@ -18,9 +18,9 @@
#include "base/shared_memory.h"
#include "base/string16.h"
#include "build/build_config.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/in_process_webkit/webkit_context.h"
#include "content/browser/renderer_host/resource_dispatcher_host.h"
+#include "content/public/browser/browser_message_filter.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebPopupType.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/gfx/surface/transport_dib.h"
@@ -63,7 +63,7 @@ struct WebPluginInfo;
// This class filters out incoming IPC messages for the renderer process on the
// IPC thread.
-class RenderMessageFilter : public BrowserMessageFilter {
+class RenderMessageFilter : public content::BrowserMessageFilter {
public:
// Create the filter.
RenderMessageFilter(int render_process_id,
@@ -76,7 +76,7 @@ class RenderMessageFilter : public BrowserMessageFilter {
virtual void OnChannelClosing() OVERRIDE;
virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
- // BrowserMessageFilter methods:
+ // content::BrowserMessageFilter methods:
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
virtual void OnDestruct() const OVERRIDE;
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 1ad39b5..f9f23db 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -116,6 +116,7 @@
#include "third_party/skia/include/core/SkBitmap.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
using content::ChildProcessHost;
using content::ChildProcessHostImpl;
diff --git a/content/browser/renderer_host/render_view_host.cc b/content/browser/renderer_host/render_view_host.cc
index 4ff4c11..9cedac4 100644
--- a/content/browser/renderer_host/render_view_host.cc
+++ b/content/browser/renderer_host/render_view_host.cc
@@ -17,7 +17,6 @@
#include "base/time.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/child_process_security_policy.h"
#include "content/browser/cross_site_request_manager.h"
#include "content/browser/host_zoom_map.h"
@@ -34,6 +33,7 @@
#include "content/common/swapped_out_messages.h"
#include "content/common/view_messages.h"
#include "content/public/browser/browser_context.h"
+#include "content/public/browser/browser_message_filter.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/browser/notification_details.h"
@@ -54,6 +54,7 @@
#include "webkit/glue/webdropdata.h"
using base::TimeDelta;
+using content::BrowserMessageFilter;
using content::BrowserThread;
using content::UserMetricsAction;
using WebKit::WebConsoleMessage;
diff --git a/content/browser/renderer_host/resource_message_filter.cc b/content/browser/renderer_host/resource_message_filter.cc
index 5e482a8..771008c 100644
--- a/content/browser/renderer_host/resource_message_filter.cc
+++ b/content/browser/renderer_host/resource_message_filter.cc
@@ -8,6 +8,8 @@
#include "content/browser/resource_context.h"
#include "content/public/browser/browser_thread.h"
+using content::BrowserMessageFilter;
+
ResourceMessageFilter::ResourceMessageFilter(
int child_id,
content::ProcessType process_type,
diff --git a/content/browser/renderer_host/resource_message_filter.h b/content/browser/renderer_host/resource_message_filter.h
index e808353..96ef977 100644
--- a/content/browser/renderer_host/resource_message_filter.h
+++ b/content/browser/renderer_host/resource_message_filter.h
@@ -6,8 +6,8 @@
#define CONTENT_BROWSER_RENDERER_HOST_RESOURCE_MESSAGE_FILTER_H_
#include "base/memory/scoped_ptr.h"
-#include "content/browser/browser_message_filter.h"
#include "content/common/content_export.h"
+#include "content/public/browser/browser_message_filter.h"
#include "content/public/common/process_type.h"
#include "webkit/glue/resource_type.h"
@@ -26,7 +26,8 @@ class URLRequestContext;
// delayed by costly UI processing that may be occuring on the main thread of
// the browser. It also means that any hangs in starting a network request
// will not interfere with browser UI.
-class CONTENT_EXPORT ResourceMessageFilter : public BrowserMessageFilter {
+class CONTENT_EXPORT ResourceMessageFilter
+ : public content::BrowserMessageFilter {
public:
// Allows selecting the net::URLRequestContext used to service requests.
class URLRequestContextSelector {
@@ -47,7 +48,7 @@ class CONTENT_EXPORT ResourceMessageFilter : public BrowserMessageFilter {
URLRequestContextSelector* url_request_context_selector,
ResourceDispatcherHost* resource_dispatcher_host);
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelClosing() OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/renderer_host/socket_stream_dispatcher_host.h b/content/browser/renderer_host/socket_stream_dispatcher_host.h
index f77ff2c..475d206 100644
--- a/content/browser/renderer_host/socket_stream_dispatcher_host.h
+++ b/content/browser/renderer_host/socket_stream_dispatcher_host.h
@@ -9,8 +9,8 @@
#include <vector>
#include "base/id_map.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/renderer_host/resource_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
#include "net/socket_stream/socket_stream.h"
class GURL;
@@ -23,7 +23,7 @@ class ResourceContext;
// Dispatches ViewHostMsg_SocketStream_* messages sent from renderer.
// It also acts as SocketStream::Delegate so that it sends
// ViewMsg_SocketStream_* messages back to renderer.
-class SocketStreamDispatcherHost : public BrowserMessageFilter,
+class SocketStreamDispatcherHost : public content::BrowserMessageFilter,
public net::SocketStream::Delegate {
public:
SocketStreamDispatcherHost(
@@ -31,7 +31,7 @@ class SocketStreamDispatcherHost : public BrowserMessageFilter,
const content::ResourceContext* resource_context);
virtual ~SocketStreamDispatcherHost();
- // BrowserMessageFilter methods.
+ // content::BrowserMessageFilter methods.
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/renderer_host/text_input_client_message_filter.h b/content/browser/renderer_host/text_input_client_message_filter.h
index 4b5ecb1..3b80633 100644
--- a/content/browser/renderer_host/text_input_client_message_filter.h
+++ b/content/browser/renderer_host/text_input_client_message_filter.h
@@ -6,8 +6,8 @@
#define CONTENT_BROWSER_RENDERER_HOST_TEXT_INPUT_CLIENT_MESSAGE_FILTER_H_
#pragma once
-#include "content/browser/browser_message_filter.h"
#include "content/common/mac/attributed_string_coder.h"
+#include "content/public/browser/browser_message_filter.h"
namespace gfx {
class Rect;
@@ -20,12 +20,12 @@ class Range;
// This is a browser-side message filter that lives on the IO thread to handle
// replies to messages sent by the TextInputClientMac. See
// content/browser/renderer_host/text_input_client_mac.h for more information.
-class TextInputClientMessageFilter : public BrowserMessageFilter {
+class TextInputClientMessageFilter : public content::BrowserMessageFilter {
public:
explicit TextInputClientMessageFilter(int child_id);
virtual ~TextInputClientMessageFilter();
- // BrowserMessageFilter override:
+ // content::BrowserMessageFilter override:
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/renderer_host/text_input_client_message_filter.mm b/content/browser/renderer_host/text_input_client_message_filter.mm
index 44824cb..34e7b87 100644
--- a/content/browser/renderer_host/text_input_client_message_filter.mm
+++ b/content/browser/renderer_host/text_input_client_message_filter.mm
@@ -15,6 +15,8 @@
#include "ui/base/range/range.h"
#include "ui/gfx/rect.h"
+using content::BrowserMessageFilter;
+
TextInputClientMessageFilter::TextInputClientMessageFilter(int child_id)
: BrowserMessageFilter(),
child_process_id_(child_id) {
diff --git a/content/browser/resolve_proxy_msg_helper.h b/content/browser/resolve_proxy_msg_helper.h
index 4c66fb7..e80b396 100644
--- a/content/browser/resolve_proxy_msg_helper.h
+++ b/content/browser/resolve_proxy_msg_helper.h
@@ -10,8 +10,8 @@
#include <string>
#include "base/memory/ref_counted.h"
-#include "content/browser/browser_message_filter.h"
#include "content/common/content_export.h"
+#include "content/public/browser/browser_message_filter.h"
#include "googleurl/src/gurl.h"
#include "net/base/completion_callback.h"
#include "net/proxy/proxy_service.h"
@@ -30,7 +30,8 @@ class URLRequestContextGetter;
// the stored IPC::Message pointers for pending requests.
//
// This object is expected to live on the IO thread.
-class CONTENT_EXPORT ResolveProxyMsgHelper : public BrowserMessageFilter {
+class CONTENT_EXPORT ResolveProxyMsgHelper
+ : public content::BrowserMessageFilter {
public:
explicit ResolveProxyMsgHelper(net::URLRequestContextGetter* getter);
// Constructor used by unittests.
@@ -40,7 +41,7 @@ class CONTENT_EXPORT ResolveProxyMsgHelper : public BrowserMessageFilter {
// pending queue.
virtual ~ResolveProxyMsgHelper();
- // BrowserMessageFilter implementation
+ // content::BrowserMessageFilter implementation
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/speech/speech_input_dispatcher_host.h b/content/browser/speech/speech_input_dispatcher_host.h
index a801ff0..a0b7d46 100644
--- a/content/browser/speech/speech_input_dispatcher_host.h
+++ b/content/browser/speech/speech_input_dispatcher_host.h
@@ -6,9 +6,9 @@
#define CONTENT_BROWSER_SPEECH_SPEECH_INPUT_DISPATCHER_HOST_H_
#include "base/memory/scoped_ptr.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/speech/speech_input_manager.h"
#include "content/common/content_export.h"
+#include "content/public/browser/browser_message_filter.h"
#include "net/url_request/url_request_context_getter.h"
struct SpeechInputHostMsg_StartRecognition_Params;
@@ -22,7 +22,7 @@ namespace speech_input {
// SpeechInputDispatcherHost is a delegate for Speech API messages used by
// RenderMessageFilter.
// It's the complement of SpeechInputDispatcher (owned by RenderView).
-class SpeechInputDispatcherHost : public BrowserMessageFilter,
+class SpeechInputDispatcherHost : public content::BrowserMessageFilter,
public SpeechInputManager::Delegate {
public:
class SpeechInputCallers;
@@ -40,7 +40,7 @@ class SpeechInputDispatcherHost : public BrowserMessageFilter,
virtual void DidCompleteRecording(int caller_id) OVERRIDE;
virtual void DidCompleteRecognition(int caller_id) OVERRIDE;
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/trace_controller.cc b/content/browser/trace_controller.cc
index 137c4f7..c7e570d 100644
--- a/content/browser/trace_controller.cc
+++ b/content/browser/trace_controller.cc
@@ -8,13 +8,14 @@
#include "base/command_line.h"
#include "base/debug/trace_event.h"
#include "base/string_number_conversions.h"
-#include "content/browser/browser_message_filter.h"
#include "content/browser/trace_message_filter.h"
#include "content/browser/trace_subscriber_stdio.h"
#include "content/common/child_process_messages.h"
+#include "content/public/browser/browser_message_filter.h"
#include "content/public/common/content_switches.h"
using base::debug::TraceLog;
+using content::BrowserMessageFilter;
using content::BrowserThread;
namespace {
diff --git a/content/browser/trace_message_filter.cc b/content/browser/trace_message_filter.cc
index 98528e5..98d43db 100644
--- a/content/browser/trace_message_filter.cc
+++ b/content/browser/trace_message_filter.cc
@@ -7,6 +7,7 @@
#include "content/browser/trace_controller.h"
#include "content/common/child_process_messages.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
TraceMessageFilter::TraceMessageFilter() :
diff --git a/content/browser/trace_message_filter.h b/content/browser/trace_message_filter.h
index 42df726..ef0d8fa 100644
--- a/content/browser/trace_message_filter.h
+++ b/content/browser/trace_message_filter.h
@@ -8,20 +8,20 @@
#include <string>
#include <vector>
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
// This class sends and receives trace messages on the browser process.
// See also: trace_controller.h
// See also: child_trace_message_filter.h
-class TraceMessageFilter : public BrowserMessageFilter {
+class TraceMessageFilter : public content::BrowserMessageFilter {
public:
TraceMessageFilter();
virtual ~TraceMessageFilter();
- // BrowserMessageFilter override.
+ // content::BrowserMessageFilter override.
virtual void OnFilterAdded(IPC::Channel* channel) OVERRIDE;
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelClosing() OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/browser/worker_host/worker_message_filter.cc b/content/browser/worker_host/worker_message_filter.cc
index 2ce3396..e5f8314 100644
--- a/content/browser/worker_host/worker_message_filter.cc
+++ b/content/browser/worker_host/worker_message_filter.cc
@@ -10,6 +10,7 @@
#include "content/common/view_messages.h"
#include "content/common/worker_messages.h"
+using content::BrowserMessageFilter;
using content::BrowserThread;
WorkerMessageFilter::WorkerMessageFilter(
diff --git a/content/browser/worker_host/worker_message_filter.h b/content/browser/worker_host/worker_message_filter.h
index a2710ba..39bb567 100644
--- a/content/browser/worker_host/worker_message_filter.h
+++ b/content/browser/worker_host/worker_message_filter.h
@@ -6,7 +6,7 @@
#define CONTENT_BROWSER_WORKER_HOST_WORKER_MESSAGE_FILTER_H_
#include "base/callback.h"
-#include "content/browser/browser_message_filter.h"
+#include "content/public/browser/browser_message_filter.h"
class ResourceDispatcherHost;
struct ViewHostMsg_CreateWorker_Params;
@@ -16,7 +16,7 @@ class ResourceContext;
} // namespace content
-class WorkerMessageFilter : public BrowserMessageFilter {
+class WorkerMessageFilter : public content::BrowserMessageFilter {
public:
typedef base::Callback<int(void)> NextRoutingIDCallback;
@@ -28,7 +28,7 @@ class WorkerMessageFilter : public BrowserMessageFilter {
ResourceDispatcherHost* resource_dispatcher_host,
const NextRoutingIDCallback& callback);
- // BrowserMessageFilter implementation.
+ // content::BrowserMessageFilter implementation.
virtual void OnChannelClosing() OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message,
bool* message_was_ok) OVERRIDE;
diff --git a/content/content_browser.gypi b/content/content_browser.gypi
index 20a7299..0759043 100644
--- a/content/content_browser.gypi
+++ b/content/content_browser.gypi
@@ -27,6 +27,8 @@
'sources': [
'public/browser/browser_context.h',
'public/browser/browser_main_parts.h',
+ 'public/browser/browser_message_filter.cc',
+ 'public/browser/browser_message_filter.h',
'public/browser/browser_shutdown.h',
'public/browser/browser_thread.h',
'public/browser/browser_thread_delegate.h',
@@ -90,8 +92,6 @@
'browser/browser_main.h',
'browser/browser_main_loop.cc',
'browser/browser_main_loop.h',
- 'browser/browser_message_filter.cc',
- 'browser/browser_message_filter.h',
'browser/browser_process_sub_thread.cc',
'browser/browser_process_sub_thread.h',
'browser/browser_thread_impl.cc',
diff --git a/content/public/browser/browser_message_filter.cc b/content/public/browser/browser_message_filter.cc
new file mode 100644
index 0000000..88f7107
--- /dev/null
+++ b/content/public/browser/browser_message_filter.cc
@@ -0,0 +1,131 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/public/browser/browser_message_filter.h"
+
+#include "base/bind.h"
+#include "base/bind_helpers.h"
+#include "base/logging.h"
+#include "base/process.h"
+#include "base/process_util.h"
+#include "content/public/browser/user_metrics.h"
+#include "content/public/common/result_codes.h"
+#include "ipc/ipc_sync_message.h"
+
+using content::BrowserMessageFilter;
+
+namespace content {
+
+BrowserMessageFilter::BrowserMessageFilter()
+ : channel_(NULL), peer_handle_(base::kNullProcessHandle) {
+}
+
+BrowserMessageFilter::~BrowserMessageFilter() {
+ base::CloseProcessHandle(peer_handle_);
+}
+
+void BrowserMessageFilter::OnFilterAdded(IPC::Channel* channel) {
+ channel_ = channel;
+}
+
+void BrowserMessageFilter::OnChannelClosing() {
+ channel_ = NULL;
+}
+
+void BrowserMessageFilter::OnChannelConnected(int32 peer_pid) {
+ if (!base::OpenProcessHandle(peer_pid, &peer_handle_)) {
+ NOTREACHED();
+ }
+}
+
+bool BrowserMessageFilter::Send(IPC::Message* message) {
+ if (message->is_sync()) {
+ // We don't support sending synchronous messages from the browser. If we
+ // really needed it, we can make this class derive from SyncMessageFilter
+ // but it seems better to not allow sending synchronous messages from the
+ // browser, since it might allow a corrupt/malicious renderer to hang us.
+ NOTREACHED() << "Can't send sync message through BrowserMessageFilter!";
+ return false;
+ }
+
+ if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
+ BrowserThread::PostTask(
+ BrowserThread::IO,
+ FROM_HERE,
+ base::IgnoreReturn<bool>(
+ base::Bind(&BrowserMessageFilter::Send, this, message)));
+ return true;
+ }
+
+ if (channel_)
+ return channel_->Send(message);
+
+ delete message;
+ return false;
+}
+
+void BrowserMessageFilter::OverrideThreadForMessage(const IPC::Message& message,
+ BrowserThread::ID* thread) {
+}
+
+bool BrowserMessageFilter::OnMessageReceived(const IPC::Message& message) {
+ BrowserThread::ID thread = BrowserThread::IO;
+ OverrideThreadForMessage(message, &thread);
+ if (thread == BrowserThread::IO)
+ return DispatchMessage(message);
+
+ if (thread == BrowserThread::UI && !CheckCanDispatchOnUI(message, this))
+ return true;
+
+ BrowserThread::PostTask(
+ thread, FROM_HERE,
+ base::IgnoreReturn<bool>(
+ base::Bind(&BrowserMessageFilter::DispatchMessage, this, message)));
+ return true;
+}
+
+bool BrowserMessageFilter::DispatchMessage(const IPC::Message& message) {
+ bool message_was_ok = true;
+ bool rv = OnMessageReceived(message, &message_was_ok);
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO) || rv) <<
+ "Must handle messages that were dispatched to another thread!";
+ if (!message_was_ok) {
+ content::RecordAction(UserMetricsAction("BadMessageTerminate_BMF"));
+ BadMessageReceived();
+ }
+
+ return rv;
+}
+
+void BrowserMessageFilter::BadMessageReceived() {
+ base::KillProcess(peer_handle(), content::RESULT_CODE_KILLED_BAD_MESSAGE,
+ false);
+}
+
+bool BrowserMessageFilter::CheckCanDispatchOnUI(const IPC::Message& message,
+ IPC::Message::Sender* sender) {
+#if defined(OS_WIN) && !defined(USE_AURA)
+ // On Windows there's a potential deadlock with sync messsages going in
+ // a circle from browser -> plugin -> renderer -> browser.
+ // On Linux we can avoid this by avoiding sync messages from browser->plugin.
+ // On Mac we avoid this by not supporting windowed plugins.
+ if (message.is_sync() && !message.is_caller_pumping_messages()) {
+ // NOTE: IF YOU HIT THIS ASSERT, THE SOLUTION IS ALMOST NEVER TO RUN A
+ // NESTED MESSAGE LOOP IN THE RENDERER!!!
+ // That introduces reentrancy which causes hard to track bugs. You should
+ // find a way to either turn this into an asynchronous message, or one
+ // that can be answered on the IO thread.
+ NOTREACHED() << "Can't send sync messages to UI thread without pumping "
+ "messages in the renderer or else deadlocks can occur if the page "
+ "has windowed plugins! (message type " << message.type() << ")";
+ IPC::Message* reply = IPC::SyncMessage::GenerateReply(&message);
+ reply->set_reply_error();
+ sender->Send(reply);
+ return false;
+ }
+#endif
+ return true;
+}
+
+} // namespace content
diff --git a/content/public/browser/browser_message_filter.h b/content/public/browser/browser_message_filter.h
new file mode 100644
index 0000000..16c23e7
--- /dev/null
+++ b/content/public/browser/browser_message_filter.h
@@ -0,0 +1,75 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_PUBLIC_BROWSER_BROWSER_MESSAGE_FILTER_H_
+#define CONTENT_PUBLIC_BROWSER_BROWSER_MESSAGE_FILTER_H_
+#pragma once
+
+#include "base/process.h"
+#include "content/common/content_export.h"
+#include "content/public/browser/browser_thread.h"
+#include "ipc/ipc_channel_proxy.h"
+
+namespace content {
+
+// Base class for message filters in the browser process. You can receive and
+// send messages on any thread.
+class CONTENT_EXPORT BrowserMessageFilter :
+ public IPC::ChannelProxy::MessageFilter,
+ public IPC::Message::Sender {
+ public:
+ BrowserMessageFilter();
+ virtual ~BrowserMessageFilter();
+
+ // IPC::ChannelProxy::MessageFilter methods. If you override them, make sure
+ // to call them as well. These are always called on the IO thread.
+ virtual void OnFilterAdded(IPC::Channel* channel) OVERRIDE;
+ virtual void OnChannelClosing() OVERRIDE;
+ virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
+ // DON'T OVERRIDE THIS! Override the other version below.
+ virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
+
+ // IPC::Message::Sender implementation. Can be called on any thread. Can't
+ // send sync messages (since we don't want to block the browser on any other
+ // process).
+ virtual bool Send(IPC::Message* message) OVERRIDE;
+
+ // If you want the given message to be dispatched to your OnMessageReceived on
+ // a different thread, change |thread| to the id of the target thread.
+ // If you don't handle this message, or want to keep it on the IO thread, do
+ // nothing.
+ virtual void OverrideThreadForMessage(const IPC::Message& message,
+ content::BrowserThread::ID* thread);
+
+ // Override this to receive messages.
+ // Your function will normally be called on the IO thread. However, if your
+ // OverrideThreadForMessage modifies the thread used to dispatch the message,
+ // your function will be called on the requested thread.
+ virtual bool OnMessageReceived(const IPC::Message& message,
+ bool* message_was_ok) = 0;
+
+ // Can be called on any thread, after OnChannelConnected is called.
+ base::ProcessHandle peer_handle() { return peer_handle_; }
+
+ // Checks that the given message can be dispatched on the UI thread, depending
+ // on the platform. If not, returns false and an error ot the sender.
+ static bool CheckCanDispatchOnUI(const IPC::Message& message,
+ IPC::Message::Sender* sender);
+
+ protected:
+ // Call this if a message couldn't be deserialized. This kills the renderer.
+ // Can be called on any thread.
+ virtual void BadMessageReceived();
+
+ private:
+ // Dispatches a message to the derived class.
+ bool DispatchMessage(const IPC::Message& message);
+
+ IPC::Channel* channel_;
+ base::ProcessHandle peer_handle_;
+};
+
+} // namespace content
+
+#endif // CONTENT_PUBLIC_BROWSER_BROWSER_MESSAGE_FILTER_H_