Chromium Code Reviews

Unified Diff: chrome/browser/privacy_blacklist/blacklist.h

Issue 2862041: Remove abonded privacy blacklist implementation. (Closed)
Patch Set: fix unit tests Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
« no previous file with comments | « chrome/browser/options_util.cc ('k') | chrome/browser/privacy_blacklist/blacklist.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/privacy_blacklist/blacklist.h
diff --git a/chrome/browser/privacy_blacklist/blacklist.h b/chrome/browser/privacy_blacklist/blacklist.h
deleted file mode 100644
index e5d1b5f0ce9567d6a119309019e0bef380372783..0000000000000000000000000000000000000000
--- a/chrome/browser/privacy_blacklist/blacklist.h
+++ /dev/null
@@ -1,227 +0,0 @@
-// Copyright (c) 2010 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.
-
-#ifndef CHROME_BROWSER_PRIVACY_BLACKLIST_BLACKLIST_H_
-#define CHROME_BROWSER_PRIVACY_BLACKLIST_BLACKLIST_H_
-
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/gtest_prod_util.h"
-#include "base/linked_ptr.h"
-#include "base/ref_counted.h"
-#include "googleurl/src/gurl.h"
-#include "net/url_request/url_request.h"
-
-class DictionaryValue;
-class FilePath;
-class ListValue;
-class PrefService;
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// Blacklist Class
-//
-// Represents a blacklist used to protect user from privacy and annoyances.
-// A blacklist is essentially a map from resource-match patterns to filter-
-// attributes. Each time a resources matches a pattern the filter-attributes
-// are used to determine how the browser handles the matching resource.
-////////////////////////////////////////////////////////////////////////////////
-class Blacklist : public base::RefCountedThreadSafe<Blacklist> {
- public:
- class Entry;
- class Provider;
-
- typedef std::vector<linked_ptr<Entry> > EntryList;
- typedef std::vector<linked_ptr<Provider> > ProviderList;
-
- // Filter attributes (more to come):
- static const unsigned int kBlockAll;
- static const unsigned int kBlockCookies;
- static const unsigned int kDontSendReferrer;
- static const unsigned int kDontSendUserAgent;
- static const unsigned int kBlockUnsecure;
-
- // Aggregate filter types:
- static const unsigned int kBlockRequest;
- static const unsigned int kBlockResponse;
- static const unsigned int kModifySentHeaders;
- static const unsigned int kModifyReceivedHeaders;
-
- // Blacklist entries come from a provider, defined by a name and source URL.
- class Provider {
- public:
- Provider() {}
- Provider(const std::string& name, const std::string& url,
- const std::wstring& pref_path)
- : name_(name),
- pref_path_(pref_path),
- url_(url) {}
-
- const std::string& name() const { return name_; }
- void set_name(const std::string& name) { name_ = name; }
-
- const std::wstring& pref_path() const { return pref_path_; }
- void set_pref_path(const std::wstring& pref_path) {
- pref_path_ = pref_path;
- }
-
- const std::string& url() const { return url_; }
- void set_url(const std::string& url) { url_ = url; }
-
- private:
- std::string name_;
- std::wstring pref_path_;
- std::string url_;
- };
-
- // A single blacklist entry which is returned when a URL matches one of
- // the patterns. Entry objects are owned by the Blacklist that stores them.
- class Entry {
- public:
- // Construct with given pattern.
- Entry(const std::string& pattern, const Provider* provider,
- bool is_exception);
-
- // Returns the pattern which this entry matches.
- const std::string& pattern() const { return pattern_; }
-
- // Bitfield of filter-attributes matching the pattern.
- unsigned int attributes() const { return attributes_; }
-
- // True if this entry is an exception to the blacklist.
- bool is_exception() const { return is_exception_; }
-
- // Provider of this blacklist entry, used for assigning blame ;)
- const Provider* provider() const { return provider_; }
-
- // Returns true of the given URL is blocked, assumes it matches the
- // pattern of this entry.
- bool IsBlocked(const GURL&) const;
-
- void AddAttributes(unsigned int attributes);
-
- private:
- unsigned int attributes_;
-
- // True if this entry is an exception to the blacklist.
- bool is_exception_;
- std::string pattern_;
-
- // Points to the provider of this entry, the providers are all
- // owned by the blacklist.
- const Provider* provider_;
- };
-
- // A request may match one or more Blacklist rules. The Match class packages
- // all the matching entries behind a single interface with access to the
- // underlying set of entries so that we can display provider information.
- // Often a match must be applied after a URLRequest has started, so it gets
- // tagged with the Match object to avoid doing lookups more than once per
- // request.
- class Match : public URLRequest::UserData {
- public:
- // Functions that return combined results from all entries.
- unsigned int attributes() const {
- return (matching_attributes_ & (~exception_attributes_));
- }
- bool IsBlocked(const GURL&) const;
-
- // Access to individual entries, mostly for display/logging purposes.
- const std::vector<const Entry*>& entries() const {
- return matching_entries_;
- }
-
- private:
- Match();
- void AddEntry(const Entry* entry);
-
- std::vector<const Entry*> matching_entries_;
- std::vector<const Entry*> exception_entries_;
-
- // Precomputed ORed attributes of matching/exception entries.
- unsigned int matching_attributes_;
- unsigned int exception_attributes_;
-
- friend class Blacklist; // Only blacklist constructs and sets these.
- };
-
- // Constructs a blacklist and populates it from the preferences associated
- // with this profile.
- explicit Blacklist(PrefService* prefs);
-
-#ifdef UNIT_TEST
- // Constructs an empty blacklist.
- Blacklist() : prefs_(NULL) {}
-#endif
-
- // Destructor.
- ~Blacklist();
-
- // Adds a new entry to the blacklist. It is now owned by the blacklist.
- void AddEntry(Entry* entry);
-
- // Adds a new provider to the blacklist. It is now owned by the blacklist.
- void AddProvider(Provider* provider);
-
- EntryList::const_iterator entries_begin() const {
- return blacklist_.begin();
- }
-
- EntryList::const_iterator entries_end() const {
- return blacklist_.end();
- }
-
- ProviderList::const_iterator providers_begin() const {
- return providers_.begin();
- }
-
- ProviderList::const_iterator providers_end() const {
- return providers_.end();
- }
-
- // Returns a pointer to a Match structure holding all matching entries.
- // If no matching Entry is found, returns null. Ownership belongs to the
- // caller.
- Match* FindMatch(const GURL&) const;
-
- static void RegisterUserPrefs(PrefService* user_prefs);
-
- // Helper to remove cookies from a header.
- static std::string StripCookies(const std::string&);
-
- private:
- // Converts a GURL into the string to match against.
- static std::string GetURLAsLookupString(const GURL& url);
-
- // Loads the list of entries for a given provider. Returns true on success.
- bool LoadEntryPreference(const ListValue& pref, const Provider* provider);
-
- // Loads patterns from preferences. Returns true on success.
- bool LoadPreferences();
-
- // Loads a provider and subsequently all of its entries. Returns true on
- // success. If an error occurs reading a provider or one of its entries,
- // the complete provider is dropped.
- bool LoadProviderPreference(const DictionaryValue& pref,
- const std::wstring& path);
-
- // Matches a pattern to a core URL which is host/path with all the other
- // optional parts (scheme, user, password, port) stripped away.
- static bool Matches(const std::string& pattern, const std::string& url);
-
- EntryList blacklist_;
- ProviderList providers_;
-
- // Preferences where blacklist entries are stored.
- PrefService* prefs_;
-
- FRIEND_TEST_ALL_PREFIXES(BlacklistTest, Generic);
- FRIEND_TEST_ALL_PREFIXES(BlacklistTest, PatternMatch);
-
- DISALLOW_COPY_AND_ASSIGN(Blacklist);
-};
-
-#endif // CHROME_BROWSER_PRIVACY_BLACKLIST_BLACKLIST_H_
« no previous file with comments | « chrome/browser/options_util.cc ('k') | chrome/browser/privacy_blacklist/blacklist.cc » ('j') | no next file with comments »

Powered by Google App Engine