Diff
Modified: trunk/Source/WebCore/PAL/ChangeLog (294260 => 294261)
--- trunk/Source/WebCore/PAL/ChangeLog 2022-05-16 21:21:17 UTC (rev 294260)
+++ trunk/Source/WebCore/PAL/ChangeLog 2022-05-16 21:37:00 UTC (rev 294261)
@@ -1,3 +1,16 @@
+2022-05-16 Ryan Haddad <ryanhad...@apple.com>
+
+ Unreviewed, reverting r294238.
+
+ Breaks internal builds
+
+ Reverted changeset:
+
+ "Use _adoptEffectiveConfiguration instead of a separate
+ NSURLSession without credentials"
+ https://bugs.webkit.org/show_bug.cgi?id=240362
+ https://commits.webkit.org/r294238
+
2022-05-16 Alex Christensen <achristen...@webkit.org>
Use _adoptEffectiveConfiguration instead of a separate NSURLSession without credentials
Modified: trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h (294260 => 294261)
--- trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h 2022-05-16 21:21:17 UTC (rev 294260)
+++ trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h 2022-05-16 21:37:00 UTC (rev 294261)
@@ -280,7 +280,6 @@
@end
@interface NSURLSessionTask ()
-- (void) _adoptEffectiveConfiguration:(NSURLSessionConfiguration*) newConfiguration;
- (NSDictionary *)_timingData;
@property (readwrite, copy) NSString *_pathToDownloadTaskFile;
@property (copy) NSString *_storagePartitionIdentifier;
Modified: trunk/Source/WebKit/ChangeLog (294260 => 294261)
--- trunk/Source/WebKit/ChangeLog 2022-05-16 21:21:17 UTC (rev 294260)
+++ trunk/Source/WebKit/ChangeLog 2022-05-16 21:37:00 UTC (rev 294261)
@@ -1,3 +1,16 @@
+2022-05-16 Ryan Haddad <ryanhad...@apple.com>
+
+ Unreviewed, reverting r294238.
+
+ Breaks internal builds
+
+ Reverted changeset:
+
+ "Use _adoptEffectiveConfiguration instead of a separate
+ NSURLSession without credentials"
+ https://bugs.webkit.org/show_bug.cgi?id=240362
+ https://commits.webkit.org/r294238
+
2022-05-16 J Pascoe <j_pas...@apple.com>
REGRESSION (250501@main): [ Mac ] 2 TestWebKitAPI.WebAuthenticationPanel.GetAssertionLA tests failing
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (294260 => 294261)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2022-05-16 21:21:17 UTC (rev 294260)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2022-05-16 21:37:00 UTC (rev 294261)
@@ -356,20 +356,6 @@
m_task = [m_sessionWrapper->session dataTaskWithRequest:nsRequest.get()];
- switch (parameters.storedCredentialsPolicy) {
- case WebCore::StoredCredentialsPolicy::Use:
- ASSERT(m_sessionWrapper->session.get().configuration.URLCredentialStorage);
- break;
- case WebCore::StoredCredentialsPolicy::EphemeralStateless:
- ASSERT(!m_sessionWrapper->session.get().configuration.URLCredentialStorage);
- break;
- case WebCore::StoredCredentialsPolicy::DoNotUse:
- NSURLSessionConfiguration *effectiveConfiguration = m_sessionWrapper->session.get().configuration;
- effectiveConfiguration.URLCredentialStorage = nil;
- [m_task _adoptEffectiveConfiguration:effectiveConfiguration];
- break;
- };
-
WTFBeginSignpost(m_task.get(), "DataTask", "%{public}s pri: %.2f preconnect: %d", url.string().ascii().data(), toNSURLSessionTaskPriority(request.priority()), parameters.shouldPreconnectOnly == PreconnectOnly::Yes);
RELEASE_ASSERT(!m_sessionWrapper->dataTaskMap.contains([m_task taskIdentifier]));
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h (294260 => 294261)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h 2022-05-16 21:21:17 UTC (rev 294260)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h 2022-05-16 21:37:00 UTC (rev 294261)
@@ -68,6 +68,7 @@
WTF_MAKE_FAST_ALLOCATED;
public:
SessionWrapper sessionWithCredentialStorage;
+ SessionWrapper sessionWithoutCredentialStorage;
WallTime lastUsed;
};
@@ -86,6 +87,7 @@
std::unique_ptr<IsolatedSession> appBoundSession;
SessionWrapper sessionWithCredentialStorage;
+ SessionWrapper sessionWithoutCredentialStorage;
SessionWrapper ephemeralStatelessSession;
private:
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (294260 => 294261)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2022-05-16 21:21:17 UTC (rev 294260)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2022-05-16 21:37:00 UTC (rev 294261)
@@ -1351,6 +1351,9 @@
auto cookieAcceptPolicy = configuration.HTTPCookieStorage.cookieAcceptPolicy;
LOG(NetworkSession, "Created NetworkSession with cookieAcceptPolicy %lu", cookieAcceptPolicy);
RELEASE_LOG_IF(cookieAcceptPolicy == NSHTTPCookieAcceptPolicyNever, NetworkSession, "Creating network session with ID %" PRIu64 " that will not accept cookies.", m_sessionID.toUInt64());
+
+ configuration.URLCredentialStorage = nil;
+ sessionSet.sessionWithoutCredentialStorage.initialize(configuration, *this, WebCore::StoredCredentialsPolicy::DoNotUse, NavigatingToAppBoundDomain::No);
}
SessionSet& NetworkSessionCocoa::sessionSetForPage(WebPageProxyIdentifier webPageProxyID)
@@ -1376,7 +1379,7 @@
return ephemeralStatelessSession;
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration];
- NSURLSessionConfiguration *existingConfiguration = sessionWithCredentialStorage.session.get().configuration;
+ NSURLSessionConfiguration *existingConfiguration = sessionWithoutCredentialStorage.session.get().configuration;
configuration.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicyNever;
configuration.URLCredentialStorage = nil;
@@ -1420,8 +1423,9 @@
switch (storedCredentialsPolicy) {
case WebCore::StoredCredentialsPolicy::Use:
+ return sessionSetForPage(webPageProxyID).sessionWithCredentialStorage;
case WebCore::StoredCredentialsPolicy::DoNotUse:
- return sessionSetForPage(webPageProxyID).sessionWithCredentialStorage;
+ return sessionSetForPage(webPageProxyID).sessionWithoutCredentialStorage;
case WebCore::StoredCredentialsPolicy::EphemeralStateless:
return initializeEphemeralStatelessSessionIfNeeded(webPageProxyID, NavigatingToAppBoundDomain::No);
}
@@ -1435,14 +1439,17 @@
if (!sessionSet.appBoundSession) {
sessionSet.appBoundSession = makeUnique<IsolatedSession>();
sessionSet.appBoundSession->sessionWithCredentialStorage.initialize(sessionSet.sessionWithCredentialStorage.session.get().configuration, *this, WebCore::StoredCredentialsPolicy::Use, NavigatingToAppBoundDomain::Yes);
+ sessionSet.appBoundSession->sessionWithoutCredentialStorage.initialize(sessionSet.sessionWithoutCredentialStorage.session.get().configuration, *this, WebCore::StoredCredentialsPolicy::DoNotUse, NavigatingToAppBoundDomain::Yes);
}
auto& sessionWrapper = [&] (auto storedCredentialsPolicy) -> SessionWrapper& {
switch (storedCredentialsPolicy) {
case WebCore::StoredCredentialsPolicy::Use:
+ LOG(NetworkSession, "Using app-bound NSURLSession with credential storage.");
+ return sessionSet.appBoundSession->sessionWithCredentialStorage;
case WebCore::StoredCredentialsPolicy::DoNotUse:
- LOG(NetworkSession, "Using app-bound NSURLSession.");
- return sessionSet.appBoundSession->sessionWithCredentialStorage;
+ LOG(NetworkSession, "Using app-bound NSURLSession without credential storage.");
+ return sessionSet.appBoundSession->sessionWithoutCredentialStorage;
case WebCore::StoredCredentialsPolicy::EphemeralStateless:
return initializeEphemeralStatelessSessionIfNeeded(webPageProxyID, NavigatingToAppBoundDomain::Yes);
}
@@ -1481,6 +1488,7 @@
auto& entry = isolatedSessions.ensure(firstPartyDomain, [this, &session, isNavigatingToAppBoundDomain] {
auto newEntry = makeUnique<IsolatedSession>();
newEntry->sessionWithCredentialStorage.initialize(sessionWithCredentialStorage.session.get().configuration, session, WebCore::StoredCredentialsPolicy::Use, isNavigatingToAppBoundDomain);
+ newEntry->sessionWithoutCredentialStorage.initialize(sessionWithoutCredentialStorage.session.get().configuration, session, WebCore::StoredCredentialsPolicy::DoNotUse, isNavigatingToAppBoundDomain);
return newEntry;
}).iterator->value;
@@ -1489,9 +1497,11 @@
auto& sessionWrapper = [&] (auto storedCredentialsPolicy) -> SessionWrapper& {
switch (storedCredentialsPolicy) {
case WebCore::StoredCredentialsPolicy::Use:
+ LOG(NetworkSession, "Using isolated NSURLSession with credential storage.");
+ return entry->sessionWithCredentialStorage;
case WebCore::StoredCredentialsPolicy::DoNotUse:
- LOG(NetworkSession, "Using isolated NSURLSession.");
- return entry->sessionWithCredentialStorage;
+ LOG(NetworkSession, "Using isolated NSURLSession without credential storage.");
+ return entry->sessionWithoutCredentialStorage;
case WebCore::StoredCredentialsPolicy::EphemeralStateless:
return initializeEphemeralStatelessSessionIfNeeded(isNavigatingToAppBoundDomain, session);
}
@@ -1538,13 +1548,17 @@
void NetworkSessionCocoa::invalidateAndCancelSessionSet(SessionSet& sessionSet)
{
[sessionSet.sessionWithCredentialStorage.session invalidateAndCancel];
+ [sessionSet.sessionWithoutCredentialStorage.session invalidateAndCancel];
[sessionSet.ephemeralStatelessSession.session invalidateAndCancel];
[sessionSet.sessionWithCredentialStorage.delegate sessionInvalidated];
+ [sessionSet.sessionWithoutCredentialStorage.delegate sessionInvalidated];
[sessionSet.ephemeralStatelessSession.delegate sessionInvalidated];
for (auto& session : sessionSet.isolatedSessions.values()) {
[session->sessionWithCredentialStorage.session invalidateAndCancel];
[session->sessionWithCredentialStorage.delegate sessionInvalidated];
+ [session->sessionWithoutCredentialStorage.session invalidateAndCancel];
+ [session->sessionWithoutCredentialStorage.delegate sessionInvalidated];
}
sessionSet.isolatedSessions.clear();
@@ -1551,6 +1565,8 @@
if (sessionSet.appBoundSession) {
[sessionSet.appBoundSession->sessionWithCredentialStorage.session invalidateAndCancel];
[sessionSet.appBoundSession->sessionWithCredentialStorage.delegate sessionInvalidated];
+ [sessionSet.appBoundSession->sessionWithoutCredentialStorage.session invalidateAndCancel];
+ [sessionSet.appBoundSession->sessionWithoutCredentialStorage.delegate sessionInvalidated];
}
}
Modified: trunk/Tools/ChangeLog (294260 => 294261)
--- trunk/Tools/ChangeLog 2022-05-16 21:21:17 UTC (rev 294260)
+++ trunk/Tools/ChangeLog 2022-05-16 21:37:00 UTC (rev 294261)
@@ -1,3 +1,16 @@
+2022-05-16 Ryan Haddad <ryanhad...@apple.com>
+
+ Unreviewed, reverting r294238.
+
+ Breaks internal builds
+
+ Reverted changeset:
+
+ "Use _adoptEffectiveConfiguration instead of a separate
+ NSURLSession without credentials"
+ https://bugs.webkit.org/show_bug.cgi?id=240362
+ https://commits.webkit.org/r294238
+
2022-05-16 Alejandro G. Castro <a...@igalia.com>
[GTK][WPE] Make ANGLE backend EGL context initialization work
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm (294260 => 294261)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm 2022-05-16 21:21:17 UTC (rev 294260)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm 2022-05-16 21:37:00 UTC (rev 294261)
@@ -87,16 +87,20 @@
});
auto webView = adoptNS([WKWebView new]);
+ // The preconnect to the server will use the default setting of "use the credential store",
+ // and therefore use the credential-store-blessed NSURLSession.
[webView _preconnectToServer:server.request().URL];
Util::run(&anyConnections);
Util::spinRunLoop(10);
EXPECT_FALSE(requested);
+ // Then this request will *not* use the credential store, therefore using a different NSURLSession
+ // that doesn't know about the above preconnect, triggering a second connection to the server.
webView.get()._canUseCredentialStorage = NO;
[webView loadRequest:server.request()];
Util::run(&requested);
- EXPECT_EQ(connectionCount, 1u);
+ EXPECT_EQ(connectionCount, 2u);
}
TEST(Preconnect, HTTPS)
Modified: trunk/Tools/TestWebKitAPI/cocoa/HTTPServer.mm (294260 => 294261)
--- trunk/Tools/TestWebKitAPI/cocoa/HTTPServer.mm 2022-05-16 21:21:17 UTC (rev 294260)
+++ trunk/Tools/TestWebKitAPI/cocoa/HTTPServer.mm 2022-05-16 21:37:00 UTC (rev 294261)
@@ -237,15 +237,7 @@
"Content-Length: 0\r\n"
"WWW-Authenticate: Basic realm=\"testrealm\"\r\n\r\n"_s;
connection.send(challengeHeader, [connection] {
- connection.receiveHTTPRequest([connection] (Vector<char>&&) {
- connection.send(
- "HTTP/1.1 200 OK\r\n"
- "Content-Length: 34\r\n\r\n"
- "<script>alert('success!')</script>"_s, [connection] {
- respondWithChallengeThenOK(connection);
- }
- );
- });
+ respondWithOK(connection);
});
});
}