WebKit Bugzilla
Attachment 357912 Details for
Bug 192967
: NetworkProcess should initialize its default NetworkSession with parameters from the UIProcess
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192967-20181220181515.patch (text/plain), 14.22 KB, created by
Alex Christensen
on 2018-12-20 18:15:16 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2018-12-20 18:15:16 PST
Size:
14.22 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 239485) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,25 @@ >+2018-12-20 Alex Christensen <achristensen@webkit.org> >+ >+ NetworkProcess should initialize its default NetworkSession with parameters from the UIProcess >+ https://bugs.webkit.org/show_bug.cgi?id=192967 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * NetworkProcess/NetworkProcess.cpp: >+ (WebKit::NetworkProcess::initializeNetworkProcess): >+ * NetworkProcess/NetworkProcessCreationParameters.cpp: >+ (WebKit::NetworkProcessCreationParameters::encode const): >+ (WebKit::NetworkProcessCreationParameters::decode): >+ * NetworkProcess/NetworkProcessCreationParameters.h: >+ * NetworkProcess/cocoa/NetworkProcessCocoa.mm: >+ (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): >+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm: >+ (WebKit::WebProcessPool::platformInitializeNetworkProcess): >+ * UIProcess/WebProcessPool.cpp: >+ (WebKit::WebProcessPool::ensureNetworkProcess): >+ * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: >+ (WebKit::WebsiteDataStore::parameters): >+ > 2018-12-20 Chris Dumez <cdumez@apple.com> > > Use Optional::hasValue() instead of Optional::has_value() >Index: Source/WebKit/NetworkProcess/NetworkProcess.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcess.cpp (revision 239461) >+++ Source/WebKit/NetworkProcess/NetworkProcess.cpp (working copy) >@@ -299,15 +299,10 @@ void NetworkProcess::initializeNetworkPr > if (parameters.shouldUseTestingNetworkSession) > NetworkStorageSession::switchToNewTestingSession(); > >- NetworkSessionCreationParameters sessionCreationParameters { }; >-#if PLATFORM(COCOA) >- sessionCreationParameters.httpProxy = URL(URL(), parameters.httpProxy); >- sessionCreationParameters.httpsProxy = URL(URL(), parameters.httpsProxy); >-#endif >- SessionTracker::setSession(PAL::SessionID::defaultSessionID(), NetworkSession::create(WTFMove(sessionCreationParameters))); >+ SessionTracker::setSession(PAL::SessionID::defaultSessionID(), NetworkSession::create(WTFMove(parameters.defaultDataStoreParameters.networkSessionParameters))); > > #if ENABLE(INDEXED_DATABASE) >- addIndexedDatabaseSession(PAL::SessionID::defaultSessionID(), parameters.indexedDatabaseDirectory, parameters.indexedDatabaseDirectoryExtensionHandle); >+ addIndexedDatabaseSession(PAL::SessionID::defaultSessionID(), parameters.defaultDataStoreParameters.indexedDatabaseDirectory, parameters.defaultDataStoreParameters.indexedDatabaseDirectoryExtensionHandle); > #endif > > #if ENABLE(SERVICE_WORKER) >@@ -322,7 +317,7 @@ void NetworkProcess::initializeNetworkPr > #endif > > auto* defaultSession = SessionTracker::networkSession(PAL::SessionID::defaultSessionID()); >- for (const auto& cookie : parameters.defaultSessionPendingCookies) >+ for (const auto& cookie : parameters.defaultDataStoreParameters.pendingCookies) > defaultSession->networkStorageSession().setCookie(cookie); > > for (auto& supplement : m_supplements.values()) >Index: Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (revision 239461) >+++ Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (working copy) >@@ -49,10 +49,6 @@ void NetworkProcessCreationParameters::e > #if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION) > encoder << shouldEnableNetworkCacheSpeculativeRevalidation; > #endif >-#if PLATFORM(MAC) >- encoder << uiProcessCookieStorageIdentifier; >-#endif >- encoder << defaultSessionPendingCookies; > #if PLATFORM(IOS_FAMILY) > encoder << cookieStorageDirectoryExtensionHandle; > encoder << containerCachesDirectoryExtensionHandle; >@@ -71,8 +67,7 @@ void NetworkProcessCreationParameters::e > #if PLATFORM(IOS_FAMILY) > encoder << ctDataConnectionServiceType; > #endif >- encoder << httpProxy; >- encoder << httpsProxy; >+ encoder << defaultDataStoreParameters; > IPC::encode(encoder, networkATSContext.get()); > encoder << storageAccessAPIEnabled; > encoder << suppressesConnectionTerminationOnSystemChange; >@@ -100,10 +95,6 @@ void NetworkProcessCreationParameters::e > encoder << wirelessContextIdentifier; > #endif > >-#if ENABLE(INDEXED_DATABASE) >- encoder << indexedDatabaseDirectory << indexedDatabaseDirectoryExtensionHandle; >-#endif >- > #if ENABLE(SERVICE_WORKER) > encoder << serviceWorkerRegistrationDirectory << serviceWorkerRegistrationDirectoryExtensionHandle << urlSchemesServiceWorkersCanHandle << shouldDisableServiceWorkerProcessTerminationDelay; > #endif >@@ -131,12 +122,6 @@ bool NetworkProcessCreationParameters::d > if (!decoder.decode(result.shouldEnableNetworkCacheSpeculativeRevalidation)) > return false; > #endif >-#if PLATFORM(MAC) >- if (!decoder.decode(result.uiProcessCookieStorageIdentifier)) >- return false; >-#endif >- if (!decoder.decode(result.defaultSessionPendingCookies)) >- return false; > #if PLATFORM(IOS_FAMILY) > Optional<SandboxExtension::Handle> cookieStorageDirectoryExtensionHandle; > decoder >> cookieStorageDirectoryExtensionHandle; >@@ -181,10 +166,13 @@ bool NetworkProcessCreationParameters::d > if (!decoder.decode(result.ctDataConnectionServiceType)) > return false; > #endif >- if (!decoder.decode(result.httpProxy)) >- return false; >- if (!decoder.decode(result.httpsProxy)) >+ >+ Optional<WebsiteDataStoreParameters> defaultDataStoreParameters; >+ decoder >> defaultDataStoreParameters; >+ if (!defaultDataStoreParameters) > return false; >+ result.defaultDataStoreParameters = WTFMove(*defaultDataStoreParameters); >+ > if (!IPC::decode(decoder, result.networkATSContext)) > return false; > if (!decoder.decode(result.storageAccessAPIEnabled)) >@@ -231,17 +219,6 @@ bool NetworkProcessCreationParameters::d > return false; > #endif > >-#if ENABLE(INDEXED_DATABASE) >- if (!decoder.decode(result.indexedDatabaseDirectory)) >- return false; >- >- Optional<SandboxExtension::Handle> indexedDatabaseDirectoryExtensionHandle; >- decoder >> indexedDatabaseDirectoryExtensionHandle; >- if (!indexedDatabaseDirectoryExtensionHandle) >- return false; >- result.indexedDatabaseDirectoryExtensionHandle = WTFMove(*indexedDatabaseDirectoryExtensionHandle); >-#endif >- > #if ENABLE(SERVICE_WORKER) > if (!decoder.decode(result.serviceWorkerRegistrationDirectory)) > return false; >Index: Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (revision 239461) >+++ Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (working copy) >@@ -27,6 +27,7 @@ > > #include "CacheModel.h" > #include "SandboxExtension.h" >+#include "WebsiteDataStoreParameters.h" > #include <WebCore/Cookie.h> > #include <wtf/ProcessID.h> > #include <wtf/Vector.h> >@@ -59,10 +60,6 @@ struct NetworkProcessCreationParameters > #if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION) > bool shouldEnableNetworkCacheSpeculativeRevalidation { false }; > #endif >-#if PLATFORM(MAC) >- Vector<uint8_t> uiProcessCookieStorageIdentifier; >-#endif >- Vector<WebCore::Cookie> defaultSessionPendingCookies; > #if PLATFORM(IOS_FAMILY) > SandboxExtension::Handle cookieStorageDirectoryExtensionHandle; > SandboxExtension::Handle containerCachesDirectoryExtensionHandle; >@@ -84,8 +81,7 @@ struct NetworkProcessCreationParameters > #if PLATFORM(IOS_FAMILY) > String ctDataConnectionServiceType; > #endif >- String httpProxy; >- String httpsProxy; >+ WebsiteDataStoreParameters defaultDataStoreParameters; > RetainPtr<CFDataRef> networkATSContext; > bool storageAccessAPIEnabled; > bool suppressesConnectionTerminationOnSystemChange; >@@ -114,11 +110,6 @@ struct NetworkProcessCreationParameters > unsigned wirelessContextIdentifier { 0 }; > #endif > >-#if ENABLE(INDEXED_DATABASE) >- String indexedDatabaseDirectory; >- SandboxExtension::Handle indexedDatabaseDirectoryExtensionHandle; >-#endif >- > #if ENABLE(SERVICE_WORKER) > String serviceWorkerRegistrationDirectory; > SandboxExtension::Handle serviceWorkerRegistrationDirectoryExtensionHandle; >Index: Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm >=================================================================== >--- Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm (revision 239461) >+++ Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm (working copy) >@@ -95,7 +95,7 @@ void NetworkProcess::platformInitializeN > initializeNetworkSettings(); > > #if PLATFORM(MAC) >- setSharedHTTPCookieStorage(parameters.uiProcessCookieStorageIdentifier); >+ setSharedHTTPCookieStorage(parameters.defaultDataStoreParameters.uiProcessCookieStorageIdentifier); > #endif > > WebCore::NetworkStorageSession::setStorageAccessAPIEnabled(parameters.storageAccessAPIEnabled); >Index: Source/WebKit/UIProcess/WebProcessPool.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebProcessPool.cpp (revision 239461) >+++ Source/WebKit/UIProcess/WebProcessPool.cpp (working copy) >@@ -474,11 +474,10 @@ NetworkProcessProxy& WebProcessPool::ens > m_networkProcess = std::make_unique<NetworkProcessProxy>(*this); > > NetworkProcessCreationParameters parameters; >- >- if (m_websiteDataStore) { >- parameters.defaultSessionPendingCookies = copyToVector(m_websiteDataStore->websiteDataStore().pendingCookies()); >- m_websiteDataStore->websiteDataStore().clearPendingCookies(); >- } >+ if (withWebsiteDataStore) >+ parameters.defaultDataStoreParameters = withWebsiteDataStore->parameters(); >+ else if (m_websiteDataStore) >+ parameters.defaultDataStoreParameters = m_websiteDataStore->websiteDataStore().parameters(); > > parameters.cacheModel = cacheModel(); > parameters.canHandleHTTPSServerTrustEvaluation = m_canHandleHTTPSServerTrustEvaluation; >@@ -529,11 +528,11 @@ NetworkProcessProxy& WebProcessPool::ens > // ********* > // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (<rdar://problem/17454712>) > // ********* >- parameters.indexedDatabaseDirectory = m_configuration->indexedDBDatabaseDirectory(); >- if (parameters.indexedDatabaseDirectory.isEmpty()) >- parameters.indexedDatabaseDirectory = API::WebsiteDataStore::defaultDataStore()->websiteDataStore().parameters().indexedDatabaseDirectory; >+ parameters.defaultDataStoreParameters.indexedDatabaseDirectory = m_configuration->indexedDBDatabaseDirectory(); >+ if (parameters.defaultDataStoreParameters.indexedDatabaseDirectory.isEmpty()) >+ parameters.defaultDataStoreParameters.indexedDatabaseDirectory = API::WebsiteDataStore::defaultDataStore()->websiteDataStore().parameters().indexedDatabaseDirectory; > >- SandboxExtension::createHandleForReadWriteDirectory(parameters.indexedDatabaseDirectory, parameters.indexedDatabaseDirectoryExtensionHandle); >+ SandboxExtension::createHandleForReadWriteDirectory(parameters.defaultDataStoreParameters.indexedDatabaseDirectory, parameters.defaultDataStoreParameters.indexedDatabaseDirectoryExtensionHandle); > #endif > > #if ENABLE(SERVICE_WORKER) >Index: Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm >=================================================================== >--- Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (revision 239461) >+++ Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (working copy) >@@ -256,19 +256,6 @@ void WebProcessPool::platformInitializeN > > NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; > >- { >- bool isSafari = false; >-#if PLATFORM(IOS_FAMILY) >- isSafari = WebCore::IOSApplication::isMobileSafari(); >-#elif PLATFORM(MAC) >- isSafari = WebCore::MacApplication::isSafari(); >-#endif >- if (isSafari) { >- parameters.httpProxy = [defaults stringForKey:(NSString *)WebKit2HTTPProxyDefaultsKey]; >- parameters.httpsProxy = [defaults stringForKey:(NSString *)WebKit2HTTPSProxyDefaultsKey]; >- } >- } >- > parameters.networkATSContext = adoptCF(_CFNetworkCopyATSContext()); > > parameters.shouldEnableNetworkCacheEfficacyLogging = [defaults boolForKey:WebKitNetworkCacheEfficacyLoggingEnabledDefaultsKey]; >@@ -280,9 +267,9 @@ void WebProcessPool::platformInitializeN > parameters.shouldSuppressMemoryPressureHandler = [defaults boolForKey:WebKitSuppressMemoryPressureHandlerDefaultsKey]; > > #if PLATFORM(MAC) >- ASSERT(parameters.uiProcessCookieStorageIdentifier.isEmpty()); >+ ASSERT(parameters.defaultDataStoreParameters.uiProcessCookieStorageIdentifier.isEmpty()); > ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); >- parameters.uiProcessCookieStorageIdentifier = identifyingDataFromCookieStorage([[NSHTTPCookieStorage sharedHTTPCookieStorage] _cookieStorage]); >+ parameters.defaultDataStoreParameters.uiProcessCookieStorageIdentifier = identifyingDataFromCookieStorage([[NSHTTPCookieStorage sharedHTTPCookieStorage] _cookieStorage]); > #endif > > parameters.storageAccessAPIEnabled = storageAccessAPIEnabled(); >Index: Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm >=================================================================== >--- Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (revision 239461) >+++ Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (working copy) >@@ -110,7 +110,7 @@ WebsiteDataStoreParameters WebsiteDataSt > parameters.networkSessionParameters.sourceApplicationBundleIdentifier = m_configuration->sourceApplicationBundleIdentifier(); > parameters.networkSessionParameters.sourceApplicationSecondaryIdentifier = m_configuration->sourceApplicationSecondaryIdentifier(); > >- parameters.pendingCookies = copyToVector(m_pendingCookies); >+ parameters.pendingCookies = copyToVector(std::exchange(m_pendingCookies, { })); > > if (!cookieFile.isEmpty()) > SandboxExtension::createHandleForReadWriteDirectory(WebCore::FileSystem::directoryName(cookieFile), parameters.cookieStoragePathExtensionHandle);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192967
:
357912
|
357961