summaryrefslogtreecommitdiffstats
path: root/content/browser/dom_storage
diff options
context:
space:
mode:
authormarja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-18 16:52:46 +0000
committermarja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-18 16:52:46 +0000
commitd0ab479282ee222d84ac42bfd415d24aae7025c6 (patch)
treeac4da33e90a9ad3c5921d0f5d9306fca5bad5074 /content/browser/dom_storage
parent2d4aead88b33b037bd3746ae6fb90f8c66498bbe (diff)
downloadchromium_src-d0ab479282ee222d84ac42bfd415d24aae7025c6.zip
chromium_src-d0ab479282ee222d84ac42bfd415d24aae7025c6.tar.gz
chromium_src-d0ab479282ee222d84ac42bfd415d24aae7025c6.tar.bz2
Create and store persistent unique ids for sessionStorage.
This helps us to store / restore sessionStorages when doing a session restore (in a later CL). BUG=104292 TEST=existing tests+DomStorageContextTest.PersistentIds Review URL: https://chromiumcodereview.appspot.com/10546167 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142735 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/dom_storage')
-rw-r--r--content/browser/dom_storage/session_storage_namespace_impl.cc9
-rw-r--r--content/browser/dom_storage/session_storage_namespace_impl.h15
2 files changed, 23 insertions, 1 deletions
diff --git a/content/browser/dom_storage/session_storage_namespace_impl.cc b/content/browser/dom_storage/session_storage_namespace_impl.cc
index fccc6f1..cc5848e 100644
--- a/content/browser/dom_storage/session_storage_namespace_impl.cc
+++ b/content/browser/dom_storage/session_storage_namespace_impl.cc
@@ -21,10 +21,19 @@ SessionStorageNamespaceImpl::SessionStorageNamespaceImpl(
namepace_id_to_clone)) {
}
+SessionStorageNamespaceImpl::SessionStorageNamespaceImpl(
+ DOMStorageContextImpl* context, const std::string& persistent_id)
+ : session_(new DomStorageSession(context->context(), persistent_id)) {
+}
+
int64 SessionStorageNamespaceImpl::id() const {
return session_->namespace_id();
}
+const std::string& SessionStorageNamespaceImpl::persistent_id() const {
+ return session_->persistent_namespace_id();
+}
+
SessionStorageNamespaceImpl* SessionStorageNamespaceImpl::Clone() {
return new SessionStorageNamespaceImpl(session_->Clone());
}
diff --git a/content/browser/dom_storage/session_storage_namespace_impl.h b/content/browser/dom_storage/session_storage_namespace_impl.h
index 4c74ac86..bccf8a4 100644
--- a/content/browser/dom_storage/session_storage_namespace_impl.h
+++ b/content/browser/dom_storage/session_storage_namespace_impl.h
@@ -20,10 +20,23 @@ class DomStorageSession;
class SessionStorageNamespaceImpl
: NON_EXPORTED_BASE(public content::SessionStorageNamespace) {
public:
+ // Constructs a |SessionStorageNamespaceImpl| and allocates new IDs for it.
explicit SessionStorageNamespaceImpl(DOMStorageContextImpl* context);
+
+ // Constructs a |SessionStorageNamespaceImpl| by cloning
+ // |namespace_to_clone|. Allocates new IDs for it.
SessionStorageNamespaceImpl(DOMStorageContextImpl* context,
int64 namepace_id_to_clone);
- int64 id() const;
+
+ // Constructs a |SessionStorageNamespaceImpl| and assigns |persistent_id|
+ // to it. Allocates a new non-persistent ID.
+ SessionStorageNamespaceImpl(DOMStorageContextImpl* context,
+ const std::string& persistent_id);
+
+ // content::SessionStorageNamespace implementation.
+ virtual int64 id() const OVERRIDE;
+ virtual const std::string& persistent_id() const OVERRIDE;
+
SessionStorageNamespaceImpl* Clone();
private: