Title: [143273] trunk/Source/WebKit2
Revision
143273
Author
[email protected]
Date
2013-02-18 16:03:57 -0800 (Mon, 18 Feb 2013)

Log Message

Add StorageManager member functions for keeping track of session storage namespaces
https://bugs.webkit.org/show_bug.cgi?id=110163

Reviewed by Andreas Kling.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::createSessionStorageNamespaceInternal):
(WebKit::StorageManager::destroySessionStorageNamespaceInternal):
(WebKit::StorageManager::cloneSessionStorageNamespaceInternal):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/WebContext.h:
(WebKit::WebContext::storageManager):
(WebContext):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::createNewPage):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (143272 => 143273)


--- trunk/Source/WebKit2/ChangeLog	2013-02-19 00:00:47 UTC (rev 143272)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-19 00:03:57 UTC (rev 143273)
@@ -1,5 +1,30 @@
 2013-02-18  Anders Carlsson  <[email protected]>
 
+        Add StorageManager member functions for keeping track of session storage namespaces
+        https://bugs.webkit.org/show_bug.cgi?id=110163
+
+        Reviewed by Andreas Kling.
+
+        * UIProcess/Storage/StorageManager.cpp:
+        (WebKit::StorageManager::createSessionStorageNamespace):
+        (WebKit):
+        (WebKit::StorageManager::destroySessionStorageNamespace):
+        (WebKit::StorageManager::cloneSessionStorageNamespace):
+        (WebKit::StorageManager::createSessionStorageNamespaceInternal):
+        (WebKit::StorageManager::destroySessionStorageNamespaceInternal):
+        (WebKit::StorageManager::cloneSessionStorageNamespaceInternal):
+        * UIProcess/Storage/StorageManager.h:
+        (StorageManager):
+        * UIProcess/WebContext.h:
+        (WebKit::WebContext::storageManager):
+        (WebContext):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::WebPageProxy):
+        (WebKit::WebPageProxy::close):
+        (WebKit::WebPageProxy::createNewPage):
+
+2013-02-18  Anders Carlsson  <[email protected]>
+
         StorageManager message handlers should take the connection
         https://bugs.webkit.org/show_bug.cgi?id=110151
 

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (143272 => 143273)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-02-19 00:00:47 UTC (rev 143272)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-02-19 00:03:57 UTC (rev 143273)
@@ -46,6 +46,21 @@
 {
 }
 
+void StorageManager::createSessionStorageNamespace(uint64_t storageNamespaceID)
+{
+    m_queue->dispatch(bind(&StorageManager::createSessionStorageNamespaceInternal, this, storageNamespaceID));
+}
+
+void StorageManager::destroySessionStorageNamespace(uint64_t storageNamespaceID)
+{
+    m_queue->dispatch(bind(&StorageManager::destroySessionStorageNamespace, this, storageNamespaceID));
+}
+
+void StorageManager::cloneSessionStorageNamespace(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID)
+{
+    m_queue->dispatch(bind(&StorageManager::cloneSessionStorageNamespace, this, storageNamespaceID, newStorageNamespaceID));
+}
+
 void StorageManager::processWillOpenConnection(WebProcessProxy* webProcessProxy)
 {
     webProcessProxy->connection()->addWorkQueueMessageReceiver(Messages::StorageManager::messageReceiverName(), m_queue.get(), this);
@@ -71,4 +86,19 @@
     // FIXME: Implement this.
 }
 
+void StorageManager::createSessionStorageNamespaceInternal(uint64_t storageNamespaceID)
+{
+    // FIXME: Implement.
+}
+
+void StorageManager::destroySessionStorageNamespaceInternal(uint64_t storageNamespaceID)
+{
+    // FIXME: Implement.
+}
+
+void StorageManager::cloneSessionStorageNamespaceInternal(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID)
+{
+    // FIXME: Implement.
+}
+
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h (143272 => 143273)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2013-02-19 00:00:47 UTC (rev 143272)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2013-02-19 00:03:57 UTC (rev 143273)
@@ -43,6 +43,10 @@
     static PassRefPtr<StorageManager> create();
     ~StorageManager();
 
+    void createSessionStorageNamespace(uint64_t storageNamespaceID);
+    void destroySessionStorageNamespace(uint64_t storageNamespaceID);
+    void cloneSessionStorageNamespace(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID);
+
     void processWillOpenConnection(WebProcessProxy*);
     void processWillCloseConnection(WebProcessProxy*);
 
@@ -58,6 +62,10 @@
     void destroyStorageArea(CoreIPC::Connection*, uint64_t storageAreaID);
     void getValues(CoreIPC::Connection*, uint64_t storageAreaID, HashMap<String, String>& values);
 
+    void createSessionStorageNamespaceInternal(uint64_t storageNamespaceID);
+    void destroySessionStorageNamespaceInternal(uint64_t storageNamespaceID);
+    void cloneSessionStorageNamespaceInternal(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID);
+
     RefPtr<WorkQueue> m_queue;
 };
 

Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (143272 => 143273)


--- trunk/Source/WebKit2/UIProcess/WebContext.h	2013-02-19 00:00:47 UTC (rev 143272)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h	2013-02-19 00:03:57 UTC (rev 143273)
@@ -141,6 +141,8 @@
     // Disconnect the process from the context.
     void disconnectProcess(WebProcessProxy*);
 
+    StorageManager& storageManager() const { return *m_storageManager; }
+
     PassRefPtr<WebPageProxy> createWebPage(PageClient*, WebPageGroup*, WebPageProxy* relatedPage = 0);
 
     const String& injectedBundlePath() const { return m_injectedBundlePath; }

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (143272 => 143273)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-02-19 00:00:47 UTC (rev 143272)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-02-19 00:03:57 UTC (rev 143273)
@@ -261,6 +261,7 @@
 #endif
 
     m_process->addMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_pageID, this);
+    m_process->context()->storageManager().createSessionStorageNamespace(m_pageID);
 }
 
 WebPageProxy::~WebPageProxy()
@@ -543,6 +544,7 @@
     m_process->send(Messages::WebPage::Close(), m_pageID);
     m_process->removeWebPage(m_pageID);
     m_process->removeMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_pageID);
+    m_process->context()->storageManager().destroySessionStorageNamespace(m_pageID);
 }
 
 bool WebPageProxy::tryClose()
@@ -2433,11 +2435,14 @@
 void WebPageProxy::createNewPage(const ResourceRequest& request, const WindowFeatures& windowFeatures, uint32_t opaqueModifiers, int32_t opaqueMouseButton, uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
 {
     RefPtr<WebPageProxy> newPage = m_uiClient.createNewPage(this, request, windowFeatures, static_cast<WebEvent::Modifiers>(opaqueModifiers), static_cast<WebMouseEvent::Button>(opaqueMouseButton));
-    if (newPage) {
-        newPageID = newPage->pageID();
-        newPageParameters = newPage->creationParameters();
-    } else
+    if (!newPage) {
         newPageID = 0;
+        return;
+    }
+
+    newPageID = newPage->pageID();
+    newPageParameters = newPage->creationParameters();
+    process()->context()->storageManager().cloneSessionStorageNamespace(m_pageID, newPage->pageID());
 }
     
 void WebPageProxy::showPage()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to