Index: webkit/dom_storage/dom_storage_session.cc |
=================================================================== |
--- webkit/dom_storage/dom_storage_session.cc (revision 0) |
+++ webkit/dom_storage/dom_storage_session.cc (working copy) |
@@ -1,32 +1,47 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "content/browser/in_process_webkit/session_storage_namespace.h" |
+#include "webkit/dom_storage/dom_storage_session.h" |
+#include "base/bind.h" |
+#include "base/bind_helpers.h" |
#include "base/logging.h" |
-#include "content/browser/in_process_webkit/dom_storage_context.h" |
-#include "content/browser/in_process_webkit/webkit_context.h" |
+#include "webkit/dom_storage/dom_storage_context.h" |
+#include "webkit/dom_storage/dom_storage_task_runner.h" |
-SessionStorageNamespace::SessionStorageNamespace(WebKitContext* webkit_context) |
- : webkit_context_(webkit_context), |
- id_(webkit_context_->dom_storage_context() |
- ->AllocateSessionStorageNamespaceId()) { |
+namespace dom_storage { |
+ |
+DomStorageSession::DomStorageSession(DomStorageContext* context) |
+ : context_(context), |
+ namespace_id_(context->AllocateSessionId()) { |
+ context->task_runner()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&DomStorageContext::CreateSessionNamespace, |
+ context_, namespace_id_)); |
} |
-SessionStorageNamespace::SessionStorageNamespace(WebKitContext* webkit_context, |
- int64 id) |
- : webkit_context_(webkit_context), |
- id_(id) { |
- DCHECK(webkit_context_); |
+DomStorageSession* DomStorageSession::Clone() { |
+ int64 clone_id = context_->AllocateSessionId(); |
+ context_->task_runner()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&DomStorageContext::CloneSessionNamespace, |
+ context_, namespace_id_, clone_id)); |
+ return new DomStorageSession(context_, clone_id); |
} |
-SessionStorageNamespace::~SessionStorageNamespace() { |
- webkit_context_->DeleteSessionStorageNamespace(id_); |
+DomStorageSession::DomStorageSession(DomStorageContext* context, |
+ int64 namespace_id) |
+ : context_(context), |
+ namespace_id_(namespace_id) { |
+ // This ctor is intended for use by the Clone() method. |
} |
-SessionStorageNamespace* SessionStorageNamespace::Clone() { |
- return new SessionStorageNamespace( |
- webkit_context_, |
- webkit_context_->dom_storage_context()->CloneSessionStorage(id_)); |
+DomStorageSession::~DomStorageSession() { |
+ context_->task_runner()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&DomStorageContext::DeleteSessionNamespace, |
+ context_, namespace_id_)); |
} |
+ |
+} // namespace dom_storage |