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