Split browsing data masks between content and embedder
As a part of the refactoring to move content-related browsing data
infrastructure to content, we split BrowsingDataRemover::RemoveDataMask
and BrowsingDataHelper::OriginTypeMask between content and embedder.
The CL consists of the following steps:
1. BrowsingDataRemover::RemoveDataMask now only contains content datatypes.
Chrome-specific datatypes are moved to ChromeBrowsingDataRemoverDelegate.
The enum in ChromeBrowsingDataRemoverDelegate also copies all values
from BrowsingDataRemover so that this enum inheritance better mimics
class inheritance. Note that this is a second attempt at this change, following
the discussion in https://codereview.chromium.org/2697123004/ where we tried
converting enums into pointers first.
The concept of FILTERABLE_DATATYPES has been moved to
ChromeBrowsingDataRemoverDelegate, since all content data types are filterable.
2. The same exercise is done for BrowsingDataHelper::OriginTypeMask. Its
first two items, UNPROTECTED_WEB and PROTECTED_WEB correspond to the boolean
returned by content::SpecialStoragePolicy::IsProtected(). Therefore, they
are moved to content as a new enum in BrowsingDataRemover. The third item,
EXTENSION, is a Chrome-specific concept and stays in chrome/ code, as a new
enum in ChromeBrowsingDataRemoverDelegate.
BrowsingDataRemoverImpl is now able to tell about each origin whether it is
UNPROTECTED_WEB or PROTECTED_WEB. It delegates the decision what is an
EXTENSION to ChromeBrowsingDataRemoverDelegate. A new method has been added
to the BrowsingDataRemoverDelegate for this purpose.
BrowsingDataHelper now serves no other purpose than recognizing webby and
extension URLs for various classes in browsing_data/ and can be eventually
deprecated (though doing so in this CL would significantly blow it in size).
The behavior of UNPROTECTED_WEB and PROTECTED_WEB is already sufficiently
tested in StoragePartition-related tests of BrowsingDataRemoverTest. We just
had to replace MockExtensionSpecialStoragePolicy with the regular
MockSpecialStoragePolicy. Testcases from BrowsingDataHelperTest have been moved
to ChromeBrowsingDataRemoverDelegateTest to cover the remaining EXTENSION type.
3. Since BrowsingDataRemover and ChromeBrowsingDataRemoverDelegate now host
both the data type and origin type enums, we changed the naming to call out
the difference; all data types are now prefixed with DATA_TYPE, all origin
types with ORIGIN_TYPE.
4. All other files contain equivalent replacements.
[email protected],[email protected]
BUG=668114
Review-Url: https://codereview.chromium.org/2733393003
Cr-Commit-Position: refs/heads/master@{#456757}
diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc
index ac89390..194474d 100644
--- a/chrome/browser/android/preferences/pref_service_bridge.cc
+++ b/chrome/browser/android/preferences/pref_service_bridge.cc
@@ -29,6 +29,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/engagement/important_sites_util.h"
#include "chrome/browser/history/web_history_service_factory.h"
@@ -653,20 +654,20 @@
for (const int data_type : data_types_vector) {
switch (static_cast<browsing_data::BrowsingDataType>(data_type)) {
case browsing_data::BrowsingDataType::HISTORY:
- remove_mask |= BrowsingDataRemover::REMOVE_HISTORY;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY;
break;
case browsing_data::BrowsingDataType::CACHE:
- remove_mask |= BrowsingDataRemover::REMOVE_CACHE;
+ remove_mask |= BrowsingDataRemover::DATA_TYPE_CACHE;
break;
case browsing_data::BrowsingDataType::COOKIES:
- remove_mask |= BrowsingDataRemover::REMOVE_COOKIES;
- remove_mask |= BrowsingDataRemover::REMOVE_SITE_DATA;
+ remove_mask |= BrowsingDataRemover::DATA_TYPE_COOKIES;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA;
break;
case browsing_data::BrowsingDataType::PASSWORDS:
- remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS;
break;
case browsing_data::BrowsingDataType::FORM_DATA:
- remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA;
break;
case browsing_data::BrowsingDataType::BOOKMARKS:
// Bookmarks are deleted separately on the Java side.
@@ -704,9 +705,11 @@
// Delete the types protected by Important Sites with a filter,
// and the rest completely.
int filterable_mask =
- remove_mask & BrowsingDataRemover::IMPORTANT_SITES_DATATYPES;
- int nonfilterable_mask = remove_mask &
- ~BrowsingDataRemover::IMPORTANT_SITES_DATATYPES;
+ remove_mask &
+ ChromeBrowsingDataRemoverDelegate::IMPORTANT_SITES_DATA_TYPES;
+ int nonfilterable_mask =
+ remove_mask &
+ ~ChromeBrowsingDataRemoverDelegate::IMPORTANT_SITES_DATA_TYPES;
// ClearBrowsingDataObserver deletes itself when |browsing_data_remover| is
// done with both removal tasks.
@@ -720,8 +723,8 @@
if (filterable_mask) {
browsing_data_remover->RemoveWithFilterAndReply(
browsing_data::CalculateBeginDeleteTime(period),
- browsing_data::CalculateEndDeleteTime(period),
- filterable_mask, BrowsingDataHelper::UNPROTECTED_WEB,
+ browsing_data::CalculateEndDeleteTime(period), filterable_mask,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
std::move(filter_builder), observer);
} else {
// Make sure |observer| doesn't wait for the filtered task.
@@ -731,8 +734,8 @@
if (nonfilterable_mask) {
browsing_data_remover->RemoveAndReply(
browsing_data::CalculateBeginDeleteTime(period),
- browsing_data::CalculateEndDeleteTime(period),
- nonfilterable_mask, BrowsingDataHelper::UNPROTECTED_WEB, observer);
+ browsing_data::CalculateEndDeleteTime(period), nonfilterable_mask,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, observer);
} else {
// Make sure |observer| doesn't wait for the non-filtered task.
observer->OnBrowsingDataRemoverDone();
diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/browser/android/signin/signin_manager_android.cc
index ff3571d6..7fc387d 100644
--- a/chrome/browser/android/signin/signin_manager_android.cc
+++ b/chrome/browser/android/signin/signin_manager_android.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
#include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h"
#include "chrome/browser/policy/cloud/user_policy_signin_service_mobile.h"
@@ -61,9 +62,10 @@
origin_runner_(base::ThreadTaskRunnerHandle::Get()),
remover_(BrowsingDataRemoverFactory::GetForBrowserContext(profile)) {
remover_->AddObserver(this);
- remover_->RemoveAndReply(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_ALL,
- BrowsingDataHelper::ALL, this);
+ remover_->RemoveAndReply(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::ALL_DATA_TYPES,
+ ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES, this);
}
~ProfileDataRemover() override {}
diff --git a/chrome/browser/browsing_data/browsing_data_helper.cc b/chrome/browser/browsing_data/browsing_data_helper.cc
index 6e4fcbe..3240b04 100644
--- a/chrome/browser/browsing_data/browsing_data_helper.cc
+++ b/chrome/browser/browsing_data/browsing_data_helper.cc
@@ -4,11 +4,11 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
+#include <algorithm>
#include <vector>
#include "base/strings/utf_string_conversions.h"
#include "extensions/common/constants.h"
-#include "storage/browser/quota/special_storage_policy.h"
#include "url/gurl.h"
#include "url/url_util.h"
@@ -32,29 +32,3 @@
bool BrowsingDataHelper::HasExtensionScheme(const GURL& origin) {
return BrowsingDataHelper::IsExtensionScheme(origin.scheme());
}
-
-// Static
-bool BrowsingDataHelper::DoesOriginMatchMask(
- const GURL& origin,
- int origin_type_mask,
- storage::SpecialStoragePolicy* policy) {
- // Packaged apps and extensions match iff EXTENSION.
- if (BrowsingDataHelper::HasExtensionScheme(origin.GetOrigin()) &&
- origin_type_mask & EXTENSION)
- return true;
-
- // If a websafe origin is unprotected, it matches iff UNPROTECTED_WEB.
- if ((!policy || !policy->IsStorageProtected(origin.GetOrigin())) &&
- BrowsingDataHelper::HasWebScheme(origin.GetOrigin()) &&
- origin_type_mask & UNPROTECTED_WEB)
- return true;
-
- // Hosted applications (protected and websafe origins) iff PROTECTED_WEB.
- if (policy &&
- policy->IsStorageProtected(origin.GetOrigin()) &&
- BrowsingDataHelper::HasWebScheme(origin.GetOrigin()) &&
- origin_type_mask & PROTECTED_WEB)
- return true;
-
- return false;
-}
diff --git a/chrome/browser/browsing_data/browsing_data_helper.h b/chrome/browser/browsing_data/browsing_data_helper.h
index 780a62d0..09e6ed5 100644
--- a/chrome/browser/browsing_data/browsing_data_helper.h
+++ b/chrome/browser/browsing_data/browsing_data_helper.h
@@ -11,22 +11,18 @@
#include "base/macros.h"
-namespace storage {
-class SpecialStoragePolicy;
-}
-
class GURL;
+// TODO(crbug.com/668114): DEPRECATED. Remove this class.
+// The primary functionality of testing origin type masks has moved to
+// BrowsingDataRemover. The secondary functionality of recognizing web schemes
+// storing browsing data has moved to url::GetWebStorageSchemes();
+// or alternatively, it can also be retrieved from BrowsingDataRemover by
+// testing the ORIGIN_TYPE_UNPROTECTED_ORIGIN | ORIGIN_TYPE_PROTECTED_ORIGIN
+// origin mask. This class now merely forwards the functionality to several
+// helper classes in the browsing_data codebase.
class BrowsingDataHelper {
public:
- enum OriginTypeMask {
- UNPROTECTED_WEB = 1 << 0, // drive-by web.
- PROTECTED_WEB = 1 << 1, // hosted applications.
- EXTENSION = 1 << 2, // chrome-extension://*
- // Always add new items to the enum above ALL and add them to ALL.
- ALL = UNPROTECTED_WEB | PROTECTED_WEB | EXTENSION,
- };
-
// Returns true iff the provided scheme is (really) web safe, and suitable
// for treatment as "browsing data". This relies on the definition of web safe
// in ChildProcessSecurityPolicy, but excluding schemes like
@@ -38,11 +34,6 @@
static bool IsExtensionScheme(const std::string& scheme);
static bool HasExtensionScheme(const GURL& origin);
- // Returns true if the provided origin matches the provided mask.
- static bool DoesOriginMatchMask(const GURL& origin,
- int origin_type_mask,
- storage::SpecialStoragePolicy* policy);
-
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(BrowsingDataHelper);
};
diff --git a/chrome/browser/browsing_data/browsing_data_helper_unittest.cc b/chrome/browser/browsing_data/browsing_data_helper_unittest.cc
index 5bf6ac4..54bef78d 100644
--- a/chrome/browser/browsing_data/browsing_data_helper_unittest.cc
+++ b/chrome/browser/browsing_data/browsing_data_helper_unittest.cc
@@ -12,10 +12,6 @@
#include "url/gurl.h"
#include "url/url_constants.h"
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
-#endif
-
namespace {
const char kTestOrigin1[] = "http://host1:1/";
@@ -30,10 +26,6 @@
const GURL kOriginExt(kTestOriginExt);
const GURL kOriginDevTools(kTestOriginDevTools);
-const int kExtension = BrowsingDataHelper::EXTENSION;
-const int kProtected = BrowsingDataHelper::PROTECTED_WEB;
-const int kUnprotected = BrowsingDataHelper::UNPROTECTED_WEB;
-
class BrowsingDataHelperTest : public testing::Test {
public:
BrowsingDataHelperTest() {}
@@ -51,12 +43,6 @@
BrowsingDataHelper::IsExtensionScheme(scheme));
}
- bool Match(const GURL& origin,
- int mask,
- storage::SpecialStoragePolicy* policy) {
- return BrowsingDataHelper::DoesOriginMatchMask(origin, mask, policy);
- }
-
private:
DISALLOW_COPY_AND_ASSIGN(BrowsingDataHelperTest);
};
@@ -117,71 +103,4 @@
EXPECT_FALSE(IsExtensionScheme("invalid-scheme-i-just-made-up"));
}
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-TEST_F(BrowsingDataHelperTest, TestMatches) {
- scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
- new MockExtensionSpecialStoragePolicy;
- // Protect kOrigin1.
- mock_policy->AddProtected(kOrigin1.GetOrigin());
-
- EXPECT_FALSE(Match(kOrigin1, kUnprotected, mock_policy.get()));
- EXPECT_TRUE(Match(kOrigin2, kUnprotected, mock_policy.get()));
- EXPECT_FALSE(Match(kOriginExt, kUnprotected, mock_policy.get()));
- EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, mock_policy.get()));
-
- EXPECT_TRUE(Match(kOrigin1, kProtected, mock_policy.get()));
- EXPECT_FALSE(Match(kOrigin2, kProtected, mock_policy.get()));
- EXPECT_FALSE(Match(kOriginExt, kProtected, mock_policy.get()));
- EXPECT_FALSE(Match(kOriginDevTools, kProtected, mock_policy.get()));
-
- EXPECT_FALSE(Match(kOrigin1, kExtension, mock_policy.get()));
- EXPECT_FALSE(Match(kOrigin2, kExtension, mock_policy.get()));
- EXPECT_TRUE(Match(kOriginExt, kExtension, mock_policy.get()));
- EXPECT_FALSE(Match(kOriginDevTools, kExtension, mock_policy.get()));
-
- EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected, mock_policy.get()));
- EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected, mock_policy.get()));
- EXPECT_FALSE(Match(kOriginExt, kUnprotected | kProtected, mock_policy.get()));
- EXPECT_FALSE(
- Match(kOriginDevTools, kUnprotected | kProtected, mock_policy.get()));
-
- EXPECT_FALSE(Match(kOrigin1, kUnprotected | kExtension, mock_policy.get()));
- EXPECT_TRUE(Match(kOrigin2, kUnprotected | kExtension, mock_policy.get()));
- EXPECT_TRUE(Match(kOriginExt, kUnprotected | kExtension, mock_policy.get()));
- EXPECT_FALSE(
- Match(kOriginDevTools, kUnprotected | kExtension, mock_policy.get()));
-
- EXPECT_TRUE(Match(kOrigin1, kProtected | kExtension, mock_policy.get()));
- EXPECT_FALSE(Match(kOrigin2, kProtected | kExtension, mock_policy.get()));
- EXPECT_TRUE(Match(kOriginExt, kProtected | kExtension, mock_policy.get()));
- EXPECT_FALSE(
- Match(kOriginDevTools, kProtected | kExtension, mock_policy.get()));
-
- EXPECT_TRUE(Match(
- kOrigin1, kUnprotected | kProtected | kExtension, mock_policy.get()));
- EXPECT_TRUE(Match(
- kOrigin2, kUnprotected | kProtected | kExtension, mock_policy.get()));
- EXPECT_TRUE(Match(
- kOriginExt, kUnprotected | kProtected | kExtension, mock_policy.get()));
- EXPECT_FALSE(Match(kOriginDevTools,
- kUnprotected | kProtected | kExtension,
- mock_policy.get()));
-}
-#endif
-
-// If extensions are disabled, there is no policy.
-TEST_F(BrowsingDataHelperTest, TestNoPolicyMatches) {
- EXPECT_FALSE(Match(kOrigin1, kExtension, nullptr));
- EXPECT_TRUE(Match(kOrigin1, kUnprotected, nullptr));
- EXPECT_FALSE(Match(kOrigin1, kProtected, nullptr));
-
- EXPECT_TRUE(Match(kOriginExt, kExtension, nullptr));
- EXPECT_FALSE(Match(kOriginExt, kUnprotected, nullptr));
- EXPECT_FALSE(Match(kOriginExt, kProtected, nullptr));
-
- EXPECT_FALSE(Match(kOriginDevTools, kExtension, nullptr));
- EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, nullptr));
- EXPECT_FALSE(Match(kOriginDevTools, kProtected, nullptr));
-}
-
} // namespace
diff --git a/chrome/browser/browsing_data/browsing_data_remover.h b/chrome/browser/browsing_data/browsing_data_remover.h
index b811122..358c624 100644
--- a/chrome/browser/browsing_data/browsing_data_remover.h
+++ b/chrome/browser/browsing_data/browsing_data_remover.h
@@ -54,85 +54,43 @@
class BrowsingDataRemover : public KeyedService {
public:
// Mask used for Remove.
- enum RemoveDataMask {
- REMOVE_APPCACHE = 1 << 0,
- REMOVE_CACHE = 1 << 1,
- REMOVE_COOKIES = 1 << 2,
- REMOVE_DOWNLOADS = 1 << 3,
- REMOVE_FILE_SYSTEMS = 1 << 4,
- REMOVE_FORM_DATA = 1 << 5,
- // In addition to visits, REMOVE_HISTORY removes keywords, last session and
- // passwords UI statistics.
- REMOVE_HISTORY = 1 << 6,
- REMOVE_INDEXEDDB = 1 << 7,
- REMOVE_LOCAL_STORAGE = 1 << 8,
- REMOVE_PLUGIN_DATA = 1 << 9,
- REMOVE_PASSWORDS = 1 << 10,
- REMOVE_WEBSQL = 1 << 11,
- REMOVE_CHANNEL_IDS = 1 << 12,
- REMOVE_MEDIA_LICENSES = 1 << 13,
- REMOVE_SERVICE_WORKERS = 1 << 14,
- REMOVE_SITE_USAGE_DATA = 1 << 15,
+ enum DataType {
+ // Storage datatypes.
+ DATA_TYPE_APP_CACHE = 1 << 0,
+ DATA_TYPE_FILE_SYSTEMS = 1 << 1,
+ DATA_TYPE_INDEXED_DB = 1 << 2,
+ DATA_TYPE_LOCAL_STORAGE = 1 << 3,
+ DATA_TYPE_WEB_SQL = 1 << 4,
+ DATA_TYPE_SERVICE_WORKERS = 1 << 5,
+ DATA_TYPE_CACHE_STORAGE = 1 << 6,
+
+ // Other datatypes.
+ DATA_TYPE_COOKIES = 1 << 7,
+ DATA_TYPE_CHANNEL_IDS = 1 << 8,
+ DATA_TYPE_CACHE = 1 << 9,
+ DATA_TYPE_DOWNLOADS = 1 << 10,
+ DATA_TYPE_MEDIA_LICENSES = 1 << 11,
+
// REMOVE_NOCHECKS intentionally does not check if the browser context is
// prohibited from deleting history or downloads.
- REMOVE_NOCHECKS = 1 << 16,
- REMOVE_CACHE_STORAGE = 1 << 17,
-#if defined(OS_ANDROID)
- REMOVE_WEBAPP_DATA = 1 << 18,
-#endif
- REMOVE_DURABLE_PERMISSION = 1 << 19,
- REMOVE_EXTERNAL_PROTOCOL_DATA = 1 << 20,
+ DATA_TYPE_NO_CHECKS = 1 << 12,
- // The following flag is used only in tests. In normal usage, hosted app
- // data is controlled by the REMOVE_COOKIES flag, applied to the
- // protected-web origin.
- REMOVE_HOSTED_APP_DATA_TESTONLY = 1 << 31,
-
- // "Site data" includes cookies, appcache, file systems, indexedDBs, local
- // storage, webSQL, service workers, cache storage, plugin data, web app
- // data (on Android) and statistics about passwords.
- REMOVE_SITE_DATA = REMOVE_APPCACHE | REMOVE_COOKIES | REMOVE_FILE_SYSTEMS |
- REMOVE_INDEXEDDB |
- REMOVE_LOCAL_STORAGE |
- REMOVE_PLUGIN_DATA |
- REMOVE_SERVICE_WORKERS |
- REMOVE_CACHE_STORAGE |
- REMOVE_WEBSQL |
- REMOVE_CHANNEL_IDS |
-#if defined(OS_ANDROID)
- REMOVE_WEBAPP_DATA |
-#endif
- REMOVE_SITE_USAGE_DATA |
- REMOVE_DURABLE_PERMISSION |
- REMOVE_EXTERNAL_PROTOCOL_DATA,
-
- // Datatypes protected by Important Sites.
- IMPORTANT_SITES_DATATYPES = REMOVE_SITE_DATA | REMOVE_CACHE,
-
- // Datatypes that can be deleted partially per URL / origin / domain,
- // whichever makes sense.
- FILTERABLE_DATATYPES = REMOVE_SITE_DATA | REMOVE_CACHE | REMOVE_DOWNLOADS,
-
- // Includes all the available remove options. Meant to be used by clients
- // that wish to wipe as much data as possible from a Profile, to make it
- // look like a new Profile.
- REMOVE_ALL = REMOVE_SITE_DATA | REMOVE_CACHE | REMOVE_DOWNLOADS |
- REMOVE_FORM_DATA |
- REMOVE_HISTORY |
- REMOVE_PASSWORDS |
- REMOVE_MEDIA_LICENSES,
-
- // Includes all available remove options. Meant to be used when the Profile
- // is scheduled to be deleted, and all possible data should be wiped from
- // disk as soon as possible.
- REMOVE_WIPE_PROFILE = REMOVE_ALL | REMOVE_NOCHECKS,
+ // Embedders can add more datatypes beyond this point.
+ DATA_TYPE_CONTENT_END = DATA_TYPE_NO_CHECKS,
};
- // Important sites protect a small set of sites from the deletion of certain
- // datatypes. Therefore, those datatypes must be filterable by
- // url/origin/domain.
- static_assert(0 == (IMPORTANT_SITES_DATATYPES & ~FILTERABLE_DATATYPES),
- "All important sites datatypes must be filterable.");
+ enum OriginType {
+ // Web storage origins that StoragePartition recognizes as NOT protected
+ // according to its special storage policy.
+ ORIGIN_TYPE_UNPROTECTED_WEB = 1 << 0,
+
+ // Web storage origins that StoragePartition recognizes as protected
+ // according to its special storage policy.
+ ORIGIN_TYPE_PROTECTED_WEB = 1 << 1,
+
+ // Embedders can add more origin types beyond this point.
+ ORIGIN_TYPE_CONTENT_END = ORIGIN_TYPE_PROTECTED_WEB,
+ };
// A helper enum to report the deletion of cookies and/or cache. Do not
// reorder the entries, as this enum is passed to UMA.
@@ -161,6 +119,13 @@
std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate) = 0;
virtual BrowsingDataRemoverDelegate* GetEmbedderDelegate() const = 0;
+ // Determines whether |origin| matches the |origin_type_mask| according to
+ // the |special_storage_policy|.
+ virtual bool DoesOriginMatchMask(
+ int origin_type_mask,
+ const GURL& origin,
+ storage::SpecialStoragePolicy* special_storage_policy) const = 0;
+
// Removes browsing data within the given |time_range|, with datatypes being
// specified by |remove_mask| and origin types by |origin_type_mask|.
virtual void Remove(const base::Time& delete_begin,
diff --git a/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc b/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc
index cdde107..1fc217c3 100644
--- a/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
#include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
#include "chrome/browser/browsing_data/cache_counter.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/external_protocol/external_protocol_handler.h"
#include "chrome/browser/profiles/profile.h"
@@ -118,9 +119,9 @@
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile());
BrowsingDataRemoverCompletionObserver completion_observer(remover);
- remover->RemoveAndReply(
- base::Time(), base::Time::Max(), remove_mask,
- BrowsingDataHelper::UNPROTECTED_WEB, &completion_observer);
+ remover->RemoveAndReply(base::Time(), base::Time::Max(), remove_mask,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ &completion_observer);
completion_observer.BlockUntilCompletion();
}
@@ -132,8 +133,8 @@
BrowsingDataRemoverCompletionObserver completion_observer(remover);
remover->RemoveWithFilterAndReply(
base::Time(), base::Time::Max(), remove_mask,
- BrowsingDataHelper::UNPROTECTED_WEB, std::move(filter_builder),
- &completion_observer);
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ std::move(filter_builder), &completion_observer);
completion_observer.BlockUntilCompletion();
}
@@ -194,7 +195,7 @@
// Test BrowsingDataRemover for downloads.
IN_PROC_BROWSER_TEST_F(BrowsingDataRemoverBrowserTest, Download) {
DownloadAnItem();
- RemoveAndWait(BrowsingDataRemover::REMOVE_DOWNLOADS);
+ RemoveAndWait(BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
VerifyDownloadCount(0u);
}
@@ -208,7 +209,7 @@
prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
DownloadAnItem();
- RemoveAndWait(BrowsingDataRemover::REMOVE_DOWNLOADS);
+ RemoveAndWait(BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
VerifyDownloadCount(1u);
}
#endif
@@ -223,7 +224,7 @@
RunScriptAndCheckResult("insertRecord('text')", "done");
RunScriptAndCheckResult("getRecords()", "text");
- RemoveAndWait(BrowsingDataRemover::REMOVE_SITE_DATA);
+ RemoveAndWait(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA);
ui_test_utils::NavigateToURL(browser(), url);
RunScriptAndCheckResult("createTable()", "done");
@@ -254,7 +255,7 @@
std::unique_ptr<BrowsingDataFilterBuilder> filter_builder =
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST);
filter_builder->AddOrigin(url::Origin(url1));
- RemoveWithFilterAndWait(BrowsingDataRemover::REMOVE_CACHE,
+ RemoveWithFilterAndWait(BrowsingDataRemover::DATA_TYPE_CACHE,
std::move(filter_builder));
// After the partial deletion, the cache should be smaller but still nonempty.
@@ -265,12 +266,12 @@
filter_builder =
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST);
filter_builder->AddOrigin(url::Origin(url1));
- RemoveWithFilterAndWait(BrowsingDataRemover::REMOVE_CACHE,
+ RemoveWithFilterAndWait(BrowsingDataRemover::DATA_TYPE_CACHE,
std::move(filter_builder));
EXPECT_EQ(new_size, GetCacheSize());
// Delete the remaining data.
- RemoveAndWait(BrowsingDataRemover::REMOVE_CACHE);
+ RemoveAndWait(BrowsingDataRemover::DATA_TYPE_CACHE);
// The cache is empty.
EXPECT_EQ(0, GetCacheSize());
@@ -285,7 +286,7 @@
ExternalProtocolHandler::BlockState block_state =
ExternalProtocolHandler::GetBlockState("tel", profile);
ASSERT_EQ(ExternalProtocolHandler::BLOCK, block_state);
- RemoveAndWait(BrowsingDataRemover::REMOVE_SITE_DATA);
+ RemoveAndWait(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA);
block_state = ExternalProtocolHandler::GetBlockState("tel", profile);
ASSERT_EQ(ExternalProtocolHandler::UNKNOWN, block_state);
}
@@ -293,7 +294,7 @@
// Verify that TransportSecurityState data is cleared for REMOVE_CACHE.
IN_PROC_BROWSER_TEST_F(BrowsingDataRemoverTransportSecurityStateBrowserTest,
ClearTransportSecurityState) {
- RemoveAndWait(BrowsingDataRemover::REMOVE_CACHE);
+ RemoveAndWait(BrowsingDataRemover::DATA_TYPE_CACHE);
base::RunLoop run_loop;
BrowserThread::PostTaskAndReply(
BrowserThread::IO, FROM_HERE,
@@ -309,7 +310,7 @@
// set.
IN_PROC_BROWSER_TEST_F(BrowsingDataRemoverTransportSecurityStateBrowserTest,
PreserveTransportSecurityState) {
- RemoveAndWait(BrowsingDataRemover::REMOVE_SITE_DATA);
+ RemoveAndWait(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA);
base::RunLoop run_loop;
BrowserThread::PostTaskAndReply(
BrowserThread::IO, FROM_HERE,
diff --git a/chrome/browser/browsing_data/browsing_data_remover_delegate.h b/chrome/browser/browsing_data/browsing_data_remover_delegate.h
index bb3261e..0d0cdd9 100644
--- a/chrome/browser/browsing_data/browsing_data_remover_delegate.h
+++ b/chrome/browser/browsing_data/browsing_data_remover_delegate.h
@@ -5,14 +5,29 @@
#ifndef CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_DELEGATE_H_
#define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_DELEGATE_H_
+class GURL;
+
namespace content {
class BrowsingDataFilterBuilder;
}
+namespace storage {
+class SpecialStoragePolicy;
+}
+
class BrowsingDataRemoverDelegate {
public:
virtual ~BrowsingDataRemoverDelegate() {}
+ // Determines whether |origin| matches |origin_type_mask|
+ // given the |special_storage_policy|. |origin_type_mask| should only contain
+ // embedder-specific datatypes.
+ virtual bool DoesOriginMatchEmbedderMask(
+ int origin_type_mask,
+ const GURL& origin,
+ storage::SpecialStoragePolicy* special_storage_policy) const = 0;
+
+ // Removes embedder-specific data.
virtual void RemoveEmbedderData(
const base::Time& delete_begin,
const base::Time& delete_end,
diff --git a/chrome/browser/browsing_data/browsing_data_remover_impl.cc b/chrome/browser/browsing_data/browsing_data_remover_impl.cc
index dd3a924..c0ea686 100644
--- a/chrome/browser/browsing_data/browsing_data_remover_impl.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover_impl.cc
@@ -15,7 +15,6 @@
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h"
-#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover_delegate.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/pref_names.h"
@@ -63,15 +62,23 @@
return base::Bind(&IgnoreArgumentHelper<T>, callback);
}
-// Helper to create callback for BrowsingDataRemoverImpl::DoesOriginMatchMask.
bool DoesOriginMatchMaskAndUrls(
+ const base::WeakPtr<BrowsingDataRemoverImpl>& remover_weak_ptr,
int origin_type_mask,
const base::Callback<bool(const GURL&)>& predicate,
const GURL& origin,
storage::SpecialStoragePolicy* special_storage_policy) {
+ // If BrowsingDataRemoverImpl is null, it is not possible to determine which
+ // origins should have their data deleted, and so we do not delete
+ // anything. This is not a problem, because this can only happen shortly
+ // before shutdown and thus the deletion would likely not be able to
+ // finish anyway.
+ if (!remover_weak_ptr)
+ return false;
+
return predicate.Run(origin) &&
- BrowsingDataHelper::DoesOriginMatchMask(origin, origin_type_mask,
- special_storage_policy);
+ remover_weak_ptr->DoesOriginMatchMask(origin_type_mask, origin,
+ special_storage_policy);
}
void ClearHttpAuthCacheOnIOThread(
@@ -204,6 +211,41 @@
return embedder_delegate_.get();
}
+bool BrowsingDataRemoverImpl::DoesOriginMatchMask(
+ int origin_type_mask,
+ const GURL& origin,
+ storage::SpecialStoragePolicy* policy) const {
+ const std::vector<std::string>& schemes = url::GetWebStorageSchemes();
+ bool is_web_scheme =
+ (std::find(schemes.begin(), schemes.end(), origin.GetOrigin().scheme()) !=
+ schemes.end());
+
+ // If a websafe origin is unprotected, it matches iff UNPROTECTED_WEB.
+ if ((!policy || !policy->IsStorageProtected(origin.GetOrigin())) &&
+ is_web_scheme && (origin_type_mask & ORIGIN_TYPE_UNPROTECTED_WEB)) {
+ return true;
+ }
+ origin_type_mask &= ~ORIGIN_TYPE_UNPROTECTED_WEB;
+
+ // Hosted applications (protected and websafe origins) iff PROTECTED_WEB.
+ if (policy && policy->IsStorageProtected(origin.GetOrigin()) &&
+ is_web_scheme && (origin_type_mask & ORIGIN_TYPE_PROTECTED_WEB)) {
+ return true;
+ }
+ origin_type_mask &= ~ORIGIN_TYPE_PROTECTED_WEB;
+
+ DCHECK(embedder_delegate_ || !origin_type_mask)
+ << "The mask contains embedder-defined origin types, but there is no "
+ << "embedder delegate to process them.";
+
+ if (embedder_delegate_) {
+ return embedder_delegate_->DoesOriginMatchEmbedderMask(origin_type_mask,
+ origin, policy);
+ }
+
+ return false;
+}
+
void BrowsingDataRemoverImpl::Remove(const base::Time& delete_begin,
const base::Time& delete_end,
int remove_mask,
@@ -229,7 +271,6 @@
int remove_mask,
int origin_type_mask,
std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) {
- DCHECK_EQ(0, remove_mask & ~FILTERABLE_DATATYPES);
DCHECK(filter_builder);
RemoveInternal(delete_begin, delete_end, remove_mask, origin_type_mask,
std::move(filter_builder), nullptr);
@@ -242,7 +283,6 @@
int origin_type_mask,
std::unique_ptr<BrowsingDataFilterBuilder> filter_builder,
Observer* observer) {
- DCHECK_EQ(0, remove_mask & ~FILTERABLE_DATATYPES);
DCHECK(filter_builder);
DCHECK(observer);
RemoveInternal(delete_begin, delete_end, remove_mask, origin_type_mask,
@@ -323,33 +363,13 @@
remove_mask_ = remove_mask;
origin_type_mask_ = origin_type_mask;
- if (origin_type_mask_ & BrowsingDataHelper::UNPROTECTED_WEB) {
- content::RecordAction(
- UserMetricsAction("ClearBrowsingData_MaskContainsUnprotectedWeb"));
- }
- if (origin_type_mask_ & BrowsingDataHelper::PROTECTED_WEB) {
- content::RecordAction(
- UserMetricsAction("ClearBrowsingData_MaskContainsProtectedWeb"));
- }
- if (origin_type_mask_ & BrowsingDataHelper::EXTENSION) {
- content::RecordAction(
- UserMetricsAction("ClearBrowsingData_MaskContainsExtension"));
- }
- // If this fires, we added a new BrowsingDataHelper::OriginTypeMask without
- // updating the user metrics above.
- static_assert(
- BrowsingDataHelper::ALL == (BrowsingDataHelper::UNPROTECTED_WEB |
- BrowsingDataHelper::PROTECTED_WEB |
- BrowsingDataHelper::EXTENSION),
- "OriginTypeMask has been updated without updating user metrics");
-
// Record the combined deletion of cookies and cache.
CookieOrCacheDeletionChoice choice = NEITHER_COOKIES_NOR_CACHE;
- if (remove_mask & REMOVE_COOKIES &&
- origin_type_mask_ & BrowsingDataHelper::UNPROTECTED_WEB) {
- choice = remove_mask & REMOVE_CACHE ? BOTH_COOKIES_AND_CACHE
- : ONLY_COOKIES;
- } else if (remove_mask & REMOVE_CACHE) {
+ if (remove_mask & DATA_TYPE_COOKIES &&
+ origin_type_mask_ & ORIGIN_TYPE_UNPROTECTED_WEB) {
+ choice =
+ remove_mask & DATA_TYPE_CACHE ? BOTH_COOKIES_AND_CACHE : ONLY_COOKIES;
+ } else if (remove_mask & DATA_TYPE_CACHE) {
choice = ONLY_CACHE;
}
@@ -372,8 +392,8 @@
filter_builder.BuildGeneralFilter();
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_DOWNLOADS
- if ((remove_mask & REMOVE_DOWNLOADS) && may_delete_history) {
+ // DATA_TYPE_DOWNLOADS
+ if ((remove_mask & DATA_TYPE_DOWNLOADS) && may_delete_history) {
content::RecordAction(UserMetricsAction("ClearBrowsingData_Downloads"));
content::DownloadManager* download_manager =
BrowserContext::GetDownloadManager(browser_context_);
@@ -382,11 +402,11 @@
}
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_CHANNEL_IDS
+ // DATA_TYPE_CHANNEL_IDS
// Channel IDs are not separated for protected and unprotected web
// origins. We check the origin_type_mask_ to prevent unintended deletion.
- if (remove_mask & REMOVE_CHANNEL_IDS &&
- origin_type_mask_ & BrowsingDataHelper::UNPROTECTED_WEB) {
+ if (remove_mask & DATA_TYPE_CHANNEL_IDS &&
+ origin_type_mask_ & ORIGIN_TYPE_UNPROTECTED_WEB) {
content::RecordAction(
UserMetricsAction("ClearBrowsingData_ChannelIDs"));
// Since we are running on the UI thread don't call GetURLRequestContext().
@@ -406,41 +426,41 @@
// STORAGE PARTITION DATA
uint32_t storage_partition_remove_mask = 0;
- // We ignore the REMOVE_COOKIES request if UNPROTECTED_WEB is not set,
- // so that callers who request REMOVE_SITE_DATA with PROTECTED_WEB
+ // We ignore the DATA_TYPE_COOKIES request if UNPROTECTED_WEB is not set,
+ // so that callers who request DATA_TYPE_SITE_DATA with another origin type
// don't accidentally remove the cookies that are associated with the
// UNPROTECTED_WEB origin. This is necessary because cookies are not separated
- // between UNPROTECTED_WEB and PROTECTED_WEB.
- if (remove_mask & REMOVE_COOKIES &&
- origin_type_mask_ & BrowsingDataHelper::UNPROTECTED_WEB) {
+ // between UNPROTECTED_WEB and other origin types.
+ if (remove_mask & DATA_TYPE_COOKIES &&
+ origin_type_mask_ & ORIGIN_TYPE_UNPROTECTED_WEB) {
storage_partition_remove_mask |=
content::StoragePartition::REMOVE_DATA_MASK_COOKIES;
}
- if (remove_mask & REMOVE_LOCAL_STORAGE) {
+ if (remove_mask & DATA_TYPE_LOCAL_STORAGE) {
storage_partition_remove_mask |=
content::StoragePartition::REMOVE_DATA_MASK_LOCAL_STORAGE;
}
- if (remove_mask & REMOVE_INDEXEDDB) {
+ if (remove_mask & DATA_TYPE_INDEXED_DB) {
storage_partition_remove_mask |=
content::StoragePartition::REMOVE_DATA_MASK_INDEXEDDB;
}
- if (remove_mask & REMOVE_WEBSQL) {
+ if (remove_mask & DATA_TYPE_WEB_SQL) {
storage_partition_remove_mask |=
content::StoragePartition::REMOVE_DATA_MASK_WEBSQL;
}
- if (remove_mask & REMOVE_APPCACHE) {
+ if (remove_mask & DATA_TYPE_APP_CACHE) {
storage_partition_remove_mask |=
content::StoragePartition::REMOVE_DATA_MASK_APPCACHE;
}
- if (remove_mask & REMOVE_SERVICE_WORKERS) {
+ if (remove_mask & DATA_TYPE_SERVICE_WORKERS) {
storage_partition_remove_mask |=
content::StoragePartition::REMOVE_DATA_MASK_SERVICE_WORKERS;
}
- if (remove_mask & REMOVE_CACHE_STORAGE) {
+ if (remove_mask & DATA_TYPE_CACHE_STORAGE) {
storage_partition_remove_mask |=
content::StoragePartition::REMOVE_DATA_MASK_CACHE_STORAGE;
}
- if (remove_mask & REMOVE_FILE_SYSTEMS) {
+ if (remove_mask & DATA_TYPE_FILE_SYSTEMS) {
storage_partition_remove_mask |=
content::StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS;
}
@@ -448,7 +468,7 @@
// Content Decryption Modules used by Encrypted Media store licenses in a
// private filesystem. These are different than content licenses used by
// Flash (which are deleted father down in this method).
- if (remove_mask & REMOVE_MEDIA_LICENSES) {
+ if (remove_mask & DATA_TYPE_MEDIA_LICENSES) {
storage_partition_remove_mask |=
content::StoragePartition::REMOVE_DATA_MASK_PLUGIN_PRIVATE_DATA;
}
@@ -468,8 +488,7 @@
~content::StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT;
if (delete_begin_ == base::Time() ||
- origin_type_mask_ &
- (BrowsingDataHelper::PROTECTED_WEB | BrowsingDataHelper::EXTENSION)) {
+ ((origin_type_mask_ & ~ORIGIN_TYPE_UNPROTECTED_WEB) != 0)) {
// If we're deleting since the beginning of time, or we're removing
// protected origins, then remove persistent quota data.
quota_storage_remove_mask |=
@@ -487,14 +506,15 @@
storage_partition->ClearData(
storage_partition_remove_mask, quota_storage_remove_mask,
- base::Bind(&DoesOriginMatchMaskAndUrls, origin_type_mask_, filter),
+ base::Bind(&DoesOriginMatchMaskAndUrls, weak_ptr_factory_.GetWeakPtr(),
+ origin_type_mask_, filter),
cookie_matcher, delete_begin_, delete_end_,
clear_storage_partition_data_.GetCompletionCallback());
}
//////////////////////////////////////////////////////////////////////////////
// CACHE
- if (remove_mask & REMOVE_CACHE) {
+ if (remove_mask & DATA_TYPE_CACHE) {
// Tell the renderers to clear their cache.
web_cache::WebCacheManager::GetInstance()->ClearCache();
@@ -523,7 +543,7 @@
//////////////////////////////////////////////////////////////////////////////
// Auth cache.
- if (remove_mask & REMOVE_COOKIES) {
+ if (remove_mask & DATA_TYPE_COOKIES) {
scoped_refptr<net::URLRequestContextGetter> request_context =
BrowserContext::GetDefaultStoragePartition(browser_context_)
->GetURLRequestContext();
diff --git a/chrome/browser/browsing_data/browsing_data_remover_impl.h b/chrome/browser/browsing_data/browsing_data_remover_impl.h
index 9015d1b..9889aea0 100644
--- a/chrome/browser/browsing_data/browsing_data_remover_impl.h
+++ b/chrome/browser/browsing_data/browsing_data_remover_impl.h
@@ -91,7 +91,10 @@
void SetEmbedderDelegate(
std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate) override;
BrowsingDataRemoverDelegate* GetEmbedderDelegate() const override;
-
+ bool DoesOriginMatchMask(
+ int origin_type_mask,
+ const GURL& origin,
+ storage::SpecialStoragePolicy* special_storage_policy) const override;
void Remove(const base::Time& delete_begin,
const base::Time& delete_end,
int remove_mask,
diff --git a/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc b/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc
index d7a64313..4dc9b58 100644
--- a/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc
@@ -41,6 +41,7 @@
#include "content/public/browser/local_storage_usage_info.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/test/mock_download_manager.h"
+#include "content/public/test/mock_special_storage_policy.h"
#include "content/public/test/test_browser_thread.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "content/public/test/test_utils.h"
@@ -58,12 +59,6 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "url/origin.h"
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
-#endif
-
-class MockExtensionSpecialStoragePolicy;
-
using content::BrowserThread;
using content::BrowserContext;
using content::BrowsingDataFilterBuilder;
@@ -550,9 +545,7 @@
~BrowsingDataRemoverImplTest() override {}
void TearDown() override {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
mock_policy_ = nullptr;
-#endif
// BrowserContext contains a DOMStorageContext. BrowserContext's
// destructor posts a message to the WEBKIT thread to delete some of its
@@ -570,9 +563,9 @@
TestStoragePartition storage_partition;
remover_->OverrideStoragePartitionForTesting(&storage_partition);
- int origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB;
+ int origin_type_mask = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
if (include_protected_origins)
- origin_type_mask |= BrowsingDataHelper::PROTECTED_WEB;
+ origin_type_mask |= BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB;
BrowsingDataRemoverCompletionObserver completion_observer(remover_);
remover_->RemoveAndReply(
@@ -596,7 +589,7 @@
BrowsingDataRemoverCompletionObserver completion_observer(remover_);
remover_->RemoveWithFilterAndReply(
delete_begin, delete_end, remove_mask,
- BrowsingDataHelper::UNPROTECTED_WEB,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
std::move(filter_builder), &completion_observer);
completion_observer.BlockUntilCompletion();
@@ -627,32 +620,19 @@
return storage_partition_removal_data_;
}
- MockExtensionSpecialStoragePolicy* CreateMockPolicy() {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- mock_policy_ = new MockExtensionSpecialStoragePolicy;
+ content::MockSpecialStoragePolicy* CreateMockPolicy() {
+ mock_policy_ = new content::MockSpecialStoragePolicy();
return mock_policy_.get();
-#else
- NOTREACHED();
- return nullptr;
-#endif
}
- storage::SpecialStoragePolicy* mock_policy() {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
+ content::MockSpecialStoragePolicy* mock_policy() {
return mock_policy_.get();
-#else
- return nullptr;
-#endif
}
- // If |kOrigin1| is protected when extensions are enabled, the expected
- // result for tests where the OriginMatcherFunction result is variable.
- bool ShouldRemoveForProtectedOriginOne() const {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- return false;
-#else
- return true;
-#endif
+ bool Match(const GURL& origin,
+ int mask,
+ storage::SpecialStoragePolicy* policy) {
+ return remover_->DoesOriginMatchMask(mask, origin, policy);
}
private:
@@ -664,9 +644,7 @@
StoragePartitionRemovalData storage_partition_removal_data_;
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy_;
-#endif
+ scoped_refptr<content::MockSpecialStoragePolicy> mock_policy_;
DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverImplTest);
};
@@ -675,10 +653,11 @@
TEST_F(BrowsingDataRemoverImplTest, RemoveCookieForever) {
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES, false);
+ BrowsingDataRemover::DATA_TYPE_COOKIES, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify that storage partition was instructed to remove the cookies.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -691,10 +670,11 @@
TEST_F(BrowsingDataRemoverImplTest, RemoveCookieLastHour) {
BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES, false);
+ BrowsingDataRemover::DATA_TYPE_COOKIES, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify that storage partition was instructed to remove the cookies.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -713,11 +693,12 @@
filter->AddRegisterableDomain(kTestRegisterableDomain1);
filter->AddRegisterableDomain(kTestRegisterableDomain3);
BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES,
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
std::move(filter));
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify that storage partition was instructed to remove the cookies.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -762,7 +743,7 @@
net::HttpAuth::AUTH_SCHEME_BASIC));
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES, false);
+ BrowsingDataRemover::DATA_TYPE_COOKIES, false);
EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm,
net::HttpAuth::AUTH_SCHEME_BASIC));
@@ -776,10 +757,12 @@
EXPECT_EQ(1, tester.ChannelIDCount());
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CHANNEL_IDS, false);
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS,
+ false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_CHANNEL_IDS, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
EXPECT_EQ(1, tester.ssl_config_changed_count());
EXPECT_EQ(0, tester.ChannelIDCount());
}
@@ -795,10 +778,12 @@
EXPECT_EQ(2, tester.ChannelIDCount());
BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CHANNEL_IDS, false);
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS,
+ false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_CHANNEL_IDS, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
EXPECT_EQ(1, tester.ssl_config_changed_count());
ASSERT_EQ(1, tester.ChannelIDCount());
net::ChannelIDStore::ChannelIDList channel_ids;
@@ -819,7 +804,7 @@
filter_builder->AddRegisterableDomain(kTestRegisterableDomain1);
BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CHANNEL_IDS,
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS,
std::move(filter_builder));
EXPECT_EQ(1, tester.ChannelIDCount());
@@ -829,18 +814,17 @@
}
TEST_F(BrowsingDataRemoverImplTest, RemoveUnprotectedLocalStorageForever) {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- MockExtensionSpecialStoragePolicy* policy = CreateMockPolicy();
+ content::MockSpecialStoragePolicy* policy = CreateMockPolicy();
// Protect kOrigin1.
policy->AddProtected(kOrigin1.GetOrigin());
-#endif
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_LOCAL_STORAGE,
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE,
false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify that storage partition was instructed to remove the data correctly.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -851,27 +835,25 @@
EXPECT_EQ(removal_data.remove_begin, GetBeginTime());
// Check origin matcher.
- EXPECT_EQ(ShouldRemoveForProtectedOriginOne(),
- removal_data.origin_matcher.Run(kOrigin1, mock_policy()));
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy()));
EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy()));
EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy()));
EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy()));
}
TEST_F(BrowsingDataRemoverImplTest, RemoveProtectedLocalStorageForever) {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
// Protect kOrigin1.
- MockExtensionSpecialStoragePolicy* policy = CreateMockPolicy();
+ content::MockSpecialStoragePolicy* policy = CreateMockPolicy();
policy->AddProtected(kOrigin1.GetOrigin());
-#endif
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_LOCAL_STORAGE,
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE,
true);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB |
- BrowsingDataHelper::PROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB |
+ BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB,
+ GetOriginTypeMask());
// Verify that storage partition was instructed to remove the data correctly.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -896,10 +878,11 @@
BlockUntilBrowsingDataRemoved(
base::Time::Now() - base::TimeDelta::FromDays(7), base::Time::Max(),
- BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false);
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify that storage partition was instructed to remove the data correctly.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -924,14 +907,15 @@
EXPECT_CALL(*downloads_tester.download_manager(),
RemoveDownloadsByURLAndTime(_, _, _));
- int removal_mask = BrowsingDataRemover::REMOVE_DOWNLOADS |
- BrowsingDataRemover::REMOVE_COOKIES;
+ int removal_mask = BrowsingDataRemover::DATA_TYPE_DOWNLOADS |
+ BrowsingDataRemover::DATA_TYPE_COOKIES;
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
removal_mask, false);
EXPECT_EQ(removal_mask, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// The cookie would be deleted throught the StorageParition, check if the
// partition was requested to remove cookie.
@@ -945,22 +929,23 @@
TEST_F(BrowsingDataRemoverImplTest, RemoveQuotaManagedDataForeverBoth) {
BlockUntilBrowsingDataRemoved(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -983,22 +968,23 @@
BlockUntilBrowsingDataRemoved(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1028,22 +1014,23 @@
BlockUntilBrowsingDataRemoved(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1072,22 +1059,23 @@
BlockUntilBrowsingDataRemoved(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1115,23 +1103,25 @@
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
builder->AddRegisterableDomain(kTestRegisterableDomain1);
// Remove Origin 1.
- BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_INDEXEDDB |
- BrowsingDataRemover::REMOVE_WEBSQL,
- std::move(builder));
+ BlockUntilOriginDataRemoved(
+ base::Time(), base::Time::Max(),
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL,
+ std::move(builder));
- EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_INDEXEDDB |
- BrowsingDataRemover::REMOVE_WEBSQL,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1154,22 +1144,23 @@
TEST_F(BrowsingDataRemoverImplTest, RemoveQuotaManagedDataForLastHour) {
BlockUntilBrowsingDataRemoved(
AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1194,22 +1185,23 @@
TEST_F(BrowsingDataRemoverImplTest, RemoveQuotaManagedDataForLastWeek) {
BlockUntilBrowsingDataRemoved(
base::Time::Now() - base::TimeDelta::FromDays(7), base::Time::Max(),
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1232,30 +1224,29 @@
}
TEST_F(BrowsingDataRemoverImplTest, RemoveQuotaManagedUnprotectedOrigins) {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- MockExtensionSpecialStoragePolicy* policy = CreateMockPolicy();
+ content::MockSpecialStoragePolicy* policy = CreateMockPolicy();
// Protect kOrigin1.
policy->AddProtected(kOrigin1.GetOrigin());
-#endif
BlockUntilBrowsingDataRemoved(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_INDEXEDDB,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1271,41 +1262,40 @@
StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL);
// Check OriginMatcherFunction.
- EXPECT_EQ(ShouldRemoveForProtectedOriginOne(),
- removal_data.origin_matcher.Run(kOrigin1, mock_policy()));
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy()));
EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy()));
EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy()));
}
TEST_F(BrowsingDataRemoverImplTest, RemoveQuotaManagedProtectedSpecificOrigin) {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- MockExtensionSpecialStoragePolicy* policy = CreateMockPolicy();
+ content::MockSpecialStoragePolicy* policy = CreateMockPolicy();
// Protect kOrigin1.
policy->AddProtected(kOrigin1.GetOrigin());
-#endif
std::unique_ptr<BrowsingDataFilterBuilder> builder(
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
builder->AddRegisterableDomain(kTestRegisterableDomain1);
// Try to remove kOrigin1. Expect failure.
- BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_INDEXEDDB |
- BrowsingDataRemover::REMOVE_WEBSQL,
- std::move(builder));
+ BlockUntilOriginDataRemoved(
+ base::Time(), base::Time::Max(),
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL,
+ std::move(builder));
- EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_INDEXEDDB |
- BrowsingDataRemover::REMOVE_WEBSQL,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1321,8 +1311,7 @@
StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL);
// Check OriginMatcherFunction.
- EXPECT_EQ(ShouldRemoveForProtectedOriginOne(),
- removal_data.origin_matcher.Run(kOrigin1, mock_policy()));
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy()));
// Since we use the matcher function to validate origins now, this should
// return false for the origins we're not trying to clear.
EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin2, mock_policy()));
@@ -1330,32 +1319,31 @@
}
TEST_F(BrowsingDataRemoverImplTest, RemoveQuotaManagedProtectedOrigins) {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- MockExtensionSpecialStoragePolicy* policy = CreateMockPolicy();
+ content::MockSpecialStoragePolicy* policy = CreateMockPolicy();
// Protect kOrigin1.
policy->AddProtected(kOrigin1.GetOrigin());
-#endif
// Try to remove kOrigin1. Expect success.
BlockUntilBrowsingDataRemoved(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_INDEXEDDB |
- BrowsingDataRemover::REMOVE_WEBSQL,
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL,
true);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_INDEXEDDB |
- BrowsingDataRemover::REMOVE_WEBSQL,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB |
- BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB |
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1385,22 +1373,23 @@
BlockUntilBrowsingDataRemoved(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_INDEXEDDB |
- BrowsingDataRemover::REMOVE_WEBSQL,
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL,
false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS |
- BrowsingDataRemover::REMOVE_CACHE_STORAGE |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_INDEXEDDB |
- BrowsingDataRemover::REMOVE_WEBSQL,
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL,
GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify storage partition related stuffs.
StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
@@ -1448,10 +1437,9 @@
BrowsingDataRemoverImpl* remover = static_cast<BrowsingDataRemoverImpl*>(
BrowsingDataRemoverFactory::GetForBrowserContext(GetBrowserContext()));
InspectableCompletionObserver completion_observer(remover);
- remover->RemoveAndReply(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataHelper::UNPROTECTED_WEB,
- &completion_observer);
+ remover->RemoveAndReply(
+ base::Time(), base::Time::Max(), BrowsingDataRemover::DATA_TYPE_COOKIES,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, &completion_observer);
// Process messages until the inhibitor is notified, and then some, to make
// sure we do not complete asynchronously before ContinueToCompletion() is
@@ -1478,10 +1466,9 @@
BrowsingDataRemoverFactory::GetForBrowserContext(GetBrowserContext()));
InspectableCompletionObserver completion_observer(remover);
BrowsingDataRemoverCompletionInhibitor completion_inhibitor;
- remover->RemoveAndReply(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataHelper::UNPROTECTED_WEB,
- &completion_observer);
+ remover->RemoveAndReply(
+ base::Time(), base::Time::Max(), BrowsingDataRemover::DATA_TYPE_COOKIES,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, &completion_observer);
completion_inhibitor.BlockUntilNearCompletion();
@@ -1510,7 +1497,8 @@
RemoveDownloadsByURLAndTime(ProbablySameFilter(filter), _, _));
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_DOWNLOADS, false);
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ false);
}
TEST_F(BrowsingDataRemoverImplTest, RemoveDownloadsByOrigin) {
@@ -1525,7 +1513,7 @@
RemoveDownloadsByURLAndTime(ProbablySameFilter(filter), _, _));
BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_DOWNLOADS,
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
std::move(builder));
}
@@ -1599,36 +1587,32 @@
// Test several tasks with various configuration of masks, filters, and target
// observers.
std::list<BrowsingDataRemoverImpl::RemovalTask> tasks;
- tasks.emplace_back(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataHelper::UNPROTECTED_WEB,
- BrowsingDataFilterBuilder::Create(
- BrowsingDataFilterBuilder::BLACKLIST),
- observer.target_a());
- tasks.emplace_back(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES,
- BrowsingDataHelper::PROTECTED_WEB,
- BrowsingDataFilterBuilder::Create(
- BrowsingDataFilterBuilder::BLACKLIST),
- nullptr);
+ tasks.emplace_back(
+ base::Time(), base::Time::Max(), BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST),
+ observer.target_a());
+ tasks.emplace_back(
+ base::Time(), base::Time::Max(), BrowsingDataRemover::DATA_TYPE_COOKIES,
+ BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB,
+ BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST),
+ nullptr);
tasks.emplace_back(
base::Time::Now(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_PASSWORDS, BrowsingDataHelper::ALL,
- BrowsingDataFilterBuilder::Create(
- BrowsingDataFilterBuilder::BLACKLIST),
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB |
+ BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB,
+ BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST),
observer.target_b());
- tasks.emplace_back(
- base::Time(), base::Time::UnixEpoch(),
- BrowsingDataRemover::REMOVE_WEBSQL,
- BrowsingDataHelper::UNPROTECTED_WEB,
- std::move(filter_builder_1),
- observer.target_b());
- tasks.emplace_back(
- base::Time::UnixEpoch(), base::Time::Now(),
- BrowsingDataRemover::REMOVE_CHANNEL_IDS,
- BrowsingDataHelper::ALL,
- std::move(filter_builder_2),
- nullptr);
+ tasks.emplace_back(base::Time(), base::Time::UnixEpoch(),
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ std::move(filter_builder_1), observer.target_b());
+ tasks.emplace_back(base::Time::UnixEpoch(), base::Time::Now(),
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB |
+ BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB,
+ std::move(filter_builder_2), nullptr);
for (BrowsingDataRemoverImpl::RemovalTask& task : tasks) {
// All tasks can be directly translated to a RemoveInternal() call. Since
@@ -1688,35 +1672,36 @@
EXPECT_FALSE(remover->is_removing());
int test_removal_masks[] = {
- BrowsingDataRemover::REMOVE_COOKIES,
- BrowsingDataRemover::REMOVE_PASSWORDS,
- BrowsingDataRemover::REMOVE_COOKIES,
- BrowsingDataRemover::REMOVE_COOKIES,
- BrowsingDataRemover::REMOVE_COOKIES,
- BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataRemover::REMOVE_COOKIES | BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataRemover::REMOVE_COOKIES | BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_HISTORY |
- BrowsingDataRemover::REMOVE_PASSWORDS,
- BrowsingDataRemover::REMOVE_PASSWORDS,
- BrowsingDataRemover::REMOVE_PASSWORDS,
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE,
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS |
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE,
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE,
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE,
};
for (int removal_mask : test_removal_masks) {
remover->Remove(base::Time(), base::Time::Max(), removal_mask,
- BrowsingDataHelper::UNPROTECTED_WEB);
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB);
}
EXPECT_TRUE(remover->is_removing());
// Add one more deletion and wait for it.
BlockUntilBrowsingDataRemoved(
- base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES,
- BrowsingDataHelper::UNPROTECTED_WEB);
+ base::Time(), base::Time::Max(), BrowsingDataRemover::DATA_TYPE_COOKIES,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB);
EXPECT_FALSE(remover->is_removing());
}
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
index 4328956..a5522a5 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -74,6 +74,7 @@
#include "net/http/http_transaction_factory.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
+#include "url/url_util.h"
#if defined(OS_ANDROID)
#include "chrome/browser/android/offline_pages/offline_page_model_factory.h"
@@ -87,6 +88,7 @@
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/activity_log/activity_log.h"
#include "extensions/browser/extension_prefs.h"
+#include "extensions/common/constants.h"
#endif
#if BUILDFLAG(ENABLE_SESSION_SERVICE)
@@ -308,6 +310,29 @@
template_url_sub_.reset();
}
+bool ChromeBrowsingDataRemoverDelegate::DoesOriginMatchEmbedderMask(
+ int origin_type_mask,
+ const GURL& origin,
+ storage::SpecialStoragePolicy* policy) const {
+ DCHECK_EQ(0, origin_type_mask & (ORIGIN_TYPE_EMBEDDER_BEGIN - 1))
+ << "|origin_type_mask| can only contain origin types defined in "
+ << "the embedder.";
+
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+ // Packaged apps and extensions match iff EXTENSION.
+ if ((origin.GetOrigin().scheme() == extensions::kExtensionScheme) &&
+ (origin_type_mask & ORIGIN_TYPE_EXTENSION)) {
+ return true;
+ }
+ origin_type_mask &= ~ORIGIN_TYPE_EXTENSION;
+#endif
+
+ DCHECK(!origin_type_mask)
+ << "DoesOriginMatchEmbedderMask must handle all origin types.";
+
+ return false;
+}
+
void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
const base::Time& delete_begin,
const base::Time& delete_end,
@@ -315,6 +340,33 @@
const BrowsingDataFilterBuilder& filter_builder,
int origin_type_mask,
const base::Closure& callback) {
+ DCHECK(((remove_mask & ~FILTERABLE_DATA_TYPES) == 0) ||
+ filter_builder.IsEmptyBlacklist());
+
+ if (origin_type_mask & BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB) {
+ content::RecordAction(
+ UserMetricsAction("ClearBrowsingData_MaskContainsUnprotectedWeb"));
+ }
+ if (origin_type_mask & BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB) {
+ content::RecordAction(
+ UserMetricsAction("ClearBrowsingData_MaskContainsProtectedWeb"));
+ }
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+ if (origin_type_mask & ORIGIN_TYPE_EXTENSION) {
+ content::RecordAction(
+ UserMetricsAction("ClearBrowsingData_MaskContainsExtension"));
+ }
+#endif
+ // If this fires, we added a new BrowsingDataHelper::OriginTypeMask without
+ // updating the user metrics above.
+ static_assert(
+ ALL_ORIGIN_TYPES == (BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB |
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+ ORIGIN_TYPE_EXTENSION |
+#endif
+ BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB),
+ "OriginTypeMask has been updated without updating user metrics");
+
//////////////////////////////////////////////////////////////////////////////
// INITIALIZATION
synchronous_clear_operations_.Start();
@@ -341,14 +393,13 @@
// All the UI entry points into the BrowsingDataRemoverImpl should be
// disabled, but this will fire if something was missed or added.
DCHECK(may_delete_history ||
- (remove_mask & BrowsingDataRemover::REMOVE_NOCHECKS) ||
- (!(remove_mask & BrowsingDataRemover::REMOVE_HISTORY) &&
- !(remove_mask & BrowsingDataRemover::REMOVE_DOWNLOADS)));
+ (remove_mask & BrowsingDataRemover::DATA_TYPE_NO_CHECKS) ||
+ (!(remove_mask & DATA_TYPE_HISTORY) &&
+ !(remove_mask & BrowsingDataRemover::DATA_TYPE_DOWNLOADS)));
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_HISTORY
- if ((remove_mask & BrowsingDataRemover::REMOVE_HISTORY) &&
- may_delete_history) {
+ // DATA_TYPE_HISTORY
+ if ((remove_mask & DATA_TYPE_HISTORY) && may_delete_history) {
history::HistoryService* history_service =
HistoryServiceFactory::GetForProfile(
profile_, ServiceAccessType::EXPLICIT_ACCESS);
@@ -572,8 +623,8 @@
}
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_DOWNLOADS
- if ((remove_mask & BrowsingDataRemover::REMOVE_DOWNLOADS) &&
+ // DATA_TYPE_DOWNLOADS
+ if ((remove_mask & BrowsingDataRemover::DATA_TYPE_DOWNLOADS) &&
may_delete_history) {
DownloadPrefs* download_prefs = DownloadPrefs::FromDownloadManager(
BrowserContext::GetDownloadManager(profile_));
@@ -581,14 +632,14 @@
}
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_COOKIES
- // We ignore the REMOVE_COOKIES request if UNPROTECTED_WEB is not set,
- // so that callers who request REMOVE_SITE_DATA with PROTECTED_WEB
+ // DATA_TYPE_COOKIES
+ // We ignore the DATA_TYPE_COOKIES request if UNPROTECTED_WEB is not set,
+ // so that callers who request DATA_TYPE_SITE_DATA with PROTECTED_WEB
// don't accidentally remove the cookies that are associated with the
// UNPROTECTED_WEB origin. This is necessary because cookies are not separated
// between UNPROTECTED_WEB and PROTECTED_WEB.
- if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES &&
- origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) {
+ if (remove_mask & BrowsingDataRemover::DATA_TYPE_COOKIES &&
+ origin_type_mask & BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB) {
content::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies"));
// Clear the safebrowsing cookies only if time period is for "all time". It
@@ -631,8 +682,8 @@
}
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_DURABLE_PERMISSION
- if (remove_mask & BrowsingDataRemover::REMOVE_DURABLE_PERMISSION) {
+ // DATA_TYPE_DURABLE_PERMISSION
+ if (remove_mask & DATA_TYPE_DURABLE_PERMISSION) {
HostContentSettingsMapFactory::GetForProfile(profile_)
->ClearSettingsForOneTypeWithPredicate(
CONTENT_SETTINGS_TYPE_DURABLE_STORAGE,
@@ -640,16 +691,16 @@
}
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_SITE_USAGE_DATA
- if (remove_mask & BrowsingDataRemover::REMOVE_SITE_USAGE_DATA) {
+ // DATA_TYPE_SITE_USAGE_DATA
+ if (remove_mask & DATA_TYPE_SITE_USAGE_DATA) {
HostContentSettingsMapFactory::GetForProfile(profile_)
->ClearSettingsForOneTypeWithPredicate(
CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT,
base::Bind(&WebsiteSettingsFilterAdapter, filter));
}
- if ((remove_mask & BrowsingDataRemover::REMOVE_SITE_USAGE_DATA) ||
- (remove_mask & BrowsingDataRemover::REMOVE_HISTORY)) {
+ if ((remove_mask & DATA_TYPE_SITE_USAGE_DATA) ||
+ (remove_mask & DATA_TYPE_HISTORY)) {
HostContentSettingsMapFactory::GetForProfile(profile_)
->ClearSettingsForOneTypeWithPredicate(
CONTENT_SETTINGS_TYPE_APP_BANNER,
@@ -661,7 +712,7 @@
//////////////////////////////////////////////////////////////////////////////
// Password manager
- if (remove_mask & BrowsingDataRemover::REMOVE_PASSWORDS) {
+ if (remove_mask & DATA_TYPE_PASSWORDS) {
content::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords"));
password_manager::PasswordStore* password_store =
PasswordStoreFactory::GetForProfile(
@@ -685,7 +736,7 @@
clear_http_auth_cache_.GetCompletionCallback());
}
- if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES) {
+ if (remove_mask & BrowsingDataRemover::DATA_TYPE_COOKIES) {
password_manager::PasswordStore* password_store =
PasswordStoreFactory::GetForProfile(profile_,
ServiceAccessType::EXPLICIT_ACCESS)
@@ -698,7 +749,7 @@
}
}
- if (remove_mask & BrowsingDataRemover::REMOVE_HISTORY) {
+ if (remove_mask & DATA_TYPE_HISTORY) {
password_manager::PasswordStore* password_store =
PasswordStoreFactory::GetForProfile(
profile_, ServiceAccessType::EXPLICIT_ACCESS).get();
@@ -712,9 +763,9 @@
}
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_FORM_DATA
+ // DATA_TYPE_FORM_DATA
// TODO(dmurph): Support all backends with filter (crbug.com/113621).
- if (remove_mask & BrowsingDataRemover::REMOVE_FORM_DATA) {
+ if (remove_mask & DATA_TYPE_FORM_DATA) {
content::RecordAction(UserMetricsAction("ClearBrowsingData_Autofill"));
scoped_refptr<autofill::AutofillWebDataService> web_data_service =
WebDataServiceFactory::GetAutofillWebDataForProfile(
@@ -740,8 +791,8 @@
}
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_CACHE
- if (remove_mask & BrowsingDataRemover::REMOVE_CACHE) {
+ // DATA_TYPE_CACHE
+ if (remove_mask & BrowsingDataRemover::DATA_TYPE_CACHE) {
#if !defined(DISABLE_NACL)
clear_nacl_cache_.Start();
@@ -797,7 +848,7 @@
#if defined(OS_ANDROID)
// For now we're considering offline pages as cache, so if we're removing
// cache we should remove offline pages as well.
- if ((remove_mask & BrowsingDataRemover::REMOVE_CACHE)) {
+ if ((remove_mask & BrowsingDataRemover::DATA_TYPE_CACHE)) {
clear_offline_page_data_.Start();
offline_pages::OfflinePageModelFactory::GetForBrowserContext(profile_)
->DeleteCachedPagesByURLPredicate(
@@ -808,21 +859,21 @@
#endif
}
- //////////////////////////////////////////////////////////////////////////////
- // REMOVE_PLUGINS
- // Plugins are known to //content and their bulk deletion is implemented in
- // PluginDataRemover. However, the filtered deletion uses
- // BrowsingDataFlashLSOHelper which (currently) has strong dependencies
- // on //chrome.
- // TODO(msramek): Investigate these dependencies and move the plugin deletion
- // to BrowsingDataRemoverImpl in //content. Note that code in //content
- // can simply take advantage of PluginDataRemover directly to delete plugin
- // data in bulk.
+//////////////////////////////////////////////////////////////////////////////
+// DATA_TYPE_PLUGINS
+// Plugins are known to //content and their bulk deletion is implemented in
+// PluginDataRemover. However, the filtered deletion uses
+// BrowsingDataFlashLSOHelper which (currently) has strong dependencies
+// on //chrome.
+// TODO(msramek): Investigate these dependencies and move the plugin deletion
+// to BrowsingDataRemoverImpl in //content. Note that code in //content
+// can simply take advantage of PluginDataRemover directly to delete plugin
+// data in bulk.
#if BUILDFLAG(ENABLE_PLUGINS)
// Plugin is data not separated for protected and unprotected web origins. We
// check the origin_type_mask_ to prevent unintended deletion.
- if (remove_mask & BrowsingDataRemover::REMOVE_PLUGIN_DATA &&
- origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) {
+ if (remove_mask & DATA_TYPE_PLUGIN_DATA &&
+ origin_type_mask & BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB) {
content::RecordAction(UserMetricsAction("ClearBrowsingData_LSOData"));
clear_plugin_data_count_ = 1;
@@ -849,8 +900,8 @@
#endif
//////////////////////////////////////////////////////////////////////////////
- // REMOVE_MEDIA_LICENSES
- if (remove_mask & BrowsingDataRemover::REMOVE_MEDIA_LICENSES) {
+ // DATA_TYPE_MEDIA_LICENSES
+ if (remove_mask & BrowsingDataRemover::DATA_TYPE_MEDIA_LICENSES) {
// TODO(jrummell): This UMA should be renamed to indicate it is for Media
// Licenses.
content::RecordAction(
@@ -892,21 +943,21 @@
// Remove omnibox zero-suggest cache results. Filtering is not supported.
// This is not a problem, as deleting more data than necessary will just cause
// another server round-trip; no data is actually lost.
- if ((remove_mask & (BrowsingDataRemover::REMOVE_CACHE |
- BrowsingDataRemover::REMOVE_COOKIES))) {
+ if ((remove_mask & (BrowsingDataRemover::DATA_TYPE_CACHE |
+ BrowsingDataRemover::DATA_TYPE_COOKIES))) {
prefs->SetString(omnibox::kZeroSuggestCachedResults, std::string());
}
//////////////////////////////////////////////////////////////////////////////
// Domain reliability service.
- if (remove_mask & (BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_HISTORY)) {
+ if (remove_mask &
+ (BrowsingDataRemover::DATA_TYPE_COOKIES | DATA_TYPE_HISTORY)) {
domain_reliability::DomainReliabilityService* service =
domain_reliability::DomainReliabilityServiceFactory::
GetForBrowserContext(profile_);
if (service) {
domain_reliability::DomainReliabilityClearMode mode;
- if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES)
+ if (remove_mask & BrowsingDataRemover::DATA_TYPE_COOKIES)
mode = domain_reliability::CLEAR_CONTEXTS;
else
mode = domain_reliability::CLEAR_BEACONS;
@@ -919,17 +970,17 @@
}
}
- //////////////////////////////////////////////////////////////////////////////
- // REMOVE_WEBAPP_DATA
+//////////////////////////////////////////////////////////////////////////////
+// DATA_TYPE_WEB_APP_DATA
#if defined(OS_ANDROID)
// Clear all data associated with registered webapps.
- if (remove_mask & BrowsingDataRemover::REMOVE_WEBAPP_DATA)
+ if (remove_mask & DATA_TYPE_WEB_APP_DATA)
webapp_registry_->UnregisterWebappsForUrls(filter);
#endif
//////////////////////////////////////////////////////////////////////////////
// Remove external protocol data.
- if (remove_mask & BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA)
+ if (remove_mask & DATA_TYPE_EXTERNAL_PROTOCOL_DATA)
ExternalProtocolHandler::ClearData(profile_);
synchronous_clear_operations_.GetCompletionCallback().Run();
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
index 100ad552..17a19c46 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
@@ -18,6 +18,7 @@
#include "components/browsing_data/core/browsing_data_utils.h"
#include "components/offline_pages/core/offline_page_model.h"
#include "components/search_engines/template_url_service.h"
+#include "extensions/features/features.h"
#include "media/media_features.h"
#include "ppapi/features/features.h"
@@ -46,6 +47,102 @@
#endif
{
public:
+ // This is an extension of BrowsingDataRemover::RemoveDataMask which includes
+ // all datatypes therefrom and adds additional Chrome-specific ones.
+ // TODO(crbug.com/668114): Extend this to uint64_t to ensure that we won't
+ // run out of space anytime soon.
+ enum DataType {
+ // Embedder can start adding datatypes after the last platform datatype.
+ DATA_TYPE_EMBEDDER_BEGIN = BrowsingDataRemover::DATA_TYPE_CONTENT_END << 1,
+
+ // Chrome-specific datatypes.
+ DATA_TYPE_HISTORY = DATA_TYPE_EMBEDDER_BEGIN,
+ DATA_TYPE_FORM_DATA = DATA_TYPE_EMBEDDER_BEGIN << 1,
+ DATA_TYPE_PASSWORDS = DATA_TYPE_EMBEDDER_BEGIN << 2,
+ DATA_TYPE_PLUGIN_DATA = DATA_TYPE_EMBEDDER_BEGIN << 3,
+#if defined(OS_ANDROID)
+ DATA_TYPE_WEB_APP_DATA = DATA_TYPE_EMBEDDER_BEGIN << 4,
+#endif
+ DATA_TYPE_SITE_USAGE_DATA = DATA_TYPE_EMBEDDER_BEGIN << 5,
+ DATA_TYPE_DURABLE_PERMISSION = DATA_TYPE_EMBEDDER_BEGIN << 6,
+ DATA_TYPE_EXTERNAL_PROTOCOL_DATA = DATA_TYPE_EMBEDDER_BEGIN << 7,
+ DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY = DATA_TYPE_EMBEDDER_BEGIN << 8,
+
+ // Group datatypes.
+
+ // "Site data" includes storage backend accessible to websites and some
+ // additional metadata kept by the browser (e.g. site usage data).
+ DATA_TYPE_SITE_DATA = BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB |
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL |
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS |
+ DATA_TYPE_PLUGIN_DATA |
+#if defined(OS_ANDROID)
+ DATA_TYPE_WEB_APP_DATA |
+#endif
+ DATA_TYPE_SITE_USAGE_DATA |
+ DATA_TYPE_DURABLE_PERMISSION |
+ DATA_TYPE_EXTERNAL_PROTOCOL_DATA,
+
+ // Datatypes protected by Important Sites.
+ IMPORTANT_SITES_DATA_TYPES =
+ DATA_TYPE_SITE_DATA | BrowsingDataRemover::DATA_TYPE_CACHE,
+
+ // Datatypes that can be deleted partially per URL / origin / domain,
+ // whichever makes sense.
+ FILTERABLE_DATA_TYPES = DATA_TYPE_SITE_DATA |
+ BrowsingDataRemover::DATA_TYPE_CACHE |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+
+ // Includes all the available remove options. Meant to be used by clients
+ // that wish to wipe as much data as possible from a Profile, to make it
+ // look like a new Profile.
+ ALL_DATA_TYPES = DATA_TYPE_SITE_DATA |
+ BrowsingDataRemover::DATA_TYPE_CACHE |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS |
+ DATA_TYPE_FORM_DATA |
+ DATA_TYPE_HISTORY |
+ DATA_TYPE_PASSWORDS |
+ BrowsingDataRemover::DATA_TYPE_MEDIA_LICENSES,
+
+ // Includes all available remove options. Meant to be used when the Profile
+ // is scheduled to be deleted, and all possible data should be wiped from
+ // disk as soon as possible.
+ WIPE_PROFILE = ALL_DATA_TYPES | BrowsingDataRemover::DATA_TYPE_NO_CHECKS,
+ };
+
+ // This is an extension of BrowsingDataRemover::OriginType which includes all
+ // origin types therefrom and adds additional Chrome-specific ones.
+ enum OriginType {
+ // Embedder can start adding origin types after the last
+ // platform origin type.
+ ORIGIN_TYPE_EMBEDDER_BEGIN = BrowsingDataRemover::ORIGIN_TYPE_CONTENT_END
+ << 1,
+
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+ // Packaged apps and extensions (chrome-extension://*).
+ ORIGIN_TYPE_EXTENSION = ORIGIN_TYPE_EMBEDDER_BEGIN,
+#endif
+
+ // All origin types.
+ ALL_ORIGIN_TYPES = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB |
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+ ORIGIN_TYPE_EXTENSION |
+#endif
+ BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB,
+ };
+
+ // Important sites protect a small set of sites from the deletion of certain
+ // datatypes. Therefore, those datatypes must be filterable by
+ // url/origin/domain.
+ static_assert((IMPORTANT_SITES_DATA_TYPES & ~FILTERABLE_DATA_TYPES) == 0,
+ "All important sites datatypes must be filterable.");
+
// Used to track the deletion of a single data storage backend.
class SubTask {
public:
@@ -75,7 +172,11 @@
ChromeBrowsingDataRemoverDelegate(content::BrowserContext* browser_context);
~ChromeBrowsingDataRemoverDelegate() override;
- // Removes Chrome-specific data.
+ // BrowsingDataRemoverDelegate:
+ bool DoesOriginMatchEmbedderMask(
+ int origin_type_mask,
+ const GURL& origin,
+ storage::SpecialStoragePolicy* special_storage_policy) const override;
void RemoveEmbedderData(
const base::Time& delete_begin,
const base::Time& delete_end,
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
index 2eb290a..2212e4d4 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -82,6 +82,10 @@
#include "components/signin/core/account_id/account_id.h"
#endif
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+#include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
+#endif
+
#if BUILDFLAG(ENABLE_PLUGINS)
#include "chrome/browser/browsing_data/mock_browsing_data_flash_lso_helper.h"
#endif
@@ -116,6 +120,8 @@
const char kTestOrigin3[] = "http://host3.com:1/";
const char kTestRegisterableDomain3[] = "host3.com";
const char kTestOrigin4[] = "https://host3.com:1/";
+const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/";
+const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/";
// For HTTP auth.
const char kTestRealm[] = "TestRealm";
@@ -128,6 +134,16 @@
const GURL kOrigin3(kTestOrigin3);
const GURL kOrigin4(kTestOrigin4);
+const GURL kOriginExt(kTestOriginExt);
+const GURL kOriginDevTools(kTestOriginDevTools);
+
+// Shorthands for origin types.
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+const int kExtension = ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION;
+#endif
+const int kProtected = BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB;
+const int kUnprotected = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
+
// Testers --------------------------------------------------------------------
#if defined(OS_ANDROID)
@@ -858,9 +874,10 @@
const base::Time& delete_end,
int remove_mask,
bool include_protected_origins) {
- int origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB;
- if (include_protected_origins)
- origin_type_mask |= BrowsingDataHelper::PROTECTED_WEB;
+ int origin_type_mask = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
+ if (include_protected_origins) {
+ origin_type_mask |= BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB;
+ }
BrowsingDataRemoverCompletionObserver completion_observer(remover_);
remover_->RemoveAndReply(
@@ -875,11 +892,10 @@
int remove_mask,
std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) {
BrowsingDataRemoverCompletionObserver completion_observer(remover_);
- static_cast<BrowsingDataRemoverImpl*>(remover_)
- ->RemoveWithFilterAndReply(delete_begin, delete_end, remove_mask,
- BrowsingDataHelper::UNPROTECTED_WEB,
- std::move(filter_builder),
- &completion_observer);
+ static_cast<BrowsingDataRemoverImpl*>(remover_)->RemoveWithFilterAndReply(
+ delete_begin, delete_end, remove_mask,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ std::move(filter_builder), &completion_observer);
completion_observer.BlockUntilCompletion();
}
@@ -903,6 +919,12 @@
return clear_domain_reliability_tester_;
}
+ bool Match(const GURL& origin,
+ int mask,
+ storage::SpecialStoragePolicy* policy) {
+ return remover_->DoesOriginMatchMask(mask, origin, policy);
+ }
+
private:
// Cached pointer to BrowsingDataRemoverImpl for access to testing methods.
BrowsingDataRemover* remover_;
@@ -923,10 +945,11 @@
ASSERT_TRUE(tester.ContainsCookie());
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES, false);
+ BrowsingDataRemover::DATA_TYPE_COOKIES, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
EXPECT_FALSE(tester.ContainsCookie());
}
@@ -938,10 +961,11 @@
ASSERT_TRUE(tester.ContainsCookie());
BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES, false);
+ BrowsingDataRemover::DATA_TYPE_COOKIES, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Removing with time period other than all time should not clear safe
// browsing cookies.
EXPECT_TRUE(tester.ContainsCookie());
@@ -957,18 +981,19 @@
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
filter->AddRegisterableDomain(kTestRegisterableDomain1);
BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES,
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
std::move(filter));
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
EXPECT_TRUE(tester.ContainsCookie());
std::unique_ptr<BrowsingDataFilterBuilder> filter2(
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
filter2->AddRegisterableDomain(kTestRegisterableDomain1);
BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES,
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
std::move(filter2));
EXPECT_FALSE(tester.ContainsCookie());
}
@@ -980,11 +1005,14 @@
tester.AddHistory(kOrigin1, base::Time::Now());
ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
}
@@ -999,11 +1027,14 @@
ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
- BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
+ BlockUntilBrowsingDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
}
@@ -1026,10 +1057,13 @@
ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
- BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ BlockUntilBrowsingDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Nothing should have been deleted.
EXPECT_TRUE(tester.HistoryContainsURL(kOrigin1));
@@ -1052,13 +1086,14 @@
RemovePasswordsTester tester(GetProfile());
EXPECT_CALL(*tester.store(), RemoveLoginsByURLAndTimeImpl(_, _, _));
- int removal_mask = BrowsingDataRemover::REMOVE_HISTORY |
- BrowsingDataRemover::REMOVE_PASSWORDS;
+ int removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS;
BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
removal_mask, false);
EXPECT_EQ(removal_mask, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify that history was not deleted.
EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1));
@@ -1077,7 +1112,8 @@
BlockUntilBrowsingDataRemoved(
AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA, false);
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA,
+ false);
EXPECT_TRUE(
profile->GetPrefs()->GetDictionary(prefs::kExcludedSchemes)->empty());
}
@@ -1091,9 +1127,11 @@
favicon_tester.VisitAndAddFavicon(page_url);
ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(page_url));
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ GetRemovalMask());
EXPECT_FALSE(favicon_tester.HasFaviconForPageURL(page_url));
}
@@ -1118,9 +1156,11 @@
favicon_tester.VisitAndAddFavicon(bookmarked_page);
ASSERT_TRUE(favicon_tester.HasFaviconForPageURL(bookmarked_page));
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ GetRemovalMask());
EXPECT_TRUE(favicon_tester.HasExpiredFaviconForPageURL(bookmarked_page));
}
@@ -1140,12 +1180,14 @@
std::unique_ptr<BrowsingDataFilterBuilder> builder(
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
- BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY,
- std::move(builder));
+ BlockUntilOriginDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, std::move(builder));
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
EXPECT_FALSE(tester.HistoryContainsURL(kOrigin1));
EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
}
@@ -1159,11 +1201,14 @@
tester.AddProfilesAndCards();
ASSERT_TRUE(tester.HasProfile());
- BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_FORM_DATA, false);
+ BlockUntilBrowsingDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA,
+ GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
ASSERT_FALSE(tester.HasProfile());
}
@@ -1175,11 +1220,14 @@
tester.AddProfilesAndCards();
ASSERT_TRUE(tester.HasProfile());
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_FORM_DATA, false);
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_FORM_DATA, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA,
+ GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
ASSERT_FALSE(tester.HasProfile());
}
@@ -1194,11 +1242,14 @@
EXPECT_TRUE(tester.HasOrigin(kWebOrigin));
EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin));
- BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
+ BlockUntilBrowsingDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
EXPECT_TRUE(tester.HasOrigin(std::string()));
EXPECT_FALSE(tester.HasOrigin(kWebOrigin));
EXPECT_TRUE(tester.HasOrigin(autofill::kSettingsOrigin));
@@ -1209,12 +1260,13 @@
prefs->SetString(omnibox::kZeroSuggestCachedResults,
"[\"\", [\"foo\", \"bar\"]]");
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES, false);
+ BrowsingDataRemover::DATA_TYPE_COOKIES, false);
// Expect the prefs to be cleared when cookies are removed.
EXPECT_TRUE(prefs->GetString(omnibox::kZeroSuggestCachedResults).empty());
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(BrowsingDataRemover::DATA_TYPE_COOKIES, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
}
#if defined(OS_CHROMEOS)
@@ -1241,7 +1293,7 @@
.WillOnce(WithArgs<3>(Invoke(FakeDBusCall)));
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_MEDIA_LICENSES,
+ BrowsingDataRemover::DATA_TYPE_MEDIA_LICENSES,
false);
chromeos::DBusThreadManager::Shutdown();
@@ -1259,8 +1311,9 @@
const ClearDomainReliabilityTester& tester =
clear_domain_reliability_tester();
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
EXPECT_EQ(1u, tester.clear_count());
EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
EXPECT_TRUE(ProbablySameFilters(
@@ -1278,9 +1331,9 @@
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
builder->AddRegisterableDomain(kTestRegisterableDomain1);
- BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY,
- builder->Copy());
+ BlockUntilOriginDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, builder->Copy());
EXPECT_EQ(1u, tester.clear_count());
EXPECT_EQ(CLEAR_BEACONS, tester.last_clear_mode());
EXPECT_TRUE(ProbablySameFilters(
@@ -1292,7 +1345,7 @@
clear_domain_reliability_tester();
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES, false);
+ BrowsingDataRemover::DATA_TYPE_COOKIES, false);
EXPECT_EQ(1u, tester.clear_count());
EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
EXPECT_TRUE(ProbablySameFilters(
@@ -1309,7 +1362,7 @@
builder->AddRegisterableDomain(kTestRegisterableDomain1);
BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES,
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
builder->Copy());
EXPECT_EQ(1u, tester.clear_count());
EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
@@ -1323,7 +1376,8 @@
BlockUntilBrowsingDataRemoved(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES,
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
false);
EXPECT_EQ(1u, tester.clear_count());
EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
@@ -1335,7 +1389,7 @@
clear_domain_reliability_tester();
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES, true);
+ BrowsingDataRemover::DATA_TYPE_COOKIES, true);
EXPECT_EQ(1u, tester.clear_count());
EXPECT_EQ(CLEAR_CONTEXTS, tester.last_clear_mode());
}
@@ -1348,7 +1402,8 @@
DISABLED_DomainReliability_NoMonitor) {
BlockUntilBrowsingDataRemoved(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY | BrowsingDataRemover::REMOVE_COOKIES,
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
+ BrowsingDataRemover::DATA_TYPE_COOKIES,
false);
}
@@ -1361,7 +1416,8 @@
*tester.download_manager(), RemoveDownloadsByURLAndTime(_, _, _));
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_DOWNLOADS, false);
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ false);
}
TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) {
@@ -1371,8 +1427,9 @@
EXPECT_CALL(*tester.store(), RemoveStatisticsByOriginAndTimeImpl(
ProbablySameFilter(empty_filter),
base::Time(), base::Time::Max()));
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
}
// TODO(crbug.com/589586): Disabled, since history is not yet marked as
@@ -1389,9 +1446,9 @@
EXPECT_CALL(*tester.store(),
RemoveStatisticsByOriginAndTimeImpl(
ProbablySameFilter(filter), base::Time(), base::Time::Max()));
- BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY,
- std::move(builder));
+ BlockUntilOriginDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, std::move(builder));
}
TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) {
@@ -1402,8 +1459,9 @@
EXPECT_CALL(*tester.store(),
RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
.WillOnce(Return(password_manager::PasswordStoreChangeList()));
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_PASSWORDS, false);
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, false);
}
// Disabled, since passwords are not yet marked as a filterable datatype.
@@ -1418,9 +1476,10 @@
EXPECT_CALL(*tester.store(),
RemoveLoginsByURLAndTimeImpl(ProbablySameFilter(filter), _, _))
.WillOnce(Return(password_manager::PasswordStoreChangeList()));
- BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_PASSWORDS,
- std::move(builder));
+ BlockUntilOriginDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS,
+ std::move(builder));
}
TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) {
@@ -1434,7 +1493,7 @@
.WillOnce(Return(password_manager::PasswordStoreChangeList()));
BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES, false);
+ BrowsingDataRemover::DATA_TYPE_COOKIES, false);
}
TEST_F(ChromeBrowsingDataRemoverDelegateTest,
@@ -1450,10 +1509,11 @@
DisableAutoSignInForOriginsImpl(ProbablySameFilter(empty_filter)))
.WillOnce(Return(password_manager::PasswordStoreChangeList()));
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_PASSWORDS,
- false);
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS,
+ false);
}
TEST_F(ChromeBrowsingDataRemoverDelegateTest,
@@ -1479,12 +1539,15 @@
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
filter->AddRegisterableDomain(kTestRegisterableDomain1);
filter->AddRegisterableDomain(kTestRegisterableDomain3);
- BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_SITE_USAGE_DATA,
- std::move(filter));
+ BlockUntilOriginDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA,
+ std::move(filter));
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA,
+ GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify we only have true, and they're origin1, origin3, and origin4.
ContentSettingsForOneType host_settings;
@@ -1518,12 +1581,15 @@
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::BLACKLIST));
filter->AddRegisterableDomain(kTestRegisterableDomain1);
filter->AddRegisterableDomain(kTestRegisterableDomain3);
- BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_DURABLE_PERMISSION,
- std::move(filter));
+ BlockUntilOriginDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION,
+ std::move(filter));
- EXPECT_EQ(BrowsingDataRemover::REMOVE_DURABLE_PERMISSION, GetRemovalMask());
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginTypeMask());
+ EXPECT_EQ(ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION,
+ GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ GetOriginTypeMask());
// Verify we only have allow for the first origin.
ContentSettingsForOneType host_settings;
@@ -1563,8 +1629,9 @@
CHECK(http_auth_cache->Lookup(kOrigin1, kTestRealm,
net::HttpAuth::AUTH_SCHEME_BASIC));
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_PASSWORDS, false);
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, false);
EXPECT_EQ(nullptr, http_auth_cache->Lookup(kOrigin1, kTestRealm,
net::HttpAuth::AUTH_SCHEME_BASIC));
@@ -1606,9 +1673,10 @@
tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_BLOCK);
- BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_SITE_USAGE_DATA,
- std::move(filter_builder_1));
+ BlockUntilOriginDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA,
+ std::move(filter_builder_1));
// kOrigin1 should be gone, but kOrigin2 remains.
EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
@@ -1624,8 +1692,9 @@
tester.CheckEmbargo(kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_BLOCK);
- BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
+ BlockUntilBrowsingDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
// Everything should be gone.
EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
@@ -1658,9 +1727,10 @@
EXPECT_FALSE(tester.RecordDismissAndEmbargo(
kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
- BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_SITE_USAGE_DATA,
- std::move(filter_builder_2));
+ BlockUntilOriginDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA,
+ std::move(filter_builder_2));
// kOrigin2 should be gone, but kOrigin1 remains.
EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1,
@@ -1683,9 +1753,9 @@
tester.CheckEmbargo(kOrigin1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX,
CONTENT_SETTING_BLOCK);
- BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_SITE_USAGE_DATA,
- false);
+ BlockUntilBrowsingDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA, false);
// Everything should be gone.
EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1,
@@ -1719,9 +1789,10 @@
std::unique_ptr<BrowsingDataFilterBuilder> filter_builder(
BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST));
filter_builder->AddRegisterableDomain(kTestRegisterableDomain3);
- BlockUntilOriginDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_PLUGIN_DATA,
- std::move(filter_builder));
+ BlockUntilOriginDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA,
+ std::move(filter_builder));
// Plugin data for |kOrigin3.host()| should have been removed.
expected.pop_back();
@@ -1784,8 +1855,9 @@
BrowsingDataRemoverCompletionObserver completion_observer(remover);
remover->RemoveAndReply(delete_begin, base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataHelper::ALL, &completion_observer);
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES,
+ &completion_observer);
completion_observer.BlockUntilCompletion();
// There should be only 1 recently visited bookmarks.
@@ -1813,18 +1885,88 @@
}
// Clearing a part of the history has no effect.
- BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
+ BlockUntilBrowsingDataRemoved(
+ AnHourAgo(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(2));
EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.75));
EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.25));
// Clearing the full history does the trick.
- BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY, false);
+ BlockUntilBrowsingDataRemoved(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, false);
EXPECT_THAT(language_model->GetTopLanguages(), SizeIs(0));
EXPECT_THAT(language_model->GetLanguageFrequency("en"), FloatEq(0.0));
EXPECT_THAT(language_model->GetLanguageFrequency("es"), FloatEq(0.0));
}
+
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+TEST_F(ChromeBrowsingDataRemoverDelegateTest, OriginTypeMasks) {
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
+ new MockExtensionSpecialStoragePolicy;
+ // Protect kOrigin1.
+ mock_policy->AddProtected(kOrigin1.GetOrigin());
+
+ EXPECT_FALSE(Match(kOrigin1, kUnprotected, mock_policy.get()));
+ EXPECT_TRUE(Match(kOrigin2, kUnprotected, mock_policy.get()));
+ EXPECT_FALSE(Match(kOriginExt, kUnprotected, mock_policy.get()));
+ EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, mock_policy.get()));
+
+ EXPECT_TRUE(Match(kOrigin1, kProtected, mock_policy.get()));
+ EXPECT_FALSE(Match(kOrigin2, kProtected, mock_policy.get()));
+ EXPECT_FALSE(Match(kOriginExt, kProtected, mock_policy.get()));
+ EXPECT_FALSE(Match(kOriginDevTools, kProtected, mock_policy.get()));
+
+ EXPECT_FALSE(Match(kOrigin1, kExtension, mock_policy.get()));
+ EXPECT_FALSE(Match(kOrigin2, kExtension, mock_policy.get()));
+ EXPECT_TRUE(Match(kOriginExt, kExtension, mock_policy.get()));
+ EXPECT_FALSE(Match(kOriginDevTools, kExtension, mock_policy.get()));
+
+ EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected, mock_policy.get()));
+ EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected, mock_policy.get()));
+ EXPECT_FALSE(Match(kOriginExt, kUnprotected | kProtected, mock_policy.get()));
+ EXPECT_FALSE(
+ Match(kOriginDevTools, kUnprotected | kProtected, mock_policy.get()));
+
+ EXPECT_FALSE(Match(kOrigin1, kUnprotected | kExtension, mock_policy.get()));
+ EXPECT_TRUE(Match(kOrigin2, kUnprotected | kExtension, mock_policy.get()));
+ EXPECT_TRUE(Match(kOriginExt, kUnprotected | kExtension, mock_policy.get()));
+ EXPECT_FALSE(
+ Match(kOriginDevTools, kUnprotected | kExtension, mock_policy.get()));
+
+ EXPECT_TRUE(Match(kOrigin1, kProtected | kExtension, mock_policy.get()));
+ EXPECT_FALSE(Match(kOrigin2, kProtected | kExtension, mock_policy.get()));
+ EXPECT_TRUE(Match(kOriginExt, kProtected | kExtension, mock_policy.get()));
+ EXPECT_FALSE(
+ Match(kOriginDevTools, kProtected | kExtension, mock_policy.get()));
+
+ EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected | kExtension,
+ mock_policy.get()));
+ EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected | kExtension,
+ mock_policy.get()));
+ EXPECT_TRUE(Match(kOriginExt, kUnprotected | kProtected | kExtension,
+ mock_policy.get()));
+ EXPECT_FALSE(Match(kOriginDevTools, kUnprotected | kProtected | kExtension,
+ mock_policy.get()));
+}
+#endif
+
+// If extensions are disabled, there is no policy.
+TEST_F(ChromeBrowsingDataRemoverDelegateTest, OriginTypeMasksNoPolicy) {
+ EXPECT_TRUE(Match(kOrigin1, kUnprotected, nullptr));
+ EXPECT_FALSE(Match(kOriginExt, kUnprotected, nullptr));
+ EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, nullptr));
+
+ EXPECT_FALSE(Match(kOrigin1, kProtected, nullptr));
+ EXPECT_FALSE(Match(kOriginExt, kProtected, nullptr));
+ EXPECT_FALSE(Match(kOriginDevTools, kProtected, nullptr));
+
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+ EXPECT_FALSE(Match(kOrigin1, kExtension, nullptr));
+ EXPECT_TRUE(Match(kOriginExt, kExtension, nullptr));
+ EXPECT_FALSE(Match(kOriginDevTools, kExtension, nullptr));
+#endif
+}
diff --git a/chrome/browser/browsing_data/mock_browsing_data_remover.cc b/chrome/browser/browsing_data/mock_browsing_data_remover.cc
index 0bf01cf..239c8141 100644
--- a/chrome/browser/browsing_data/mock_browsing_data_remover.cc
+++ b/chrome/browser/browsing_data/mock_browsing_data_remover.cc
@@ -40,13 +40,19 @@
observer);
}
+bool MockBrowsingDataRemover::DoesOriginMatchMask(
+ int origin_type_mask,
+ const GURL& origin,
+ storage::SpecialStoragePolicy* special_storage_policy) const {
+ return true;
+}
+
void MockBrowsingDataRemover::RemoveWithFilter(
const base::Time& delete_begin,
const base::Time& delete_end,
int remove_mask,
int origin_type_mask,
std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder) {
- DCHECK_EQ(0, remove_mask & ~FILTERABLE_DATATYPES);
DCHECK(filter_builder);
RemoveInternal(delete_begin, delete_end, remove_mask, origin_type_mask,
std::move(filter_builder), nullptr);
@@ -59,7 +65,6 @@
int origin_type_mask,
std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder,
Observer* observer) {
- DCHECK_EQ(0, remove_mask & ~FILTERABLE_DATATYPES);
DCHECK(filter_builder);
DCHECK(observer);
RemoveInternal(delete_begin, delete_end, remove_mask, origin_type_mask,
diff --git a/chrome/browser/browsing_data/mock_browsing_data_remover.h b/chrome/browser/browsing_data/mock_browsing_data_remover.h
index fa1f8bfa..2bee7c2 100644
--- a/chrome/browser/browsing_data/mock_browsing_data_remover.h
+++ b/chrome/browser/browsing_data/mock_browsing_data_remover.h
@@ -26,6 +26,12 @@
void Shutdown() override;
// BrowsingDataRemover:
+ // Determines whether |origin| matches the |origin_type_mask| according to
+ // the |special_storage_policy|.
+ bool DoesOriginMatchMask(
+ int origin_type_mask,
+ const GURL& origin,
+ storage::SpecialStoragePolicy* special_storage_policy) const override;
void Remove(const base::Time& delete_begin,
const base::Time& delete_end,
int remove_mask,
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index add454a7..569bb3e6 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -37,6 +37,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/budget_service/budget_service_impl.h"
#include "chrome/browser/chrome_content_browser_client_parts.h"
#include "chrome/browser/chrome_quota_permission_context.h"
@@ -2724,8 +2725,8 @@
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(profile);
remover->Remove(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CACHE,
- BrowsingDataHelper::UNPROTECTED_WEB);
+ BrowsingDataRemover::DATA_TYPE_CACHE,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB);
}
void ChromeContentBrowserClient::ClearCookies(RenderFrameHost* rfh) {
@@ -2733,9 +2734,9 @@
rfh->GetSiteInstance()->GetProcess()->GetBrowserContext());
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(profile);
- int remove_mask = BrowsingDataRemover::REMOVE_SITE_DATA;
+ int remove_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA;
remover->Remove(base::Time(), base::Time::Max(), remove_mask,
- BrowsingDataHelper::UNPROTECTED_WEB);
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB);
}
void ChromeContentBrowserClient::ClearSiteData(
@@ -2773,10 +2774,11 @@
remover->RemoveWithFilterAndReply(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA,
- BrowsingDataHelper::ALL, std::move(domain_filter_builder), observer);
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA,
+ ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES,
+ std::move(domain_filter_builder), observer);
} else {
// The first removal task is a no-op.
observer->OnBrowsingDataRemoverDone();
@@ -2785,13 +2787,13 @@
// Delete origin-scoped data.
int remove_mask = 0;
if (remove_storage) {
- remove_mask |= BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_COOKIES &
- ~BrowsingDataRemover::REMOVE_CHANNEL_IDS &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA &
+ ~BrowsingDataRemover::DATA_TYPE_COOKIES &
+ ~BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
}
if (remove_cache)
- remove_mask |= BrowsingDataRemover::REMOVE_CACHE;
+ remove_mask |= BrowsingDataRemover::DATA_TYPE_CACHE;
if (remove_mask) {
std::unique_ptr<BrowsingDataFilterBuilder> origin_filter_builder(
@@ -2800,9 +2802,9 @@
origin_filter_builder->AddOrigin(origin);
remover->RemoveWithFilterAndReply(
- base::Time(), base::Time::Max(),
- remove_mask, BrowsingDataHelper::ALL, std::move(origin_filter_builder),
- observer);
+ base::Time(), base::Time::Max(), remove_mask,
+ ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES,
+ std::move(origin_filter_builder), observer);
} else {
// The second removal task is a no-op.
observer->OnBrowsingDataRemoverDone();
diff --git a/chrome/browser/chrome_content_browser_client_unittest.cc b/chrome/browser/chrome_content_browser_client_unittest.cc
index 70725c8..95736423 100644
--- a/chrome/browser/chrome_content_browser_client_unittest.cc
+++ b/chrome/browser/chrome_content_browser_client_unittest.cc
@@ -19,6 +19,7 @@
#include "build/build_config.h"
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/browsing_data/mock_browsing_data_remover.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/test/base/testing_profile.h"
@@ -387,26 +388,32 @@
int mask;
} test_cases[] = {
{false, false, false, 0},
- {true, false, false, BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA},
- {false, true, false, BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_COOKIES &
- ~BrowsingDataRemover::REMOVE_CHANNEL_IDS &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA},
- {false, false, true, BrowsingDataRemover::REMOVE_CACHE},
- {true, true, false, BrowsingDataRemover::REMOVE_SITE_DATA},
- {true, false, true, BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA |
- BrowsingDataRemover::REMOVE_CACHE},
- {false, true, true, BrowsingDataRemover::REMOVE_CACHE |
- (BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_COOKIES &
- ~BrowsingDataRemover::REMOVE_CHANNEL_IDS &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA)},
- {true, true, true, BrowsingDataRemover::REMOVE_SITE_DATA |
- BrowsingDataRemover::REMOVE_CACHE},
+ {true, false, false,
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA},
+ {false, true, false,
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA &
+ ~BrowsingDataRemover::DATA_TYPE_COOKIES &
+ ~BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA},
+ {false, false, true, BrowsingDataRemover::DATA_TYPE_CACHE},
+ {true, true, false,
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA},
+ {true, false, true,
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA |
+ BrowsingDataRemover::DATA_TYPE_CACHE},
+ {false, true, true,
+ BrowsingDataRemover::DATA_TYPE_CACHE |
+ (ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA &
+ ~BrowsingDataRemover::DATA_TYPE_COOKIES &
+ ~BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA)},
+ {true, true, true,
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA |
+ BrowsingDataRemover::DATA_TYPE_CACHE},
};
for (unsigned int i = 0; i < arraysize(test_cases); ++i) {
@@ -414,16 +421,16 @@
const TestCase& test_case = test_cases[i];
// We always delete data for all time and all origin types.
- BrowsingDataHelper::OriginTypeMask all_origin_types =
- BrowsingDataHelper::ALL;
+ int all_origin_types = ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES;
// Some data are deleted for the origin and some for the registrable domain.
// Depending on the chosen datatypes, this might result into one or two
// calls. In the latter case, the removal mask will be split into two
// parts - one for the origin deletion and one for the registrable domain.
- const int domain_scoped_types = BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA;
+ const int domain_scoped_types =
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
int registrable_domain_deletion_mask = test_case.mask & domain_scoped_types;
int origin_deletion_mask = test_case.mask & ~domain_scoped_types;
@@ -505,20 +512,21 @@
remover()->ExpectCall(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA,
- BrowsingDataHelper::ALL, std::move(registrable_domain_filter_builder));
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA,
+ ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES,
+ std::move(registrable_domain_filter_builder));
std::unique_ptr<BrowsingDataFilterBuilder> origin_filter_builder(
BrowsingDataFilterBuilder::Create(
BrowsingDataFilterBuilder::WHITELIST));
origin_filter_builder->AddOrigin(url::Origin(GURL(test_case.origin)));
- remover()->ExpectCall(
- base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CACHE, BrowsingDataHelper::ALL,
- std::move(origin_filter_builder));
+ remover()->ExpectCall(base::Time(), base::Time::Max(),
+ BrowsingDataRemover::DATA_TYPE_CACHE,
+ ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES,
+ std::move(origin_filter_builder));
SetClearingFinished(false);
client.ClearSiteData(
diff --git a/chrome/browser/chromeos/profiles/profile_helper.cc b/chrome/browser/chromeos/profiles/profile_helper.cc
index bb90818..a319f9b 100644
--- a/chrome/browser/chromeos/profiles/profile_helper.cc
+++ b/chrome/browser/chromeos/profiles/profile_helper.cc
@@ -12,6 +12,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/chromeos/base/file_flusher.h"
#include "chrome/browser/chromeos/login/helper.h"
#include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h"
@@ -263,8 +264,9 @@
BrowsingDataRemoverFactory::GetForBrowserContext(GetSigninProfile());
browsing_data_remover_->AddObserver(this);
browsing_data_remover_->RemoveAndReply(
- base::Time(), base::Time::Max(), BrowsingDataRemover::REMOVE_SITE_DATA,
- BrowsingDataHelper::ALL, this);
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA,
+ ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES, this);
} else {
on_clear_profile_stage_finished_.Run();
}
diff --git a/chrome/browser/extensions/api/browsing_data/browsing_data_api.cc b/chrome/browser/extensions/api/browsing_data/browsing_data_api.cc
index 36610d5..00c27fc 100644
--- a/chrome/browser/extensions/api/browsing_data/browsing_data_api.cc
+++ b/chrome/browser/extensions/api/browsing_data/browsing_data_api.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/plugins/plugin_data_remover_helper.h"
#include "chrome/browser/plugins/plugin_prefs.h"
#include "chrome/browser/profiles/profile.h"
@@ -71,38 +72,38 @@
namespace {
int MaskForKey(const char* key) {
if (strcmp(key, extension_browsing_data_api_constants::kAppCacheKey) == 0)
- return BrowsingDataRemover::REMOVE_APPCACHE;
+ return BrowsingDataRemover::DATA_TYPE_APP_CACHE;
if (strcmp(key, extension_browsing_data_api_constants::kCacheKey) == 0)
- return BrowsingDataRemover::REMOVE_CACHE;
+ return BrowsingDataRemover::DATA_TYPE_CACHE;
if (strcmp(key, extension_browsing_data_api_constants::kCookiesKey) == 0) {
- return BrowsingDataRemover::REMOVE_COOKIES;
+ return BrowsingDataRemover::DATA_TYPE_COOKIES;
}
if (strcmp(key, extension_browsing_data_api_constants::kDownloadsKey) == 0)
- return BrowsingDataRemover::REMOVE_DOWNLOADS;
+ return BrowsingDataRemover::DATA_TYPE_DOWNLOADS;
if (strcmp(key, extension_browsing_data_api_constants::kFileSystemsKey) == 0)
- return BrowsingDataRemover::REMOVE_FILE_SYSTEMS;
+ return BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS;
if (strcmp(key, extension_browsing_data_api_constants::kFormDataKey) == 0)
- return BrowsingDataRemover::REMOVE_FORM_DATA;
+ return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA;
if (strcmp(key, extension_browsing_data_api_constants::kHistoryKey) == 0)
- return BrowsingDataRemover::REMOVE_HISTORY;
+ return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY;
if (strcmp(key, extension_browsing_data_api_constants::kIndexedDBKey) == 0)
- return BrowsingDataRemover::REMOVE_INDEXEDDB;
+ return BrowsingDataRemover::DATA_TYPE_INDEXED_DB;
if (strcmp(key, extension_browsing_data_api_constants::kLocalStorageKey) == 0)
- return BrowsingDataRemover::REMOVE_LOCAL_STORAGE;
+ return BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE;
if (strcmp(key,
extension_browsing_data_api_constants::kChannelIDsKey) == 0)
- return BrowsingDataRemover::REMOVE_CHANNEL_IDS;
+ return BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS;
if (strcmp(key, extension_browsing_data_api_constants::kPasswordsKey) == 0)
- return BrowsingDataRemover::REMOVE_PASSWORDS;
+ return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS;
if (strcmp(key, extension_browsing_data_api_constants::kPluginDataKey) == 0)
- return BrowsingDataRemover::REMOVE_PLUGIN_DATA;
+ return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
if (strcmp(key, extension_browsing_data_api_constants::kServiceWorkersKey) ==
0)
- return BrowsingDataRemover::REMOVE_SERVICE_WORKERS;
+ return BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS;
if (strcmp(key, extension_browsing_data_api_constants::kCacheStorageKey) == 0)
- return BrowsingDataRemover::REMOVE_CACHE_STORAGE;
+ return BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE;
if (strcmp(key, extension_browsing_data_api_constants::kWebSQLKey) == 0)
- return BrowsingDataRemover::REMOVE_WEBSQL;
+ return BrowsingDataRemover::DATA_TYPE_WEB_SQL;
return 0;
}
@@ -112,8 +113,8 @@
bool IsRemovalPermitted(int removal_mask, PrefService* prefs) {
// Enterprise policy or user preference might prohibit deleting browser or
// download history.
- if ((removal_mask & BrowsingDataRemover::REMOVE_HISTORY) ||
- (removal_mask & BrowsingDataRemover::REMOVE_DOWNLOADS)) {
+ if ((removal_mask & ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY) ||
+ (removal_mask & BrowsingDataRemover::DATA_TYPE_DOWNLOADS)) {
return prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory);
}
return true;
@@ -278,7 +279,8 @@
return false;
}
- if (removal_mask_ & BrowsingDataRemover::REMOVE_PLUGIN_DATA) {
+ if (removal_mask_ &
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA) {
// If we're being asked to remove plugin data, check whether it's actually
// supported.
BrowserThread::PostTask(
@@ -301,7 +303,7 @@
void BrowsingDataRemoverFunction::CheckRemovingPluginDataSupported(
scoped_refptr<PluginPrefs> plugin_prefs) {
if (!PluginDataRemoverHelper::IsSupported(plugin_prefs.get()))
- removal_mask_ &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA;
+ removal_mask_ &= ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
@@ -329,7 +331,7 @@
int* origin_type_mask) {
// Parse the |options| dictionary to generate the origin set mask. Default to
// UNPROTECTED_WEB if the developer doesn't specify anything.
- *origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB;
+ *origin_type_mask = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
const base::DictionaryValue* d = NULL;
if (options.HasKey(extension_browsing_data_api_constants::kOriginTypesKey)) {
@@ -349,7 +351,8 @@
&value)) {
return false;
}
- *origin_type_mask |= value ? BrowsingDataHelper::UNPROTECTED_WEB : 0;
+ *origin_type_mask |=
+ value ? BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB : 0;
}
// Protected web.
@@ -359,7 +362,8 @@
&value)) {
return false;
}
- *origin_type_mask |= value ? BrowsingDataHelper::PROTECTED_WEB : 0;
+ *origin_type_mask |=
+ value ? BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB : 0;
}
// Extensions.
@@ -368,7 +372,8 @@
&value)) {
return false;
}
- *origin_type_mask |= value ? BrowsingDataHelper::EXTENSION : 0;
+ *origin_type_mask |=
+ value ? ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION : 0;
}
}
@@ -398,73 +403,73 @@
}
bool BrowsingDataRemoveAppcacheFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_APPCACHE;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_APP_CACHE;
return true;
}
bool BrowsingDataRemoveCacheFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_CACHE;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_CACHE;
return true;
}
bool BrowsingDataRemoveCookiesFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS;
return true;
}
bool BrowsingDataRemoveDownloadsFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_DOWNLOADS;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_DOWNLOADS;
return true;
}
bool BrowsingDataRemoveFileSystemsFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_FILE_SYSTEMS;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS;
return true;
}
bool BrowsingDataRemoveFormDataFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_FORM_DATA;
+ *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA;
return true;
}
bool BrowsingDataRemoveHistoryFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_HISTORY;
+ *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY;
return true;
}
bool BrowsingDataRemoveIndexedDBFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_INDEXEDDB;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_INDEXED_DB;
return true;
}
bool BrowsingDataRemoveLocalStorageFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_LOCAL_STORAGE;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE;
return true;
}
bool BrowsingDataRemovePluginDataFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_PLUGIN_DATA;
+ *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
return true;
}
bool BrowsingDataRemovePasswordsFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_PASSWORDS;
+ *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS;
return true;
}
bool BrowsingDataRemoveServiceWorkersFunction::GetRemovalMask(
int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_SERVICE_WORKERS;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS;
return true;
}
bool BrowsingDataRemoveCacheStorageFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_CACHE_STORAGE;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE;
return true;
}
bool BrowsingDataRemoveWebSQLFunction::GetRemovalMask(int* removal_mask) {
- *removal_mask = BrowsingDataRemover::REMOVE_WEBSQL;
+ *removal_mask = BrowsingDataRemover::DATA_TYPE_WEB_SQL;
return true;
}
diff --git a/chrome/browser/extensions/api/browsing_data/browsing_data_test.cc b/chrome/browser/extensions/api/browsing_data/browsing_data_test.cc
index 9a90887..e4843473 100644
--- a/chrome/browser/extensions/api/browsing_data/browsing_data_test.cc
+++ b/chrome/browser/extensions/api/browsing_data/browsing_data_test.cc
@@ -13,6 +13,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/extensions/api/browsing_data/browsing_data_api.h"
#include "chrome/browser/extensions/extension_function_test_utils.h"
#include "chrome/browser/profiles/profile.h"
@@ -29,9 +30,9 @@
namespace {
enum OriginTypeMask {
- UNPROTECTED_WEB = BrowsingDataHelper::UNPROTECTED_WEB,
- PROTECTED_WEB = BrowsingDataHelper::PROTECTED_WEB,
- EXTENSION = BrowsingDataHelper::EXTENSION
+ UNPROTECTED_WEB = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ PROTECTED_WEB = BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB,
+ EXTENSION = ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION
};
const char kRemoveEverythingArguments[] =
@@ -153,23 +154,34 @@
int expected_origin_type_mask,
int expected_removal_mask) {
PrefService* prefs = browser()->profile()->GetPrefs();
- prefs->SetBoolean(browsing_data::prefs::kDeleteCache,
- !!(data_type_flags & BrowsingDataRemover::REMOVE_CACHE));
- prefs->SetBoolean(browsing_data::prefs::kDeleteCookies,
- !!(data_type_flags & BrowsingDataRemover::REMOVE_COOKIES));
+ prefs->SetBoolean(
+ browsing_data::prefs::kDeleteCache,
+ !!(data_type_flags & BrowsingDataRemover::DATA_TYPE_CACHE));
+ prefs->SetBoolean(
+ browsing_data::prefs::kDeleteCookies,
+ !!(data_type_flags & BrowsingDataRemover::DATA_TYPE_COOKIES));
prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory,
- !!(data_type_flags & BrowsingDataRemover::REMOVE_HISTORY));
- prefs->SetBoolean(browsing_data::prefs::kDeleteFormData,
- !!(data_type_flags & BrowsingDataRemover::REMOVE_FORM_DATA));
- prefs->SetBoolean(browsing_data::prefs::kDeleteDownloadHistory,
- !!(data_type_flags & BrowsingDataRemover::REMOVE_DOWNLOADS));
- prefs->SetBoolean(browsing_data::prefs::kDeleteHostedAppsData,
+ !!(data_type_flags &
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY));
+ prefs->SetBoolean(
+ browsing_data::prefs::kDeleteFormData,
!!(data_type_flags &
- BrowsingDataRemover::REMOVE_HOSTED_APP_DATA_TESTONLY));
- prefs->SetBoolean(browsing_data::prefs::kDeletePasswords,
- !!(data_type_flags & BrowsingDataRemover::REMOVE_PASSWORDS));
- prefs->SetBoolean(prefs::kClearPluginLSODataEnabled,
- !!(data_type_flags & BrowsingDataRemover::REMOVE_PLUGIN_DATA));
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA));
+ prefs->SetBoolean(
+ browsing_data::prefs::kDeleteDownloadHistory,
+ !!(data_type_flags & BrowsingDataRemover::DATA_TYPE_DOWNLOADS));
+ prefs->SetBoolean(
+ browsing_data::prefs::kDeleteHostedAppsData,
+ !!(data_type_flags & ChromeBrowsingDataRemoverDelegate::
+ DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY));
+ prefs->SetBoolean(
+ browsing_data::prefs::kDeletePasswords,
+ !!(data_type_flags &
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS));
+ prefs->SetBoolean(
+ prefs::kClearPluginLSODataEnabled,
+ !!(data_type_flags &
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA));
scoped_refptr<BrowsingDataSettingsFunction> function =
new BrowsingDataSettingsFunction();
@@ -195,34 +207,35 @@
EXPECT_TRUE(result->GetDictionary("dataToRemove", &data_to_remove));
int removal_mask =
GetAsMask(data_to_remove, "appcache",
- BrowsingDataRemover::REMOVE_APPCACHE) |
- GetAsMask(data_to_remove, "cache", BrowsingDataRemover::REMOVE_CACHE) |
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE) |
+ GetAsMask(data_to_remove, "cache",
+ BrowsingDataRemover::DATA_TYPE_CACHE) |
GetAsMask(data_to_remove, "cookies",
- BrowsingDataRemover::REMOVE_COOKIES) |
+ BrowsingDataRemover::DATA_TYPE_COOKIES) |
GetAsMask(data_to_remove, "downloads",
- BrowsingDataRemover::REMOVE_DOWNLOADS) |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS) |
GetAsMask(data_to_remove, "fileSystems",
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS) |
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS) |
GetAsMask(data_to_remove, "formData",
- BrowsingDataRemover::REMOVE_FORM_DATA) |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA) |
GetAsMask(data_to_remove, "history",
- BrowsingDataRemover::REMOVE_HISTORY) |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY) |
GetAsMask(data_to_remove, "indexedDB",
- BrowsingDataRemover::REMOVE_INDEXEDDB) |
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB) |
GetAsMask(data_to_remove, "localStorage",
- BrowsingDataRemover::REMOVE_LOCAL_STORAGE) |
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE) |
GetAsMask(data_to_remove, "pluginData",
- BrowsingDataRemover::REMOVE_PLUGIN_DATA) |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA) |
GetAsMask(data_to_remove, "passwords",
- BrowsingDataRemover::REMOVE_PASSWORDS) |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS) |
GetAsMask(data_to_remove, "serviceWorkers",
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS) |
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS) |
GetAsMask(data_to_remove, "cacheStorage",
- BrowsingDataRemover::REMOVE_CACHE_STORAGE) |
+ BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE) |
GetAsMask(data_to_remove, "webSQL",
- BrowsingDataRemover::REMOVE_WEBSQL) |
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL) |
GetAsMask(data_to_remove, "serverBoundCertificates",
- BrowsingDataRemover::REMOVE_CHANNEL_IDS);
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS);
EXPECT_EQ(expected_removal_mask, removal_mask);
}
@@ -291,23 +304,23 @@
EXPECT_EQ(base::Time::FromDoubleT(1.0), GetBeginTime());
EXPECT_EQ(
- (BrowsingDataRemover::REMOVE_SITE_DATA |
- BrowsingDataRemover::REMOVE_CACHE |
- BrowsingDataRemover::REMOVE_DOWNLOADS |
- BrowsingDataRemover::REMOVE_FORM_DATA |
- BrowsingDataRemover::REMOVE_HISTORY |
- BrowsingDataRemover::REMOVE_PASSWORDS) &
+ (ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA |
+ BrowsingDataRemover::DATA_TYPE_CACHE |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS) &
// TODO(benwells): implement clearing of site usage data via the
// browsing data API. https://crbug.com/500801.
- ~BrowsingDataRemover::REMOVE_SITE_USAGE_DATA &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA &
// TODO(dmurph): implement clearing of durable storage permission
// via the browsing data API. https://crbug.com/500801.
- ~BrowsingDataRemover::REMOVE_DURABLE_PERMISSION &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION &
// We can't remove plugin data inside a test profile.
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA &
// TODO(ramyasharma): implement clearing of external protocol data
// via the browsing data API. https://crbug.com/692850.
- ~BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA,
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA,
GetRemovalMask());
}
@@ -340,45 +353,44 @@
IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest,
BrowsingDataRemovalMask) {
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "appcache", BrowsingDataRemover::REMOVE_APPCACHE);
+ "appcache", BrowsingDataRemover::DATA_TYPE_APP_CACHE);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "cache", BrowsingDataRemover::REMOVE_CACHE);
+ "cache", BrowsingDataRemover::DATA_TYPE_CACHE);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "cookies", BrowsingDataRemover::REMOVE_COOKIES);
+ "cookies", BrowsingDataRemover::DATA_TYPE_COOKIES);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "downloads", BrowsingDataRemover::REMOVE_DOWNLOADS);
+ "downloads", BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "fileSystems", BrowsingDataRemover::REMOVE_FILE_SYSTEMS);
+ "fileSystems", BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "formData", BrowsingDataRemover::REMOVE_FORM_DATA);
+ "formData", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "history", BrowsingDataRemover::REMOVE_HISTORY);
+ "history", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "indexedDB", BrowsingDataRemover::REMOVE_INDEXEDDB);
+ "indexedDB", BrowsingDataRemover::DATA_TYPE_INDEXED_DB);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "localStorage", BrowsingDataRemover::REMOVE_LOCAL_STORAGE);
+ "localStorage", BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "serverBoundCertificates",
- BrowsingDataRemover::REMOVE_CHANNEL_IDS);
+ "serverBoundCertificates", BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "passwords", BrowsingDataRemover::REMOVE_PASSWORDS);
+ "passwords", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS);
// We can't remove plugin data inside a test profile.
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "serviceWorkers", BrowsingDataRemover::REMOVE_SERVICE_WORKERS);
+ "serviceWorkers", BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "cacheStorage", BrowsingDataRemover::REMOVE_CACHE_STORAGE);
+ "cacheStorage", BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE);
RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
- "webSQL", BrowsingDataRemover::REMOVE_WEBSQL);
+ "webSQL", BrowsingDataRemover::DATA_TYPE_WEB_SQL);
}
// Test an arbitrary combination of data types.
IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest,
BrowsingDataRemovalMaskCombination) {
RunBrowsingDataRemoveFunctionAndCompareRemovalMask(
- "{\"appcache\": true, \"cookies\": true, \"history\": true}",
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_HISTORY);
+ "{\"appcache\": true, \"cookies\": true, \"history\": true}",
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE |
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY);
}
// Make sure the remove() function accepts the format produced by settings().
@@ -393,9 +405,9 @@
prefs->SetBoolean(browsing_data::prefs::kDeleteHostedAppsData, false);
prefs->SetBoolean(browsing_data::prefs::kDeletePasswords, false);
prefs->SetBoolean(prefs::kClearPluginLSODataEnabled, false);
- int expected_mask = BrowsingDataRemover::REMOVE_CACHE |
- BrowsingDataRemover::REMOVE_DOWNLOADS |
- BrowsingDataRemover::REMOVE_HISTORY;
+ int expected_mask = BrowsingDataRemover::DATA_TYPE_CACHE |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY;
std::string json;
// Scoping for the traces.
{
@@ -428,31 +440,31 @@
IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, ShortcutFunctionRemovalMask) {
RunAndCompareRemovalMask<BrowsingDataRemoveAppcacheFunction>(
- BrowsingDataRemover::REMOVE_APPCACHE);
+ BrowsingDataRemover::DATA_TYPE_APP_CACHE);
RunAndCompareRemovalMask<BrowsingDataRemoveCacheFunction>(
- BrowsingDataRemover::REMOVE_CACHE);
+ BrowsingDataRemover::DATA_TYPE_CACHE);
RunAndCompareRemovalMask<BrowsingDataRemoveCookiesFunction>(
- BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS);
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS);
RunAndCompareRemovalMask<BrowsingDataRemoveDownloadsFunction>(
- BrowsingDataRemover::REMOVE_DOWNLOADS);
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
RunAndCompareRemovalMask<BrowsingDataRemoveFileSystemsFunction>(
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS);
+ BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS);
RunAndCompareRemovalMask<BrowsingDataRemoveFormDataFunction>(
- BrowsingDataRemover::REMOVE_FORM_DATA);
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA);
RunAndCompareRemovalMask<BrowsingDataRemoveHistoryFunction>(
- BrowsingDataRemover::REMOVE_HISTORY);
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY);
RunAndCompareRemovalMask<BrowsingDataRemoveIndexedDBFunction>(
- BrowsingDataRemover::REMOVE_INDEXEDDB);
+ BrowsingDataRemover::DATA_TYPE_INDEXED_DB);
RunAndCompareRemovalMask<BrowsingDataRemoveLocalStorageFunction>(
- BrowsingDataRemover::REMOVE_LOCAL_STORAGE);
+ BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE);
// We can't remove plugin data inside a test profile.
RunAndCompareRemovalMask<BrowsingDataRemovePasswordsFunction>(
- BrowsingDataRemover::REMOVE_PASSWORDS);
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS);
RunAndCompareRemovalMask<BrowsingDataRemoveServiceWorkersFunction>(
- BrowsingDataRemover::REMOVE_SERVICE_WORKERS);
+ BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS);
RunAndCompareRemovalMask<BrowsingDataRemoveWebSQLFunction>(
- BrowsingDataRemover::REMOVE_WEBSQL);
+ BrowsingDataRemover::DATA_TYPE_WEB_SQL);
}
// Test the processing of the 'delete since' preference.
@@ -470,60 +482,64 @@
// Test straightforward settings, mapped 1:1 to data types.
IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSimple) {
- SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_CACHE, 0,
- BrowsingDataRemover::REMOVE_CACHE);
- SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_HISTORY, 0,
- BrowsingDataRemover::REMOVE_HISTORY);
- SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_FORM_DATA, 0,
- BrowsingDataRemover::REMOVE_FORM_DATA);
- SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_DOWNLOADS, 0,
- BrowsingDataRemover::REMOVE_DOWNLOADS);
- SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_PASSWORDS, 0,
- BrowsingDataRemover::REMOVE_PASSWORDS);
+ SetPrefsAndVerifySettings(BrowsingDataRemover::DATA_TYPE_CACHE, 0,
+ BrowsingDataRemover::DATA_TYPE_CACHE);
+ SetPrefsAndVerifySettings(
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, 0,
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY);
+ SetPrefsAndVerifySettings(
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, 0,
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA);
+ SetPrefsAndVerifySettings(BrowsingDataRemover::DATA_TYPE_DOWNLOADS, 0,
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
+ SetPrefsAndVerifySettings(
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, 0,
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS);
}
// Test cookie and app data settings.
IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSiteData) {
int site_data_no_durable_or_usage_or_external =
- BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_SITE_USAGE_DATA &
- ~BrowsingDataRemover::REMOVE_DURABLE_PERMISSION &
- ~BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA;
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA;
int site_data_no_plugins_durable_usage_external =
site_data_no_durable_or_usage_or_external &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA;
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
- SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_COOKIES,
+ SetPrefsAndVerifySettings(BrowsingDataRemover::DATA_TYPE_COOKIES,
UNPROTECTED_WEB,
site_data_no_plugins_durable_usage_external);
SetPrefsAndVerifySettings(
- BrowsingDataRemover::REMOVE_HOSTED_APP_DATA_TESTONLY, PROTECTED_WEB,
- site_data_no_plugins_durable_usage_external);
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY,
+ PROTECTED_WEB, site_data_no_plugins_durable_usage_external);
+ SetPrefsAndVerifySettings(BrowsingDataRemover::DATA_TYPE_COOKIES |
+ ChromeBrowsingDataRemoverDelegate::
+ DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY,
+ PROTECTED_WEB | UNPROTECTED_WEB,
+ site_data_no_plugins_durable_usage_external);
SetPrefsAndVerifySettings(
- BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_HOSTED_APP_DATA_TESTONLY,
- PROTECTED_WEB | UNPROTECTED_WEB,
- site_data_no_plugins_durable_usage_external);
- SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA,
- UNPROTECTED_WEB,
- site_data_no_durable_or_usage_or_external);
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA,
+ UNPROTECTED_WEB, site_data_no_durable_or_usage_or_external);
}
// Test an arbitrary assortment of settings.
IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionAssorted) {
int site_data_no_plugins_durable_usage_external =
- BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_DURABLE_PERMISSION &
- ~BrowsingDataRemover::REMOVE_SITE_USAGE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA &
- ~BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA;
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA &
+ ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA;
- SetPrefsAndVerifySettings(BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_HISTORY |
- BrowsingDataRemover::REMOVE_DOWNLOADS,
- UNPROTECTED_WEB,
- site_data_no_plugins_durable_usage_external |
- BrowsingDataRemover::REMOVE_HISTORY |
- BrowsingDataRemover::REMOVE_DOWNLOADS);
+ SetPrefsAndVerifySettings(
+ BrowsingDataRemover::DATA_TYPE_COOKIES |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
+ UNPROTECTED_WEB,
+ site_data_no_plugins_durable_usage_external |
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
+ BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
}
diff --git a/chrome/browser/net/errorpage_browsertest.cc b/chrome/browser/net/errorpage_browsertest.cc
index 095061c..584e04a 100644
--- a/chrome/browser/net/errorpage_browsertest.cc
+++ b/chrome/browser/net/errorpage_browsertest.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/net/net_error_diagnostics_dialog.h"
#include "chrome/browser/net/url_request_mock_util.h"
#include "chrome/browser/profiles/profile.h"
@@ -1009,8 +1010,8 @@
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile());
remover->Remove(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CACHE,
- BrowsingDataHelper::UNPROTECTED_WEB);
+ BrowsingDataRemover::DATA_TYPE_CACHE,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB);
ui_test_utils::NavigateToURL(browser(), test_url);
EXPECT_TRUE(ProbeStaleCopyValue(false));
EXPECT_FALSE(IsDisplayingText(browser(), GetShowSavedButtonLabel()));
@@ -1282,8 +1283,8 @@
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile());
remover->Remove(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CACHE,
- BrowsingDataHelper::UNPROTECTED_WEB);
+ BrowsingDataRemover::DATA_TYPE_CACHE,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB);
ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
browser(), test_url, 2);
EXPECT_TRUE(ProbeStaleCopyValue(false));
diff --git a/chrome/browser/net/predictor_browsertest.cc b/chrome/browser/net/predictor_browsertest.cc
index e583c516..abd1dcd 100644
--- a/chrome/browser/net/predictor_browsertest.cc
+++ b/chrome/browser/net/predictor_browsertest.cc
@@ -26,6 +26,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/net/predictor.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
@@ -1410,8 +1411,8 @@
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile());
remover->Remove(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataHelper::UNPROTECTED_WEB);
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB);
GetListFromPrefsAsString(prefs::kDnsPrefetchingStartupList,
&cleared_startup_list);
diff --git a/chrome/browser/net/sdch_browsertest.cc b/chrome/browser/net/sdch_browsertest.cc
index 0966cc4..1fa5318 100644
--- a/chrome/browser/net/sdch_browsertest.cc
+++ b/chrome/browser/net/sdch_browsertest.cc
@@ -26,6 +26,7 @@
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
#include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser.h"
@@ -413,7 +414,8 @@
browsing_data::TimePeriod::LAST_HOUR),
browsing_data::CalculateEndDeleteTime(
browsing_data::TimePeriod::LAST_HOUR),
- remove_mask, BrowsingDataHelper::UNPROTECTED_WEB,
+ remove_mask,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
&completion_observer);
completion_observer.BlockUntilCompletion();
}
@@ -676,14 +678,14 @@
// Confirm browsing data remover without removing the cache leaves
// SDCH alone.
- BrowsingDataRemoveAndWait(BrowsingDataRemover::REMOVE_ALL &
- ~BrowsingDataRemover::REMOVE_CACHE);
+ BrowsingDataRemoveAndWait(ChromeBrowsingDataRemoverDelegate::ALL_DATA_TYPES &
+ ~BrowsingDataRemover::DATA_TYPE_CACHE);
bool sdch_encoding_used = false;
ASSERT_TRUE(GetData(&sdch_encoding_used));
EXPECT_TRUE(sdch_encoding_used);
// Confirm browsing data remover removing the cache clears SDCH state.
- BrowsingDataRemoveAndWait(BrowsingDataRemover::REMOVE_CACHE);
+ BrowsingDataRemoveAndWait(BrowsingDataRemover::DATA_TYPE_CACHE);
sdch_encoding_used = false;
ASSERT_TRUE(GetData(&sdch_encoding_used));
EXPECT_FALSE(sdch_encoding_used);
diff --git a/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc b/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
index 44f7cd7..b5ed25f1 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
+++ b/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
@@ -13,6 +13,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/predictors/resource_prefetch_predictor.h"
#include "chrome/browser/predictors/resource_prefetch_predictor_factory.h"
#include "chrome/browser/predictors/resource_prefetch_predictor_test_util.h"
@@ -468,9 +469,9 @@
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile());
BrowsingDataRemoverObserver observer(remover);
- remover->RemoveAndReply(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CACHE,
- BrowsingDataHelper::UNPROTECTED_WEB, &observer);
+ remover->RemoveAndReply(
+ base::Time(), base::Time::Max(), BrowsingDataRemover::DATA_TYPE_CACHE,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, &observer);
observer.Wait();
for (auto& kv : resources_)
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
index 991e8f7..293ac7d 100644
--- a/chrome/browser/prerender/prerender_browsertest.cc
+++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -34,6 +34,7 @@
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
#include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
@@ -236,7 +237,8 @@
BrowsingDataRemoverFactory::GetForBrowserContext(browser->profile());
BrowsingDataRemoverCompletionObserver observer(remover);
remover->RemoveAndReply(base::Time(), base::Time::Max(), remove_mask,
- BrowsingDataHelper::UNPROTECTED_WEB, &observer);
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
+ &observer);
observer.BlockUntilCompletion();
// BrowsingDataRemover deletes itself.
}
@@ -2524,7 +2526,8 @@
PrerenderTestURL("/prerender/prerender_page.html",
FINAL_STATUS_CACHE_OR_HISTORY_CLEARED, 1);
- ClearBrowsingData(current_browser(), BrowsingDataRemover::REMOVE_HISTORY);
+ ClearBrowsingData(current_browser(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY);
prerender->WaitForStop();
// Make sure prerender history was cleared.
@@ -2538,7 +2541,7 @@
PrerenderTestURL("/prerender/prerender_page.html",
FINAL_STATUS_CACHE_OR_HISTORY_CLEARED, 1);
- ClearBrowsingData(current_browser(), BrowsingDataRemover::REMOVE_CACHE);
+ ClearBrowsingData(current_browser(), BrowsingDataRemover::DATA_TYPE_CACHE);
prerender->WaitForStop();
// Make sure prerender history was not cleared. Not a vital behavior, but
diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browser/profile_resetter/profile_resetter.cc
index cf97bf1..d9ef5a1 100644
--- a/chrome/browser/profile_resetter/profile_resetter.cc
+++ b/chrome/browser/profile_resetter/profile_resetter.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/google/google_url_tracker_factory.h"
@@ -252,16 +253,17 @@
cookies_remover_ = BrowsingDataRemoverFactory::GetForBrowserContext(profile_);
cookies_remover_->AddObserver(this);
- int remove_mask = BrowsingDataRemover::REMOVE_SITE_DATA |
- BrowsingDataRemover::REMOVE_CACHE;
+ int remove_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA |
+ BrowsingDataRemover::DATA_TYPE_CACHE;
PrefService* prefs = profile_->GetPrefs();
DCHECK(prefs);
// Don't try to clear LSO data if it's not supported.
if (!prefs->GetBoolean(prefs::kClearPluginLSODataEnabled))
- remove_mask &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA;
- cookies_remover_->RemoveAndReply(base::Time(), base::Time::Max(), remove_mask,
- BrowsingDataHelper::UNPROTECTED_WEB, this);
+ remove_mask &= ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
+ cookies_remover_->RemoveAndReply(
+ base::Time(), base::Time::Max(), remove_mask,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, this);
}
void ProfileResetter::ResetExtensions() {
diff --git a/chrome/browser/profiles/profiles_state.cc b/chrome/browser/profiles/profiles_state.cc
index 005c922..609a3ce6 100644
--- a/chrome/browser/profiles/profiles_state.cc
+++ b/chrome/browser/profiles/profiles_state.cc
@@ -13,6 +13,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/profiles/gaia_info_update_service.h"
#include "chrome/browser/profiles/gaia_info_update_service_factory.h"
#include "chrome/browser/profiles/profile.h"
@@ -248,7 +249,8 @@
BrowsingDataRemoverFactory::GetForBrowserContext(profile)->Remove(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_WIPE_PROFILE, BrowsingDataHelper::ALL);
+ ChromeBrowsingDataRemoverDelegate::WIPE_PROFILE,
+ ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES);
}
void SetLastUsedProfile(const std::string& profile_dir) {
diff --git a/chrome/browser/push_messaging/push_messaging_browsertest.cc b/chrome/browser/push_messaging/push_messaging_browsertest.cc
index 50645a7..2223632e 100644
--- a/chrome/browser/push_messaging/push_messaging_browsertest.cc
+++ b/chrome/browser/push_messaging/push_messaging_browsertest.cc
@@ -22,6 +22,7 @@
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
#include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/engagement/site_engagement_score.h"
#include "chrome/browser/engagement/site_engagement_service.h"
@@ -2067,9 +2068,10 @@
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(GetBrowser()->profile());
BrowsingDataRemoverCompletionObserver observer(remover);
- remover->RemoveAndReply(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_SITE_DATA,
- BrowsingDataHelper::UNPROTECTED_WEB, &observer);
+ remover->RemoveAndReply(
+ base::Time(), base::Time::Max(),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, &observer);
observer.BlockUntilCompletion();
base::RunLoop run_loop;
diff --git a/chrome/browser/ssl/chrome_ssl_host_state_delegate_test.cc b/chrome/browser/ssl/chrome_ssl_host_state_delegate_test.cc
index c505b2c18..9dae48a 100644
--- a/chrome/browser/ssl/chrome_ssl_host_state_delegate_test.cc
+++ b/chrome/browser/ssl/chrome_ssl_host_state_delegate_test.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
#include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ssl/chrome_ssl_host_state_delegate_factory.h"
@@ -619,13 +620,13 @@
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(profile);
BrowsingDataRemoverCompletionObserver completion_observer(remover);
- remover->RemoveAndReply(browsing_data::CalculateBeginDeleteTime(
- browsing_data::TimePeriod::LAST_HOUR),
- browsing_data::CalculateEndDeleteTime(
- browsing_data::TimePeriod::LAST_HOUR),
- BrowsingDataRemover::REMOVE_HISTORY,
- BrowsingDataHelper::UNPROTECTED_WEB,
- &completion_observer);
+ remover->RemoveAndReply(
+ browsing_data::CalculateBeginDeleteTime(
+ browsing_data::TimePeriod::LAST_HOUR),
+ browsing_data::CalculateEndDeleteTime(
+ browsing_data::TimePeriod::LAST_HOUR),
+ ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, &completion_observer);
completion_observer.BlockUntilCompletion();
}
};
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc
index 5225294..7f01f95 100644
--- a/chrome/browser/ui/browser_commands.cc
+++ b/chrome/browser/ui/browser_commands.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/devtools/devtools_window.h"
#include "chrome/browser/dom_distiller/tab_utils.h"
@@ -1202,8 +1203,8 @@
BrowsingDataRemover* remover =
BrowsingDataRemoverFactory::GetForBrowserContext(browser->profile());
remover->Remove(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CACHE,
- BrowsingDataHelper::UNPROTECTED_WEB);
+ BrowsingDataRemover::DATA_TYPE_CACHE,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB);
// BrowsingDataRemover takes care of deleting itself when done.
}
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
index 21441c4d..3a72ef90 100644
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
@@ -35,6 +35,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/download/download_prefs.h"
#include "chrome/browser/io_thread.h"
@@ -505,8 +506,8 @@
BrowsingDataRemoverFactory::GetForBrowserContext(
Profile::FromWebUI(web_ui()));
remover->Remove(base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CACHE,
- BrowsingDataHelper::UNPROTECTED_WEB);
+ BrowsingDataRemover::DATA_TYPE_CACHE,
+ BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB);
// BrowsingDataRemover deletes itself.
}
diff --git a/chrome/browser/ui/webui/options/clear_browser_data_handler.cc b/chrome/browser/ui/webui/options/clear_browser_data_handler.cc
index 157d1b6..fb1914e 100644
--- a/chrome/browser/ui/webui/options/clear_browser_data_handler.cc
+++ b/chrome/browser/ui/webui/options/clear_browser_data_handler.cc
@@ -26,6 +26,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/history/web_history_service_factory.h"
#include "chrome/browser/prefs/incognito_mode_prefs.h"
#include "chrome/browser/profiles/profile.h"
@@ -246,36 +247,36 @@
Profile* profile = Profile::FromWebUI(web_ui());
PrefService* prefs = profile->GetPrefs();
- int site_data_mask = BrowsingDataRemover::REMOVE_SITE_DATA;
+ int site_data_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA;
// Don't try to clear LSO data if it's not supported.
if (!*clear_plugin_lso_data_enabled_)
- site_data_mask &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA;
+ site_data_mask &= ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
int remove_mask = 0;
int origin_mask = 0;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistory) &&
*allow_deleting_browser_history_) {
- remove_mask |= BrowsingDataRemover::REMOVE_HISTORY;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY;
}
if (prefs->GetBoolean(browsing_data::prefs::kDeleteDownloadHistory) &&
*allow_deleting_browser_history_) {
- remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS;
+ remove_mask |= BrowsingDataRemover::DATA_TYPE_DOWNLOADS;
}
if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache))
- remove_mask |= BrowsingDataRemover::REMOVE_CACHE;
+ remove_mask |= BrowsingDataRemover::DATA_TYPE_CACHE;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) {
remove_mask |= site_data_mask;
- origin_mask |= BrowsingDataHelper::UNPROTECTED_WEB;
+ origin_mask |= BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
}
if (prefs->GetBoolean(browsing_data::prefs::kDeletePasswords))
- remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteFormData))
- remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteMediaLicenses))
- remove_mask |= BrowsingDataRemover::REMOVE_MEDIA_LICENSES;
+ remove_mask |= BrowsingDataRemover::DATA_TYPE_MEDIA_LICENSES;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteHostedAppsData)) {
remove_mask |= site_data_mask;
- origin_mask |= BrowsingDataHelper::PROTECTED_WEB;
+ origin_mask |= BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB;
}
// Record the deletion of cookies and cache.
diff --git a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
index 30f8aa2e..70be7a4 100644
--- a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
+++ b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/browsing_data/browsing_data_counter_utils.h"
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
#include "chrome/browser/history/web_history_service_factory.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/common/channel_info.h"
@@ -122,40 +123,40 @@
PrefService* prefs = profile_->GetPrefs();
- int site_data_mask = BrowsingDataRemover::REMOVE_SITE_DATA;
+ int site_data_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA;
// Don't try to clear LSO data if it's not supported.
if (!prefs->GetBoolean(prefs::kClearPluginLSODataEnabled))
- site_data_mask &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA;
+ site_data_mask &= ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
int remove_mask = 0;
if (prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory)) {
if (prefs->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistory))
- remove_mask |= BrowsingDataRemover::REMOVE_HISTORY;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteDownloadHistory))
- remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS;
+ remove_mask |= BrowsingDataRemover::DATA_TYPE_DOWNLOADS;
}
if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache))
- remove_mask |= BrowsingDataRemover::REMOVE_CACHE;
+ remove_mask |= BrowsingDataRemover::DATA_TYPE_CACHE;
int origin_mask = 0;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) {
remove_mask |= site_data_mask;
- origin_mask |= BrowsingDataHelper::UNPROTECTED_WEB;
+ origin_mask |= BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
}
if (prefs->GetBoolean(browsing_data::prefs::kDeletePasswords))
- remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteFormData))
- remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA;
+ remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteMediaLicenses))
- remove_mask |= BrowsingDataRemover::REMOVE_MEDIA_LICENSES;
+ remove_mask |= BrowsingDataRemover::DATA_TYPE_MEDIA_LICENSES;
if (prefs->GetBoolean(browsing_data::prefs::kDeleteHostedAppsData)) {
remove_mask |= site_data_mask;
- origin_mask |= BrowsingDataHelper::PROTECTED_WEB;
+ origin_mask |= BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB;
}
// Record the deletion of cookies and cache.