Title: [177102] trunk/Source
Revision
177102
Author
[email protected]
Date
2014-12-10 14:48:07 -0800 (Wed, 10 Dec 2014)

Log Message

Add session storage handling to StorageNamespaceProvider
https://bugs.webkit.org/show_bug.cgi?id=139507

Reviewed by Tim Horton.

Source/WebCore:

* page/Page.cpp:
(WebCore::Page::sessionStorage):
* storage/StorageNamespaceProvider.h:

Source/WebKit:

* Storage/WebStorageNamespaceProvider.cpp:
(WebStorageNamespaceProvider::createSessionStorageNamespace):
* Storage/WebStorageNamespaceProvider.h:

Source/WebKit2:

* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
* WebProcess/Storage/StorageNamespaceImpl.h:
* WebProcess/Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
* WebProcess/Storage/WebStorageNamespaceProvider.h:

Modified Paths

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;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to