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 #ifndef CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGEAREA_IMPL_H_
      6 #define CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGEAREA_IMPL_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/memory/ref_counted.h"
     10 #include "third_party/WebKit/public/platform/WebStorageArea.h"
     11 #include "third_party/WebKit/public/platform/WebString.h"
     12 
     13 class GURL;
     14 
     15 namespace content {
     16 
     17 class DOMStorageCachedArea;
     18 
     19 class WebStorageAreaImpl : public blink::WebStorageArea {
     20  public:
     21   static WebStorageAreaImpl* FromConnectionId(int id);
     22 
     23   WebStorageAreaImpl(int64 namespace_id, const GURL& origin);
     24   virtual ~WebStorageAreaImpl();
     25 
     26   // See WebStorageArea.h for documentation on these functions.
     27   virtual unsigned length();
     28   virtual blink::WebString key(unsigned index);
     29   virtual blink::WebString getItem(const blink::WebString& key);
     30   virtual void setItem(
     31       const blink::WebString& key, const blink::WebString& value,
     32       const blink::WebURL& page_url, WebStorageArea::Result& result);
     33   virtual void removeItem(
     34       const blink::WebString& key, const blink::WebURL& page_url);
     35   virtual void clear(const blink::WebURL& url);
     36   virtual size_t memoryBytesUsedByCache() const;
     37 
     38  private:
     39   int connection_id_;
     40   scoped_refptr<DOMStorageCachedArea> cached_area_;
     41 };
     42 
     43 }  // namespace content
     44 
     45 #endif  // CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGEAREA_IMPL_H_
     46