• Home
  • 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 #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