Index: components/precache/content/precache_manager.cc |
diff --git a/components/precache/content/precache_manager.cc b/components/precache/content/precache_manager.cc |
index c8fc3dbe469b91356d7184da1d363045f4533f8a..08e05620634d24a5c34bf5d21968c56affa58d56 100644 |
--- a/components/precache/content/precache_manager.cc |
+++ b/components/precache/content/precache_manager.cc |
@@ -15,10 +15,10 @@ |
#include "base/metrics/field_trial.h" |
#include "base/prefs/pref_service.h" |
#include "base/time/time.h" |
-#include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h" |
#include "components/history/core/browser/history_service.h" |
#include "components/precache/core/precache_database.h" |
#include "components/precache/core/precache_switches.h" |
+#include "components/sync_driver/sync_service.h" |
#include "components/user_prefs/user_prefs.h" |
#include "content/public/browser/browser_context.h" |
#include "content/public/browser/browser_thread.h" |
@@ -40,8 +40,10 @@ int NumTopHosts() { |
return kNumTopHosts; |
} |
-PrecacheManager::PrecacheManager(content::BrowserContext* browser_context) |
+PrecacheManager::PrecacheManager(content::BrowserContext* browser_context, |
+ sync_driver::SyncService* sync_service) |
: browser_context_(browser_context), |
+ sync_service_(sync_service), |
precache_database_(new PrecacheDatabase()), |
is_precaching_(false) { |
base::FilePath db_path(browser_context_->GetPath().Append( |
@@ -64,9 +66,10 @@ bool PrecacheManager::IsPrecachingEnabled() { |
} |
bool PrecacheManager::IsPrecachingAllowed() { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- return user_prefs::UserPrefs::Get(browser_context_)->GetBoolean( |
- data_reduction_proxy::prefs::kDataReductionProxyEnabled); |
+ return sync_service_ && sync_service_->CanSyncStart() && |
+ sync_service_->HasSyncSetupCompleted() && |
+ sync_service_->GetPreferredDataTypes().Has(syncer::SESSIONS) && |
+ !sync_service_->GetEncryptedDataTypes().Has(syncer::SESSIONS); |
} |
void PrecacheManager::StartPrecaching( |