| Index: ipc/ipc_channel_proxy.h
|
| ===================================================================
|
| --- ipc/ipc_channel_proxy.h (revision 30647)
|
| +++ ipc/ipc_channel_proxy.h (working copy)
|
| @@ -46,9 +46,16 @@
|
| //
|
| class ChannelProxy : public Message::Sender {
|
| public:
|
| +
|
| + class MessageFilter;
|
| + struct MessageFilterTraits {
|
| + static void Destruct(MessageFilter* filter);
|
| + };
|
| +
|
| // A class that receives messages on the thread where the IPC channel is
|
| // running. It can choose to prevent the default action for an IPC message.
|
| - class MessageFilter : public base::RefCountedThreadSafe<MessageFilter> {
|
| + class MessageFilter
|
| + : public base::RefCountedThreadSafe<MessageFilter, MessageFilterTraits> {
|
| public:
|
| virtual ~MessageFilter() {}
|
|
|
| @@ -79,6 +86,13 @@
|
| virtual bool OnMessageReceived(const Message& message) {
|
| return false;
|
| }
|
| +
|
| + // Called when the message filter is about to be deleted. This gives
|
| + // derived classes the option of controlling which thread they're deleted
|
| + // on etc.
|
| + virtual void OnDestruct() {
|
| + delete this;
|
| + }
|
| };
|
|
|
| // Initializes a channel proxy. The channel_id and mode parameters are
|
|
|