Enable Pointer Events on watchOS
[WebKit-https.git] / Source / WebCore / storage / StorageNamespaceProvider.h
index 579f8df..dd7f9a4 100644 (file)
@@ -23,8 +23,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef StorageNamespaceProvider_h
-#define StorageNamespaceProvider_h
+#pragma once
 
 #include "SecurityOriginHash.h"
 #include <wtf/Forward.h>
 
 namespace WebCore {
 
+class Document;
 class Page;
 class SecurityOrigin;
+class StorageArea;
 class StorageNamespace;
 
 class StorageNamespaceProvider : public RefCounted<StorageNamespaceProvider> {
 public:
-    StorageNamespaceProvider();
-    virtual ~StorageNamespaceProvider();
+    WEBCORE_EXPORT StorageNamespaceProvider();
+    WEBCORE_EXPORT virtual ~StorageNamespaceProvider();
 
-    StorageNamespace& localStorageNamespace();
-    StorageNamespace& transientLocalStorageNamespace(SecurityOrigin&);
+    virtual Ref<StorageNamespace> createSessionStorageNamespace(Page&, unsigned quota) = 0;
+    virtual Ref<StorageNamespace> createEphemeralLocalStorageNamespace(Page&, unsigned quota) = 0;
+
+    Ref<StorageArea> localStorageArea(Document&);
 
     void addPage(Page&);
     void removePage(Page&);
 
+protected:
+    StorageNamespace* optionalLocalStorageNamespace() { return m_localStorageNamespace.get(); }
+
 private:
-    virtual RefPtr<StorageNamespace> createLocalStorageNamespace(unsigned quota) = 0;
-    virtual RefPtr<StorageNamespace> createTransientLocalStorageNamespace(SecurityOrigin&, unsigned quota) = 0;
+    StorageNamespace& localStorageNamespace();
+    StorageNamespace& transientLocalStorageNamespace(SecurityOrigin&);
+
+    virtual Ref<StorageNamespace> createLocalStorageNamespace(unsigned quota) = 0;
+    virtual Ref<StorageNamespace> createTransientLocalStorageNamespace(SecurityOrigin&, unsigned quota) = 0;
 
     HashSet<Page*> m_pages;
 
@@ -59,6 +68,4 @@ private:
     HashMap<RefPtr<SecurityOrigin>, RefPtr<StorageNamespace>> m_transientLocalStorageMap;
 };
 
-}
-
-#endif // StorageNamespaceProvider_h
+} // namespace WebCore