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