| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "ppapi/proxy/plugin_resource.h" | 5 #include "ppapi/proxy/plugin_resource.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "ppapi/proxy/plugin_globals.h" |
| 9 #include "ppapi/proxy/ppapi_messages.h" | 10 #include "ppapi/proxy/ppapi_messages.h" |
| 11 #include "ppapi/shared_impl/ppapi_globals.h" |
| 10 | 12 |
| 11 namespace ppapi { | 13 namespace ppapi { |
| 12 namespace proxy { | 14 namespace proxy { |
| 13 | 15 |
| 14 PluginResource::PluginResource(Connection connection, PP_Instance instance) | 16 PluginResource::PluginResource(Connection connection, PP_Instance instance) |
| 15 : Resource(OBJECT_IS_PROXY, instance), | 17 : Resource(OBJECT_IS_PROXY, instance), |
| 16 connection_(connection), | 18 connection_(connection), |
| 17 next_sequence_number_(1), | 19 next_sequence_number_(1), |
| 18 sent_create_to_browser_(false), | 20 sent_create_to_browser_(false), |
| 19 sent_create_to_renderer_(false) { | 21 sent_create_to_renderer_(false), |
| 22 resource_reply_thread_registrar_( |
| 23 PpapiGlobals::Get()->IsPluginGlobals() ? |
| 24 PluginGlobals::Get()->resource_reply_thread_registrar() : NULL) { |
| 20 } | 25 } |
| 21 | 26 |
| 22 PluginResource::~PluginResource() { | 27 PluginResource::~PluginResource() { |
| 23 if (sent_create_to_browser_) { | 28 if (sent_create_to_browser_) { |
| 24 connection_.browser_sender->Send( | 29 connection_.browser_sender->Send( |
| 25 new PpapiHostMsg_ResourceDestroyed(pp_resource())); | 30 new PpapiHostMsg_ResourceDestroyed(pp_resource())); |
| 26 } | 31 } |
| 27 if (sent_create_to_renderer_) { | 32 if (sent_create_to_renderer_) { |
| 28 connection_.renderer_sender->Send( | 33 connection_.renderer_sender->Send( |
| 29 new PpapiHostMsg_ResourceDestroyed(pp_resource())); | 34 new PpapiHostMsg_ResourceDestroyed(pp_resource())); |
| 30 } | 35 } |
| 36 |
| 37 if (resource_reply_thread_registrar_) |
| 38 resource_reply_thread_registrar_->Unregister(pp_resource()); |
| 31 } | 39 } |
| 32 | 40 |
| 33 void PluginResource::OnReplyReceived( | 41 void PluginResource::OnReplyReceived( |
| 34 const proxy::ResourceMessageReplyParams& params, | 42 const proxy::ResourceMessageReplyParams& params, |
| 35 const IPC::Message& msg) { | 43 const IPC::Message& msg) { |
| 36 TRACE_EVENT2("ppapi proxy", "PluginResource::OnReplyReceived", | 44 TRACE_EVENT2("ppapi proxy", "PluginResource::OnReplyReceived", |
| 37 "Class", IPC_MESSAGE_ID_CLASS(msg.type()), | 45 "Class", IPC_MESSAGE_ID_CLASS(msg.type()), |
| 38 "Line", IPC_MESSAGE_ID_LINE(msg.type())); | 46 "Line", IPC_MESSAGE_ID_LINE(msg.type())); |
| 39 // Grab the callback for the reply sequence number and run it with |msg|. | 47 // Grab the callback for the reply sequence number and run it with |msg|. |
| 40 CallbackMap::iterator it = callbacks_.find(params.sequence()); | 48 CallbackMap::iterator it = callbacks_.find(params.sequence()); |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 int32_t ret = next_sequence_number_; | 159 int32_t ret = next_sequence_number_; |
| 152 if (next_sequence_number_ == std::numeric_limits<int32_t>::max()) | 160 if (next_sequence_number_ == std::numeric_limits<int32_t>::max()) |
| 153 next_sequence_number_ = 1; // Skip 0 which is invalid. | 161 next_sequence_number_ = 1; // Skip 0 which is invalid. |
| 154 else | 162 else |
| 155 next_sequence_number_++; | 163 next_sequence_number_++; |
| 156 return ret; | 164 return ret; |
| 157 } | 165 } |
| 158 | 166 |
| 159 } // namespace proxy | 167 } // namespace proxy |
| 160 } // namespace ppapi | 168 } // namespace ppapi |
| OLD | NEW |