Index: chrome/browser/android/ntp/popular_sites.cc |
diff --git a/chrome/browser/android/ntp/popular_sites.cc b/chrome/browser/android/ntp/popular_sites.cc |
index be7e3e415ded77ffb948ef758cc57ce2c404c894..13ee9264fdc5798ef9501d30d258cf444cce20b3 100644 |
--- a/chrome/browser/android/ntp/popular_sites.cc |
+++ b/chrome/browser/android/ntp/popular_sites.cc |
@@ -18,8 +18,6 @@ |
#include "base/time/time.h" |
#include "base/values.h" |
#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/search_engines/template_url_service_factory.h" |
#include "chrome/common/chrome_paths.h" |
#include "chrome/common/chrome_switches.h" |
#include "components/google/core/browser/google_util.h" |
@@ -48,17 +46,14 @@ const char kPopularSitesVersionPref[] = "popular_sites_version"; |
// Extract the country from the default search engine if the default search |
// engine is Google. |
-std::string GetDefaultSearchEngineCountryCode(Profile* profile) { |
- DCHECK(profile); |
+std::string GetDefaultSearchEngineCountryCode( |
+ const TemplateURLService* template_url_service) { |
+ DCHECK(template_url_service); |
base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); |
if (!cmd_line->HasSwitch(switches::kEnableNTPSearchEngineCountryDetection)) |
return std::string(); |
- const TemplateURLService* template_url_service = |
- TemplateURLServiceFactory::GetForProfile(profile); |
- DCHECK(template_url_service); |
- |
const TemplateURL* default_provider = |
template_url_service->GetDefaultSearchProvider(); |
// It's possible to not have a default provider in the case that the default |
@@ -93,12 +88,13 @@ std::string GetVariationsServiceCountry() { |
// Google is the default search engine set. If Google is not the default search |
// engine use the country provided by VariationsService. Fallback to a default |
// if we can't make an educated guess. |
-std::string GetCountryToUse(Profile* profile, |
+std::string GetCountryToUse(const TemplateURLService* template_url_service, |
const std::string& override_country) { |
if (!override_country.empty()) |
return override_country; |
- std::string country_code = GetDefaultSearchEngineCountryCode(profile); |
+ std::string country_code = GetDefaultSearchEngineCountryCode( |
+ template_url_service); |
if (country_code.empty()) |
country_code = GetVariationsServiceCountry(); |
@@ -179,32 +175,44 @@ PopularSites::Site::Site(const Site& other) = default; |
PopularSites::Site::~Site() {} |
-PopularSites::PopularSites(Profile* profile, |
+PopularSites::PopularSites(PrefService* prefs, |
+ const TemplateURLService* template_url_service, |
+ net::URLRequestContextGetter* download_context, |
const std::string& override_country, |
const std::string& override_version, |
bool force_download, |
const FinishedCallback& callback) |
- : PopularSites(profile, |
- GetCountryToUse(profile, override_country), |
+ : PopularSites(prefs, |
+ template_url_service, |
+ download_context, |
+ GetCountryToUse(template_url_service, override_country), |
GetVersionToUse(override_version), |
GURL(), |
force_download, |
callback) {} |
-PopularSites::PopularSites(Profile* profile, |
+PopularSites::PopularSites(PrefService* prefs, |
+ const TemplateURLService* template_url_service, |
+ net::URLRequestContextGetter* download_context, |
const GURL& url, |
const FinishedCallback& callback) |
- : PopularSites(profile, std::string(), std::string(), url, true, callback) { |
-} |
+ : PopularSites(prefs, |
+ template_url_service, |
+ download_context, |
+ std::string(), |
+ std::string(), |
+ url, |
+ true, |
+ callback) {} |
PopularSites::~PopularSites() {} |
std::string PopularSites::GetCountry() const { |
- return profile_->GetPrefs()->GetString(kPopularSitesCountryPref); |
+ return prefs_->GetString(kPopularSitesCountryPref); |
} |
std::string PopularSites::GetVersion() const { |
- return profile_->GetPrefs()->GetString(kPopularSitesVersionPref); |
+ return prefs_->GetString(kPopularSitesVersionPref); |
} |
// static |
@@ -215,7 +223,9 @@ void PopularSites::RegisterProfilePrefs( |
user_prefs->RegisterStringPref(kPopularSitesVersionPref, std::string()); |
} |
-PopularSites::PopularSites(Profile* profile, |
+PopularSites::PopularSites(PrefService* prefs, |
+ const TemplateURLService* template_url_service, |
+ net::URLRequestContextGetter* download_context, |
const std::string& country, |
const std::string& version, |
const GURL& override_url, |
@@ -225,10 +235,12 @@ PopularSites::PopularSites(Profile* profile, |
pending_country_(country), |
pending_version_(version), |
local_path_(GetPopularSitesPath()), |
- profile_(profile), |
+ prefs_(prefs), |
+ template_url_service_(template_url_service), |
+ download_context_(download_context), |
weak_ptr_factory_(this) { |
const base::Time last_download_time = base::Time::FromInternalValue( |
- profile_->GetPrefs()->GetInt64(kPopularSitesLastDownloadPref)); |
+ prefs_->GetInt64(kPopularSitesLastDownloadPref)); |
const base::TimeDelta time_since_last_download = |
base::Time::Now() - last_download_time; |
const base::TimeDelta redownload_interval = |
@@ -256,7 +268,7 @@ void PopularSites::FetchPopularSites(const GURL& url, |
bool force_download, |
bool is_fallback) { |
downloader_.reset(new FileDownloader( |
- url, local_path_, force_download, profile_->GetRequestContext(), |
+ url, local_path_, force_download, download_context_, |
base::Bind(&PopularSites::OnDownloadDone, base::Unretained(this), |
is_fallback))); |
} |
@@ -264,13 +276,12 @@ void PopularSites::FetchPopularSites(const GURL& url, |
void PopularSites::OnDownloadDone(bool is_fallback, |
FileDownloader::Result result) { |
downloader_.reset(); |
- PrefService* prefs = profile_->GetPrefs(); |
switch (result) { |
case FileDownloader::DOWNLOADED: |
- prefs->SetInt64(kPopularSitesLastDownloadPref, |
+ prefs_->SetInt64(kPopularSitesLastDownloadPref, |
base::Time::Now().ToInternalValue()); |
- prefs->SetString(kPopularSitesCountryPref, pending_country_); |
- prefs->SetString(kPopularSitesVersionPref, pending_version_); |
+ prefs_->SetString(kPopularSitesCountryPref, pending_country_); |
+ prefs_->SetString(kPopularSitesVersionPref, pending_version_); |
ParseSiteList(local_path_); |
break; |
case FileDownloader::EXISTS: |