Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Unified Diff: content/browser/appcache/appcache_storage_impl.cc

Issue 924723002: [appcache] Don't write during startup. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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()
}

Powered by Google App Engine
This is Rietveld 408576698