Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Side by Side Diff: webkit/plugins/ppapi/plugin_module.cc

Issue 6493004: Implement basic crash detection and shutdown handling for out of process PPAP... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/plugins/ppapi/plugin_module.h ('k') | webkit/plugins/ppapi/ppapi_plugin_instance.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 #include "ppapi/c/ppb_instance.h" 45 #include "ppapi/c/ppb_instance.h"
46 #include "ppapi/c/ppb_url_loader.h" 46 #include "ppapi/c/ppb_url_loader.h"
47 #include "ppapi/c/ppb_url_request_info.h" 47 #include "ppapi/c/ppb_url_request_info.h"
48 #include "ppapi/c/ppb_url_response_info.h" 48 #include "ppapi/c/ppb_url_response_info.h"
49 #include "ppapi/c/ppb_var.h" 49 #include "ppapi/c/ppb_var.h"
50 #include "ppapi/c/ppp.h" 50 #include "ppapi/c/ppp.h"
51 #include "ppapi/c/ppp_instance.h" 51 #include "ppapi/c/ppp_instance.h"
52 #include "ppapi/c/private/ppb_flash.h" 52 #include "ppapi/c/private/ppb_flash.h"
53 #include "ppapi/c/private/ppb_flash_menu.h" 53 #include "ppapi/c/private/ppb_flash_menu.h"
54 #include "ppapi/c/private/ppb_pdf.h" 54 #include "ppapi/c/private/ppb_pdf.h"
55 #include "ppapi/c/private/ppb_proxy_private.h"
55 #include "ppapi/c/private/ppb_nacl_private.h" 56 #include "ppapi/c/private/ppb_nacl_private.h"
56 #include "ppapi/c/trusted/ppb_image_data_trusted.h" 57 #include "ppapi/c/trusted/ppb_image_data_trusted.h"
57 #include "ppapi/c/trusted/ppb_url_loader_trusted.h" 58 #include "ppapi/c/trusted/ppb_url_loader_trusted.h"
58 #include "webkit/plugins/ppapi/callbacks.h" 59 #include "webkit/plugins/ppapi/callbacks.h"
59 #include "webkit/plugins/ppapi/common.h" 60 #include "webkit/plugins/ppapi/common.h"
60 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" 61 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
61 #include "webkit/plugins/ppapi/ppb_audio_impl.h" 62 #include "webkit/plugins/ppapi/ppb_audio_impl.h"
62 #include "webkit/plugins/ppapi/ppb_buffer_impl.h" 63 #include "webkit/plugins/ppapi/ppb_buffer_impl.h"
63 #include "webkit/plugins/ppapi/ppb_char_set_impl.h" 64 #include "webkit/plugins/ppapi/ppb_char_set_impl.h"
64 #include "webkit/plugins/ppapi/ppb_cursor_control_impl.h" 65 #include "webkit/plugins/ppapi/ppb_cursor_control_impl.h"
65 #include "webkit/plugins/ppapi/ppb_directory_reader_impl.h" 66 #include "webkit/plugins/ppapi/ppb_directory_reader_impl.h"
66 #include "webkit/plugins/ppapi/ppb_file_chooser_impl.h" 67 #include "webkit/plugins/ppapi/ppb_file_chooser_impl.h"
67 #include "webkit/plugins/ppapi/ppb_file_io_impl.h" 68 #include "webkit/plugins/ppapi/ppb_file_io_impl.h"
68 #include "webkit/plugins/ppapi/ppb_file_ref_impl.h" 69 #include "webkit/plugins/ppapi/ppb_file_ref_impl.h"
69 #include "webkit/plugins/ppapi/ppb_file_system_impl.h" 70 #include "webkit/plugins/ppapi/ppb_file_system_impl.h"
70 #include "webkit/plugins/ppapi/ppb_flash_impl.h" 71 #include "webkit/plugins/ppapi/ppb_flash_impl.h"
71 #include "webkit/plugins/ppapi/ppb_flash_menu_impl.h" 72 #include "webkit/plugins/ppapi/ppb_flash_menu_impl.h"
72 #include "webkit/plugins/ppapi/ppb_font_impl.h" 73 #include "webkit/plugins/ppapi/ppb_font_impl.h"
73 #include "webkit/plugins/ppapi/ppb_graphics_2d_impl.h" 74 #include "webkit/plugins/ppapi/ppb_graphics_2d_impl.h"
74 #include "webkit/plugins/ppapi/ppb_image_data_impl.h" 75 #include "webkit/plugins/ppapi/ppb_image_data_impl.h"
75 #include "webkit/plugins/ppapi/ppb_nacl_private_impl.h" 76 #include "webkit/plugins/ppapi/ppb_nacl_private_impl.h"
76 #include "webkit/plugins/ppapi/ppb_pdf_impl.h" 77 #include "webkit/plugins/ppapi/ppb_pdf_impl.h"
78 #include "webkit/plugins/ppapi/ppb_proxy_impl.h"
77 #include "webkit/plugins/ppapi/ppb_scrollbar_impl.h" 79 #include "webkit/plugins/ppapi/ppb_scrollbar_impl.h"
78 #include "webkit/plugins/ppapi/ppb_transport_impl.h" 80 #include "webkit/plugins/ppapi/ppb_transport_impl.h"
79 #include "webkit/plugins/ppapi/ppb_url_loader_impl.h" 81 #include "webkit/plugins/ppapi/ppb_url_loader_impl.h"
80 #include "webkit/plugins/ppapi/ppb_url_request_info_impl.h" 82 #include "webkit/plugins/ppapi/ppb_url_request_info_impl.h"
81 #include "webkit/plugins/ppapi/ppb_url_response_info_impl.h" 83 #include "webkit/plugins/ppapi/ppb_url_response_info_impl.h"
82 #include "webkit/plugins/ppapi/ppb_url_util_impl.h" 84 #include "webkit/plugins/ppapi/ppb_url_util_impl.h"
83 #include "webkit/plugins/ppapi/ppb_video_decoder_impl.h" 85 #include "webkit/plugins/ppapi/ppb_video_decoder_impl.h"
84 #include "webkit/plugins/ppapi/ppb_widget_impl.h" 86 #include "webkit/plugins/ppapi/ppb_widget_impl.h"
85 #include "webkit/plugins/ppapi/resource_tracker.h" 87 #include "webkit/plugins/ppapi/resource_tracker.h"
86 #include "webkit/plugins/ppapi/var.h" 88 #include "webkit/plugins/ppapi/var.h"
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 if (strcmp(name, PPB_GRAPHICS_2D_INTERFACE) == 0) 255 if (strcmp(name, PPB_GRAPHICS_2D_INTERFACE) == 0)
254 return PPB_Graphics2D_Impl::GetInterface(); 256 return PPB_Graphics2D_Impl::GetInterface();
255 if (strcmp(name, PPB_IMAGEDATA_INTERFACE) == 0) 257 if (strcmp(name, PPB_IMAGEDATA_INTERFACE) == 0)
256 return PPB_ImageData_Impl::GetInterface(); 258 return PPB_ImageData_Impl::GetInterface();
257 if (strcmp(name, PPB_IMAGEDATA_TRUSTED_INTERFACE) == 0) 259 if (strcmp(name, PPB_IMAGEDATA_TRUSTED_INTERFACE) == 0)
258 return PPB_ImageData_Impl::GetTrustedInterface(); 260 return PPB_ImageData_Impl::GetTrustedInterface();
259 if (strcmp(name, PPB_INSTANCE_INTERFACE) == 0) 261 if (strcmp(name, PPB_INSTANCE_INTERFACE) == 0)
260 return PluginInstance::GetInterface(); 262 return PluginInstance::GetInterface();
261 if (strcmp(name, PPB_PDF_INTERFACE) == 0) 263 if (strcmp(name, PPB_PDF_INTERFACE) == 0)
262 return PPB_PDF_Impl::GetInterface(); 264 return PPB_PDF_Impl::GetInterface();
265 if (strcmp(name, PPB_PROXY_PRIVATE_INTERFACE) == 0)
266 return PPB_Proxy_Impl::GetInterface();
263 if (strcmp(name, PPB_SCROLLBAR_DEV_INTERFACE) == 0) 267 if (strcmp(name, PPB_SCROLLBAR_DEV_INTERFACE) == 0)
264 return PPB_Scrollbar_Impl::GetInterface(); 268 return PPB_Scrollbar_Impl::GetInterface();
265 if (strcmp(name, PPB_TRANSPORT_DEV_INTERFACE) == 0) 269 if (strcmp(name, PPB_TRANSPORT_DEV_INTERFACE) == 0)
266 return PPB_Transport_Impl::GetInterface(); 270 return PPB_Transport_Impl::GetInterface();
267 if (strcmp(name, PPB_URLLOADER_INTERFACE) == 0) 271 if (strcmp(name, PPB_URLLOADER_INTERFACE) == 0)
268 return PPB_URLLoader_Impl::GetInterface(); 272 return PPB_URLLoader_Impl::GetInterface();
269 if (strcmp(name, PPB_URLLOADERTRUSTED_INTERFACE) == 0) 273 if (strcmp(name, PPB_URLLOADERTRUSTED_INTERFACE) == 0)
270 return PPB_URLLoader_Impl::GetTrustedInterface(); 274 return PPB_URLLoader_Impl::GetTrustedInterface();
271 if (strcmp(name, PPB_URLREQUESTINFO_INTERFACE) == 0) 275 if (strcmp(name, PPB_URLREQUESTINFO_INTERFACE) == 0)
272 return PPB_URLRequestInfo_Impl::GetInterface(); 276 return PPB_URLRequestInfo_Impl::GetInterface();
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 void PluginModule::InstanceDeleted(PluginInstance* instance) { 469 void PluginModule::InstanceDeleted(PluginInstance* instance) {
466 if (out_of_process_proxy_.get()) 470 if (out_of_process_proxy_.get())
467 out_of_process_proxy_->RemoveInstance(instance->pp_instance()); 471 out_of_process_proxy_->RemoveInstance(instance->pp_instance());
468 instances_.erase(instance); 472 instances_.erase(instance);
469 } 473 }
470 474
471 scoped_refptr<CallbackTracker> PluginModule::GetCallbackTracker() { 475 scoped_refptr<CallbackTracker> PluginModule::GetCallbackTracker() {
472 return callback_tracker_; 476 return callback_tracker_;
473 } 477 }
474 478
479 void PluginModule::PluginCrashed() {
480 // Notify all instances that they crashed.
481 for (PluginInstanceSet::iterator i = instances_.begin();
482 i != instances_.end(); ++i)
483 (*i)->InstanceCrashed();
484 }
485
475 bool PluginModule::InitializeModule() { 486 bool PluginModule::InitializeModule() {
476 DCHECK(!out_of_process_proxy_.get()) << "Don't call for proxied modules."; 487 DCHECK(!out_of_process_proxy_.get()) << "Don't call for proxied modules.";
477 int retval = entry_points_.initialize_module(pp_module(), &GetInterface); 488 int retval = entry_points_.initialize_module(pp_module(), &GetInterface);
478 if (retval != 0) { 489 if (retval != 0) {
479 LOG(WARNING) << "PPP_InitializeModule returned failure " << retval; 490 LOG(WARNING) << "PPP_InitializeModule returned failure " << retval;
480 return false; 491 return false;
481 } 492 }
482 return true; 493 return true;
483 } 494 }
484 495
485 } // namespace ppapi 496 } // namespace ppapi
486 } // namespace webkit 497 } // namespace webkit
487 498
OLDNEW
« no previous file with comments | « webkit/plugins/ppapi/plugin_module.h ('k') | webkit/plugins/ppapi/ppapi_plugin_instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698