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

Side by Side Diff: chrome/browser/plugins/plugin_prefs.h

Issue 11345008: Remove content::NotificationObserver dependency from most Prefs code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head for commit Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_PLUGINS_PLUGIN_PREFS_H_ 5 #ifndef CHROME_BROWSER_PLUGINS_PLUGIN_PREFS_H_
6 #define CHROME_BROWSER_PLUGINS_PLUGIN_PREFS_H_ 6 #define CHROME_BROWSER_PLUGINS_PLUGIN_PREFS_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/file_path.h" 13 #include "base/file_path.h"
14 #include "base/prefs/public/pref_change_registrar.h" 14 #include "base/prefs/public/pref_change_registrar.h"
15 #include "base/prefs/public/pref_observer.h"
15 #include "base/synchronization/lock.h" 16 #include "base/synchronization/lock.h"
16 #include "chrome/browser/plugins/plugin_finder.h" 17 #include "chrome/browser/plugins/plugin_finder.h"
17 #include "chrome/browser/prefs/pref_service.h" 18 #include "chrome/browser/prefs/pref_service.h"
18 #include "chrome/browser/profiles/refcounted_profile_keyed_service.h" 19 #include "chrome/browser/profiles/refcounted_profile_keyed_service.h"
19 #include "content/public/browser/notification_observer.h"
20 20
21 class Profile; 21 class Profile;
22 22
23 namespace base { 23 namespace base {
24 class ListValue; 24 class ListValue;
25 } 25 }
26 26
27 namespace webkit { 27 namespace webkit {
28 struct WebPluginInfo; 28 struct WebPluginInfo;
29 namespace npapi { 29 namespace npapi {
30 class PluginList; 30 class PluginList;
31 } 31 }
32 } 32 }
33 33
34 // This class stores information about whether a plug-in or a plug-in group is 34 // This class stores information about whether a plug-in or a plug-in group is
35 // enabled or disabled. 35 // enabled or disabled.
36 // Except where otherwise noted, it can be used on every thread. 36 // Except where otherwise noted, it can be used on every thread.
37 class PluginPrefs : public RefcountedProfileKeyedService, 37 class PluginPrefs : public RefcountedProfileKeyedService,
38 public content::NotificationObserver { 38 public PrefObserver {
39 public: 39 public:
40 enum PolicyStatus { 40 enum PolicyStatus {
41 NO_POLICY = 0, // Neither enabled or disabled by policy. 41 NO_POLICY = 0, // Neither enabled or disabled by policy.
42 POLICY_ENABLED, 42 POLICY_ENABLED,
43 POLICY_DISABLED, 43 POLICY_DISABLED,
44 }; 44 };
45 45
46 // Returns the instance associated with |profile|, creating it if necessary. 46 // Returns the instance associated with |profile|, creating it if necessary.
47 static scoped_refptr<PluginPrefs> GetForProfile(Profile* profile); 47 static scoped_refptr<PluginPrefs> GetForProfile(Profile* profile);
48 48
(...skipping 29 matching lines...) Expand all
78 PolicyStatus PolicyStatusForPlugin(const string16& name) const; 78 PolicyStatus PolicyStatusForPlugin(const string16& name) const;
79 79
80 // Returns whether the plugin is enabled or not. 80 // Returns whether the plugin is enabled or not.
81 bool IsPluginEnabled(const webkit::WebPluginInfo& plugin) const; 81 bool IsPluginEnabled(const webkit::WebPluginInfo& plugin) const;
82 82
83 void set_profile(Profile* profile) { profile_ = profile; } 83 void set_profile(Profile* profile) { profile_ = profile; }
84 84
85 // RefCountedProfileKeyedBase method override. 85 // RefCountedProfileKeyedBase method override.
86 virtual void ShutdownOnUIThread() OVERRIDE; 86 virtual void ShutdownOnUIThread() OVERRIDE;
87 87
88 // content::NotificationObserver method override. 88 // PrefObserver method override.
89 virtual void Observe(int type, 89 virtual void OnPreferenceChanged(PrefServiceBase* service,
90 const content::NotificationSource& source, 90 const std::string& pref_name) OVERRIDE;
91 const content::NotificationDetails& details) OVERRIDE;
92 91
93 private: 92 private:
94 friend class base::RefCountedThreadSafe<PluginPrefs>; 93 friend class base::RefCountedThreadSafe<PluginPrefs>;
95 friend class PluginPrefsTest; 94 friend class PluginPrefsTest;
96 95
97 // PluginState stores a mapping from plugin path to enable/disable state. We 96 // PluginState stores a mapping from plugin path to enable/disable state. We
98 // don't simply use a std::map, because we would like to keep the state of 97 // don't simply use a std::map, because we would like to keep the state of
99 // some plugins in sync with each other. 98 // some plugins in sync with each other.
100 class PluginState { 99 class PluginState {
101 public: 100 public:
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 // PluginList to use for testing. If this is NULL, defaults to the global 174 // PluginList to use for testing. If this is NULL, defaults to the global
176 // singleton. 175 // singleton.
177 webkit::npapi::PluginList* plugin_list_; 176 webkit::npapi::PluginList* plugin_list_;
178 177
179 PrefChangeRegistrar registrar_; 178 PrefChangeRegistrar registrar_;
180 179
181 DISALLOW_COPY_AND_ASSIGN(PluginPrefs); 180 DISALLOW_COPY_AND_ASSIGN(PluginPrefs);
182 }; 181 };
183 182
184 #endif // CHROME_BROWSER_PLUGINS_PLUGIN_PREFS_H_ 183 #endif // CHROME_BROWSER_PLUGINS_PLUGIN_PREFS_H_
OLDNEW
« no previous file with comments | « chrome/browser/notifications/notification_ui_manager_impl.cc ('k') | chrome/browser/plugins/plugin_prefs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698