| Index: chrome/browser/chrome_content_browser_client_unittest.cc
|
| diff --git a/chrome/browser/chrome_content_browser_client_unittest.cc b/chrome/browser/chrome_content_browser_client_unittest.cc
|
| index 8c58ceeef6810dca56fed6fb63ab6c6943c412f1..e09b076f2ee53467a45de8d768b8289720b45971 100644
|
| --- a/chrome/browser/chrome_content_browser_client_unittest.cc
|
| +++ b/chrome/browser/chrome_content_browser_client_unittest.cc
|
| @@ -14,13 +14,14 @@
|
| #include "base/memory/ptr_util.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/metrics/field_trial.h"
|
| +#include "base/run_loop.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #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/browsing_data/mock_browsing_data_remover_delegate.h"
|
| #include "chrome/browser/search_engines/template_url_service_factory.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "components/content_settings/core/browser/host_content_settings_map.h"
|
| @@ -31,6 +32,7 @@
|
| #include "content/public/browser/browsing_data_filter_builder.h"
|
| #include "content/public/browser/navigation_controller.h"
|
| #include "content/public/browser/navigation_entry.h"
|
| +#include "content/public/browser/storage_partition.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "content/public/test/test_browser_thread_bundle.h"
|
| @@ -348,30 +350,31 @@ namespace {
|
| class ChromeContentBrowserClientClearSiteDataTest : public testing::Test {
|
| public:
|
| void SetUp() override {
|
| - BrowsingDataRemoverFactory::GetInstance()->SetTestingFactoryAndUse(
|
| - &profile_, &ChromeContentBrowserClientClearSiteDataTest::GetRemover);
|
| + BrowsingDataRemoverFactory::GetForBrowserContext(profile())
|
| + ->SetEmbedderDelegate(
|
| + base::MakeUnique<MockBrowsingDataRemoverDelegate>());
|
| + run_loop_.reset(new base::RunLoop());
|
| }
|
|
|
| content::BrowserContext* profile() { return &profile_; }
|
|
|
| - MockBrowsingDataRemover* remover() {
|
| - return static_cast<MockBrowsingDataRemover*>(
|
| - BrowsingDataRemoverFactory::GetForBrowserContext(&profile_));
|
| + MockBrowsingDataRemoverDelegate* delegate() {
|
| + return static_cast<MockBrowsingDataRemoverDelegate*>(
|
| + BrowsingDataRemoverFactory::GetForBrowserContext(profile())
|
| + ->GetEmbedderDelegate());
|
| }
|
|
|
| - void SetClearingFinished(bool finished) { finished_ = finished; }
|
| + void OnClearingFinished() { run_loop_->Quit(); }
|
|
|
| - bool IsClearingFinished() { return finished_; }
|
| -
|
| - private:
|
| - static std::unique_ptr<KeyedService> GetRemover(
|
| - content::BrowserContext* context) {
|
| - return base::WrapUnique(new MockBrowsingDataRemover(context));
|
| + void WaitForClearingFinished() {
|
| + run_loop_->Run();
|
| + run_loop_.reset(new base::RunLoop());
|
| }
|
|
|
| + private:
|
| + std::unique_ptr<base::RunLoop> run_loop_;
|
| content::TestBrowserThreadBundle thread_bundle_;
|
| TestingProfile profile_;
|
| - bool finished_;
|
| };
|
|
|
| // Tests that the parameters to ClearBrowsingData() are translated to
|
| @@ -434,27 +437,26 @@ TEST_F(ChromeContentBrowserClientClearSiteDataTest, Parameters) {
|
| int origin_deletion_mask = test_case.mask & ~domain_scoped_types;
|
|
|
| if (registrable_domain_deletion_mask) {
|
| - remover()->ExpectCallDontCareAboutFilterBuilder(
|
| - base::Time(), base::Time::Max(),
|
| - registrable_domain_deletion_mask, all_origin_types);
|
| + delegate()->ExpectCallDontCareAboutFilterBuilder(
|
| + base::Time(), base::Time::Max(), registrable_domain_deletion_mask,
|
| + all_origin_types);
|
| }
|
|
|
| if (origin_deletion_mask) {
|
| - remover()->ExpectCallDontCareAboutFilterBuilder(
|
| - base::Time(), base::Time::Max(),
|
| - origin_deletion_mask, all_origin_types);
|
| + delegate()->ExpectCallDontCareAboutFilterBuilder(
|
| + base::Time(), base::Time::Max(), origin_deletion_mask,
|
| + all_origin_types);
|
| }
|
|
|
| - SetClearingFinished(false);
|
| client.ClearSiteData(
|
| profile(), url::Origin(GURL("https://www.example.com")),
|
| test_case.cookies, test_case.storage, test_case.cache,
|
| base::Bind(
|
| - &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished,
|
| - base::Unretained(this), true));
|
| - EXPECT_TRUE(IsClearingFinished());
|
| + &ChromeContentBrowserClientClearSiteDataTest::OnClearingFinished,
|
| + base::Unretained(this)));
|
| + WaitForClearingFinished();
|
|
|
| - remover()->VerifyAndClearExpectations();
|
| + delegate()->VerifyAndClearExpectations();
|
| }
|
| }
|
|
|
| @@ -509,34 +511,33 @@ TEST_F(ChromeContentBrowserClientClearSiteDataTest, RegistrableDomains) {
|
| BrowsingDataFilterBuilder::WHITELIST));
|
| registrable_domain_filter_builder->AddRegisterableDomain(test_case.domain);
|
|
|
| - remover()->ExpectCall(
|
| + delegate()->ExpectCall(
|
| base::Time(), base::Time::Max(),
|
| BrowsingDataRemover::DATA_TYPE_COOKIES |
|
| BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS |
|
| ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA,
|
| ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES,
|
| - std::move(registrable_domain_filter_builder));
|
| + *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::DATA_TYPE_CACHE,
|
| - ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES,
|
| - std::move(origin_filter_builder));
|
| + delegate()->ExpectCall(base::Time(), base::Time::Max(),
|
| + BrowsingDataRemover::DATA_TYPE_CACHE,
|
| + ChromeBrowsingDataRemoverDelegate::ALL_ORIGIN_TYPES,
|
| + *origin_filter_builder);
|
|
|
| - SetClearingFinished(false);
|
| client.ClearSiteData(
|
| profile(), url::Origin(GURL(test_case.origin)), true /* cookies */,
|
| false /* storage */, true /* cache */,
|
| base::Bind(
|
| - &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished,
|
| - base::Unretained(this), true));
|
| - EXPECT_TRUE(IsClearingFinished());
|
| + &ChromeContentBrowserClientClearSiteDataTest::OnClearingFinished,
|
| + base::Unretained(this)));
|
| + WaitForClearingFinished();
|
|
|
| - remover()->VerifyAndClearExpectations();
|
| + delegate()->VerifyAndClearExpectations();
|
| }
|
| }
|
|
|
| @@ -547,44 +548,40 @@ TEST_F(ChromeContentBrowserClientClearSiteDataTest, Tasks) {
|
| url::Origin origin(GURL("https://www.example.com"));
|
|
|
| // No removal tasks.
|
| - SetClearingFinished(false);
|
| client.ClearSiteData(
|
| profile(), origin, false /* cookies */, false /* storage */,
|
| false /* cache */,
|
| base::Bind(
|
| - &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished,
|
| - base::Unretained(this), true));
|
| - EXPECT_TRUE(IsClearingFinished());
|
| + &ChromeContentBrowserClientClearSiteDataTest::OnClearingFinished,
|
| + base::Unretained(this)));
|
| + WaitForClearingFinished();
|
|
|
| // One removal task: deleting cookies with a domain filter.
|
| - SetClearingFinished(false);
|
| client.ClearSiteData(
|
| profile(), origin, true /* cookies */, false /* storage */,
|
| false /* cache */,
|
| base::Bind(
|
| - &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished,
|
| - base::Unretained(this), true));
|
| - EXPECT_TRUE(IsClearingFinished());
|
| + &ChromeContentBrowserClientClearSiteDataTest::OnClearingFinished,
|
| + base::Unretained(this)));
|
| + WaitForClearingFinished();
|
|
|
| // One removal task: deleting cache with a domain filter.
|
| - SetClearingFinished(false);
|
| client.ClearSiteData(
|
| profile(), origin, false /* cookies */, false /* storage */,
|
| true /* cache */,
|
| base::Bind(
|
| - &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished,
|
| - base::Unretained(this), true));
|
| - EXPECT_TRUE(IsClearingFinished());
|
| + &ChromeContentBrowserClientClearSiteDataTest::OnClearingFinished,
|
| + base::Unretained(this)));
|
| + WaitForClearingFinished();
|
|
|
| // Two removal tasks, with domain and origin filters respectively.
|
| - SetClearingFinished(false);
|
| client.ClearSiteData(
|
| profile(), origin, true /* cookies */, false /* storage */,
|
| true /* cache */,
|
| base::Bind(
|
| - &ChromeContentBrowserClientClearSiteDataTest::SetClearingFinished,
|
| - base::Unretained(this), true));
|
| - EXPECT_TRUE(IsClearingFinished());
|
| + &ChromeContentBrowserClientClearSiteDataTest::OnClearingFinished,
|
| + base::Unretained(this)));
|
| + WaitForClearingFinished();
|
| }
|
|
|
| } // namespace
|
|
|