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