| 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
|
|
|