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..fa1a5f49f1ef9886132382ffebaee455540cd2e1 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; |
@@ -11,12 +13,14 @@ using blink::WebURL; |
namespace content { |
-LocalStorageArea::LocalStorageArea( |
- scoped_refptr<LocalStorageCachedArea> cached_area) |
- : cached_area_(std::move(cached_area)) { |
+LocalStorageArea::LocalStorageArea(LocalStorageCachedArea* cached_area) |
+ : cached_area_(cached_area), |
+ id_(base::Uint64ToString(base::RandUint64())) { |
+ cached_area_->LocalStorageAreaCreated(this); |
} |
LocalStorageArea::~LocalStorageArea() { |
+ cached_area_->LocalStorageAreaDestroyed(this); |
} |
unsigned LocalStorageArea::length() { |
@@ -34,7 +38,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 +46,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 |