| Index: chrome/browser/browsing_data/history_counter_browsertest.cc
 | 
| diff --git a/chrome/browser/browsing_data/history_counter_browsertest.cc b/chrome/browser/browsing_data/history_counter_browsertest.cc
 | 
| index 1366efa53c8c271f3a1a7c5ae0b66273d79cd372..93f1d7d1b4aadcd59cff872e4787fe0ae27e9f76 100644
 | 
| --- a/chrome/browser/browsing_data/history_counter_browsertest.cc
 | 
| +++ b/chrome/browser/browsing_data/history_counter_browsertest.cc
 | 
| @@ -2,13 +2,16 @@
 | 
|  // Use of this source code is governed by a BSD-style license that can be
 | 
|  // found in the LICENSE file.
 | 
|  
 | 
| -#include "chrome/browser/browsing_data/history_counter.h"
 | 
| +#include "components/browsing_data/core/counters/history_counter.h"
 | 
|  
 | 
| +#include "base/bind.h"
 | 
| +#include "base/bind_helpers.h"
 | 
|  #include "base/run_loop.h"
 | 
|  #include "chrome/browser/history/history_service_factory.h"
 | 
|  #include "chrome/browser/history/web_history_service_factory.h"
 | 
|  #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
 | 
|  #include "chrome/browser/signin/signin_manager_factory.h"
 | 
| +#include "chrome/browser/sync/profile_sync_service_factory.h"
 | 
|  #include "chrome/browser/sync/test/integration/sync_test.h"
 | 
|  #include "chrome/browser/ui/browser.h"
 | 
|  #include "components/browser_sync/browser/profile_sync_service.h"
 | 
