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

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

Issue 9536013: Move |requires_authorization| flag for plug-ins out of webkit/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 9 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/resources/plugins_win.json ('k') | webkit/plugins/npapi/plugin_group.h » ('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 a2f46aa21330441ec76716477278fd4fa5af70b3..2f255b739d4035b4a1f584e47f8b3d7c32cd494d 100644
--- a/chrome/browser/ui/webui/plugins_ui.cc
+++ b/chrome/browser/ui/webui/plugins_ui.cc
@@ -17,6 +17,8 @@
#include "base/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/content_settings/host_content_settings_map.h"
+#include "chrome/browser/plugin_finder.h"
+#include "chrome/browser/plugin_installer.h"
#include "chrome/browser/plugin_prefs.h"
#include "chrome/browser/prefs/scoped_user_pref_update.h"
#include "chrome/browser/prefs/pref_member.h"
@@ -149,10 +151,14 @@ class PluginsDOMHandler : public WebUIMessageHandler,
private:
// Call this to start getting the plugins on the UI thread.
- void LoadPlugins();
+ void GetPluginFinder();
+
+ // XXX
jam 2012/03/09 19:10:08 ?
Bernhard Bauer 2012/03/09 20:28:12 Forgot a comment :)
+ void LoadPlugins(PluginFinder* plugin_finder);
// Called on the UI thread when the plugin information is ready.
- void PluginsLoaded(const std::vector<PluginGroup>& groups);
+ void PluginsLoaded(PluginFinder* plugin_finder,
+ const std::vector<PluginGroup>& groups);
content::NotificationRegistrar registrar_;
@@ -197,7 +203,7 @@ void PluginsDOMHandler::RegisterMessages() {
}
void PluginsDOMHandler::HandleRequestPluginsData(const ListValue* args) {
- LoadPlugins();
+ GetPluginFinder();
}
void PluginsDOMHandler::HandleEnablePluginMessage(const ListValue* args) {
@@ -295,19 +301,25 @@ void PluginsDOMHandler::Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
DCHECK_EQ(chrome::NOTIFICATION_PLUGIN_ENABLE_STATUS_CHANGED, type);
- LoadPlugins();
+ GetPluginFinder();
+}
+
+void PluginsDOMHandler::GetPluginFinder() {
+ PluginFinder::Get(base::Bind(&PluginsDOMHandler::LoadPlugins,
+ weak_ptr_factory_.GetWeakPtr()));
}
-void PluginsDOMHandler::LoadPlugins() {
+void PluginsDOMHandler::LoadPlugins(PluginFinder* plugin_finder) {
if (weak_ptr_factory_.HasWeakPtrs())
return;
PluginService::GetInstance()->GetPluginGroups(
base::Bind(&PluginsDOMHandler::PluginsLoaded,
- weak_ptr_factory_.GetWeakPtr()));
+ weak_ptr_factory_.GetWeakPtr(), plugin_finder));
}
-void PluginsDOMHandler::PluginsLoaded(const std::vector<PluginGroup>& groups) {
+void PluginsDOMHandler::PluginsLoaded(PluginFinder* plugin_finder,
+ const std::vector<PluginGroup>& groups) {
Profile* profile = Profile::FromWebUI(web_ui());
PluginPrefs* plugin_prefs =
PluginPrefs::GetForProfile(profile);
@@ -396,7 +408,13 @@ void PluginsDOMHandler::PluginsLoaded(const std::vector<PluginGroup>& groups) {
group_data->SetString("description", active_plugin->desc);
group_data->SetString("version", active_plugin->version);
group_data->SetBoolean("critical", group.IsVulnerable(*active_plugin));
- group_data->SetString("update_url", group.GetUpdateURL());
+
+ std::string update_url;
+ PluginInstaller* installer =
+ plugin_finder->FindPluginWithIdentifier(group.identifier());
+ if (installer)
+ update_url = installer->plugin_url().spec();
+ group_data->SetString("update_url", update_url);
std::string enabled_mode;
if (all_plugins_enabled_by_policy) {
@@ -410,7 +428,7 @@ void PluginsDOMHandler::PluginsLoaded(const std::vector<PluginGroup>& groups) {
}
group_data->SetString("enabledMode", enabled_mode);
- // TODO(bauerb): We should have a method on HostContentSettinsMap for this.
+ // TODO(bauerb): We should have a method on HostContentSettingsMap for this.
bool always_allowed = false;
ContentSettingsForOneType settings;
map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_PLUGINS,
« no previous file with comments | « chrome/browser/resources/plugins_win.json ('k') | webkit/plugins/npapi/plugin_group.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698