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()19WebStorageNamespaceImpl::WebStorageNamespaceImpl() 20 : namespace_id_(kLocalStorageNamespaceId) { 21 } 22 WebStorageNamespaceImpl(int64 namespace_id)23WebStorageNamespaceImpl::WebStorageNamespaceImpl( 24 int64 namespace_id) 25 : namespace_id_(namespace_id) { 26 DCHECK_NE(kInvalidSessionStorageNamespaceId, namespace_id); 27 } 28 ~WebStorageNamespaceImpl()29WebStorageNamespaceImpl::~WebStorageNamespaceImpl() { 30 } 31 createStorageArea(const WebString & origin)32WebStorageArea* WebStorageNamespaceImpl::createStorageArea( 33 const WebString& origin) { 34 return new WebStorageAreaImpl(namespace_id_, GURL(origin)); 35 } 36 copy()37WebStorageNamespace* 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) const45bool 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