blob: 7854562603ee24192b4d2c72c5a241c00226db0e [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// 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"
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +010010#include "third_party/WebKit/public/platform/WebStorageArea.h"
11#include "third_party/WebKit/public/platform/WebString.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000012
13class GURL;
14
Torne (Richard Coles)58218062012-11-14 11:43:16 +000015namespace content {
16
Ben Murdochbb1529c2013-08-08 10:24:53 +010017class DOMStorageCachedArea;
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +010018
Torne (Richard Coles)58218062012-11-14 11:43:16 +000019class WebStorageAreaImpl : public WebKit::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 WebKit::WebString key(unsigned index);
29 virtual WebKit::WebString getItem(const WebKit::WebString& key);
30 virtual void setItem(
31 const WebKit::WebString& key, const WebKit::WebString& value,
32 const WebKit::WebURL& page_url, WebStorageArea::Result& result);
33 virtual void removeItem(
34 const WebKit::WebString& key, const WebKit::WebURL& page_url);
35 virtual void clear(const WebKit::WebURL& url);
36 virtual size_t memoryBytesUsedByCache() const;
37
38 private:
39 int connection_id_;
Ben Murdochbb1529c2013-08-08 10:24:53 +010040 scoped_refptr<DOMStorageCachedArea> cached_area_;
Torne (Richard Coles)58218062012-11-14 11:43:16 +000041};
42
43} // namespace content
44
45#endif // CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGEAREA_IMPL_H_