Index: chrome/browser/predictors/predictor_database.cc |
diff --git a/chrome/browser/predictors/predictor_database.cc b/chrome/browser/predictors/predictor_database.cc |
index eb2bf5cda43a289e2931e9f17f2d574715e6e3b8..9f8460a100f6c0c118ccf810589c75dbae2c2bac 100644 |
--- a/chrome/browser/predictors/predictor_database.cc |
+++ b/chrome/browser/predictors/predictor_database.cc |
@@ -12,6 +12,8 @@ |
#include "base/strings/stringprintf.h" |
#include "chrome/browser/predictors/autocomplete_action_predictor_table.h" |
#include "chrome/browser/predictors/logged_in_predictor_table.h" |
+#include "chrome/browser/predictors/resource_prefetch_predictor.h" |
+#include "chrome/browser/predictors/resource_prefetch_predictor_tables.h" |
#include "chrome/browser/prerender/prerender_field_trial.h" |
#include "chrome/browser/profiles/profile.h" |
#include "content/public/browser/browser_thread.h" |
@@ -50,6 +52,7 @@ class PredictorDatabaseInternal |
// Cancels pending DB transactions. Should only be called on the UI thread. |
void SetCancelled(); |
+ bool is_resource_prefetch_predictor_enabled_; |
base::FilePath db_path_; |
scoped_ptr<sql::Connection> db_; |
@@ -57,6 +60,7 @@ class PredictorDatabaseInternal |
// to using a WeakPtr instead. |
scoped_refptr<AutocompleteActionPredictorTable> autocomplete_table_; |
scoped_refptr<LoggedInPredictorTable> logged_in_table_; |
+ scoped_refptr<ResourcePrefetchPredictorTables> resource_prefetch_tables_; |
DISALLOW_COPY_AND_ASSIGN(PredictorDatabaseInternal); |
}; |
@@ -66,8 +70,12 @@ PredictorDatabaseInternal::PredictorDatabaseInternal(Profile* profile) |
: db_path_(profile->GetPath().Append(kPredictorDatabaseName)), |
db_(new sql::Connection()), |
autocomplete_table_(new AutocompleteActionPredictorTable()), |
- logged_in_table_(new LoggedInPredictorTable()) { |
+ logged_in_table_(new LoggedInPredictorTable()), |
+ resource_prefetch_tables_(new ResourcePrefetchPredictorTables()) { |
db_->set_histogram_tag("Predictor"); |
+ ResourcePrefetchPredictorConfig config; |
+ is_resource_prefetch_predictor_enabled_ = |
+ IsSpeculativeResourcePrefetchingEnabled(profile, &config); |
} |
PredictorDatabaseInternal::~PredictorDatabaseInternal() { |
@@ -89,6 +97,7 @@ void PredictorDatabaseInternal::Initialize() { |
autocomplete_table_->Initialize(db_.get()); |
logged_in_table_->Initialize(db_.get()); |
+ resource_prefetch_tables_->Initialize(db_.get()); |
LogDatabaseStats(); |
} |
@@ -99,6 +108,7 @@ void PredictorDatabaseInternal::SetCancelled() { |
autocomplete_table_->SetCancelled(); |
logged_in_table_->SetCancelled(); |
+ resource_prefetch_tables_->SetCancelled(); |
} |
void PredictorDatabaseInternal::LogDatabaseStats() { |
@@ -113,6 +123,8 @@ void PredictorDatabaseInternal::LogDatabaseStats() { |
autocomplete_table_->LogDatabaseStats(); |
logged_in_table_->LogDatabaseStats(); |
+ if (is_resource_prefetch_predictor_enabled_) |
+ resource_prefetch_tables_->LogDatabaseStats(); |
} |
PredictorDatabase::PredictorDatabase(Profile* profile) |
@@ -138,6 +150,11 @@ scoped_refptr<LoggedInPredictorTable> |
return db_->logged_in_table_; |
} |
+scoped_refptr<ResourcePrefetchPredictorTables> |
+ PredictorDatabase::resource_prefetch_tables() { |
+ return db_->resource_prefetch_tables_; |
+} |
+ |
sql::Connection* PredictorDatabase::GetDatabase() { |
return db_->db_.get(); |
} |