#ifndef StorageNamespace_h
#define StorageNamespace_h
+#include "heap/Handle.h"
+#include "wtf/OwnPtr.h"
#include "wtf/PassOwnPtr.h"
+namespace blink {
+class WebStorageNamespace;
+}
+
namespace WebCore {
class Page;
class StorageNamespace {
public:
- static PassOwnPtr<StorageArea> localStorageArea(SecurityOrigin*);
- static PassOwnPtr<StorageNamespace> sessionStorageNamespace(Page*);
+ explicit StorageNamespace(PassOwnPtr<blink::WebStorageNamespace>);
+ ~StorageNamespace();
+
+ static PassOwnPtrWillBeRawPtr<StorageArea> localStorageArea(SecurityOrigin*);
+
+ PassOwnPtrWillBeRawPtr<StorageArea> storageArea(SecurityOrigin*);
+ bool isSameNamespace(const blink::WebStorageNamespace& sessionNamespace) const;
- virtual ~StorageNamespace() { }
- virtual PassOwnPtr<StorageArea> storageArea(SecurityOrigin*) = 0;
+private:
+ OwnPtr<blink::WebStorageNamespace> m_webStorageNamespace;
};
} // namespace WebCore