Changeset 210514 in webkit
- Timestamp:
- Jan 9, 2017 10:26:58 AM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r210508 r210514 1 2017-01-09 Youenn Fablet <youennf@gmail.com> 2 3 Merging ThreadableLoader redundant options on filtering responses 4 5 Merge OpaqueResponseBodyPolicy and ResponseFilteringPolicy ThreadableLoader options 6 https://bugs.webkit.org/show_bug.cgi?id=166843 7 8 Reviewed by Darin Adler. 9 10 Covered by existing tests. 11 12 Removing OpaqueResponseBodyPolicy option. 13 When ResponseFilteringPolicy is set to Enable, the body is filtered out in DocumentThreadableLoader. 14 15 * Modules/fetch/FetchLoader.cpp: 16 (WebCore::FetchLoader::start): 17 * loader/DocumentThreadableLoader.cpp: 18 (WebCore::DocumentThreadableLoader::didReceiveResponse): Implementing body filtering based on ResponseFilteringPolicy option. 19 * loader/ThreadableLoader.cpp: 20 (WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): 21 * loader/ThreadableLoader.h: 22 * loader/WorkerThreadableLoader.cpp: 23 (WebCore::LoaderTaskOptions::LoaderTaskOptions): 24 * workers/WorkerScriptLoader.cpp: 25 (WebCore::WorkerScriptLoader::loadSynchronously): 26 (WebCore::WorkerScriptLoader::loadAsynchronously): 27 * xml/XMLHttpRequest.cpp: 28 (WebCore::XMLHttpRequest::createRequest): 29 1 30 2017-01-09 Daniel Bates <dabates@apple.com> 2 31 -
trunk/Source/WebCore/Modules/fetch/FetchLoader.cpp
r210279 r210514 78 78 context.shouldBypassMainWorldContentSecurityPolicy() ? ContentSecurityPolicyEnforcement::DoNotEnforce : ContentSecurityPolicyEnforcement::EnforceConnectSrcDirective, 79 79 String(cachedResourceRequestInitiators().fetch), 80 OpaqueResponseBodyPolicy::DoNotReceive,ResponseFilteringPolicy::Enable);80 ResponseFilteringPolicy::Enable); 81 81 options.sendLoadCallbacks = SendCallbacks; 82 82 options.dataBufferingPolicy = DoNotBufferData; -
trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp
r210279 r210514 282 282 { 283 283 ASSERT(m_client); 284 ASSERT(response.type() != ResourceResponse::Type::Error); 284 285 285 286 InspectorInstrumentation::didReceiveThreadableLoaderResponse(*this, identifier); 286 287 287 ASSERT(response.type() != ResourceResponse::Type::Error); 288 if (options().filteringPolicy == ResponseFilteringPolicy::Disable) { 289 m_client->didReceiveResponse(identifier, response); 290 return; 291 } 292 288 293 if (response.type() == ResourceResponse::Type::Default) { 289 m_client->didReceiveResponse(identifier, options().filteringPolicy == ResponseFilteringPolicy::Enable ? ResourceResponse::filterResponse(response, tainting) : response);290 if (tainting == ResourceResponse::Tainting::Opaque && options().opaqueResponse == OpaqueResponseBodyPolicy::DoNotReceive) {294 m_client->didReceiveResponse(identifier, ResourceResponse::filterResponse(response, tainting)); 295 if (tainting == ResourceResponse::Tainting::Opaque) { 291 296 clearResource(); 292 297 if (m_client) -
trunk/Source/WebCore/loader/ThreadableLoader.cpp
r210279 r210514 53 53 } 54 54 55 ThreadableLoaderOptions::ThreadableLoaderOptions(const ResourceLoaderOptions& baseOptions, PreflightPolicy preflightPolicy, ContentSecurityPolicyEnforcement contentSecurityPolicyEnforcement, String&& initiator, OpaqueResponseBodyPolicy opaqueResponse,ResponseFilteringPolicy filteringPolicy)55 ThreadableLoaderOptions::ThreadableLoaderOptions(const ResourceLoaderOptions& baseOptions, PreflightPolicy preflightPolicy, ContentSecurityPolicyEnforcement contentSecurityPolicyEnforcement, String&& initiator, ResponseFilteringPolicy filteringPolicy) 56 56 : ResourceLoaderOptions(baseOptions) 57 57 , preflightPolicy(preflightPolicy) 58 58 , contentSecurityPolicyEnforcement(contentSecurityPolicyEnforcement) 59 59 , initiator(WTFMove(initiator)) 60 , opaqueResponse(opaqueResponse)61 60 , filteringPolicy(filteringPolicy) 62 61 { -
trunk/Source/WebCore/loader/ThreadableLoader.h
r210279 r210514 58 58 }; 59 59 60 enum class OpaqueResponseBodyPolicy {61 Receive,62 DoNotReceive63 };64 65 60 enum class ResponseFilteringPolicy { 66 61 Enable, … … 70 65 struct ThreadableLoaderOptions : ResourceLoaderOptions { 71 66 ThreadableLoaderOptions(); 72 ThreadableLoaderOptions(const ResourceLoaderOptions&, PreflightPolicy, ContentSecurityPolicyEnforcement, String&& initiator, OpaqueResponseBodyPolicy,ResponseFilteringPolicy);67 ThreadableLoaderOptions(const ResourceLoaderOptions&, PreflightPolicy, ContentSecurityPolicyEnforcement, String&& initiator, ResponseFilteringPolicy); 73 68 ~ThreadableLoaderOptions(); 74 69 … … 76 71 ContentSecurityPolicyEnforcement contentSecurityPolicyEnforcement { ContentSecurityPolicyEnforcement::EnforceConnectSrcDirective }; 77 72 String initiator; // This cannot be an AtomicString, as isolatedCopy() wouldn't create an object that's safe for passing to another thread. 78 OpaqueResponseBodyPolicy opaqueResponse { OpaqueResponseBodyPolicy::Receive }; 79 ResponseFilteringPolicy filteringPolicy { ResponseFilteringPolicy::Enable }; 73 ResponseFilteringPolicy filteringPolicy { ResponseFilteringPolicy::Disable }; 80 74 }; 81 75 -
trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp
r210279 r210514 93 93 94 94 LoaderTaskOptions::LoaderTaskOptions(const ThreadableLoaderOptions& options, const String& referrer, Ref<SecurityOrigin>&& origin) 95 : options(options, options.preflightPolicy, options.contentSecurityPolicyEnforcement, options.initiator.isolatedCopy(), options. opaqueResponse, options.filteringPolicy)95 : options(options, options.preflightPolicy, options.contentSecurityPolicyEnforcement, options.initiator.isolatedCopy(), options.filteringPolicy) 96 96 , referrer(referrer.isolatedCopy()) 97 97 , origin(WTFMove(origin)) -
trunk/Source/WebCore/workers/WorkerScriptLoader.cpp
r210279 r210514 67 67 options.sendLoadCallbacks = SendCallbacks; 68 68 options.contentSecurityPolicyEnforcement = contentSecurityPolicyEnforcement; 69 options.filteringPolicy = ResponseFilteringPolicy::Disable;70 69 71 70 WorkerThreadableLoader::loadResourceSynchronously(downcast<WorkerGlobalScope>(*scriptExecutionContext), WTFMove(*request), *this, options); … … 93 92 options.sendLoadCallbacks = SendCallbacks; 94 93 options.contentSecurityPolicyEnforcement = contentSecurityPolicyEnforcement; 95 options.filteringPolicy = ResponseFilteringPolicy::Disable;96 94 97 95 // During create, callbacks may happen which remove the last reference to this object. -
trunk/Source/WebCore/xml/XMLHttpRequest.cpp
r209629 r210514 670 670 options.initiator = cachedResourceRequestInitiators().xmlhttprequest; 671 671 options.sameOriginDataURLFlag = SameOriginDataURLFlag::Set; 672 options.filteringPolicy = ResponseFilteringPolicy::Enable; 672 673 673 674 if (m_timeoutMilliseconds) {
Note: See TracChangeset
for help on using the changeset viewer.