| 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();
|
| }
|
|
|