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_ |