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

Unified Diff: chrome/browser/plugin_service.cc

Issue 2811037: Group plugins in about:plugins and show update link for out-of-date ones. (Closed) Base URL: git://codf21.jail.google.com/chromium.git
Patch Set: Fix some HTML issues. Created 10 years, 6 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/plugin_service.h ('k') | chrome/browser/plugin_updater.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/plugin_service.cc
diff --git a/chrome/browser/plugin_service.cc b/chrome/browser/plugin_service.cc
index a634688114f0be4f435df59facea173832344b34..02133edf6ea716b0976c9c420220b41ac7cd1c09 100644
--- a/chrome/browser/plugin_service.cc
+++ b/chrome/browser/plugin_service.cc
@@ -17,6 +17,7 @@
#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/extensions/extensions_service.h"
#include "chrome/browser/plugin_process_host.h"
+#include "chrome/browser/plugin_updater.h"
#include "chrome/browser/pref_service.h"
#include "chrome/browser/profile.h"
#include "chrome/browser/renderer_host/render_process_host.h"
@@ -53,89 +54,13 @@ static void NotifyPluginsOfActivation() {
// static
bool PluginService::enable_chrome_plugins_ = true;
-#if defined(OS_CHROMEOS)
-bool PluginService::enable_internal_pdf_ = true;
-#else
-bool PluginService::enable_internal_pdf_ = false;
-#endif
// static
void PluginService::InitGlobalInstance(Profile* profile) {
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
- bool update_internal_dir = false;
- FilePath last_internal_dir =
- profile->GetPrefs()->GetFilePath(prefs::kPluginsLastInternalDirectory);
- FilePath cur_internal_dir;
- if (PathService::Get(chrome::DIR_INTERNAL_PLUGINS, &cur_internal_dir) &&
- cur_internal_dir != last_internal_dir) {
- update_internal_dir = true;
- profile->GetPrefs()->SetFilePath(
- prefs::kPluginsLastInternalDirectory, cur_internal_dir);
- }
-
- bool found_internal_pdf = false;
- bool force_enable_internal_pdf = false;
- FilePath pdf_path;
- PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf_path);
- FilePath::StringType pdf_path_str = pdf_path.value();
- if (enable_internal_pdf_ &&
- !profile->GetPrefs()->GetBoolean(prefs::kPluginsEnabledInternalPDF)) {
- // We switched to the internal pdf plugin being on by default, and so we
- // need to force it to be enabled. We only want to do it this once though,
- // i.e. we don't want to enable it again if the user disables it afterwards.
- profile->GetPrefs()->SetBoolean(prefs::kPluginsEnabledInternalPDF, true);
- force_enable_internal_pdf = true;
- }
-
- // Disable plugins listed as disabled in prefs.
- if (ListValue* saved_plugins_list =
- profile->GetPrefs()->GetMutableList(prefs::kPluginsPluginsList)) {
- for (ListValue::const_iterator it = saved_plugins_list->begin();
- it != saved_plugins_list->end();
- ++it) {
- if (!(*it)->IsType(Value::TYPE_DICTIONARY)) {
- LOG(WARNING) << "Invalid entry in " << prefs::kPluginsPluginsList;
- continue; // Oops, don't know what to do with this item.
- }
-
- DictionaryValue* plugin = static_cast<DictionaryValue*>(*it);
- FilePath::StringType path;
- if (!plugin->GetString(L"path", &path))
- continue;
-
- bool enabled = true;
- plugin->GetBoolean(L"enabled", &enabled);
-
- FilePath plugin_path(path);
- if (update_internal_dir &&
- FilePath::CompareIgnoreCase(plugin_path.DirName().value(),
- last_internal_dir.value()) == 0) {
- // If the internal plugin directory has changed and if the plugin looks
- // internal, update its path in the prefs.
- plugin_path = cur_internal_dir.Append(plugin_path.BaseName());
- path = plugin_path.value();
- plugin->SetString(L"path", path);
- }
-
- if (FilePath::CompareIgnoreCase(path, pdf_path_str) == 0) {
- found_internal_pdf = true;
- if (!enabled && force_enable_internal_pdf) {
- enabled = true;
- plugin->SetBoolean(L"enabled", true);
- }
- }
-
- if (!enabled)
- NPAPI::PluginList::Singleton()->DisablePlugin(plugin_path);
- }
- }
-
- if (!enable_internal_pdf_ && !found_internal_pdf) {
- // The internal PDF plugin is disabled by default, and the user hasn't
- // overridden the default.
- NPAPI::PluginList::Singleton()->DisablePlugin(pdf_path);
- }
+ // We first group the plugins and then figure out which groups to disable.
+ PluginUpdater::GetInstance()->DisablePluginGroupsFromPrefs(profile);
// Have Chrome plugins write their data to the profile directory.
GetInstance()->SetChromePluginDataDir(profile->GetPath());
« no previous file with comments | « chrome/browser/plugin_service.h ('k') | chrome/browser/plugin_updater.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698