Title: [233084] trunk/Source/WebKit
- Revision
- 233084
- Author
- [email protected]
- Date
- 2018-06-22 10:06:43 -0700 (Fri, 22 Jun 2018)
Log Message
REGRESSION (r231850): Cookie file cannot be read or written by network process
https://bugs.webkit.org/show_bug.cgi?id=186806
<rdar://problem/41113791>
Reviewed by Geoffrey Garen.
Add defaultSessionPendingCookies to NetworkProcessCreationParameters, so pending cookies of default session
can be added right after default session is set. This improves the fix r231850 as it does not send additional
message and avoids the regression.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::NetworkProcessProxy):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (233083 => 233084)
--- trunk/Source/WebKit/ChangeLog 2018-06-22 16:54:55 UTC (rev 233083)
+++ trunk/Source/WebKit/ChangeLog 2018-06-22 17:06:43 UTC (rev 233084)
@@ -1,3 +1,28 @@
+2018-06-22 Sihui Liu <[email protected]>
+
+ REGRESSION (r231850): Cookie file cannot be read or written by network process
+ https://bugs.webkit.org/show_bug.cgi?id=186806
+ <rdar://problem/41113791>
+
+ Reviewed by Geoffrey Garen.
+
+ Add defaultSessionPendingCookies to NetworkProcessCreationParameters, so pending cookies of default session
+ can be added right after default session is set. This improves the fix r231850 as it does not send additional
+ message and avoids the regression.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::initializeNetworkProcess):
+ * NetworkProcess/NetworkProcessCreationParameters.cpp:
+ (WebKit::NetworkProcessCreationParameters::encode const):
+ (WebKit::NetworkProcessCreationParameters::decode):
+ * NetworkProcess/NetworkProcessCreationParameters.h:
+ * NetworkProcess/mac/RemoteNetworkingContext.mm:
+ (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
+ * UIProcess/Network/NetworkProcessProxy.cpp:
+ (WebKit::NetworkProcessProxy::NetworkProcessProxy):
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::ensureNetworkProcess):
+
2018-06-22 Brent Fulgham <[email protected]>
[iOS Debug] Multiple resourceLoadStatistics redirect tests are flaky timeouts
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (233083 => 233084)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2018-06-22 16:54:55 UTC (rev 233083)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2018-06-22 17:06:43 UTC (rev 233084)
@@ -269,6 +269,10 @@
SessionTracker::setSession(PAL::SessionID::defaultSessionID(), NetworkSession::create(WTFMove(parameters.defaultSessionParameters)));
+ auto* defaultSession = SessionTracker::networkSession(PAL::SessionID::defaultSessionID());
+ for (const auto& cookie : parameters.defaultSessionPendingCookies)
+ defaultSession->networkStorageSession().setCookie(cookie);
+
for (auto& supplement : m_supplements.values())
supplement->initialize(parameters);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (233083 => 233084)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2018-06-22 16:54:55 UTC (rev 233083)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2018-06-22 17:06:43 UTC (rev 233084)
@@ -55,6 +55,7 @@
#if PLATFORM(COCOA)
encoder << uiProcessCookieStorageIdentifier;
#endif
+ encoder << defaultSessionPendingCookies;
#if PLATFORM(IOS)
encoder << cookieStorageDirectoryExtensionHandle;
encoder << containerCachesDirectoryExtensionHandle;
@@ -147,6 +148,8 @@
if (!decoder.decode(result.uiProcessCookieStorageIdentifier))
return false;
#endif
+ if (!decoder.decode(result.defaultSessionPendingCookies))
+ return false;
#if PLATFORM(IOS)
std::optional<SandboxExtension::Handle> cookieStorageDirectoryExtensionHandle;
decoder >> cookieStorageDirectoryExtensionHandle;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (233083 => 233084)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2018-06-22 16:54:55 UTC (rev 233083)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2018-06-22 17:06:43 UTC (rev 233084)
@@ -28,6 +28,7 @@
#include "CacheModel.h"
#include "NetworkSessionCreationParameters.h"
#include "SandboxExtension.h"
+#include <WebCore/Cookie.h>
#include <wtf/ProcessID.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
@@ -65,6 +66,7 @@
#if PLATFORM(COCOA)
Vector<uint8_t> uiProcessCookieStorageIdentifier;
#endif
+ Vector<WebCore::Cookie> defaultSessionPendingCookies;
#if PLATFORM(IOS)
SandboxExtension::Handle cookieStorageDirectoryExtensionHandle;
SandboxExtension::Handle containerCachesDirectoryExtensionHandle;
Modified: trunk/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm (233083 => 233084)
--- trunk/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm 2018-06-22 16:54:55 UTC (rev 233083)
+++ trunk/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm 2018-06-22 17:06:43 UTC (rev 233084)
@@ -46,12 +46,8 @@
void RemoteNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters)
{
auto sessionID = parameters.networkSessionParameters.sessionID;
- if (auto* session = NetworkStorageSession::storageSession(sessionID)) {
- ASSERT(parameters.pendingCookies.isEmpty() || sessionID == PAL::SessionID::defaultSessionID());
- for (const auto& cookie : parameters.pendingCookies)
- session->setCookie(cookie);
+ if (NetworkStorageSession::storageSession(sessionID))
return;
- }
String base;
if (SessionTracker::getIdentifierBase().isNull())
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (233083 => 233084)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2018-06-22 16:54:55 UTC (rev 233083)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2018-06-22 17:06:43 UTC (rev 233084)
@@ -82,6 +82,9 @@
, m_throttler(*this, processPool.shouldTakeUIBackgroundAssertion())
{
connect();
+
+ if (auto* websiteDataStore = m_processPool.websiteDataStore())
+ m_websiteDataStores.set(websiteDataStore->websiteDataStore().sessionID(), makeRef(websiteDataStore->websiteDataStore()));
}
NetworkProcessProxy::~NetworkProcessProxy()
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (233083 => 233084)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-06-22 16:54:55 UTC (rev 233083)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-06-22 17:06:43 UTC (rev 233084)
@@ -528,11 +528,6 @@
m_websiteDataStore->websiteDataStore().networkProcessDidCrash();
}
- if (m_websiteDataStore) {
- m_networkProcess->addSession(makeRef(m_websiteDataStore->websiteDataStore()));
- m_websiteDataStore->websiteDataStore().clearPendingCookies();
- }
-
if (withWebsiteDataStore) {
m_networkProcess->addSession(makeRef(*withWebsiteDataStore));
withWebsiteDataStore->clearPendingCookies();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes