diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-15 20:49:39 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-15 20:49:39 +0000 |
commit | fdd679ba41268871b72cb48e5cda976c1ab7daaf (patch) | |
tree | e5ddf049d4c6526dfc512b2ea99e97e3031f4759 /chrome/browser/extensions/blacklist.cc | |
parent | 97399a6604a14398deadcffd30745da1d9f47d7d (diff) | |
download | chromium_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.cc | 61 |
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 |