| Index: ipc/ipc_channel_proxy.h
|
| diff --git a/ipc/ipc_channel_proxy.h b/ipc/ipc_channel_proxy.h
|
| index 1f5ecf450df7f7c6d8a486a3d4efb76a95e1f81e..dca8c977302975e5fe9a0bf8c7dc188004d97121 100644
|
| --- a/ipc/ipc_channel_proxy.h
|
| +++ b/ipc/ipc_channel_proxy.h
|
| @@ -88,6 +88,13 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe {
|
| // the message be handled in the default way.
|
| virtual bool OnMessageReceived(const Message& message);
|
|
|
| + // Called to query the Message classes supported by the filter. Return
|
| + // false to indicate that all message types should reach the filter, or true
|
| + // if the resulting contents of |supported_message_classes| may be used to
|
| + // selectively offer messages of a particular class to the filter.
|
| + virtual bool GetSupportedMessageClasses(
|
| + std::vector<uint32>* supported_message_classes) const;
|
| +
|
| protected:
|
| virtual ~MessageFilter();
|
|
|
| @@ -230,6 +237,11 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe {
|
| std::string channel_id_;
|
| bool channel_connected_called_;
|
|
|
| + // Routes a given message to a proper subset of |filters_|, depending
|
| + // on which message classes a filter might support.
|
| + class MessageFilterRouter;
|
| + scoped_ptr<MessageFilterRouter> message_filter_router_;
|
| +
|
| // Holds filters between the AddFilter call on the listerner thread and the
|
| // IPC thread when they're added to filters_.
|
| std::vector<scoped_refptr<MessageFilter> > pending_filters_;
|
|
|