diff options
author | marja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-18 16:52:46 +0000 |
---|---|---|
committer | marja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-18 16:52:46 +0000 |
commit | d0ab479282ee222d84ac42bfd415d24aae7025c6 (patch) | |
tree | ac4da33e90a9ad3c5921d0f5d9306fca5bad5074 /content/browser/dom_storage | |
parent | 2d4aead88b33b037bd3746ae6fb90f8c66498bbe (diff) | |
download | chromium_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.cc | 9 | ||||
-rw-r--r-- | content/browser/dom_storage/session_storage_namespace_impl.h | 15 |
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: |