Title: [178511] trunk/Source/WebKit2
Revision
178511
Author
[email protected]
Date
2015-01-15 08:45:12 -0800 (Thu, 15 Jan 2015)

Log Message

Don't pass an allowed connection when creating a session storage namespace
https://bugs.webkit.org/show_bug.cgi?id=140482

Reviewed by Sam Weinig.

Instead, always call setAllowedSessionStorageNamespaceConnection. This will make it easier to
move the storage manager into WebsiteDataStore and make it use the process lifetime observer machinery.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::createSessionStorageNamespace):
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (178510 => 178511)


--- trunk/Source/WebKit2/ChangeLog	2015-01-15 14:19:56 UTC (rev 178510)
+++ trunk/Source/WebKit2/ChangeLog	2015-01-15 16:45:12 UTC (rev 178511)
@@ -1,3 +1,21 @@
+2015-01-14  Anders Carlsson  <[email protected]>
+
+        Don't pass an allowed connection when creating a session storage namespace
+        https://bugs.webkit.org/show_bug.cgi?id=140482
+
+        Reviewed by Sam Weinig.
+
+        Instead, always call setAllowedSessionStorageNamespaceConnection. This will make it easier to
+        move the storage manager into WebsiteDataStore and make it use the process lifetime observer machinery.
+
+        * UIProcess/Storage/StorageManager.cpp:
+        (WebKit::StorageManager::SessionStorageNamespace::create):
+        (WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
+        (WebKit::StorageManager::createSessionStorageNamespace):
+        * UIProcess/Storage/StorageManager.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::WebPageProxy):
+
 2015-01-15  Carlos Garcia Campos  <[email protected]>
 
         REGRESSION(r177075): [GTK] Creating a second web view disables accelerated compositing in existing web view

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (178510 => 178511)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2015-01-15 14:19:56 UTC (rev 178510)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2015-01-15 16:45:12 UTC (rev 178511)
@@ -356,7 +356,7 @@
 
 class StorageManager::SessionStorageNamespace : public ThreadSafeRefCounted<SessionStorageNamespace> {
 public:
-    static Ref<SessionStorageNamespace> create(IPC::Connection* allowedConnection, unsigned quotaInBytes);
+    static Ref<SessionStorageNamespace> create(unsigned quotaInBytes);
     ~SessionStorageNamespace();
 
     bool isEmpty() const { return m_storageAreaMap.isEmpty(); }
@@ -369,7 +369,7 @@
     void cloneTo(SessionStorageNamespace& newSessionStorageNamespace);
 
 private:
-    SessionStorageNamespace(IPC::Connection* allowedConnection, unsigned quotaInBytes);
+    explicit SessionStorageNamespace(unsigned quotaInBytes);
 
     RefPtr<IPC::Connection> m_allowedConnection;
     unsigned m_quotaInBytes;
@@ -377,14 +377,13 @@
     HashMap<RefPtr<SecurityOrigin>, RefPtr<StorageArea>> m_storageAreaMap;
 };
 
-Ref<StorageManager::SessionStorageNamespace> StorageManager::SessionStorageNamespace::create(IPC::Connection* allowedConnection, unsigned quotaInBytes)
+Ref<StorageManager::SessionStorageNamespace> StorageManager::SessionStorageNamespace::create(unsigned quotaInBytes)
 {
-    return adoptRef(*new SessionStorageNamespace(allowedConnection, quotaInBytes));
+    return adoptRef(*new SessionStorageNamespace(quotaInBytes));
 }
 
-StorageManager::SessionStorageNamespace::SessionStorageNamespace(IPC::Connection* allowedConnection, unsigned quotaInBytes)
-    : m_allowedConnection(allowedConnection)
-    , m_quotaInBytes(quotaInBytes)
+StorageManager::SessionStorageNamespace::SessionStorageNamespace(unsigned quotaInBytes)
+    : m_quotaInBytes(quotaInBytes)
 {
 }
 
@@ -433,15 +432,14 @@
 {
 }
 
-void StorageManager::createSessionStorageNamespace(uint64_t storageNamespaceID, IPC::Connection* allowedConnection, unsigned quotaInBytes)
+void StorageManager::createSessionStorageNamespace(uint64_t storageNamespaceID, unsigned quotaInBytes)
 {
     RefPtr<StorageManager> storageManager(this);
-    RefPtr<IPC::Connection> connection(allowedConnection);
 
-    m_queue->dispatch([storageManager, connection, storageNamespaceID, quotaInBytes] {
+    m_queue->dispatch([storageManager, storageNamespaceID, quotaInBytes] {
         ASSERT(!storageManager->m_sessionStorageNamespaces.contains(storageNamespaceID));
 
-        storageManager->m_sessionStorageNamespaces.set(storageNamespaceID, SessionStorageNamespace::create(connection.get(), quotaInBytes));
+        storageManager->m_sessionStorageNamespaces.set(storageNamespaceID, SessionStorageNamespace::create(quotaInBytes));
     });
 }
 

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h (178510 => 178511)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2015-01-15 14:19:56 UTC (rev 178510)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2015-01-15 16:45:12 UTC (rev 178511)
@@ -50,7 +50,7 @@
     static Ref<StorageManager> create(const String& localStorageDirectory);
     ~StorageManager();
 
-    void createSessionStorageNamespace(uint64_t storageNamespaceID, IPC::Connection* allowedConnection, unsigned quotaInBytes);
+    void createSessionStorageNamespace(uint64_t storageNamespaceID, unsigned quotaInBytes);
     void destroySessionStorageNamespace(uint64_t storageNamespaceID);
     void setAllowedSessionStorageNamespaceConnection(uint64_t storageNamespaceID, IPC::Connection* allowedConnection);
     void cloneSessionStorageNamespace(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID);

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (178510 => 178511)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2015-01-15 14:19:56 UTC (rev 178510)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2015-01-15 16:45:12 UTC (rev 178511)
@@ -380,12 +380,15 @@
     , m_viewStateChangeWantsSynchronousReply(false)
     , m_isPlayingAudio(false)
 {
+    m_process->processPool().storageManager().createSessionStorageNamespace(m_pageID, std::numeric_limits<unsigned>::max());
+
     m_webProcessLifetimeTracker.addObserver(m_visitedLinkProvider);
     m_webProcessLifetimeTracker.addObserver(m_websiteDataStore);
 
     if (m_process->state() == WebProcessProxy::State::Running) {
         if (m_userContentController)
             m_process->addWebUserContentControllerProxy(*m_userContentController);
+        m_process->processPool().storageManager().setAllowedSessionStorageNamespaceConnection(m_pageID, m_process->connection());
     }
 
     updateViewState();
@@ -422,9 +425,6 @@
 
     m_process->addMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_pageID, *this);
 
-    // FIXME: If we ever expose the session storage size as a preference, we need to pass it here.
-    IPC::Connection* connection = m_process->state() == WebProcessProxy::State::Running ? m_process->connection() : nullptr;
-    m_process->processPool().storageManager().createSessionStorageNamespace(m_pageID, connection, std::numeric_limits<unsigned>::max());
     setSessionID(configuration.sessionID);
 
 #if PLATFORM(COCOA)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to