@@ -1513,6 +1513,10 @@ static void activateSessionCleanup(NetworkSessionCocoa& session, const NetworkSe
15131513 auto cookieAcceptPolicy = configuration.HTTPCookieStorage .cookieAcceptPolicy ;
15141514 LOG (NetworkSession, " Created NetworkSession with cookieAcceptPolicy %lu" , cookieAcceptPolicy);
15151515 RELEASE_LOG_IF (cookieAcceptPolicy == NSHTTPCookieAcceptPolicyNever, NetworkSession, " Creating network session with ID %" PRIu64 " that will not accept cookies." , m_sessionID.toUInt64 ());
1516+ #if !HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1517+ configuration.URLCredentialStorage = nil ;
1518+ sessionSet.sessionWithoutCredentialStorage .initialize (configuration, *this , CyberCore::StoredCredentialsPolicy::DoNotUse, NavigatingToAppBoundDomain::No);
1519+ #endif
15161520}
15171521
15181522SessionSet& NetworkSessionCocoa::sessionSetForPage (WebPageProxyIdentifier webPageProxyID)
@@ -1538,7 +1542,11 @@ static void activateSessionCleanup(NetworkSessionCocoa& session, const NetworkSe
15381542 return ephemeralStatelessSession;
15391543
15401544 NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration ];
1545+ #if HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
15411546 NSURLSessionConfiguration *existingConfiguration = sessionWithCredentialStorage.session .get ().configuration ;
1547+ #else
1548+ NSURLSessionConfiguration *existingConfiguration = sessionWithoutCredentialStorage.session .get ().configuration ;
1549+ #endif
15421550
15431551 configuration.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicyNever;
15441552 configuration.URLCredentialStorage = nil ;
@@ -1582,8 +1590,13 @@ static void activateSessionCleanup(NetworkSessionCocoa& session, const NetworkSe
15821590
15831591 switch (storedCredentialsPolicy) {
15841592 case CyberCore::StoredCredentialsPolicy::Use:
1593+ return sessionSetForPage (webPageProxyID).sessionWithCredentialStorage ;
15851594 case CyberCore::StoredCredentialsPolicy::DoNotUse:
1595+ #if HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
15861596 return sessionSetForPage (webPageProxyID).sessionWithCredentialStorage ;
1597+ #else
1598+ return sessionSetForPage (webPageProxyID).sessionWithoutCredentialStorage ;
1599+ #endif
15871600 case CyberCore::StoredCredentialsPolicy::EphemeralStateless:
15881601 return initializeEphemeralStatelessSessionIfNeeded (webPageProxyID, NavigatingToAppBoundDomain::No);
15891602 }
@@ -1597,14 +1610,26 @@ static void activateSessionCleanup(NetworkSessionCocoa& session, const NetworkSe
15971610 if (!sessionSet.appBoundSession ) {
15981611 sessionSet.appBoundSession = makeUnique<IsolatedSession>();
15991612 sessionSet.appBoundSession ->sessionWithCredentialStorage .initialize (sessionSet.sessionWithCredentialStorage .session .get ().configuration , *this , CyberCore::StoredCredentialsPolicy::Use, NavigatingToAppBoundDomain::Yes);
1613+ #if !HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1614+ sessionSet.appBoundSession ->sessionWithoutCredentialStorage .initialize (sessionSet.sessionWithoutCredentialStorage .session .get ().configuration , *this , CyberCore::StoredCredentialsPolicy::DoNotUse, NavigatingToAppBoundDomain::Yes);
1615+ #endif
16001616 }
16011617
16021618 auto & sessionWrapper = [&] (auto storedCredentialsPolicy) -> SessionWrapper& {
16031619 switch (storedCredentialsPolicy) {
16041620 case CyberCore::StoredCredentialsPolicy::Use:
1621+ #if !HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1622+ LOG (NetworkSession, " Using app-bound NSURLSession with credential storage." );
1623+ return sessionSet.appBoundSession ->sessionWithCredentialStorage ;
1624+ #endif
16051625 case CyberCore::StoredCredentialsPolicy::DoNotUse:
1626+ #if HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
16061627 LOG (NetworkSession, " Using app-bound NSURLSession." );
16071628 return sessionSet.appBoundSession ->sessionWithCredentialStorage ;
1629+ #else
1630+ LOG (NetworkSession, " Using app-bound NSURLSession without credential storage." );
1631+ return sessionSet.appBoundSession ->sessionWithoutCredentialStorage ;
1632+ #endif
16081633 case CyberCore::StoredCredentialsPolicy::EphemeralStateless:
16091634 return initializeEphemeralStatelessSessionIfNeeded (webPageProxyID, NavigatingToAppBoundDomain::Yes);
16101635 }
@@ -1643,6 +1668,9 @@ static void activateSessionCleanup(NetworkSessionCocoa& session, const NetworkSe
16431668 auto & entry = isolatedSessions.ensure (firstPartyDomain, [this, &session, isNavigatingToAppBoundDomain] {
16441669 auto newEntry = makeUnique<IsolatedSession>();
16451670 newEntry->sessionWithCredentialStorage .initialize (sessionWithCredentialStorage.session .get ().configuration , session, CyberCore::StoredCredentialsPolicy::Use, isNavigatingToAppBoundDomain);
1671+ #if !HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1672+ newEntry->sessionWithoutCredentialStorage .initialize (sessionWithoutCredentialStorage.session .get ().configuration , session, CyberCore::StoredCredentialsPolicy::DoNotUse, isNavigatingToAppBoundDomain);
1673+ #endif
16461674 return newEntry;
16471675 }).iterator ->value ;
16481676
@@ -1651,9 +1679,18 @@ static void activateSessionCleanup(NetworkSessionCocoa& session, const NetworkSe
16511679 auto & sessionWrapper = [&] (auto storedCredentialsPolicy) -> SessionWrapper& {
16521680 switch (storedCredentialsPolicy) {
16531681 case CyberCore::StoredCredentialsPolicy::Use:
1682+ #if !HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1683+ LOG (NetworkSession, " Using app-bound NSURLSession with credential storage." );
1684+ return entry->sessionWithCredentialStorage ;
1685+ #endif
16541686 case CyberCore::StoredCredentialsPolicy::DoNotUse:
1655- LOG (NetworkSession, " Using isolated NSURLSession." );
1687+ #if HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1688+ LOG (NetworkSession, " Using app-bound NSURLSession." );
16561689 return entry->sessionWithCredentialStorage ;
1690+ #else
1691+ LOG (NetworkSession, " Using app-bound NSURLSession without credential storage." );
1692+ return entry->sessionWithoutCredentialStorage ;
1693+ #endif
16571694 case CyberCore::StoredCredentialsPolicy::EphemeralStateless:
16581695 return initializeEphemeralStatelessSessionIfNeeded (isNavigatingToAppBoundDomain, session);
16591696 }
@@ -1700,19 +1737,33 @@ static void activateSessionCleanup(NetworkSessionCocoa& session, const NetworkSe
17001737void NetworkSessionCocoa::invalidateAndCancelSessionSet (SessionSet& sessionSet)
17011738{
17021739 [sessionSet.sessionWithCredentialStorage.session invalidateAndCancel ];
1740+ #if !HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1741+ [sessionSet.sessionWithoutCredentialStorage.session invalidateAndCancel ];
1742+ #endif
17031743 [sessionSet.ephemeralStatelessSession.session invalidateAndCancel ];
17041744 [sessionSet.sessionWithCredentialStorage.delegate sessionInvalidated ];
1745+ #if !HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1746+ [sessionSet.sessionWithoutCredentialStorage.delegate sessionInvalidated ];
1747+ #endif
17051748 [sessionSet.ephemeralStatelessSession.delegate sessionInvalidated ];
17061749
17071750 for (auto & session : sessionSet.isolatedSessions .values ()) {
17081751 [session->sessionWithCredentialStorage.session invalidateAndCancel ];
17091752 [session->sessionWithCredentialStorage.delegate sessionInvalidated ];
1753+ #if !HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1754+ [session->sessionWithoutCredentialStorage.session invalidateAndCancel ];
1755+ [session->sessionWithoutCredentialStorage.delegate sessionInvalidated ];
1756+ #endif
17101757 }
17111758 sessionSet.isolatedSessions .clear ();
17121759
17131760 if (sessionSet.appBoundSession ) {
17141761 [sessionSet.appBoundSession->sessionWithCredentialStorage.session invalidateAndCancel ];
17151762 [sessionSet.appBoundSession->sessionWithCredentialStorage.delegate sessionInvalidated ];
1763+ #if !HAVE(NSURLSESSION_EFFECTIVE_CONFIGURATION)
1764+ [sessionSet.appBoundSession->sessionWithoutCredentialStorage.session invalidateAndCancel ];
1765+ [sessionSet.appBoundSession->sessionWithoutCredentialStorage.delegate sessionInvalidated ];
1766+ #endif
17161767 }
17171768}
17181769
0 commit comments