Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Unified Diff: content/public/browser/browser_message_filter.h

Issue 324143002: Decouple IPC::MessageFilter from IPC::Channel (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing compilation errors Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/browser/browser_message_filter.h
diff --git a/content/public/browser/browser_message_filter.h b/content/public/browser/browser_message_filter.h
index f1334b941c0c7779692a527799eaa5b97df4c3f8..a04ef95dc9cdb6e5f3f2043731576600daed7df8 100644
--- a/content/public/browser/browser_message_filter.h
+++ b/content/public/browser/browser_message_filter.h
@@ -24,6 +24,7 @@ class MessageFilter;
}
namespace content {
+class BrowserMessageFilterPeer;
struct BrowserMessageFilterTraits;
// Base class for message filters in the browser process. You can receive and
@@ -39,10 +40,10 @@ class CONTENT_EXPORT BrowserMessageFilter
// These match the corresponding IPC::MessageFilter methods and are always
// called on the IO thread.
- virtual void OnFilterAdded(IPC::Channel* channel) {}
+ virtual void OnFilterAdded(IPC::Sender* sender) {}
virtual void OnFilterRemoved() {}
- virtual void OnChannelClosing() {}
- virtual void OnChannelConnected(int32 peer_pid) {}
+ virtual void OnSenderClosing() {}
+ virtual void OnSenderConnected() {}
// Called when the message filter is about to be deleted. This gives
// derived classes the option of controlling which thread they're deleted
@@ -77,15 +78,15 @@ class CONTENT_EXPORT BrowserMessageFilter
// your function will be called on the requested thread.
virtual bool OnMessageReceived(const IPC::Message& message) = 0;
- // Can be called on any thread, after OnChannelConnected is called.
+ // Can be called on any thread, after OnSenderConnected is called.
base::ProcessHandle PeerHandle();
- // Can be called on any thread, after OnChannelConnected is called.
- base::ProcessId peer_pid() const { return peer_pid_; }
+ // Can be called on any thread, after OnSenderConnected is called.
+ base::ProcessId peer_pid() const;
- void set_peer_pid_for_testing(base::ProcessId peer_pid) {
- peer_pid_ = peer_pid;
- }
+ // Tells the peer process of the host.
+ void OnFilterAddedToHost(BrowserMessageFilterPeer* peer);
+ void OnFilterRemovedFromHost();
// 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.
@@ -123,15 +124,10 @@ class CONTENT_EXPORT BrowserMessageFilter
// child class does in its OnDestruct method.
Internal* internal_;
- IPC::Channel* channel_;
- base::ProcessId peer_pid_;
+ IPC::Sender* sender_;
+ BrowserMessageFilterPeer* peer_;
std::vector<uint32> message_classes_to_filter_;
-
-#if defined(OS_WIN)
- base::Lock peer_handle_lock_;
- base::ProcessHandle peer_handle_;
-#endif
};
struct BrowserMessageFilterTraits {

Powered by Google App Engine
This is Rietveld 408576698