Index: content/browser/plugin_service.cc |
diff --git a/content/browser/plugin_service.cc b/content/browser/plugin_service.cc |
index d090917f5bfdf218dd8c6f2035859b47fe01632a..154d0629103c353424865c234c686c9d6053cb4a 100644 |
--- a/content/browser/plugin_service.cc |
+++ b/content/browser/plugin_service.cc |
@@ -323,7 +323,7 @@ void PluginService::GetAllowedPluginForOpenChannelToPlugin( |
bool found = GetPluginInfo( |
render_process_id, render_view_id, url, mime_type, &info, NULL); |
FilePath plugin_path; |
- if (found && webkit::npapi::IsPluginEnabled(info)) |
+ if (found) |
plugin_path = FilePath(info.path); |
// Now we jump back to the IO thread to finish opening the channel. |
@@ -355,7 +355,6 @@ bool PluginService::GetPluginInfo(int render_process_id, |
// GetPluginInfoArray may need to load the plugins, so we need to be |
// on the FILE thread. |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
- bool allow_wildcard = true; |
{ |
base::AutoLock auto_lock(overridden_plugins_lock_); |
for (size_t i = 0; i < overridden_plugins_.size(); ++i) { |
@@ -369,8 +368,20 @@ bool PluginService::GetPluginInfo(int render_process_id, |
} |
} |
} |
- return webkit::npapi::PluginList::Singleton()->GetPluginInfo( |
- url, mime_type, allow_wildcard, info, actual_mime_type); |
+ bool allow_wildcard = true; |
+ std::vector<webkit::npapi::WebPluginInfo> plugins; |
+ std::vector<std::string> mime_types; |
+ webkit::npapi::PluginList::Singleton()->GetPluginInfoArray( |
+ url, mime_type, allow_wildcard, NULL, &plugins, &mime_types); |
+ for (size_t i = 0; i < plugins.size(); ++i) { |
+ if (webkit::npapi::IsPluginEnabled(plugins[i])) { |
+ *info = plugins[i]; |
+ if (actual_mime_type) |
+ *actual_mime_type = mime_types[i]; |
+ return true; |
+ } |
+ } |
+ return false; |
} |
void PluginService::OnWaitableEventSignaled( |