| Index: content/browser/appcache/appcache_storage_impl.cc
|
| diff --git a/content/browser/appcache/appcache_storage_impl.cc b/content/browser/appcache/appcache_storage_impl.cc
|
| index 5df1d3ebdd15055a11c3b757d14a9070cdbf5f14..83c59ac06879ac2c1f8d112c08bf0710529377aa 100644
|
| --- a/content/browser/appcache/appcache_storage_impl.cc
|
| +++ b/content/browser/appcache/appcache_storage_impl.cc
|
| @@ -14,6 +14,7 @@
|
| #include "base/files/file_util.h"
|
| #include "base/logging.h"
|
| #include "base/message_loop/message_loop.h"
|
| +#include "base/profiler/scoped_tracker.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/stl_util.h"
|
| #include "base/strings/string_util.h"
|
| @@ -285,6 +286,8 @@ class AppCacheStorageImpl::InitTask : public DatabaseTask {
|
| };
|
|
|
| void AppCacheStorageImpl::InitTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION("AppCacheStorageImpl::InitTask"));
|
| // If there is no sql database, ensure there is no disk cache either.
|
| if (!db_file_path_.empty() &&
|
| !base::PathExists(db_file_path_) &&
|
| @@ -357,6 +360,8 @@ class AppCacheStorageImpl::GetAllInfoTask : public DatabaseTask {
|
| };
|
|
|
| void AppCacheStorageImpl::GetAllInfoTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION("AppCacheStorageImpl::GetAllInfoTask"));
|
| std::set<GURL> origins;
|
| database_->FindOriginsWithGroups(&origins);
|
| for (std::set<GURL>::const_iterator origin = origins.begin();
|
| @@ -512,14 +517,17 @@ class AppCacheStorageImpl::CacheLoadTask : public StoreOrLoadTask {
|
| };
|
|
|
| void AppCacheStorageImpl::CacheLoadTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION("AppCacheStorageImpl::CacheLoadTask"));
|
| success_ =
|
| database_->FindCache(cache_id_, &cache_record_) &&
|
| database_->FindGroup(cache_record_.group_id, &group_record_) &&
|
| FindRelatedCacheRecords(cache_id_);
|
|
|
| if (success_)
|
| - database_->UpdateGroupLastAccessTime(group_record_.group_id,
|
| - base::Time::Now());
|
| + database_->LazyUpdateLastAccessTime(group_record_.group_id,
|
| + base::Time::Now());
|
| + // TODO: schedule timer to call CommitLastAccessTimes()
|
| }
|
|
|
| void AppCacheStorageImpl::CacheLoadTask::RunCompleted() {
|
| @@ -527,6 +535,7 @@ void AppCacheStorageImpl::CacheLoadTask::RunCompleted() {
|
| scoped_refptr<AppCache> cache;
|
| scoped_refptr<AppCacheGroup> group;
|
| if (success_ && !storage_->is_disabled()) {
|
| + // TODO: schedule timer to call CommitLastAccessTimes()
|
| DCHECK(cache_record_.cache_id == cache_id_);
|
| CreateCacheAndGroupFromRecords(&cache, &group);
|
| }
|
| @@ -554,14 +563,17 @@ class AppCacheStorageImpl::GroupLoadTask : public StoreOrLoadTask {
|
| };
|
|
|
| void AppCacheStorageImpl::GroupLoadTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION("AppCacheStorageImpl::GroupLoadTask"));
|
| success_ =
|
| database_->FindGroupForManifestUrl(manifest_url_, &group_record_) &&
|
| database_->FindCacheForGroup(group_record_.group_id, &cache_record_) &&
|
| FindRelatedCacheRecords(cache_record_.cache_id);
|
|
|
| if (success_)
|
| - database_->UpdateGroupLastAccessTime(group_record_.group_id,
|
| - base::Time::Now());
|
| + database_->LazyUpdateLastAccessTime(group_record_.group_id,
|
| + base::Time::Now());
|
| + // TODO: schedule timer to call CommitLastAccessTimes()
|
| }
|
|
|
| void AppCacheStorageImpl::GroupLoadTask::RunCompleted() {
|
| @@ -570,6 +582,7 @@ void AppCacheStorageImpl::GroupLoadTask::RunCompleted() {
|
| scoped_refptr<AppCache> cache;
|
| if (!storage_->is_disabled()) {
|
| if (success_) {
|
| + // TODO: schedule timer to call CommitLastAccessTimes()
|
| DCHECK(group_record_.manifest_url == manifest_url_);
|
| CreateCacheAndGroupFromRecords(&cache, &group);
|
| } else {
|
| @@ -668,6 +681,9 @@ void AppCacheStorageImpl::StoreGroupAndCacheTask::OnQuotaCallback(
|
| }
|
|
|
| void AppCacheStorageImpl::StoreGroupAndCacheTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "AppCacheStorageImpl::StoreGroupAndCacheTask"));
|
| DCHECK(!success_);
|
| sql::Connection* connection = database_->db_connection();
|
| if (!connection)
|
| @@ -690,8 +706,8 @@ void AppCacheStorageImpl::StoreGroupAndCacheTask::Run() {
|
| DCHECK(group_record_.manifest_url == existing_group.manifest_url);
|
| DCHECK(group_record_.origin == existing_group.origin);
|
|
|
| - database_->UpdateGroupLastAccessTime(group_record_.group_id,
|
| - base::Time::Now());
|
| + database_->UpdateLastAccessTime(group_record_.group_id,
|
| + base::Time::Now());
|
|
|
| AppCacheDatabase::CacheRecord cache;
|
| if (database_->FindCacheForGroup(group_record_.group_id, &cache)) {
|
| @@ -931,6 +947,9 @@ class AppCacheStorageImpl::FindMainResponseTask : public DatabaseTask {
|
| };
|
|
|
| void AppCacheStorageImpl::FindMainResponseTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "AppCacheStorageImpl::FindMainResponseTask"));
|
| // NOTE: The heuristics around choosing amoungst multiple candidates
|
| // is underspecified, and just plain not fully understood. This needs
|
| // to be refined.
|
| @@ -1114,6 +1133,9 @@ class AppCacheStorageImpl::MarkEntryAsForeignTask : public DatabaseTask {
|
| };
|
|
|
| void AppCacheStorageImpl::MarkEntryAsForeignTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "AppCacheStorageImpl::MarkEntryAsForeignTask"));
|
| database_->AddEntryFlags(entry_url_, cache_id_, AppCacheEntry::FOREIGN);
|
| }
|
|
|
| @@ -1162,6 +1184,9 @@ AppCacheStorageImpl::MakeGroupObsoleteTask::MakeGroupObsoleteTask(
|
| new_origin_usage_(-1) {}
|
|
|
| void AppCacheStorageImpl::MakeGroupObsoleteTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "AppCacheStorageImpl::MakeGroupObsoleteTask"));
|
| DCHECK(!success_);
|
| sql::Connection* connection = database_->db_connection();
|
| if (!connection)
|
| @@ -1233,6 +1258,9 @@ class AppCacheStorageImpl::GetDeletableResponseIdsTask : public DatabaseTask {
|
| };
|
|
|
| void AppCacheStorageImpl::GetDeletableResponseIdsTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "AppCacheStorageImpl::GetDeletableResponseIdsTask"));
|
| const int kSqlLimit = 1000;
|
| database_->GetDeletableResponseIds(&response_ids_, max_rowid_, kSqlLimit);
|
| // TODO(michaeln): retrieve group_ids too
|
| @@ -1261,6 +1289,9 @@ class AppCacheStorageImpl::InsertDeletableResponseIdsTask
|
| };
|
|
|
| void AppCacheStorageImpl::InsertDeletableResponseIdsTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "AppCacheStorageImpl::InsertDeletableResponseIdsTask"));
|
| database_->InsertDeletableResponseIds(response_ids_);
|
| // TODO(michaeln): store group_ids too
|
| }
|
| @@ -1283,6 +1314,9 @@ class AppCacheStorageImpl::DeleteDeletableResponseIdsTask
|
| };
|
|
|
| void AppCacheStorageImpl::DeleteDeletableResponseIdsTask::Run() {
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "AppCacheStorageImpl::DeleteDeletableResponseIdsTask"));
|
| database_->DeleteDeletableResponseIds(response_ids_);
|
| }
|
|
|
| @@ -1310,7 +1344,11 @@ class AppCacheStorageImpl::UpdateGroupLastAccessTimeTask
|
| };
|
|
|
| void AppCacheStorageImpl::UpdateGroupLastAccessTimeTask::Run() {
|
| - database_->UpdateGroupLastAccessTime(group_id_, last_access_time_);
|
| + tracked_objects::ScopedTracker tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "AppCacheStorageImpl::UpdateGroupLastAccessTimeTask"));
|
| + database_->LazyUpdateLastAccessTime(group_id_, last_access_time_);
|
| + // TODO: schedule timer to call CommitLastAccessTimes()
|
| }
|
|
|
|
|
|
|