diff options
author | shishir@chromium.org <shishir@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-25 21:36:34 +0000 |
---|---|---|
committer | shishir@chromium.org <shishir@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-25 21:36:34 +0000 |
commit | a45b1bf3554a4e17485c9d2ba9b1471c263ad6f5 (patch) | |
tree | 586bef6e614a860837ca841dfa81ad89b98c87f0 /chrome/browser/predictors/predictor_database.cc | |
parent | 598613508bdb78c7718af4aae4a130c4c91a5aea (diff) | |
download | chromium_src-a45b1bf3554a4e17485c9d2ba9b1471c263ad6f5.zip chromium_src-a45b1bf3554a4e17485c9d2ba9b1471c263ad6f5.tar.gz chromium_src-a45b1bf3554a4e17485c9d2ba9b1471c263ad6f5.tar.bz2 |
Speculative resource prefetching for URLs CL.
The learning model and database persistance for speculative resource
prefetching based on URLs. The host based learning will come in another CL.
Will add tests once the design is approved.
BUG=
TEST=unit_test
Review URL: https://chromiumcodereview.appspot.com/10416002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144019 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/predictors/predictor_database.cc')
-rw-r--r-- | chrome/browser/predictors/predictor_database.cc | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/chrome/browser/predictors/predictor_database.cc b/chrome/browser/predictors/predictor_database.cc index dc293e4..b734c29 100644 --- a/chrome/browser/predictors/predictor_database.cc +++ b/chrome/browser/predictors/predictor_database.cc @@ -11,6 +11,7 @@ #include "base/stringprintf.h" #include "base/metrics/histogram.h" #include "chrome/browser/predictors/autocomplete_action_predictor_table.h" +#include "chrome/browser/predictors/resource_prefetch_predictor_tables.h" #include "chrome/browser/profiles/profile.h" #include "content/public/browser/browser_thread.h" #include "sql/connection.h" @@ -48,7 +49,11 @@ class PredictorDatabaseInternal FilePath db_path_; sql::Connection db_; + + // TODO(shishir): These tables may not need to be refcounted. Maybe move them + // to using a WeakPtr instead. scoped_refptr<AutocompleteActionPredictorTable> autocomplete_table_; + scoped_refptr<ResourcePrefetchPredictorTables> resource_prefetch_tables_; DISALLOW_COPY_AND_ASSIGN(PredictorDatabaseInternal); }; @@ -56,7 +61,8 @@ class PredictorDatabaseInternal PredictorDatabaseInternal::PredictorDatabaseInternal(Profile* profile) : db_path_(profile->GetPath().Append(kPredictorDatabaseName)), - autocomplete_table_(new AutocompleteActionPredictorTable()) { + autocomplete_table_(new AutocompleteActionPredictorTable()), + resource_prefetch_tables_(new ResourcePrefetchPredictorTables()) { } PredictorDatabaseInternal::~PredictorDatabaseInternal() { @@ -72,6 +78,7 @@ void PredictorDatabaseInternal::Initialize() { return; autocomplete_table_->Initialize(&db_); + resource_prefetch_tables_->Initialize(&db_); LogDatabaseStats(); } @@ -79,7 +86,8 @@ void PredictorDatabaseInternal::Initialize() { void PredictorDatabaseInternal::SetCancelled() { CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); - autocomplete_table_->cancelled_.Set(); + autocomplete_table_->SetCancelled(); + resource_prefetch_tables_->SetCancelled(); } void PredictorDatabaseInternal::LogDatabaseStats() { @@ -92,9 +100,9 @@ void PredictorDatabaseInternal::LogDatabaseStats() { static_cast<int>(db_size / 1024)); autocomplete_table_->LogDatabaseStats(); + resource_prefetch_tables_->LogDatabaseStats(); } - PredictorDatabase::PredictorDatabase(Profile* profile) : db_(new PredictorDatabaseInternal(profile)) { content::BrowserThread::PostTask(content::BrowserThread::DB, FROM_HERE, @@ -113,6 +121,11 @@ scoped_refptr<AutocompleteActionPredictorTable> return db_->autocomplete_table_; } +scoped_refptr<ResourcePrefetchPredictorTables> + PredictorDatabase::resource_prefetch_tables() { + return db_->resource_prefetch_tables_; +} + sql::Connection* PredictorDatabase::GetDatabase() { return &db_->db_; } |