• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "content/browser/dom_storage/session_storage_namespace_impl.h"
6 
7 #include "content/browser/dom_storage/dom_storage_context_wrapper.h"
8 #include "content/browser/dom_storage/dom_storage_session.h"
9 
10 namespace content {
11 
SessionStorageNamespaceImpl(DOMStorageContextWrapper * context)12 SessionStorageNamespaceImpl::SessionStorageNamespaceImpl(
13     DOMStorageContextWrapper* context)
14     : session_(new DOMStorageSession(context->context())) {
15 }
16 
SessionStorageNamespaceImpl(DOMStorageContextWrapper * context,int64 namepace_id_to_clone)17 SessionStorageNamespaceImpl::SessionStorageNamespaceImpl(
18     DOMStorageContextWrapper* context, int64 namepace_id_to_clone)
19     : session_(DOMStorageSession::CloneFrom(context->context(),
20                                             namepace_id_to_clone)) {
21 }
22 
SessionStorageNamespaceImpl(DOMStorageContextWrapper * context,const std::string & persistent_id)23 SessionStorageNamespaceImpl::SessionStorageNamespaceImpl(
24     DOMStorageContextWrapper* context, const std::string& persistent_id)
25     : session_(new DOMStorageSession(context->context(), persistent_id)) {
26 }
27 
SessionStorageNamespaceImpl(SessionStorageNamespaceImpl * master_session_storage_namespace)28 SessionStorageNamespaceImpl::SessionStorageNamespaceImpl(
29     SessionStorageNamespaceImpl* master_session_storage_namespace)
30     : session_(new DOMStorageSession(
31           master_session_storage_namespace->session_.get())) {
32 }
33 
34 
id() const35 int64 SessionStorageNamespaceImpl::id() const {
36   return session_->namespace_id();
37 }
38 
persistent_id() const39 const std::string& SessionStorageNamespaceImpl::persistent_id() const {
40   return session_->persistent_namespace_id();
41 }
42 
SetShouldPersist(bool should_persist)43 void SessionStorageNamespaceImpl::SetShouldPersist(bool should_persist) {
44   session_->SetShouldPersist(should_persist);
45 }
46 
should_persist() const47 bool SessionStorageNamespaceImpl::should_persist() const {
48   return session_->should_persist();
49 }
50 
Clone()51 SessionStorageNamespaceImpl* SessionStorageNamespaceImpl::Clone() {
52   return new SessionStorageNamespaceImpl(session_->Clone());
53 }
54 
IsFromContext(DOMStorageContextWrapper * context)55 bool SessionStorageNamespaceImpl::IsFromContext(
56     DOMStorageContextWrapper* context) {
57   return session_->IsFromContext(context->context());
58 }
59 
SessionStorageNamespaceImpl(DOMStorageSession * clone)60 SessionStorageNamespaceImpl::SessionStorageNamespaceImpl(
61     DOMStorageSession* clone)
62     : session_(clone) {
63 }
64 
~SessionStorageNamespaceImpl()65 SessionStorageNamespaceImpl::~SessionStorageNamespaceImpl() {
66 }
67 
AddTransactionLogProcessId(int process_id)68 void SessionStorageNamespaceImpl::AddTransactionLogProcessId(int process_id) {
69   session_->AddTransactionLogProcessId(process_id);
70 }
71 
RemoveTransactionLogProcessId(int process_id)72 void SessionStorageNamespaceImpl::RemoveTransactionLogProcessId(
73     int process_id) {
74   session_->RemoveTransactionLogProcessId(process_id);
75 }
76 
Merge(bool actually_merge,int process_id,SessionStorageNamespace * other,const MergeResultCallback & callback)77 void SessionStorageNamespaceImpl::Merge(
78     bool actually_merge,
79     int process_id,
80     SessionStorageNamespace* other,
81     const MergeResultCallback& callback) {
82   SessionStorageNamespaceImpl* other_impl =
83       static_cast<SessionStorageNamespaceImpl*>(other);
84   session_->Merge(
85       actually_merge, process_id, other_impl->session_.get(), callback);
86 }
87 
IsAliasOf(SessionStorageNamespace * other)88 bool SessionStorageNamespaceImpl::IsAliasOf(SessionStorageNamespace* other) {
89   return persistent_id() == other->persistent_id();
90 }
91 
CreateAlias()92 SessionStorageNamespace* SessionStorageNamespaceImpl::CreateAlias() {
93   return new SessionStorageNamespaceImpl(this);
94 }
95 
96 }  // namespace content
97