• Home
  • History
  • Annotate
  • 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/renderer/dom_storage/webstoragenamespace_impl.h"
6 
7 #include "base/logging.h"
8 #include "content/common/dom_storage/dom_storage_types.h"
9 #include "content/renderer/dom_storage/webstoragearea_impl.h"
10 #include "third_party/WebKit/public/platform/WebString.h"
11 #include "url/gurl.h"
12 
13 using blink::WebStorageArea;
14 using blink::WebStorageNamespace;
15 using blink::WebString;
16 
17 namespace content {
18 
WebStorageNamespaceImpl()19 WebStorageNamespaceImpl::WebStorageNamespaceImpl()
20     : namespace_id_(kLocalStorageNamespaceId) {
21 }
22 
WebStorageNamespaceImpl(int64 namespace_id)23 WebStorageNamespaceImpl::WebStorageNamespaceImpl(
24     int64 namespace_id)
25     : namespace_id_(namespace_id) {
26   DCHECK_NE(kInvalidSessionStorageNamespaceId, namespace_id);
27 }
28 
~WebStorageNamespaceImpl()29 WebStorageNamespaceImpl::~WebStorageNamespaceImpl() {
30 }
31 
createStorageArea(const WebString & origin)32 WebStorageArea* WebStorageNamespaceImpl::createStorageArea(
33     const WebString& origin) {
34   return new WebStorageAreaImpl(namespace_id_, GURL(origin));
35 }
36 
copy()37 WebStorageNamespace* WebStorageNamespaceImpl::copy() {
38   // By returning NULL, we're telling WebKit to lazily fetch it the next time
39   // session storage is used.  In the WebViewClient::createView, we do the
40   // book-keeping necessary to make it a true copy-on-write despite not doing
41   // anything here, now.
42   return NULL;
43 }
44 
isSameNamespace(const WebStorageNamespace & other) const45 bool WebStorageNamespaceImpl::isSameNamespace(
46     const WebStorageNamespace& other) const {
47   const WebStorageNamespaceImpl* other_impl =
48       static_cast<const WebStorageNamespaceImpl*>(&other);
49   return namespace_id_ == other_impl->namespace_id_;
50 }
51 
52 }  // namespace content
53