Title: [143277] trunk/Source/WebKit2
Revision
143277
Author
[email protected]
Date
2013-02-18 17:22:48 -0800 (Mon, 18 Feb 2013)

Log Message

Begin stubbing out session storage classes
https://bugs.webkit.org/show_bug.cgi?id=110168

Reviewed by Andreas Kling.

* UIProcess/Storage/StorageManager.cpp:
(StorageManager::StorageArea):
(WebKit):
(WebKit::StorageManager::StorageArea::create):
(WebKit::StorageManager::StorageArea::StorageArea):
(WebKit::StorageManager::StorageArea::~StorageArea):
(StorageManager::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::isEmpty):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::~SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::cloneTo):
(WebKit::StorageManager::createSessionStorageNamespaceInternal):
(WebKit::StorageManager::destroySessionStorageNamespaceInternal):
(WebKit::StorageManager::cloneSessionStorageNamespaceInternal):
* UIProcess/Storage/StorageManager.h:
(StorageManager):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (143276 => 143277)


--- trunk/Source/WebKit2/ChangeLog	2013-02-19 01:15:04 UTC (rev 143276)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-19 01:22:48 UTC (rev 143277)
@@ -1,3 +1,28 @@
+2013-02-18  Anders Carlsson  <[email protected]>
+
+        Begin stubbing out session storage classes
+        https://bugs.webkit.org/show_bug.cgi?id=110168
+
+        Reviewed by Andreas Kling.
+
+        * UIProcess/Storage/StorageManager.cpp:
+        (StorageManager::StorageArea):
+        (WebKit):
+        (WebKit::StorageManager::StorageArea::create):
+        (WebKit::StorageManager::StorageArea::StorageArea):
+        (WebKit::StorageManager::StorageArea::~StorageArea):
+        (StorageManager::SessionStorageNamespace):
+        (WebKit::StorageManager::SessionStorageNamespace::isEmpty):
+        (WebKit::StorageManager::SessionStorageNamespace::create):
+        (WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
+        (WebKit::StorageManager::SessionStorageNamespace::~SessionStorageNamespace):
+        (WebKit::StorageManager::SessionStorageNamespace::cloneTo):
+        (WebKit::StorageManager::createSessionStorageNamespaceInternal):
+        (WebKit::StorageManager::destroySessionStorageNamespaceInternal):
+        (WebKit::StorageManager::cloneSessionStorageNamespaceInternal):
+        * UIProcess/Storage/StorageManager.h:
+        (StorageManager):
+
 2013-02-18  Christophe Dumez  <[email protected]>
 
         [EFL][WK2] Add C API for popup menu and popup item

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (143276 => 143277)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-02-19 01:15:04 UTC (rev 143276)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-02-19 01:22:48 UTC (rev 143277)
@@ -29,9 +29,69 @@
 #include "StorageManagerMessages.h"
 #include "WebProcessProxy.h"
 #include "WorkQueue.h"
+#include <WebCore/SecurityOriginHash.h>
 
+using namespace WebCore;
+
 namespace WebKit {
 
+class StorageManager::StorageArea : public ThreadSafeRefCounted<StorageManager::StorageArea> {
+public:
+    static PassRefPtr<StorageArea> create();
+    ~StorageArea();
+
+private:
+    StorageArea();
+};
+
+PassRefPtr<StorageManager::StorageArea> StorageManager::StorageArea::create()
+{
+    return adoptRef(new StorageArea());
+}
+
+StorageManager::StorageArea::StorageArea()
+{
+}
+
+StorageManager::StorageArea::~StorageArea()
+{
+}
+
+class StorageManager::SessionStorageNamespace : public ThreadSafeRefCounted<SessionStorageNamespace> {
+public:
+    static PassRefPtr<SessionStorageNamespace> create();
+    ~SessionStorageNamespace();
+
+    bool isEmpty() const { return m_storageAreaMap.isEmpty(); }
+
+    void cloneTo(SessionStorageNamespace& newSessionStorageNamespace);
+
+private:
+    SessionStorageNamespace();
+
+    HashMap<RefPtr<SecurityOrigin>, RefPtr<StorageArea>, SecurityOriginHash> m_storageAreaMap;
+};
+
+PassRefPtr<StorageManager::SessionStorageNamespace> StorageManager::SessionStorageNamespace::create()
+{
+    return adoptRef(new SessionStorageNamespace());
+}
+
+StorageManager::SessionStorageNamespace::SessionStorageNamespace()
+{
+}
+
+StorageManager::SessionStorageNamespace::~SessionStorageNamespace()
+{
+}
+
+void StorageManager::SessionStorageNamespace::cloneTo(SessionStorageNamespace& newSessionStorageNamespace)
+{
+    ASSERT(newSessionStorageNamespace.isEmpty());
+
+    // FIXME: Implement.
+}
+
 PassRefPtr<StorageManager> StorageManager::create()
 {
     return adoptRef(new StorageManager);
@@ -88,17 +148,27 @@
 
 void StorageManager::createSessionStorageNamespaceInternal(uint64_t storageNamespaceID)
 {
-    // FIXME: Implement.
+    ASSERT(!m_sessionStorageNamespaces.contains(storageNamespaceID));
+
+    m_sessionStorageNamespaces.set(storageNamespaceID, SessionStorageNamespace::create());
 }
 
 void StorageManager::destroySessionStorageNamespaceInternal(uint64_t storageNamespaceID)
 {
-    // FIXME: Implement.
+    ASSERT(m_sessionStorageNamespaces.contains(storageNamespaceID));
+
+    m_sessionStorageNamespaces.remove(storageNamespaceID);
 }
 
 void StorageManager::cloneSessionStorageNamespaceInternal(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID)
 {
-    // FIXME: Implement.
+    SessionStorageNamespace* sessionStorageNamespace = m_sessionStorageNamespaces.get(storageNamespaceID).get();
+    ASSERT(sessionStorageNamespace);
+
+    SessionStorageNamespace* newSessionStorageNamespace = m_sessionStorageNamespaces.get(newStorageNamespaceID).get();
+    ASSERT(newSessionStorageNamespace);
+
+    sessionStorageNamespace->cloneTo(*newSessionStorageNamespace);
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h (143276 => 143277)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2013-02-19 01:15:04 UTC (rev 143276)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2013-02-19 01:22:48 UTC (rev 143277)
@@ -67,6 +67,11 @@
     void cloneSessionStorageNamespaceInternal(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID);
 
     RefPtr<WorkQueue> m_queue;
+
+    class SessionStorageNamespace;
+    HashMap<uint64_t, RefPtr<SessionStorageNamespace> > m_sessionStorageNamespaces;
+
+    class StorageArea;
 };
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to