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 37e27433ffcc9859c2c1525d96485d3b7815903c..c551790c1139f5144b1e19e150c9b5f89d5a2cd3 100644 |
--- a/content/renderer/dom_storage/local_storage_area.cc |
+++ b/content/renderer/dom_storage/local_storage_area.cc |
@@ -4,6 +4,8 @@ |
#include "content/renderer/dom_storage/local_storage_area.h" |
+#include "base/rand_util.h" |
+#include "base/strings/string_number_conversions.h" |
#include "third_party/WebKit/public/platform/WebURL.h" |
using blink::WebString; |
@@ -13,10 +15,13 @@ namespace content { |
LocalStorageArea::LocalStorageArea( |
scoped_refptr<LocalStorageCachedArea> cached_area) |
- : cached_area_(std::move(cached_area)) { |
+ : cached_area_(std::move(cached_area)), |
+ id_(base::Uint64ToString(base::RandUint64())) { |
+ cached_area_->AreaCreated(this); |
} |
LocalStorageArea::~LocalStorageArea() { |
+ cached_area_->AreaDestroyed(this); |
} |
unsigned LocalStorageArea::length() { |
@@ -34,7 +39,7 @@ WebString LocalStorageArea::getItem(const WebString& key) { |
void LocalStorageArea::setItem( |
const WebString& key, const WebString& value, const WebURL& page_url, |
WebStorageArea::Result& result) { |
- if (!cached_area_->SetItem(key, value, page_url)) |
+ if (!cached_area_->SetItem(key, value, page_url, id_)) |
result = ResultBlockedByQuota; |
else |
result = ResultOK; |
@@ -42,10 +47,11 @@ void LocalStorageArea::setItem( |
void LocalStorageArea::removeItem( |
const WebString& key, const WebURL& page_url) { |
- cached_area_->RemoveItem(key, page_url); |
+ cached_area_->RemoveItem(key, page_url, id_); |
} |
void LocalStorageArea::clear(const WebURL& page_url) { |
+ cached_area_->Clear(page_url, id_); |
} |
} // namespace content |