Diff
Modified: trunk/Source/WebCore/ChangeLog (177101 => 177102)
--- trunk/Source/WebCore/ChangeLog 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebCore/ChangeLog 2014-12-10 22:48:07 UTC (rev 177102)
@@ -1,3 +1,14 @@
+2014-12-10 Anders Carlsson <[email protected]>
+
+ Add session storage handling to StorageNamespaceProvider
+ https://bugs.webkit.org/show_bug.cgi?id=139507
+
+ Reviewed by Tim Horton.
+
+ * page/Page.cpp:
+ (WebCore::Page::sessionStorage):
+ * storage/StorageNamespaceProvider.h:
+
2014-12-10 Roger Fong <[email protected]>
Unreviewed. Follow-up patch to r177099.
Modified: trunk/Source/WebCore/page/Page.cpp (177101 => 177102)
--- trunk/Source/WebCore/page/Page.cpp 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebCore/page/Page.cpp 2014-12-10 22:48:07 UTC (rev 177102)
@@ -1090,8 +1090,12 @@
StorageNamespace* Page::sessionStorage(bool optionalCreate)
{
- if (!m_sessionStorage && optionalCreate)
- m_sessionStorage = StorageNamespace::sessionStorageNamespace(this);
+ if (!m_sessionStorage && optionalCreate) {
+ if (m_storageNamespaceProvider)
+ m_sessionStorage = m_storageNamespaceProvider->createSessionStorageNamespace(*this, m_settings->sessionStorageQuota());
+ else
+ m_sessionStorage = StorageNamespace::sessionStorageNamespace(this);
+ }
return m_sessionStorage.get();
}
Modified: trunk/Source/WebCore/storage/StorageNamespaceProvider.h (177101 => 177102)
--- trunk/Source/WebCore/storage/StorageNamespaceProvider.h 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebCore/storage/StorageNamespaceProvider.h 2014-12-10 22:48:07 UTC (rev 177102)
@@ -43,6 +43,7 @@
StorageNamespaceProvider();
virtual ~StorageNamespaceProvider();
+ virtual RefPtr<StorageNamespace> createSessionStorageNamespace(Page&, unsigned quota) = 0;
StorageNamespace& localStorageNamespace();
StorageNamespace& transientLocalStorageNamespace(SecurityOrigin&);
Modified: trunk/Source/WebKit/ChangeLog (177101 => 177102)
--- trunk/Source/WebKit/ChangeLog 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebKit/ChangeLog 2014-12-10 22:48:07 UTC (rev 177102)
@@ -1,5 +1,16 @@
2014-12-10 Anders Carlsson <[email protected]>
+ Add session storage handling to StorageNamespaceProvider
+ https://bugs.webkit.org/show_bug.cgi?id=139507
+
+ Reviewed by Tim Horton.
+
+ * Storage/WebStorageNamespaceProvider.cpp:
+ (WebStorageNamespaceProvider::createSessionStorageNamespace):
+ * Storage/WebStorageNamespaceProvider.h:
+
+2014-12-10 Anders Carlsson <[email protected]>
+
Add WebStorageNamespaceProvider::closeLocalStorage
https://bugs.webkit.org/show_bug.cgi?id=139502
Modified: trunk/Source/WebKit/Storage/WebStorageNamespaceProvider.cpp (177101 => 177102)
--- trunk/Source/WebKit/Storage/WebStorageNamespaceProvider.cpp 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebKit/Storage/WebStorageNamespaceProvider.cpp 2014-12-10 22:48:07 UTC (rev 177102)
@@ -62,6 +62,11 @@
}
}
+RefPtr<StorageNamespace> WebStorageNamespaceProvider::createSessionStorageNamespace(Page&, unsigned quota)
+{
+ return StorageNamespaceImpl::createSessionStorageNamespace(quota);
+}
+
RefPtr<StorageNamespace> WebStorageNamespaceProvider::createLocalStorageNamespace(unsigned quota)
{
return StorageNamespaceImpl::getOrCreateLocalStorageNamespace(m_localStorageDatabasePath, quota);
Modified: trunk/Source/WebKit/Storage/WebStorageNamespaceProvider.h (177101 => 177102)
--- trunk/Source/WebKit/Storage/WebStorageNamespaceProvider.h 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebKit/Storage/WebStorageNamespaceProvider.h 2014-12-10 22:48:07 UTC (rev 177102)
@@ -38,6 +38,7 @@
private:
explicit WebStorageNamespaceProvider(const String& localStorageDatabasePath);
+ virtual RefPtr<WebCore::StorageNamespace> createSessionStorageNamespace(WebCore::Page&, unsigned quota) override;
virtual RefPtr<WebCore::StorageNamespace> createLocalStorageNamespace(unsigned quota) override;
virtual RefPtr<WebCore::StorageNamespace> createTransientLocalStorageNamespace(WebCore::SecurityOrigin&, unsigned quota) override;
Modified: trunk/Source/WebKit2/ChangeLog (177101 => 177102)
--- trunk/Source/WebKit2/ChangeLog 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebKit2/ChangeLog 2014-12-10 22:48:07 UTC (rev 177102)
@@ -1,5 +1,19 @@
2014-12-10 Anders Carlsson <[email protected]>
+ Add session storage handling to StorageNamespaceProvider
+ https://bugs.webkit.org/show_bug.cgi?id=139507
+
+ Reviewed by Tim Horton.
+
+ * WebProcess/Storage/StorageNamespaceImpl.cpp:
+ (WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
+ * WebProcess/Storage/StorageNamespaceImpl.h:
+ * WebProcess/Storage/WebStorageNamespaceProvider.cpp:
+ (WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
+ * WebProcess/Storage/WebStorageNamespaceProvider.h:
+
+2014-12-10 Anders Carlsson <[email protected]>
+
Implement the rest of the transient local storage namespace code
https://bugs.webkit.org/show_bug.cgi?id=139505
Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp (177101 => 177102)
--- trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp 2014-12-10 22:48:07 UTC (rev 177102)
@@ -49,6 +49,11 @@
return localStorageNamespaceMap;
}
+RefPtr<StorageNamespaceImpl> StorageNamespaceImpl::createSessionStorageNamespace(uint64_t identifier, unsigned quotaInBytes)
+{
+ return adoptRef(new StorageNamespaceImpl(SessionStorage, identifier, nullptr, quotaInBytes));
+}
+
RefPtr<StorageNamespaceImpl> StorageNamespaceImpl::createLocalStorageNamespace(uint64_t identifier, unsigned quotaInBytes)
{
LocalStorageNamespaceMap::AddResult result = localStorageNamespaceMap().add(identifier, nullptr);
@@ -68,7 +73,7 @@
PassRefPtr<StorageNamespaceImpl> StorageNamespaceImpl::createSessionStorageNamespace(WebPage* webPage)
{
- return adoptRef(new StorageNamespaceImpl(SessionStorage, webPage->pageID(), nullptr, webPage->corePage()->settings().sessionStorageQuota()));
+ return createSessionStorageNamespace(webPage->pageID(), webPage->corePage()->settings().sessionStorageQuota());
}
PassRefPtr<StorageNamespaceImpl> StorageNamespaceImpl::createLocalStorageNamespace(PageGroup* pageGroup)
Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h (177101 => 177102)
--- trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h 2014-12-10 22:48:07 UTC (rev 177102)
@@ -38,10 +38,10 @@
class StorageNamespaceImpl : public WebCore::StorageNamespace {
public:
+ static RefPtr<StorageNamespaceImpl> createSessionStorageNamespace(uint64_t identifier, unsigned quotaInBytes);
static RefPtr<StorageNamespaceImpl> createLocalStorageNamespace(uint64_t identifier, unsigned quotaInBytes);
static RefPtr<StorageNamespaceImpl> createTransientLocalStorageNamespace(uint64_t identifier, WebCore::SecurityOrigin& topLevelOrigin, uint64_t quotaInBytes);
- static PassRefPtr<StorageNamespaceImpl> createSessionStorageNamespace(WebPage*);
virtual ~StorageNamespaceImpl();
WebCore::StorageType storageType() const { return m_storageType; }
@@ -51,6 +51,7 @@
// FIXME: Remove this deprecated overload.
static PassRefPtr<StorageNamespaceImpl> createLocalStorageNamespace(WebCore::PageGroup*);
+ static PassRefPtr<StorageNamespaceImpl> createSessionStorageNamespace(WebPage*);
private:
explicit StorageNamespaceImpl(WebCore::StorageType, uint64_t storageNamespaceID, WebCore::SecurityOrigin* topLevelOrigin, unsigned quotaInBytes);
Modified: trunk/Source/WebKit2/WebProcess/Storage/WebStorageNamespaceProvider.cpp (177101 => 177102)
--- trunk/Source/WebKit2/WebProcess/Storage/WebStorageNamespaceProvider.cpp 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebKit2/WebProcess/Storage/WebStorageNamespaceProvider.cpp 2014-12-10 22:48:07 UTC (rev 177102)
@@ -27,6 +27,7 @@
#include "WebStorageNamespaceProvider.h"
#include "StorageNamespaceImpl.h"
+#include "WebPage.h"
#include <wtf/HashMap.h>
#include <wtf/NeverDestroyed.h>
@@ -65,6 +66,11 @@
storageNamespaceProviders().remove(m_identifier);
}
+RefPtr<WebCore::StorageNamespace> WebStorageNamespaceProvider::createSessionStorageNamespace(Page& page, unsigned quota)
+{
+ return StorageNamespaceImpl::createSessionStorageNamespace(WebPage::fromCorePage(&page)->pageID(), quota);
+}
+
RefPtr<WebCore::StorageNamespace> WebStorageNamespaceProvider::createLocalStorageNamespace(unsigned quota)
{
return StorageNamespaceImpl::createLocalStorageNamespace(m_identifier, quota);
Modified: trunk/Source/WebKit2/WebProcess/Storage/WebStorageNamespaceProvider.h (177101 => 177102)
--- trunk/Source/WebKit2/WebProcess/Storage/WebStorageNamespaceProvider.h 2014-12-10 22:33:15 UTC (rev 177101)
+++ trunk/Source/WebKit2/WebProcess/Storage/WebStorageNamespaceProvider.h 2014-12-10 22:48:07 UTC (rev 177102)
@@ -38,6 +38,7 @@
private:
explicit WebStorageNamespaceProvider(uint64_t identifier);
+ virtual RefPtr<WebCore::StorageNamespace> createSessionStorageNamespace(WebCore::Page&, unsigned quota) override;
virtual RefPtr<WebCore::StorageNamespace> createLocalStorageNamespace(unsigned quota) override;
virtual RefPtr<WebCore::StorageNamespace> createTransientLocalStorageNamespace(WebCore::SecurityOrigin&, unsigned quota) override;