| 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 #include "webkit/plugins/ppapi/plugin_module.h" | 5 #include "webkit/plugins/ppapi/plugin_module.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 } | 375 } |
| 376 | 376 |
| 377 // PluginModule ---------------------------------------------------------------- | 377 // PluginModule ---------------------------------------------------------------- |
| 378 | 378 |
| 379 PluginModule::PluginModule(const std::string& name, | 379 PluginModule::PluginModule(const std::string& name, |
| 380 PluginDelegate::ModuleLifetime* lifetime_delegate) | 380 PluginDelegate::ModuleLifetime* lifetime_delegate) |
| 381 : lifetime_delegate_(lifetime_delegate), | 381 : lifetime_delegate_(lifetime_delegate), |
| 382 callback_tracker_(new CallbackTracker), | 382 callback_tracker_(new CallbackTracker), |
| 383 is_crashed_(false), | 383 is_crashed_(false), |
| 384 library_(NULL), | 384 library_(NULL), |
| 385 name_(name) { | 385 name_(name), |
| 386 reserve_instance_id_(NULL) { |
| 386 pp_module_ = ResourceTracker::Get()->AddModule(this); | 387 pp_module_ = ResourceTracker::Get()->AddModule(this); |
| 387 GetMainThreadMessageLoop(); // Initialize the main thread message loop. | 388 GetMainThreadMessageLoop(); // Initialize the main thread message loop. |
| 388 GetLivePluginSet()->insert(this); | 389 GetLivePluginSet()->insert(this); |
| 389 } | 390 } |
| 390 | 391 |
| 391 PluginModule::~PluginModule() { | 392 PluginModule::~PluginModule() { |
| 392 // When the module is being deleted, there should be no more instances still | 393 // When the module is being deleted, there should be no more instances still |
| 393 // holding a reference to us. | 394 // holding a reference to us. |
| 394 DCHECK(instances_.empty()); | 395 DCHECK(instances_.empty()); |
| 395 | 396 |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 is_crashed_ = true; | 499 is_crashed_ = true; |
| 499 | 500 |
| 500 // Notify all instances that they crashed. | 501 // Notify all instances that they crashed. |
| 501 for (PluginInstanceSet::iterator i = instances_.begin(); | 502 for (PluginInstanceSet::iterator i = instances_.begin(); |
| 502 i != instances_.end(); ++i) | 503 i != instances_.end(); ++i) |
| 503 (*i)->InstanceCrashed(); | 504 (*i)->InstanceCrashed(); |
| 504 | 505 |
| 505 lifetime_delegate_->PluginModuleDead(this); | 506 lifetime_delegate_->PluginModuleDead(this); |
| 506 } | 507 } |
| 507 | 508 |
| 509 void PluginModule::SetReserveInstanceIDCallback( |
| 510 PP_Bool (*reserve)(PP_Module, PP_Instance)) { |
| 511 DCHECK(!reserve_instance_id_) << "Only expect one set."; |
| 512 reserve_instance_id_ = reserve; |
| 513 } |
| 514 |
| 515 bool PluginModule::ReserveInstanceID(PP_Instance instance) { |
| 516 if (reserve_instance_id_) |
| 517 return PPBoolToBool(reserve_instance_id_(pp_module_, instance)); |
| 518 return true; // Instance ID is usable. |
| 519 } |
| 520 |
| 508 bool PluginModule::InitializeModule() { | 521 bool PluginModule::InitializeModule() { |
| 509 DCHECK(!out_of_process_proxy_.get()) << "Don't call for proxied modules."; | 522 DCHECK(!out_of_process_proxy_.get()) << "Don't call for proxied modules."; |
| 510 int retval = entry_points_.initialize_module(pp_module(), &GetInterface); | 523 int retval = entry_points_.initialize_module(pp_module(), &GetInterface); |
| 511 if (retval != 0) { | 524 if (retval != 0) { |
| 512 LOG(WARNING) << "PPP_InitializeModule returned failure " << retval; | 525 LOG(WARNING) << "PPP_InitializeModule returned failure " << retval; |
| 513 return false; | 526 return false; |
| 514 } | 527 } |
| 515 return true; | 528 return true; |
| 516 } | 529 } |
| 517 | 530 |
| 518 } // namespace ppapi | 531 } // namespace ppapi |
| 519 } // namespace webkit | 532 } // namespace webkit |
| 520 | 533 |
| OLD | NEW |