diff options
Diffstat (limited to 'webkit/plugins/npapi/webplugin_impl.cc')
-rw-r--r-- | webkit/plugins/npapi/webplugin_impl.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/webkit/plugins/npapi/webplugin_impl.cc b/webkit/plugins/npapi/webplugin_impl.cc index f776559..723a7c0 100644 --- a/webkit/plugins/npapi/webplugin_impl.cc +++ b/webkit/plugins/npapi/webplugin_impl.cc @@ -256,10 +256,8 @@ bool WebPluginImpl::initialize(WebPluginContainer* container) { WebPluginDelegate* plugin_delegate = page_delegate_->CreatePluginDelegate( file_path_, mime_type_); - if (!plugin_delegate) { - LOG(ERROR) << "Couldn't create plug-in delegate"; + if (!plugin_delegate) return false; - } // Set the container before Initialize because the plugin may // synchronously call NPN_GetValue to get its container during its @@ -270,7 +268,14 @@ bool WebPluginImpl::initialize(WebPluginContainer* container) { if (!ok) { LOG(ERROR) << "Couldn't initialize plug-in"; plugin_delegate->PluginDestroyed(); - return false; + + WebKit::WebPlugin* replacement_plugin = + page_delegate_->CreatePluginReplacement(file_path_); + if (!replacement_plugin || !replacement_plugin->initialize(container)) + return false; + + container->setPlugin(replacement_plugin); + return true; } delegate_ = plugin_delegate; |