Changeset 230541 in webkit
- Timestamp:
- Apr 11, 2018 12:05:08 PM (6 years ago)
- Location:
- trunk/Source
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r230540 r230541 1 2018-04-11 Youenn Fablet <youenn@apple.com> 2 3 Pass FetchOptions and SecurityOrigin as load parameters from WebProcess to NetworkProcess 4 https://bugs.webkit.org/show_bug.cgi?id=184374 5 6 Reviewed by Chris Dumez. 7 8 Add support for SecurityOrigin encode/decode routines. 9 10 * page/SecurityOrigin.h: 11 1 12 2018-04-11 Thibault Saunier <tsaunier@igalia.com> 2 13 -
trunk/Source/WebCore/page/SecurityOrigin.h
r230205 r230541 207 207 const SecurityOriginData& data() const { return m_data; } 208 208 209 template<class Encoder> void encode(Encoder&) const; 210 template<class Decoder> static RefPtr<SecurityOrigin> decode(Decoder&); 211 209 212 private: 210 213 SecurityOrigin(); … … 242 245 bool originsMatch(const SecurityOrigin*, const SecurityOrigin*); 243 246 247 template<class Encoder> inline void SecurityOrigin::encode(Encoder& encoder) const 248 { 249 encoder << m_data; 250 encoder << m_domain; 251 encoder << m_filePath; 252 encoder << m_isUnique; 253 encoder << m_universalAccess; 254 encoder << m_domainWasSetInDOM; 255 encoder << m_canLoadLocalResources; 256 encoder.encodeEnum(m_storageBlockingPolicy); 257 encoder << m_enforcesFilePathSeparation; 258 encoder << m_needsStorageAccessFromFileURLsQuirk; 259 encoder << m_isPotentiallyTrustworthy; 260 encoder << m_isLocal; 261 } 262 263 template<class Decoder> inline RefPtr<SecurityOrigin> SecurityOrigin::decode(Decoder& decoder) 264 { 265 std::optional<SecurityOriginData> data; 266 decoder >> data; 267 if (!data) 268 return nullptr; 269 270 auto origin = SecurityOrigin::create(data->protocol, data->host, data->port); 271 272 if (!decoder.decode(origin->m_domain)) 273 return nullptr; 274 if (!decoder.decode(origin->m_filePath)) 275 return nullptr; 276 if (!decoder.decode(origin->m_isUnique)) 277 return nullptr; 278 if (!decoder.decode(origin->m_universalAccess)) 279 return nullptr; 280 if (!decoder.decode(origin->m_domainWasSetInDOM)) 281 return nullptr; 282 if (!decoder.decode(origin->m_canLoadLocalResources)) 283 return nullptr; 284 if (!decoder.decodeEnum(origin->m_storageBlockingPolicy)) 285 return nullptr; 286 if (!decoder.decode(origin->m_enforcesFilePathSeparation)) 287 return nullptr; 288 if (!decoder.decode(origin->m_needsStorageAccessFromFileURLsQuirk)) 289 return nullptr; 290 if (!decoder.decode(origin->m_isPotentiallyTrustworthy)) 291 return nullptr; 292 if (!decoder.decode(origin->m_isLocal)) 293 return nullptr; 294 295 return WTFMove(origin); 296 } 297 244 298 } // namespace WebCore -
trunk/Source/WebKit/ChangeLog
r230529 r230541 1 2018-04-11 Youenn Fablet <youenn@apple.com> 2 3 Pass FetchOptions and SecurityOrigin as load parameters from WebProcess to NetworkProcess 4 https://bugs.webkit.org/show_bug.cgi?id=184374 5 6 Reviewed by Chris Dumez. 7 8 Pass full FetchOptions parameters as part of NetworkResourceLoadParameters. 9 This will allow handling redirection mode as well as credentials in case of cross origin redirections. 10 In case of SameOrigin credentials and there is a redirection from same-origin to cross-origin, 11 we will be able to stop using credentials without going to WebProcess. 12 13 To handle properly cross-origin checks, we have to be able to use SecurityOrigin as in WebProcess. 14 We make WebProcess sends Origin Access White list information to NetworkProcess. 15 This allows supporting the white list when doing loading in NetworkProcess. 16 This only works consistently if all WebProcesses share the same whitelist. 17 18 * NetworkProcess/NetworkConnectionToWebProcess.cpp: 19 (WebKit::NetworkConnectionToWebProcess::loadPing): 20 (WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry): 21 (WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry): 22 (WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists): 23 * NetworkProcess/NetworkConnectionToWebProcess.h: 24 * NetworkProcess/NetworkConnectionToWebProcess.messages.in: 25 * NetworkProcess/NetworkLoadChecker.cpp: 26 (WebKit::NetworkLoadChecker::NetworkLoadChecker): 27 (WebKit::NetworkLoadChecker::checkRedirection): 28 (WebKit::NetworkLoadChecker::continueCheckingRequest): 29 (WebKit::NetworkLoadChecker::checkCORSRequest): 30 (WebKit::NetworkLoadChecker::checkCORSRedirectedRequest): 31 (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): 32 (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const): 33 * NetworkProcess/NetworkLoadChecker.h: 34 (WebKit::NetworkLoadChecker::create): 35 * NetworkProcess/NetworkResourceLoadParameters.cpp: 36 (WebKit::NetworkResourceLoadParameters::encode const): 37 (WebKit::NetworkResourceLoadParameters::decode): 38 * NetworkProcess/NetworkResourceLoadParameters.h: 39 * NetworkProcess/PingLoad.cpp: 40 (WebKit::PingLoad::PingLoad): 41 (WebKit::PingLoad::willPerformHTTPRedirection): 42 * NetworkProcess/PingLoad.h: 43 * WebProcess/InjectedBundle/InjectedBundle.cpp: 44 (WebKit::InjectedBundle::addOriginAccessWhitelistEntry): 45 (WebKit::InjectedBundle::removeOriginAccessWhitelistEntry): 46 (WebKit::InjectedBundle::resetOriginAccessWhitelists): 47 * WebProcess/Network/WebLoaderStrategy.cpp: 48 (WebKit::WebLoaderStrategy::startPingLoad): 49 1 50 2018-04-11 Michael Catanzaro <mcatanzaro@igalia.com> 2 51 -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
r230528 r230541 56 56 #include <WebCore/ResourceLoaderOptions.h> 57 57 #include <WebCore/ResourceRequest.h> 58 #include <WebCore/SecurityPolicy.h> 58 59 #include <pal/SessionID.h> 59 60 … … 249 250 } 250 251 251 void NetworkConnectionToWebProcess::loadPing(NetworkResourceLoadParameters&& loadParameters , HTTPHeaderMap&& originalRequestHeaders)252 void NetworkConnectionToWebProcess::loadPing(NetworkResourceLoadParameters&& loadParameters) 252 253 { 253 254 auto completionHandler = [this, protectedThis = makeRef(*this), identifier = loadParameters.identifier] (const ResourceError& error, const ResourceResponse& response) { … … 256 257 257 258 // PingLoad manages its own lifetime, deleting itself when its purpose has been fulfilled. 258 new PingLoad(WTFMove(loadParameters), WTFMove( originalRequestHeaders), WTFMove(completionHandler));259 new PingLoad(WTFMove(loadParameters), WTFMove(completionHandler)); 259 260 } 260 261 … … 514 515 } 515 516 517 void NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry(const String& sourceOrigin, const String& destinationProtocol, const String& destinationHost, bool allowDestinationSubdomains) 518 { 519 SecurityPolicy::addOriginAccessWhitelistEntry(SecurityOrigin::createFromString(sourceOrigin).get(), destinationProtocol, destinationHost, allowDestinationSubdomains); 520 } 521 522 void NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry(const String& sourceOrigin, const String& destinationProtocol, const String& destinationHost, bool allowDestinationSubdomains) 523 { 524 SecurityPolicy::removeOriginAccessWhitelistEntry(SecurityOrigin::createFromString(sourceOrigin).get(), destinationProtocol, destinationHost, allowDestinationSubdomains); 525 } 526 527 void NetworkConnectionToWebProcess::resetOriginAccessWhitelists() 528 { 529 SecurityPolicy::resetOriginAccessWhitelists(); 530 } 531 516 532 } // namespace WebKit -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
r230528 r230541 93 93 void scheduleResourceLoad(NetworkResourceLoadParameters&&); 94 94 void performSynchronousLoad(NetworkResourceLoadParameters&&, Ref<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&); 95 void loadPing(NetworkResourceLoadParameters&& , WebCore::HTTPHeaderMap&& originalRequestHeaders);95 void loadPing(NetworkResourceLoadParameters&&); 96 96 void prefetchDNS(const String&); 97 97 void preconnectTo(uint64_t preconnectionIdentifier, NetworkLoadParameters&&); … … 141 141 void removeStorageAccessForAllFramesOnPage(PAL::SessionID, uint64_t pageID); 142 142 143 void addOriginAccessWhitelistEntry(const String& sourceOrigin, const String& destinationProtocol, const String& destinationHost, bool allowDestinationSubdomains); 144 void removeOriginAccessWhitelistEntry(const String& sourceOrigin, const String& destinationProtocol, const String& destinationHost, bool allowDestinationSubdomains); 145 void resetOriginAccessWhitelists(); 146 143 147 Ref<IPC::Connection> m_connection; 144 148 -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
r226542 r230541 25 25 ScheduleResourceLoad(WebKit::NetworkResourceLoadParameters resourceLoadParameters) 26 26 PerformSynchronousLoad(WebKit::NetworkResourceLoadParameters resourceLoadParameters) -> (WebCore::ResourceError error, WebCore::ResourceResponse response, Vector<char> data) Delayed 27 LoadPing(WebKit::NetworkResourceLoadParameters resourceLoadParameters , WebCore::HTTPHeaderMap originalRequestHeaders)27 LoadPing(WebKit::NetworkResourceLoadParameters resourceLoadParameters) 28 28 RemoveLoadIdentifier(uint64_t resourceLoadIdentifier) 29 29 SetDefersLoading(uint64_t resourceLoadIdentifier, bool defers) … … 61 61 RemoveStorageAccessForFrame(PAL::SessionID sessionID, uint64_t frameID, uint64_t pageID); 62 62 RemoveStorageAccessForAllFramesOnPage(PAL::SessionID sessionID, uint64_t pageID); 63 64 AddOriginAccessWhitelistEntry(String sourceOrigin, String destinationProtocol, String destinationHost, bool allowDestinationSubdomains); 65 RemoveOriginAccessWhitelistEntry(String sourceOrigin, String destinationProtocol, String destinationHost, bool allowDestinationSubdomains); 66 ResetOriginAccessWhitelists(); 63 67 } -
trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp
r230495 r230541 42 42 using namespace WebCore; 43 43 44 NetworkLoadChecker::NetworkLoadChecker(WebCore::FetchOptions::Mode mode, bool shouldFollowRedirects, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, PAL::SessionID sessionID, WebCore::HTTPHeaderMap&& originalRequestHeaders, URL&& url, RefPtr<SecurityOrigin>&& sourceOrigin) 45 : m_mode(mode) 46 , m_shouldFollowRedirects(shouldFollowRedirects) 47 , m_storedCredentialsPolicy(storedCredentialsPolicy) 44 NetworkLoadChecker::NetworkLoadChecker(WebCore::FetchOptions&& options, PAL::SessionID sessionID, WebCore::HTTPHeaderMap&& originalRequestHeaders, URL&& url, RefPtr<SecurityOrigin>&& sourceOrigin) 45 : m_options(WTFMove(options)) 48 46 , m_sessionID(sessionID) 49 47 , m_originalRequestHeaders(WTFMove(originalRequestHeaders)) … … 51 49 , m_origin(WTFMove(sourceOrigin)) 52 50 { 53 if (m_mode == FetchOptions::Mode::Cors || m_mode == FetchOptions::Mode::SameOrigin) 54 m_isSameOriginRequest = m_origin->canRequest(m_url); 51 if (m_options.mode == FetchOptions::Mode::Cors || m_options.mode == FetchOptions::Mode::SameOrigin) 52 m_isSameOriginRequest = m_url.protocolIsData() || m_url.protocolIsBlob() || m_origin->canRequest(m_url); 53 switch (options.credentials) { 54 case FetchOptions::Credentials::Include: 55 m_storedCredentialsPolicy = StoredCredentialsPolicy::Use; 56 break; 57 case FetchOptions::Credentials::SameOrigin: 58 m_storedCredentialsPolicy = m_isSameOriginRequest ? StoredCredentialsPolicy::Use : StoredCredentialsPolicy::DoNotUse; 59 break; 60 case FetchOptions::Credentials::Omit: 61 m_storedCredentialsPolicy = StoredCredentialsPolicy::DoNotUse; 62 break; 63 } 55 64 } 56 65 … … 78 87 m_url = request.url(); 79 88 80 if ( !m_shouldFollowRedirects) {89 if (m_options.redirect != FetchOptions::Redirect::Follow) { 81 90 handler(returnError(ASCIILiteral("Load parameters do not allow following redirections"))); 82 91 return; … … 106 115 } 107 116 108 if (m_ mode == FetchOptions::Mode::NoCors) {117 if (m_options.mode == FetchOptions::Mode::NoCors) { 109 118 response.setTainting(ResourceResponse::Tainting::Opaque); 110 119 return { }; 111 120 } 112 121 113 ASSERT(m_ mode == FetchOptions::Mode::Cors);122 ASSERT(m_options.mode == FetchOptions::Mode::Cors); 114 123 115 124 String errorMessage; … … 146 155 if (isRedirected()) { 147 156 URL url = request.url(); 148 auto type = m_ mode == FetchOptions::Mode::Navigate ? ContentSecurityPolicy::InsecureRequestType::Navigation : ContentSecurityPolicy::InsecureRequestType::Load;157 auto type = m_options.mode == FetchOptions::Mode::Navigate ? ContentSecurityPolicy::InsecureRequestType::Navigation : ContentSecurityPolicy::InsecureRequestType::Load; 149 158 contentSecurityPolicy->upgradeInsecureRequestIfNeeded(url, type); 150 159 if (url != request.url()) … … 157 166 } 158 167 168 if (m_options.credentials == FetchOptions::Credentials::SameOrigin) 169 m_storedCredentialsPolicy = (m_isSameOriginRequest && m_origin->canRequest(request.url())) ? StoredCredentialsPolicy::Use : StoredCredentialsPolicy::DoNotUse; 170 159 171 if (doesNotNeedCORSCheck(request.url())) { 160 172 handler(WTFMove(request)); … … 162 174 } 163 175 164 if (m_ mode == FetchOptions::Mode::SameOrigin) {176 if (m_options.mode == FetchOptions::Mode::SameOrigin) { 165 177 handler(returnError(ASCIILiteral("SameOrigin mode does not allow cross origin requests"))); 166 178 return; … … 178 190 void NetworkLoadChecker::checkCORSRequest(ResourceRequest&& request, ValidationHandler&& handler) 179 191 { 180 ASSERT(m_ mode == FetchOptions::Mode::Cors);192 ASSERT(m_options.mode == FetchOptions::Mode::Cors); 181 193 182 194 // Except in case where preflight is needed, loading should be able to continue on its own. … … 191 203 void NetworkLoadChecker::checkCORSRedirectedRequest(ResourceRequest&& request, ValidationHandler&& handler) 192 204 { 193 ASSERT(m_ mode == FetchOptions::Mode::Cors);205 ASSERT(m_options.mode == FetchOptions::Mode::Cors); 194 206 ASSERT(isRedirected()); 195 207 … … 216 228 void NetworkLoadChecker::checkCORSRequestWithPreflight(ResourceRequest&& request, ValidationHandler&& handler) 217 229 { 218 ASSERT(m_ mode == FetchOptions::Mode::Cors);230 ASSERT(m_options.mode == FetchOptions::Mode::Cors); 219 231 220 232 m_isSimpleRequest = false; … … 255 267 bool NetworkLoadChecker::doesNotNeedCORSCheck(const URL& url) const 256 268 { 257 if (m_ mode == FetchOptions::Mode::NoCors || m_mode == FetchOptions::Mode::Navigate)269 if (m_options.mode == FetchOptions::Mode::NoCors || m_options.mode == FetchOptions::Mode::Navigate) 258 270 return true; 259 271 -
trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h
r230495 r230541 43 43 class NetworkLoadChecker : public RefCounted<NetworkLoadChecker> { 44 44 public: 45 static Ref<NetworkLoadChecker> create(WebCore::FetchOptions ::Mode mode, bool shouldFollowRedirects, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, PAL::SessionID sessionID, WebCore::HTTPHeaderMap&& originalHeaders, WebCore::URL&& url, RefPtr<WebCore::SecurityOrigin>&& sourceOrigin)45 static Ref<NetworkLoadChecker> create(WebCore::FetchOptions&& options, PAL::SessionID sessionID, WebCore::HTTPHeaderMap&& originalHeaders, WebCore::URL&& url, RefPtr<WebCore::SecurityOrigin>&& sourceOrigin) 46 46 { 47 return adoptRef(*new NetworkLoadChecker { mode, shouldFollowRedirects, storedCredentialsPolicy, sessionID, WTFMove(originalHeaders), WTFMove(url), WTFMove(sourceOrigin) });47 return adoptRef(*new NetworkLoadChecker { WTFMove(options), sessionID, WTFMove(originalHeaders), WTFMove(url), WTFMove(sourceOrigin) }); 48 48 } 49 49 ~NetworkLoadChecker(); … … 69 69 70 70 private: 71 NetworkLoadChecker(WebCore::FetchOptions ::Mode, bool shouldFollowRedirects, WebCore::StoredCredentialsPolicy, PAL::SessionID, WebCore::HTTPHeaderMap&&, WebCore::URL&&, RefPtr<WebCore::SecurityOrigin>&&);71 NetworkLoadChecker(WebCore::FetchOptions&&, PAL::SessionID, WebCore::HTTPHeaderMap&&, WebCore::URL&&, RefPtr<WebCore::SecurityOrigin>&&); 72 72 73 73 WebCore::ContentSecurityPolicy* contentSecurityPolicy() const; … … 90 90 #endif 91 91 92 WebCore::FetchOptions::Mode m_mode; 93 bool m_shouldFollowRedirects; 92 WebCore::FetchOptions m_options; 94 93 WebCore::StoredCredentialsPolicy m_storedCredentialsPolicy; 95 94 PAL::SessionID m_sessionID; -
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp
r230365 r230541 88 88 encoder << static_cast<bool>(sourceOrigin); 89 89 if (sourceOrigin) 90 encoder << sourceOrigin->data(); 91 encoder.encodeEnum(mode); 92 encoder.encodeEnum(destination); 90 encoder << *sourceOrigin; 91 encoder << options; 93 92 encoder << cspResponseHeaders; 93 encoder << originalRequestHeaders; 94 94 95 95 #if ENABLE(CONTENT_EXTENSIONS) … … 172 172 return false; 173 173 if (hasSourceOrigin) { 174 std::optional<SecurityOriginData> sourceOriginData;175 decoder >> sourceOriginData;176 if (!sourceOriginData)177 return false;178 ASSERT(!sourceOriginData->isEmpty()); 179 result.sourceOrigin = sourceOriginData->securityOrigin();180 }181 if (! decoder.decodeEnum(result.mode))182 return false; 183 if (!decoder.decodeEnum(result.destination))184 return false; 174 result.sourceOrigin = SecurityOrigin::decode(decoder); 175 if (!result.sourceOrigin) 176 return false; 177 } 178 179 std::optional<FetchOptions> options; 180 decoder >> options; 181 if (!options) 182 return false; 183 result.options = *options; 184 185 185 if (!decoder.decode(result.cspResponseHeaders)) 186 return false; 187 if (!decoder.decode(result.originalRequestHeaders)) 186 188 return false; 187 189 -
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h
r230365 r230541 57 57 Vector<String> derivedCachedDataTypesToRetrieve; 58 58 RefPtr<WebCore::SecurityOrigin> sourceOrigin; 59 WebCore::FetchOptions::Mode mode; 60 WebCore::FetchOptions::Destination destination; 59 WebCore::FetchOptions options; 61 60 std::optional<WebCore::ContentSecurityPolicyResponseHeaders> cspResponseHeaders; 61 WebCore::HTTPHeaderMap originalRequestHeaders; 62 62 bool shouldRestrictHTTPResponseAccess { false }; 63 63 -
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
r230528 r230541 473 473 // FIXME: We should use response tainting once computed in Network Process. 474 474 bool isSameOrigin = m_parameters.sourceOrigin ? m_parameters.sourceOrigin->canRequest(response.url()) : protocolHostAndPortAreEqual(response.url(), m_parameters.request.url()); 475 if (isSameOrigin && m_parameters. destination == FetchOptions::Destination::EmptyString)475 if (isSameOrigin && m_parameters.options.destination == FetchOptions::Destination::EmptyString) 476 476 type = ResourceResponse::SanitizationType::RemoveCookies; 477 477 } -
trunk/Source/WebKit/NetworkProcess/PingLoad.cpp
r230495 r230541 39 39 using namespace WebCore; 40 40 41 PingLoad::PingLoad(NetworkResourceLoadParameters&& parameters, HTTPHeaderMap&& originalRequestHeaders,WTF::CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler)41 PingLoad::PingLoad(NetworkResourceLoadParameters&& parameters, WTF::CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler) 42 42 : m_parameters(WTFMove(parameters)) 43 43 , m_completionHandler(WTFMove(completionHandler)) 44 44 , m_timeoutTimer(*this, &PingLoad::timeoutTimerFired) 45 , m_networkLoadChecker(NetworkLoadChecker::create( m_parameters.mode, m_parameters.shouldFollowRedirects, m_parameters.storedCredentialsPolicy, m_parameters.sessionID, WTFMove(originalRequestHeaders), URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef()))45 , m_networkLoadChecker(NetworkLoadChecker::create(FetchOptions { m_parameters.options}, m_parameters.sessionID, WTFMove(m_parameters.originalRequestHeaders), URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef())) 46 46 { 47 47 -
trunk/Source/WebKit/NetworkProcess/PingLoad.h
r230223 r230541 45 45 class PingLoad final : private NetworkDataTaskClient { 46 46 public: 47 PingLoad(NetworkResourceLoadParameters&&, W ebCore::HTTPHeaderMap&& originalRequestHeaders, WTF::CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);47 PingLoad(NetworkResourceLoadParameters&&, WTF::CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&); 48 48 49 49 private: -
trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp
r230290 r230541 30 30 #include "APIData.h" 31 31 #include "InjectedBundleScriptWorld.h" 32 #include "NetworkConnectionToWebProcessMessages.h" 33 #include "NetworkProcessConnection.h" 32 34 #include "NetworkSessionCreationParameters.h" 33 35 #include "NotificationPermissionRequestManager.h" … … 376 378 { 377 379 SecurityPolicy::addOriginAccessWhitelistEntry(SecurityOrigin::createFromString(sourceOrigin).get(), destinationProtocol, destinationHost, allowDestinationSubdomains); 380 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::AddOriginAccessWhitelistEntry { sourceOrigin, destinationProtocol, destinationHost, allowDestinationSubdomains }, 0); 381 378 382 } 379 383 … … 381 385 { 382 386 SecurityPolicy::removeOriginAccessWhitelistEntry(SecurityOrigin::createFromString(sourceOrigin).get(), destinationProtocol, destinationHost, allowDestinationSubdomains); 387 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::RemoveOriginAccessWhitelistEntry { sourceOrigin, destinationProtocol, destinationHost, allowDestinationSubdomains }, 0); 383 388 } 384 389 … … 386 391 { 387 392 SecurityPolicy::resetOriginAccessWhitelists(); 393 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::ResetOriginAccessWhitelists { }, 0); 388 394 } 389 395 -
trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
r230365 r230541 274 274 loadParameters.maximumBufferingTime = maximumBufferingTime; 275 275 loadParameters.derivedCachedDataTypesToRetrieve = resourceLoader.options().derivedCachedDataTypesToRetrieve; 276 loadParameters. destination = resourceLoader.options().destination;276 loadParameters.options = resourceLoader.options(); 277 277 278 278 // FIXME: We should also sanitize redirect response for navigations. … … 435 435 loadParameters.shouldRestrictHTTPResponseAccess = RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess(); 436 436 // FIXME: Use the proper destination once all fetch options are passed. 437 loadParameters. destination = FetchOptions::Destination::EmptyString;437 loadParameters.options.destination = FetchOptions::Destination::EmptyString; 438 438 439 439 data.shrink(0); … … 471 471 loadParameters.sessionID = frame.page() ? frame.page()->sessionID() : PAL::SessionID::defaultSessionID(); 472 472 loadParameters.storedCredentialsPolicy = options.credentials == FetchOptions::Credentials::Omit ? StoredCredentialsPolicy::DoNotUse : StoredCredentialsPolicy::Use; 473 loadParameters. mode = options.mode;474 loadParameters. shouldFollowRedirects = options.redirect == FetchOptions::Redirect::Follow;473 loadParameters.options = options; 474 loadParameters.originalRequestHeaders = originalRequestHeaders; 475 475 loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = shouldClearReferrerOnHTTPSToHTTPRedirect(&frame); 476 476 loadParameters.shouldRestrictHTTPResponseAccess = RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess(); … … 493 493 m_pingLoadCompletionHandlers.add(loadParameters.identifier, WTFMove(completionHandler)); 494 494 495 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::LoadPing (WTFMove(loadParameters), originalRequestHeaders), 0);495 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::LoadPing { loadParameters }, 0); 496 496 } 497 497 … … 533 533 parameters.shouldRestrictHTTPResponseAccess = RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess(); 534 534 // FIXME: Use the proper destination once all fetch options are passed. 535 parameters. destination = FetchOptions::Destination::EmptyString;535 parameters.options.destination = FetchOptions::Destination::EmptyString; 536 536 537 537 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::PreconnectTo(preconnectionIdentifier, WTFMove(parameters)), 0);
Note: See TracChangeset
for help on using the changeset viewer.