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

Unified Diff: storage/browser/quota/quota_manager.cc

Issue 1102353009: WIP Durable storage, chrome side (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ToT Created 5 years, 7 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
« no previous file with comments | « storage/browser/quota/quota_manager.h ('k') | storage/common/fileapi/file_system_util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: storage/browser/quota/quota_manager.cc
diff --git a/storage/browser/quota/quota_manager.cc b/storage/browser/quota/quota_manager.cc
index 13b84c74106b217e77f4d68b99c9842808339a9e..ac6e4dbc5d4d394924730c6c5f2d7c2fafb4267a 100644
--- a/storage/browser/quota/quota_manager.cc
+++ b/storage/browser/quota/quota_manager.cc
@@ -150,6 +150,13 @@ bool GetLRUOriginOnDBThread(StorageType type,
return true;
}
+bool GetDurableOnDBThread(const GURL& origin,
+ bool* durable,
+ QuotaDatabase* database) {
+ DCHECK(database);
+ return database->GetDurabilityForOrigin(origin, durable);
+}
+
bool DeleteOriginInfoOnDBThread(const GURL& origin,
StorageType type,
QuotaDatabase* database) {
@@ -716,6 +723,7 @@ class QuotaManager::GetModifiedSinceHelper {
return database->GetOriginsModifiedSince(type, &origins_, modified_since);
}
+
void DidGetModifiedSince(const base::WeakPtr<QuotaManager>& manager,
const GetOriginsCallback& callback,
StorageType type,
@@ -832,6 +840,7 @@ void QuotaManager::GetUsageAndQuotaForWebApps(
"477117 QuotaManager::GetUsageAndQuotaForWebApps"));
if (type != kStorageTypeTemporary &&
type != kStorageTypePersistent &&
+ type != kStorageTypeDurable &&
type != kStorageTypeSyncable) {
callback.Run(kQuotaErrorNotSupported, 0, 0);
return;
@@ -1049,6 +1058,7 @@ void QuotaManager::SetPersistentHostQuota(const std::string& host,
const QuotaCallback& callback) {
LazyInitialize();
if (host.empty()) {
+ LOG(ERROR) << "Calling with kQuotaErrorNotSupported";
// This could happen if we are called on file:///.
callback.Run(kQuotaErrorNotSupported, 0);
return;
@@ -1143,6 +1153,25 @@ bool QuotaManager::IsStorageUnlimited(const GURL& origin,
special_storage_policy_->IsStorageUnlimited(origin);
}
+void QuotaManager::GetDurability(const GURL& origin,
+ const GetDurabilityCallback& callback) {
+ LazyInitialize();
+ LOG(ERROR) << "Got into QuotaManager::GetDurability";
+
+ // if db is hosed, do something with callback
+
+ bool* is_durable = new bool;
+ PostTaskAndReplyWithResultForDBThread(
+ FROM_HERE,
+ base::Bind(&GetDurableOnDBThread,
+ origin,
+ base::Unretained(is_durable)),
+ base::Bind(&QuotaManager::DidGetDurability,
+ weak_factory_.GetWeakPtr(),
+ callback,
+ base::Owned(is_durable)));
+}
+
void QuotaManager::GetOriginsModifiedSince(StorageType type,
base::Time modified_since,
const GetOriginsCallback& callback) {
@@ -1269,6 +1298,7 @@ UsageTracker* QuotaManager::GetUsageTracker(StorageType type) const {
case kStorageTypeQuotaNotManaged:
return NULL;
case kStorageTypeUnknown:
+ case kStorageTypeDurable:
NOTREACHED();
}
return NULL;
@@ -1606,6 +1636,18 @@ void QuotaManager::DidDatabaseWork(bool success) {
db_disabled_ = !success;
}
+void QuotaManager::DidGetDurability(const GetDurabilityCallback& callback,
+ const bool* durable,
+ bool success) {
+ DidDatabaseWork(success);
+ if (!success) {
+ NOTREACHED() << "Add a test for this";
+ callback.Run(kQuotaErrorInvalidAccess, false /*durability*/);
+ return;
+ }
+ callback.Run(kQuotaStatusOk, *durable);
+}
+
void QuotaManager::DeleteOnCorrectThread() const {
if (!io_thread_->BelongsToCurrentThread() &&
io_thread_->DeleteSoon(FROM_HERE, this)) {
« no previous file with comments | « storage/browser/quota/quota_manager.h ('k') | storage/common/fileapi/file_system_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698