| Index: ppapi/proxy/plugin_resource.cc
|
| diff --git a/ppapi/proxy/plugin_resource.cc b/ppapi/proxy/plugin_resource.cc
|
| index 6e387bb5c68c2cb22fb2b16632b021b0b74805fd..4464ca65decd54491a9f597474dbf431b66dce8d 100644
|
| --- a/ppapi/proxy/plugin_resource.cc
|
| +++ b/ppapi/proxy/plugin_resource.cc
|
| @@ -10,20 +10,32 @@
|
| namespace ppapi {
|
| namespace proxy {
|
|
|
| -PluginResource::PluginResource(IPC::Sender* sender, PP_Instance instance)
|
| +PluginResource::PluginResource(Connection connection, PP_Instance instance)
|
| : Resource(OBJECT_IS_PROXY, instance),
|
| - sender_(sender),
|
| + connection_(connection),
|
| next_sequence_number_(0),
|
| + sent_create_to_browser_(false),
|
| sent_create_to_renderer_(false) {
|
| }
|
|
|
| PluginResource::~PluginResource() {
|
| - if (sent_create_to_renderer_)
|
| - Send(new PpapiHostMsg_ResourceDestroyed(pp_resource()));
|
| + if (sent_create_to_browser_) {
|
| + connection_.browser_sender->Send(
|
| + new PpapiHostMsg_ResourceDestroyed(pp_resource()));
|
| + }
|
| + if (sent_create_to_renderer_) {
|
| + connection_.renderer_sender->Send(
|
| + new PpapiHostMsg_ResourceDestroyed(pp_resource()));
|
| + }
|
| }
|
|
|
| -bool PluginResource::Send(IPC::Message* message) {
|
| - return sender_->Send(message);
|
| +void PluginResource::SendCreateToBrowser(const IPC::Message& msg) {
|
| + DCHECK(!sent_create_to_browser_);
|
| + sent_create_to_browser_ = true;
|
| + ResourceMessageCallParams params(pp_resource(),
|
| + next_sequence_number_++);
|
| + connection_.browser_sender->Send(
|
| + new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg));
|
| }
|
|
|
| void PluginResource::SendCreateToRenderer(const IPC::Message& msg) {
|
| @@ -31,20 +43,35 @@ void PluginResource::SendCreateToRenderer(const IPC::Message& msg) {
|
| sent_create_to_renderer_ = true;
|
| ResourceMessageCallParams params(pp_resource(),
|
| next_sequence_number_++);
|
| - Send(new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg));
|
| + connection_.renderer_sender->Send(
|
| + new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg));
|
| +}
|
| +
|
| +void PluginResource::PostToBrowser(const IPC::Message& msg) {
|
| + ResourceMessageCallParams params(pp_resource(),
|
| + next_sequence_number_++);
|
| + connection_.browser_sender->Send(new PpapiHostMsg_ResourceCall(params, msg));
|
| }
|
|
|
| void PluginResource::PostToRenderer(const IPC::Message& msg) {
|
| ResourceMessageCallParams params(pp_resource(),
|
| next_sequence_number_++);
|
| - Send(new PpapiHostMsg_ResourceCall(params, msg));
|
| + connection_.renderer_sender->Send(new PpapiHostMsg_ResourceCall(params, msg));
|
| +}
|
| +
|
| +int32_t PluginResource::CallBrowser(const IPC::Message& msg) {
|
| + ResourceMessageCallParams params(pp_resource(),
|
| + next_sequence_number_++);
|
| + params.set_has_callback();
|
| + connection_.browser_sender->Send(new PpapiHostMsg_ResourceCall(params, msg));
|
| + return params.sequence();
|
| }
|
|
|
| int32_t PluginResource::CallRenderer(const IPC::Message& msg) {
|
| ResourceMessageCallParams params(pp_resource(),
|
| next_sequence_number_++);
|
| params.set_has_callback();
|
| - Send(new PpapiHostMsg_ResourceCall(params, msg));
|
| + connection_.renderer_sender->Send(new PpapiHostMsg_ResourceCall(params, msg));
|
| return params.sequence();
|
| }
|
|
|
|
|