| @@ -38,14 +41,19 @@ class HistoryCounterTest : public SyncTest {
 | 
|  
 | 
|    void SetUpOnMainThread() override {
 | 
|      time_ = base::Time::Now();
 | 
| -    service_ = HistoryServiceFactory::GetForProfileWithoutCreating(
 | 
| +    history_service_ = HistoryServiceFactory::GetForProfileWithoutCreating(
 | 
|          browser()->profile());
 | 
| +    fake_web_history_service_.reset(new history::FakeWebHistoryService(
 | 
| +        ProfileOAuth2TokenServiceFactory::GetForProfile(browser()->profile()),
 | 
| +        SigninManagerFactory::GetForProfile(browser()->profile()),
 | 
| +        browser()->profile()->GetRequestContext()));
 | 
| +
 | 
|      SetHistoryDeletionPref(true);
 | 
|      SetDeletionPeriodPref(browsing_data::EVERYTHING);
 | 
|    }
 | 
|  
 | 
|    void AddVisit(const std::string url) {
 | 
| -    service_->AddPage(GURL(url), time_, history::SOURCE_BROWSED);
 | 
| +    history_service_->AddPage(GURL(url), time_, history::SOURCE_BROWSED);
 | 
|    }
 | 
|  
 | 
|    const base::Time& GetCurrentTime() {
 | 
| @@ -86,8 +94,9 @@ class HistoryCounterTest : public SyncTest {
 | 
|      finished_ = result->Finished();
 | 
|  
 | 
|      if (finished_) {
 | 
| -      HistoryCounter::HistoryResult* history_result =
 | 
| -          static_cast<HistoryCounter::HistoryResult*>(result.get());
 | 
| +      browsing_data::HistoryCounter::HistoryResult* history_result =
 | 
| +          static_cast<browsing_data::HistoryCounter::HistoryResult*>(
 | 
| +              result.get());
 | 
|  
 | 
|        local_result_ = history_result->Value();
 | 
|        has_synced_visits_ = history_result->has_synced_visits();
 | 
| @@ -111,9 +120,27 @@ class HistoryCounterTest : public SyncTest {
 | 
|      CountingFinishedSinceLastAsked();
 | 
|    }
 | 
|  
 | 
| +  history::WebHistoryService* GetFakeWebHistoryService(Profile* profile,
 | 
| +                                                       bool check_sync_status) {
 | 
| +    // |check_sync_status| is true when the factory should check if
 | 
| +    // history sync is enabled.
 | 
| +    if (!check_sync_status ||
 | 
| +        WebHistoryServiceFactory::GetForProfile(profile)) {
 | 
| +      return fake_web_history_service_.get();
 | 
| +    }
 | 
| +    return nullptr;
 | 
| +  }
 | 
| +
 | 
| +  history::WebHistoryService* GetRealWebHistoryService(Profile* profile) {
 | 
| +    return WebHistoryServiceFactory::GetForProfile(profile);
 | 
| +  }
 | 
| +
 | 
| +  history::HistoryService* GetHistoryService() { return history_service_; }
 | 
| +
 | 
|   private:
 | 
|    std::unique_ptr<base::RunLoop> run_loop_;
 | 
| -  history::HistoryService* service_;
 | 
| +  history::HistoryService* history_service_;
 | 
| +  std::unique_ptr<history::FakeWebHistoryService> fake_web_history_service_;
 | 
|    base::Time time_;
 | 
|  
 | 
|    bool finished_;
 | 
| @@ -147,7 +174,13 @@ IN_PROC_BROWSER_TEST_F(HistoryCounterTest, DuplicateVisits) {
 | 
|  
 | 
|    Profile* profile = browser()->profile();
 | 
|  
 | 
| -  HistoryCounter counter(profile);
 | 
| +  browsing_data::HistoryCounter counter(
 | 
| +      GetHistoryService(),
 | 
| +      base::Bind(&HistoryCounterTest::GetRealWebHistoryService,
 | 
| +                 base::Unretained(this),
 | 
| +                 base::Unretained(profile)),
 | 
| +      ProfileSyncServiceFactory::GetForProfile(profile));
 | 
| +
 | 
|    counter.Init(profile->GetPrefs(), base::Bind(&HistoryCounterTest::Callback,
 | 
|                                                 base::Unretained(this)));
 | 
|    counter.Restart();
 | 
| @@ -165,7 +198,13 @@ IN_PROC_BROWSER_TEST_F(HistoryCounterTest, PrefChanged) {
 | 
|  
 | 
|    Profile* profile = browser()->profile();
 | 
|  
 | 
| -  HistoryCounter counter(profile);
 | 
| +  browsing_data::HistoryCounter counter(
 | 
| +      GetHistoryService(),
 | 
| +      base::Bind(&HistoryCounterTest::GetRealWebHistoryService,
 | 
| +                 base::Unretained(this),
 | 
| +                 base::Unretained(profile)),
 | 
| +      ProfileSyncServiceFactory::GetForProfile(profile));
 | 
| +
 | 
|    counter.Init(profile->GetPrefs(), base::Bind(&HistoryCounterTest::Callback,
 | 
|                                                 base::Unretained(this)));
 | 
|    SetHistoryDeletionPref(true);
 | 
| @@ -182,7 +221,13 @@ IN_PROC_BROWSER_TEST_F(HistoryCounterTest, PrefIsFalse) {
 | 
|  
 | 
|    Profile* profile = browser()->profile();
 | 
|  
 | 
| -  HistoryCounter counter(profile);
 | 
| +  browsing_data::HistoryCounter counter(
 | 
| +      GetHistoryService(),
 | 
| +      base::Bind(&HistoryCounterTest::GetRealWebHistoryService,
 | 
| +                 base::Unretained(this),
 | 
| +                 base::Unretained(profile)),
 | 
| +      ProfileSyncServiceFactory::GetForProfile(profile));
 | 
| +
 | 
|    counter.Init(profile->GetPrefs(), base::Bind(&HistoryCounterTest::Callback,
 | 
|                                                 base::Unretained(this)));
 | 
|    counter.Restart();
 | 
| @@ -216,7 +261,13 @@ IN_PROC_BROWSER_TEST_F(HistoryCounterTest, PeriodChanged) {
 | 
|  
 | 
|    Profile* profile = browser()->profile();
 | 
|  
 | 
| -  HistoryCounter counter(profile);
 | 
| +  browsing_data::HistoryCounter counter(
 | 
| +      GetHistoryService(),
 | 
| +      base::Bind(&HistoryCounterTest::GetRealWebHistoryService,
 | 
| +                 base::Unretained(this),
 | 
| +                 base::Unretained(profile)),
 | 
| +      ProfileSyncServiceFactory::GetForProfile(profile));
 | 
| +
 | 
|    counter.Init(profile->GetPrefs(), base::Bind(&HistoryCounterTest::Callback,
 | 
|                                                 base::Unretained(this)));
 | 
|  
 | 
| @@ -247,17 +298,21 @@ IN_PROC_BROWSER_TEST_F(HistoryCounterTest, Synced) {
 | 
|    // for testing.
 | 
|    Profile* profile = browser()->profile();
 | 
|  
 | 
| -  std::unique_ptr<history::FakeWebHistoryService> service(
 | 
| -      new history::FakeWebHistoryService(
 | 
| -          ProfileOAuth2TokenServiceFactory::GetForProfile(profile),
 | 
| -          SigninManagerFactory::GetForProfile(profile),
 | 
| -          profile->GetRequestContext()));
 | 
| +  browsing_data::HistoryCounter counter(
 | 
| +      GetHistoryService(),
 | 
| +      base::Bind(&HistoryCounterTest::GetFakeWebHistoryService,
 | 
| +                 base::Unretained(this),
 | 
| +                 base::Unretained(profile),
 | 
| +                 false),
 | 
| +      ProfileSyncServiceFactory::GetForProfile(profile));
 | 
|  
 | 
| -  HistoryCounter counter(profile);
 | 
| -  counter.SetWebHistoryServiceForTesting(service.get());
 | 
|    counter.Init(profile->GetPrefs(), base::Bind(&HistoryCounterTest::Callback,
 | 
|                                                 base::Unretained(this)));
 | 
|  
 | 
| +  history::FakeWebHistoryService* service =
 | 
| +    static_cast<history::FakeWebHistoryService*>(GetFakeWebHistoryService(
 | 
| +        profile, false));
 | 
| +
 | 
|    // No entries locally and no entries in Sync.
 | 
|    service->SetupFakeResponse(true /* success */, net::HTTP_OK);
 | 
|    counter.Restart();
 | 
| @@ -289,7 +344,7 @@ IN_PROC_BROWSER_TEST_F(HistoryCounterTest, Synced) {
 | 
|    // To err on the safe side, if the server request fails, we assume that there
 | 
|    // might be some items on the server.
 | 
|    service->SetupFakeResponse(true /* success */,
 | 
| -                             net::HTTP_INTERNAL_SERVER_ERROR);
 | 
| +                                              net::HTTP_INTERNAL_SERVER_ERROR);
 | 
|    counter.Restart();
 | 
|    WaitForCounting();
 | 
|    EXPECT_EQ(0u, GetLocalResult());
 | 
| @@ -297,7 +352,7 @@ IN_PROC_BROWSER_TEST_F(HistoryCounterTest, Synced) {
 | 
|  
 | 
|    // Same when the entire query fails.
 | 
|    service->SetupFakeResponse(false /* success */,
 | 
| -                             net::HTTP_INTERNAL_SERVER_ERROR);
 | 
| +                                              net::HTTP_INTERNAL_SERVER_ERROR);
 | 
|    counter.Restart();
 | 
|    WaitForCounting();
 | 
|    EXPECT_EQ(0u, GetLocalResult());
 | 
| @@ -332,13 +387,15 @@ IN_PROC_BROWSER_TEST_F(HistoryCounterTest, DISABLED_RestartOnSyncChange) {
 | 
|    Profile* profile = GetProfile(kFirstProfileIndex);
 | 
|  
 | 
|    // Set up the fake web history service and the counter.
 | 
| -  std::unique_ptr<history::FakeWebHistoryService> web_history_service(
 | 
| -      new history::FakeWebHistoryService(
 | 
| -          ProfileOAuth2TokenServiceFactory::GetForProfile(browser()->profile()),
 | 
| -          SigninManagerFactory::GetForProfile(browser()->profile()),
 | 
| -          browser()->profile()->GetRequestContext()));
 | 
| -  HistoryCounter counter(profile);
 | 
| -  counter.SetWebHistoryServiceForTesting(web_history_service.get());
 | 
| +
 | 
| +  browsing_data::HistoryCounter counter(
 | 
| +      GetHistoryService(),
 | 
| +      base::Bind(&HistoryCounterTest::GetFakeWebHistoryService,
 | 
| +                 base::Unretained(this),
 | 
| +                 base::Unretained(profile),
 | 
| +                 true),
 | 
| +      sync_service);
 | 
| +
 | 
|    counter.Init(profile->GetPrefs(), base::Bind(&HistoryCounterTest::Callback,
 | 
|                                                 base::Unretained(this)));
 | 
|  
 | 
| 
 |