summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/blacklist.cc
diff options
context:
space:
mode:
authorkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-15 20:49:39 +0000
committerkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-15 20:49:39 +0000
commitfdd679ba41268871b72cb48e5cda976c1ab7daaf (patch)
treee5ddf049d4c6526dfc512b2ea99e97e3031f4759 /chrome/browser/extensions/blacklist.cc
parent97399a6604a14398deadcffd30745da1d9f47d7d (diff)
downloadchromium_src-fdd679ba41268871b72cb48e5cda976c1ab7daaf.zip
chromium_src-fdd679ba41268871b72cb48e5cda976c1ab7daaf.tar.gz
chromium_src-fdd679ba41268871b72cb48e5cda976c1ab7daaf.tar.bz2
Pull extension blacklist and policy logic out of ExtensionPrefs and into two
new classes: Blacklist for the blacklist logic, and StandardManagementPolicyProvider for the management policy component. This is a preliminary step to making the extension blacklist backed by safe browsing. Dumb blacklisting code will still live in ExtensionPrefs until the migration is complete. BUG=154149 TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/11410048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168020 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/blacklist.cc')
-rw-r--r--chrome/browser/extensions/blacklist.cc61
1 files changed, 61 insertions, 0 deletions
diff --git a/chrome/browser/extensions/blacklist.cc b/chrome/browser/extensions/blacklist.cc
new file mode 100644
index 0000000..834d262
--- /dev/null
+++ b/chrome/browser/extensions/blacklist.cc
@@ -0,0 +1,61 @@
+// Copyright 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/extensions/blacklist.h"
+
+#include "chrome/browser/extensions/extension_prefs.h"
+#include "chrome/browser/prefs/pref_service.h"
+#include "chrome/common/pref_names.h"
+
+namespace extensions {
+
+Blacklist::Observer::Observer(Blacklist* blacklist) : blacklist_(blacklist) {
+ blacklist_->AddObserver(this);
+}
+
+Blacklist::Observer::~Observer() {
+ blacklist_->RemoveObserver(this);
+}
+
+Blacklist::Blacklist(ExtensionPrefs* prefs) : prefs_(prefs) {
+}
+
+Blacklist::~Blacklist() {
+}
+
+bool Blacklist::IsBlacklisted(const Extension* extension) const {
+ return prefs_->IsExtensionBlacklisted(extension->id());
+}
+
+bool Blacklist::IsBlacklisted(const std::string& extension_id) const {
+ return prefs_->IsExtensionBlacklisted(extension_id);
+}
+
+void Blacklist::SetFromUpdater(const std::vector<std::string>& ids,
+ const std::string& version) {
+ std::set<std::string> ids_as_set;
+ for (std::vector<std::string>::const_iterator it = ids.begin();
+ it != ids.end(); ++it) {
+ if (Extension::IdIsValid(*it))
+ ids_as_set.insert(*it);
+ else
+ LOG(WARNING) << "Got invalid extension ID \"" << *it << "\"";
+ }
+
+ prefs_->UpdateBlacklist(ids_as_set);
+ prefs_->pref_service()->SetString(prefs::kExtensionBlacklistUpdateVersion,
+ version);
+
+ FOR_EACH_OBSERVER(Observer, observers_, OnBlacklistUpdated());
+}
+
+void Blacklist::AddObserver(Observer* observer) {
+ observers_.AddObserver(observer);
+}
+
+void Blacklist::RemoveObserver(Observer* observer) {
+ observers_.RemoveObserver(observer);
+}
+
+} // namespace extensions