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

Side by Side Diff: chrome/browser/extensions/blacklist.h

Issue 11415216: Make Blacklist::IsBlacklist asynchronous (it will need to be for safe (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix another test Created 8 years 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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_EXTENSIONS_BLACKLIST_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_BLACKLIST_H_
6 #define CHROME_BROWSER_EXTENSIONS_BLACKLIST_H_ 6 #define CHROME_BROWSER_EXTENSIONS_BLACKLIST_H_
7 7
8 #include <set>
8 #include <string> 9 #include <string>
9 #include <vector> 10 #include <vector>
10 11
12 #include "base/callback.h"
11 #include "base/observer_list.h" 13 #include "base/observer_list.h"
12 14
13 namespace extensions { 15 namespace extensions {
14 16
15 class Extension; 17 class Extension;
16 class ExtensionPrefs; 18 class ExtensionPrefs;
17 19
18 // A blacklist of extensions. 20 // A blacklist of extensions.
19 class Blacklist { 21 class Blacklist {
20 public: 22 public:
21 class Observer { 23 class Observer {
22 public: 24 public:
23 // Observes |blacklist| on construction and unobserves on destruction. 25 // Observes |blacklist| on construction and unobserves on destruction.
24 explicit Observer(Blacklist* blacklist); 26 explicit Observer(Blacklist* blacklist);
25 27
26 virtual void OnBlacklistUpdated() = 0; 28 virtual void OnBlacklistUpdated() = 0;
27 29
28 protected: 30 protected:
29 virtual ~Observer(); 31 virtual ~Observer();
30 32
31 private: 33 private:
32 Blacklist* blacklist_; 34 Blacklist* blacklist_;
33 }; 35 };
34 36
37 typedef base::Callback<void(const std::set<std::string>&)>
38 GetBlacklistedIDsCallback;
39
35 // |prefs_| must outlive this. 40 // |prefs_| must outlive this.
36 explicit Blacklist(ExtensionPrefs* prefs); 41 explicit Blacklist(ExtensionPrefs* prefs);
37 42
38 ~Blacklist(); 43 ~Blacklist();
39 44
40 // Gets whether an extension is blacklisted. 45 // From the set of extension IDs passed in via |ids|, asynchronously checks
41 // 46 // which are blacklisted and includes them in the resulting set passed
42 // Note that this doesn't entirely determine whether an extension is allowed 47 // via |callback|, which will be sent on the caller's message loop.
43 // to be loaded; there are other considerations (e.g. admin settings). 48 void GetBlacklistedIDs(const std::set<std::string>& ids,
44 // See extensions::ManagementPolicy (in particular UserMayLoad). 49 const GetBlacklistedIDsCallback& callback);
45 bool IsBlacklisted(const std::string& extension_id) const;
46 bool IsBlacklisted(const Extension* extension) const;
47 50
48 // Sets the blacklist from the updater to contain the extension IDs in |ids| 51 // Sets the blacklist from the updater to contain the extension IDs in |ids|
49 void SetFromUpdater(const std::vector<std::string>& ids, 52 void SetFromUpdater(const std::vector<std::string>& ids,
50 const std::string& version); 53 const std::string& version);
51 54
52 // Adds/removes an observer to the blacklist. 55 // Adds/removes an observer to the blacklist.
53 void AddObserver(Observer* observer); 56 void AddObserver(Observer* observer);
54 void RemoveObserver(Observer* observer); 57 void RemoveObserver(Observer* observer);
55 58
56 private: 59 private:
57 ObserverList<Observer> observers_; 60 ObserverList<Observer> observers_;
58 61
59 ExtensionPrefs* const prefs_; 62 ExtensionPrefs* const prefs_;
60 63
64 std::set<std::string> prefs_blacklist_;
65
61 DISALLOW_COPY_AND_ASSIGN(Blacklist); 66 DISALLOW_COPY_AND_ASSIGN(Blacklist);
62 }; 67 };
63 68
64 } // namespace extensions 69 } // namespace extensions
65 70
66 #endif // CHROME_BROWSER_EXTENSIONS_BLACKLIST_H_ 71 #endif // CHROME_BROWSER_EXTENSIONS_BLACKLIST_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/admin_policy_unittest.cc ('k') | chrome/browser/extensions/blacklist.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698