Title: [144390] trunk/Source/WebKit2
Revision
144390
Author
[email protected]
Date
2013-02-28 16:03:48 -0800 (Thu, 28 Feb 2013)

Log Message

Add the notion of an allowed connection to SessionStorageNamespace
https://bugs.webkit.org/show_bug.cgi?id=111122

Reviewed by Sam Weinig.

Group together each session storage namespace with an allowed connection.
This will help ensure that rouge web processes will not be able to access session storage
from pages in other processes.

* UIProcess/Storage/StorageManager.cpp:
(StorageManager::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::allowedConnection):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::setAllowedConnection):
Add an m_allowedConnection member variable, as well as setters and getters.

(WebKit::StorageManager::createSessionStorageNamespace):
Take an optional allowed connection. (It can be null if the process has not finished launching).

(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
New function to set the allowed connection for a session storage namespace.

(WebKit::StorageManager::createStorageArea):
Add another FIXME.

(WebKit::StorageManager::createSessionStorageNamespaceInternal):
Pass the connection to the SessionStorageNamespace constructor.

(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnectionInternal):
Set the allowed connection.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
Pass the connection to createSessionStorageNamespace.

(WebKit::WebPageProxy::connectionWillOpen):
Call setAllowedSessionStorageNamespaceConnection.

(WebKit::WebPageProxy::connectionWillClose):
Call setAllowedSessionStorageNamespaceConnection with a null connection.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
Call connectionWillOpen on all pages.

(WebKit::WebProcessProxy::connectionWillClose):
Call connectionWillClose on all pages.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (144389 => 144390)


--- trunk/Source/WebKit2/ChangeLog	2013-02-28 23:59:11 UTC (rev 144389)
+++ trunk/Source/WebKit2/ChangeLog	2013-03-01 00:03:48 UTC (rev 144390)
@@ -1,3 +1,54 @@
+2013-02-28  Anders Carlsson  <[email protected]>
+
+        Add the notion of an allowed connection to SessionStorageNamespace
+        https://bugs.webkit.org/show_bug.cgi?id=111122
+
+        Reviewed by Sam Weinig.
+
+        Group together each session storage namespace with an allowed connection.
+        This will help ensure that rouge web processes will not be able to access session storage
+        from pages in other processes.
+        
+        * UIProcess/Storage/StorageManager.cpp:
+        (StorageManager::SessionStorageNamespace):
+        (WebKit::StorageManager::SessionStorageNamespace::allowedConnection):
+        (WebKit::StorageManager::SessionStorageNamespace::create):
+        (WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
+        (WebKit::StorageManager::SessionStorageNamespace::setAllowedConnection):
+        Add an m_allowedConnection member variable, as well as setters and getters.
+
+        (WebKit::StorageManager::createSessionStorageNamespace):
+        Take an optional allowed connection. (It can be null if the process has not finished launching).
+
+        (WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
+        New function to set the allowed connection for a session storage namespace.
+
+        (WebKit::StorageManager::createStorageArea):
+        Add another FIXME.
+
+        (WebKit::StorageManager::createSessionStorageNamespaceInternal):
+        Pass the connection to the SessionStorageNamespace constructor.
+
+        (WebKit::StorageManager::setAllowedSessionStorageNamespaceConnectionInternal):
+        Set the allowed connection.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::WebPageProxy):
+        Pass the connection to createSessionStorageNamespace.
+
+        (WebKit::WebPageProxy::connectionWillOpen):
+        Call setAllowedSessionStorageNamespaceConnection.
+        
+        (WebKit::WebPageProxy::connectionWillClose):
+        Call setAllowedSessionStorageNamespaceConnection with a null connection.
+
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::connectionWillOpen):
+        Call connectionWillOpen on all pages.
+
+        (WebKit::WebProcessProxy::connectionWillClose):
+        Call connectionWillClose on all pages.
+
 2013-02-28  Kiran Muppala  <[email protected]>
 
         Add private API to disable WKView window occlusion detection

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (144389 => 144390)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-02-28 23:59:11 UTC (rev 144389)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-03-01 00:03:48 UTC (rev 144390)
@@ -159,7 +159,7 @@
         // FIXME: This is a local storage namespace. Do something.
         ASSERT_NOT_REACHED();
     }
-}O
+}
 
 void StorageManager::destroyStorageArea(CoreIPC::Connection*, uint64_t)
 {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to