diff options
Diffstat (limited to 'content/utility/utility_thread_impl.cc')
-rw-r--r-- | content/utility/utility_thread_impl.cc | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/content/utility/utility_thread_impl.cc b/content/utility/utility_thread_impl.cc index f1f7cc8..6b841aa 100644 --- a/content/utility/utility_thread_impl.cc +++ b/content/utility/utility_thread_impl.cc @@ -143,16 +143,19 @@ void UtilityThreadImpl::OnLoadPlugins( } #endif - ScopedVector<webkit::npapi::PluginGroup> plugin_groups; - // TODO(bauerb): If we restart loading plug-ins, we might mess up the logic in - // PluginList::ShouldLoadPlugin due to missing the previously loaded plug-ins - // in |plugin_groups|. for (size_t i = 0; i < plugin_paths.size(); ++i) { - webkit::WebPluginInfo plugin; - if (!plugin_list->LoadPlugin(plugin_paths[i], &plugin_groups, &plugin)) + ScopedVector<webkit::npapi::PluginGroup> plugin_groups; + plugin_list->LoadPlugin(plugin_paths[i], &plugin_groups); + + if (plugin_groups.empty()) { Send(new UtilityHostMsg_LoadPluginFailed(i, plugin_paths[i])); - else - Send(new UtilityHostMsg_LoadedPlugin(i, plugin)); + continue; + } + + const webkit::npapi::PluginGroup* group = plugin_groups[0]; + DCHECK_EQ(group->web_plugin_infos().size(), 1u); + + Send(new UtilityHostMsg_LoadedPlugin(i, group->web_plugin_infos().front())); } ReleaseProcessIfNeeded(); |