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

Unified Diff: chrome/browser/ui/webui/plugins_ui.cc

Issue 10910168: Separate plugin_metadata from plugin_installer, thread-safe plugin_finder (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: .. Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/pdf/pdf_unsupported_feature.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/plugins_ui.cc
diff --git a/chrome/browser/ui/webui/plugins_ui.cc b/chrome/browser/ui/webui/plugins_ui.cc
index 0b655ec739e25a03b26fcae50ce5fc4d961267db..01d5027140d366455a533a63d2e5c4f12222d626 100644
--- a/chrome/browser/ui/webui/plugins_ui.cc
+++ b/chrome/browser/ui/webui/plugins_ui.cc
@@ -20,7 +20,7 @@
#include "chrome/browser/api/prefs/pref_member.h"
#include "chrome/browser/content_settings/host_content_settings_map.h"
#include "chrome/browser/plugins/plugin_finder.h"
-#include "chrome/browser/plugins/plugin_installer.h"
+#include "chrome/browser/plugins/plugin_metadata.h"
#include "chrome/browser/plugins/plugin_prefs.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/prefs/scoped_user_pref_update.h"
@@ -163,15 +163,10 @@ class PluginsDOMHandler : public WebUIMessageHandler,
const content::NotificationDetails& details) OVERRIDE;
private:
- // Call this to start getting the plugins on the UI thread.
- void GetPluginFinder();
-
- // Called when we have a PluginFinder and need to load the list of plug-ins.
- void LoadPlugins(PluginFinder* plugin_finder);
+ void LoadPlugins();
// Called on the UI thread when the plugin information is ready.
- void PluginsLoaded(PluginFinder* plugin_finder,
- const std::vector<webkit::WebPluginInfo>& plugins);
+ void PluginsLoaded(const std::vector<webkit::WebPluginInfo>& plugins);
content::NotificationRegistrar registrar_;
@@ -221,7 +216,7 @@ void PluginsDOMHandler::RegisterMessages() {
}
void PluginsDOMHandler::HandleRequestPluginsData(const ListValue* args) {
- GetPluginFinder();
+ LoadPlugins();
}
void PluginsDOMHandler::HandleEnablePluginMessage(const ListValue* args) {
@@ -320,37 +315,32 @@ void PluginsDOMHandler::Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
DCHECK_EQ(chrome::NOTIFICATION_PLUGIN_ENABLE_STATUS_CHANGED, type);
- GetPluginFinder();
+ LoadPlugins();
}
-void PluginsDOMHandler::GetPluginFinder() {
+void PluginsDOMHandler::LoadPlugins() {
if (weak_ptr_factory_.HasWeakPtrs())
return;
- PluginFinder::Get(base::Bind(&PluginsDOMHandler::LoadPlugins,
- weak_ptr_factory_.GetWeakPtr()));
-}
-
-void PluginsDOMHandler::LoadPlugins(PluginFinder* plugin_finder) {
PluginService::GetInstance()->GetPlugins(
base::Bind(&PluginsDOMHandler::PluginsLoaded,
- weak_ptr_factory_.GetWeakPtr(), plugin_finder));
+ weak_ptr_factory_.GetWeakPtr()));
}
void PluginsDOMHandler::PluginsLoaded(
- PluginFinder* plugin_finder,
const std::vector<webkit::WebPluginInfo>& plugins) {
Profile* profile = Profile::FromWebUI(web_ui());
PluginPrefs* plugin_prefs = PluginPrefs::GetForProfile(profile);
ContentSettingsPattern wildcard = ContentSettingsPattern::Wildcard();
+ PluginFinder* plugin_finder = PluginFinder::GetInstance();
// Group plug-ins by identifier. This is done to be able to display
// the plug-ins in UI in a grouped fashion.
PluginGroups groups;
for (size_t i = 0; i < plugins.size(); ++i) {
- PluginInstaller* installer = plugin_finder->GetPluginInstaller(plugins[i]);
- groups[installer->identifier()].push_back(&plugins[i]);
+ PluginMetadata* plugin = plugin_finder->GetPluginMetadata(plugins[i]);
+ groups[plugin->identifier()].push_back(&plugins[i]);
}
// Construct DictionaryValues to return to UI.
@@ -359,10 +349,10 @@ void PluginsDOMHandler::PluginsLoaded(
it != groups.end(); ++it) {
const std::vector<const WebPluginInfo*>& group_plugins = it->second;
ListValue* plugin_files = new ListValue();
- PluginInstaller* plugin_installer =
- plugin_finder->GetPluginInstaller(*group_plugins[0]);
- string16 group_name = plugin_installer->name();
- std::string group_identifier = plugin_installer->identifier();
+ PluginMetadata* plugin_metadata =
+ plugin_finder->GetPluginMetadata(*group_plugins[0]);
+ string16 group_name = plugin_metadata->name();
+ std::string group_identifier = plugin_metadata->identifier();
bool group_enabled = false;
bool all_plugins_enabled_by_policy = true;
bool all_plugins_disabled_by_policy = true;
@@ -437,14 +427,10 @@ void PluginsDOMHandler::PluginsLoaded(
group_data->SetString("version", active_plugin->version);
#if defined(ENABLE_PLUGIN_INSTALLATION)
- PluginInstaller* installer =
- plugin_finder->FindPluginWithIdentifier(group_identifier);
- if (installer) {
- bool out_of_date = installer->GetSecurityStatus(*active_plugin) ==
- PluginInstaller::SECURITY_STATUS_OUT_OF_DATE;
- group_data->SetBoolean("critical", out_of_date);
- group_data->SetString("update_url", installer->plugin_url().spec());
- }
+ bool out_of_date = plugin_metadata->GetSecurityStatus(*active_plugin) ==
+ PluginMetadata::SECURITY_STATUS_OUT_OF_DATE;
+ group_data->SetBoolean("critical", out_of_date);
+ group_data->SetString("update_url", plugin_metadata->plugin_url().spec());
#endif
std::string enabled_mode;
« no previous file with comments | « chrome/browser/ui/pdf/pdf_unsupported_feature.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698