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

Side by Side Diff: chrome/browser/plugin_status_pref_setter.cc

Issue 10933044: Move chrome/browser/plugin_* to chrome/browser/plugins/ (Closed) Base URL: http://git.chromium.org/chromium/src.git@remove_plugin_group
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 unified diff | Download patch
« no previous file with comments | « chrome/browser/plugin_status_pref_setter.h ('k') | chrome/browser/plugins/OWNERS » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/plugin_status_pref_setter.h"
6
7 #include "base/bind.h"
8 #include "chrome/browser/pepper_flash_settings_manager.h"
9 #include "chrome/browser/plugin_data_remover_helper.h"
10 #include "chrome/browser/plugin_prefs.h"
11 #include "chrome/browser/prefs/pref_service.h"
12 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/common/chrome_notification_types.h"
14 #include "chrome/common/pref_names.h"
15 #include "content/public/browser/browser_thread.h"
16 #include "content/public/browser/notification_source.h"
17 #include "content/public/browser/plugin_service.h"
18 #include "webkit/plugins/webplugininfo.h"
19
20 using content::BrowserThread;
21 using content::PluginService;
22
23 PluginStatusPrefSetter::PluginStatusPrefSetter()
24 : profile_(NULL),
25 ALLOW_THIS_IN_INITIALIZER_LIST(factory_(this)) {}
26
27 PluginStatusPrefSetter::~PluginStatusPrefSetter() {
28 }
29
30 void PluginStatusPrefSetter::Init(Profile* profile,
31 content::NotificationObserver* observer) {
32 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled,
33 profile->GetPrefs(), observer);
34 pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled,
35 profile->GetPrefs(), observer);
36 profile_ = profile;
37 registrar_.Add(this, chrome::NOTIFICATION_PLUGIN_ENABLE_STATUS_CHANGED,
38 content::Source<Profile>(profile));
39 StartUpdate();
40 }
41
42 void PluginStatusPrefSetter::Observe(
43 int type,
44 const content::NotificationSource& source,
45 const content::NotificationDetails& details) {
46 if (type == chrome::NOTIFICATION_PLUGIN_ENABLE_STATUS_CHANGED) {
47 StartUpdate();
48 } else {
49 NOTREACHED();
50 }
51 }
52
53 void PluginStatusPrefSetter::StartUpdate() {
54 PluginService::GetInstance()->GetPlugins(
55 base::Bind(&PluginStatusPrefSetter::GotPlugins, factory_.GetWeakPtr(),
56 PluginPrefs::GetForProfile(profile_)));
57 }
58
59 void PluginStatusPrefSetter::GotPlugins(
60 scoped_refptr<PluginPrefs> plugin_prefs,
61 const std::vector<webkit::WebPluginInfo>& /* plugins */) {
62 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
63 // Set the values on the PrefService instead of through the PrefMembers to
64 // notify observers if they changed.
65 profile_->GetPrefs()->SetBoolean(
66 clear_plugin_lso_data_enabled_.GetPrefName().c_str(),
67 PluginDataRemoverHelper::IsSupported(plugin_prefs));
68 profile_->GetPrefs()->SetBoolean(
69 pepper_flash_settings_enabled_.GetPrefName().c_str(),
70 PepperFlashSettingsManager::IsPepperFlashInUse(plugin_prefs, NULL));
71 }
OLDNEW
« no previous file with comments | « chrome/browser/plugin_status_pref_setter.h ('k') | chrome/browser/plugins/OWNERS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698