Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef PPAPI_PROXY_PLUGIN_MESSAGE_FILTER_H_ | 5 #ifndef PPAPI_PROXY_PLUGIN_MESSAGE_FILTER_H_ |
| 6 #define PPAPI_PROXY_PLUGIN_MESSAGE_FILTER_H_ | 6 #define PPAPI_PROXY_PLUGIN_MESSAGE_FILTER_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| 11 #include "ipc/ipc_channel_proxy.h" | 11 #include "ipc/ipc_channel_proxy.h" |
| 12 #include "ipc/ipc_sender.h" | 12 #include "ipc/ipc_sender.h" |
| 13 #include "ppapi/c/pp_instance.h" | 13 #include "ppapi/c/pp_instance.h" |
| 14 #include "ppapi/proxy/ppapi_proxy_export.h" | |
| 14 | 15 |
| 15 namespace ppapi { | 16 namespace ppapi { |
| 16 namespace proxy { | 17 namespace proxy { |
| 17 | 18 |
| 19 class ResourceMessageReplyParams; | |
| 20 class ResourceReplyThreadRegistrar; | |
| 21 | |
| 18 // Listens for messages on the I/O thread of the plugin and handles some of | 22 // Listens for messages on the I/O thread of the plugin and handles some of |
| 19 // them to avoid needing to block on the plugin. | 23 // them to avoid needing to block on the plugin. |
| 20 // | 24 // |
| 21 // There is one instance of this class for each renderer channel (same as for | 25 // There is one instance of this class for each renderer channel (same as for |
| 22 // the PluginDispatchers). | 26 // the PluginDispatchers). |
| 23 class PluginMessageFilter : public IPC::ChannelProxy::MessageFilter, | 27 class PPAPI_PROXY_EXPORT PluginMessageFilter |
| 24 public IPC::Sender { | 28 : public IPC::ChannelProxy::MessageFilter, |
| 29 public IPC::Sender { | |
| 25 public: | 30 public: |
| 26 // The input is a pointer to a set that will be used to uniquify PP_Instances | 31 // The input is a pointer to a set that will be used to uniquify PP_Instances |
|
dmichael (off chromium)
2013/12/11 21:30:36
nit: this documentation is a little out of date, w
yzshen1
2013/12/11 22:22:07
I think you might be reading an old patchset.
Plea
| |
| 27 // across all renderer channels. The same pointer should be passed to each | 32 // across all renderer channels. The same pointer should be passed to each |
| 28 // MessageFilter to ensure uniqueness, and the value should outlive this | 33 // MessageFilter to ensure uniqueness, and the value should outlive this |
| 29 // class. | 34 // class. |
| 30 PluginMessageFilter(std::set<PP_Instance>* seen_instance_ids); | 35 PluginMessageFilter( |
| 36 std::set<PP_Instance>* seen_instance_ids, | |
| 37 scoped_refptr<ResourceReplyThreadRegistrar> thread_registrar); | |
| 31 virtual ~PluginMessageFilter(); | 38 virtual ~PluginMessageFilter(); |
| 32 | 39 |
| 33 // MessageFilter implementation. | 40 // MessageFilter implementation. |
| 34 virtual void OnFilterAdded(IPC::Channel* channel) OVERRIDE; | 41 virtual void OnFilterAdded(IPC::Channel* channel) OVERRIDE; |
| 35 virtual void OnFilterRemoved() OVERRIDE; | 42 virtual void OnFilterRemoved() OVERRIDE; |
| 36 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; | 43 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
| 37 | 44 |
| 38 // IPC::Sender implementation. | 45 // IPC::Sender implementation. |
| 39 virtual bool Send(IPC::Message* msg) OVERRIDE; | 46 virtual bool Send(IPC::Message* msg) OVERRIDE; |
| 40 | 47 |
| 48 static void DispatchResourceReplyForTest( | |
| 49 const ResourceMessageReplyParams& reply_params, | |
| 50 const IPC::Message& nested_msg); | |
| 51 | |
| 41 private: | 52 private: |
| 42 void OnMsgReserveInstanceId(PP_Instance instance, bool* usable); | 53 void OnMsgReserveInstanceId(PP_Instance instance, bool* usable); |
| 54 void OnMsgResourceReply(const ResourceMessageReplyParams& reply_params, | |
| 55 const IPC::Message& nested_msg); | |
| 56 | |
| 57 static void DispatchResourceReply( | |
| 58 const ResourceMessageReplyParams& reply_params, | |
| 59 const IPC::Message& nested_msg); | |
| 43 | 60 |
| 44 // All instance IDs every queried by any renderer on this plugin. This is | 61 // All instance IDs every queried by any renderer on this plugin. This is |
| 45 // used to make sure that new instance IDs are unique. This is a non-owning | 62 // used to make sure that new instance IDs are unique. This is a non-owning |
| 46 // pointer, it will be managed by the later that creates this class. | 63 // pointer, it will be managed by the later that creates this class. |
|
dmichael (off chromium)
2013/12/11 21:30:36
Not part of your CL, but...
"later"->"delegate"?
yzshen1
2013/12/11 22:22:07
Done.
I changed to:
"It is managed by PluginDispa
| |
| 47 std::set<PP_Instance>* seen_instance_ids_; | 64 std::set<PP_Instance>* seen_instance_ids_; |
| 48 | 65 |
| 66 scoped_refptr<ResourceReplyThreadRegistrar> resource_reply_thread_registrar_; | |
| 67 | |
| 49 // The IPC channel to the renderer. May be NULL if we're not currently | 68 // The IPC channel to the renderer. May be NULL if we're not currently |
| 50 // attached as a filter. | 69 // attached as a filter. |
| 51 IPC::Channel* channel_; | 70 IPC::Channel* channel_; |
| 52 }; | 71 }; |
| 53 | 72 |
| 54 } // namespace proxy | 73 } // namespace proxy |
| 55 } // namespace ppapi | 74 } // namespace ppapi |
| 56 | 75 |
| 57 #endif // PPAPI_PROXY_PLUGIN_MESSAGE_FILTER_H_ | 76 #endif // PPAPI_PROXY_PLUGIN_MESSAGE_FILTER_H_ |
| OLD | NEW |