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

Unified Diff: content/renderer/dom_storage/local_storage_area.cc

Issue 1745603002: Switch LevelDBWrapper::GetAll to use the new Mojo sync IPC mechanism. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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/renderer/dom_storage/local_storage_area.cc
diff --git a/content/renderer/dom_storage/local_storage_area.cc b/content/renderer/dom_storage/local_storage_area.cc
index 0c91bf94cb77572dffb4b409d1df59fd60e991f3..b32cebb87cfe060e027ecca7e0abb3334ae835d8 100644
--- a/content/renderer/dom_storage/local_storage_area.cc
+++ b/content/renderer/dom_storage/local_storage_area.cc
@@ -14,7 +14,7 @@ namespace content {
LocalStorageArea::LocalStorageArea(
const url::Origin& origin,
StoragePartitionService* storage_partition_service)
- : origin_(origin), binding_(this) {
+ : loaded_(false), origin_(origin), binding_(this) {
storage_partition_service->OpenLocalStorage(
origin_.Serialize(), binding_.CreateInterfacePtrAndBind(),
mojo::GetProxy(&leveldb_));
@@ -24,27 +24,33 @@ LocalStorageArea::~LocalStorageArea() {
}
unsigned LocalStorageArea::length() {
+ EnsureLoaded();
return 0u;
}
WebString LocalStorageArea::key(unsigned index) {
+ EnsureLoaded();
return WebString();
}
WebString LocalStorageArea::getItem(const WebString& key) {
+ EnsureLoaded();
return WebString();
}
void LocalStorageArea::setItem(
const WebString& key, const WebString& value, const WebURL& page_url,
WebStorageArea::Result& result) {
+ EnsureLoaded();
}
void LocalStorageArea::removeItem(
const WebString& key, const WebURL& page_url) {
+ EnsureLoaded();
}
void LocalStorageArea::clear(const WebURL& page_url) {
+ // No need to prime the cache in this case.
}
size_t LocalStorageArea::memoryBytesUsedByCache() const {
@@ -64,4 +70,14 @@ void LocalStorageArea::KeyDeleted(mojo::Array<uint8_t> key,
void LocalStorageArea::AllDeleted(const mojo::String& source) {
}
+void LocalStorageArea::EnsureLoaded() {
+ if (loaded_)
+ return;
+
+ loaded_ = true;
+ leveldb::DatabaseError status = leveldb::DatabaseError::OK;
+ mojo::Array<content::KeyValuePtr> data;
+ leveldb_->GetAll(&status, &data);
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698