- 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)