Changeset 210514 in webkit


Ignore:
Timestamp:
Jan 9, 2017 10:26:58 AM (7 years ago)
Author:
commit-queue@webkit.org
Message:

Merging ThreadableLoader redundant options on filtering responses

Merge OpaqueResponseBodyPolicy and ResponseFilteringPolicy ThreadableLoader options
https://bugs.webkit.org/show_bug.cgi?id=166843

Patch by Youenn Fablet <youennf@gmail.com> on 2017-01-09
Reviewed by Darin Adler.

Covered by existing tests.

Removing OpaqueResponseBodyPolicy option.
When ResponseFilteringPolicy is set to Enable, the body is filtered out in DocumentThreadableLoader.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didReceiveResponse): Implementing body filtering based on ResponseFilteringPolicy option.

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions):

  • loader/ThreadableLoader.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::LoaderTaskOptions::LoaderTaskOptions):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Location:
trunk/Source/WebCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r210508 r210514  
     12017-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
    1302017-01-09  Daniel Bates  <dabates@apple.com>
    231
  • trunk/Source/WebCore/Modules/fetch/FetchLoader.cpp

    r210279 r210514  
    7878        context.shouldBypassMainWorldContentSecurityPolicy() ? ContentSecurityPolicyEnforcement::DoNotEnforce : ContentSecurityPolicyEnforcement::EnforceConnectSrcDirective,
    7979        String(cachedResourceRequestInitiators().fetch),
    80         OpaqueResponseBodyPolicy::DoNotReceive, ResponseFilteringPolicy::Enable);
     80        ResponseFilteringPolicy::Enable);
    8181    options.sendLoadCallbacks = SendCallbacks;
    8282    options.dataBufferingPolicy = DoNotBufferData;
  • trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp

    r210279 r210514  
    282282{
    283283    ASSERT(m_client);
     284    ASSERT(response.type() != ResourceResponse::Type::Error);
    284285
    285286    InspectorInstrumentation::didReceiveThreadableLoaderResponse(*this, identifier);
    286287
    287     ASSERT(response.type() != ResourceResponse::Type::Error);
     288    if (options().filteringPolicy == ResponseFilteringPolicy::Disable) {
     289        m_client->didReceiveResponse(identifier, response);
     290        return;
     291    }
     292
    288293    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) {
    291296            clearResource();
    292297            if (m_client)
  • trunk/Source/WebCore/loader/ThreadableLoader.cpp

    r210279 r210514  
    5353}
    5454
    55 ThreadableLoaderOptions::ThreadableLoaderOptions(const ResourceLoaderOptions& baseOptions, PreflightPolicy preflightPolicy, ContentSecurityPolicyEnforcement contentSecurityPolicyEnforcement, String&& initiator, OpaqueResponseBodyPolicy opaqueResponse, ResponseFilteringPolicy filteringPolicy)
     55ThreadableLoaderOptions::ThreadableLoaderOptions(const ResourceLoaderOptions& baseOptions, PreflightPolicy preflightPolicy, ContentSecurityPolicyEnforcement contentSecurityPolicyEnforcement, String&& initiator, ResponseFilteringPolicy filteringPolicy)
    5656    : ResourceLoaderOptions(baseOptions)
    5757    , preflightPolicy(preflightPolicy)
    5858    , contentSecurityPolicyEnforcement(contentSecurityPolicyEnforcement)
    5959    , initiator(WTFMove(initiator))
    60     , opaqueResponse(opaqueResponse)
    6160    , filteringPolicy(filteringPolicy)
    6261{
  • trunk/Source/WebCore/loader/ThreadableLoader.h

    r210279 r210514  
    5858    };
    5959
    60     enum class OpaqueResponseBodyPolicy {
    61         Receive,
    62         DoNotReceive
    63     };
    64 
    6560    enum class ResponseFilteringPolicy {
    6661        Enable,
     
    7065    struct ThreadableLoaderOptions : ResourceLoaderOptions {
    7166        ThreadableLoaderOptions();
    72         ThreadableLoaderOptions(const ResourceLoaderOptions&, PreflightPolicy, ContentSecurityPolicyEnforcement, String&& initiator, OpaqueResponseBodyPolicy, ResponseFilteringPolicy);
     67        ThreadableLoaderOptions(const ResourceLoaderOptions&, PreflightPolicy, ContentSecurityPolicyEnforcement, String&& initiator, ResponseFilteringPolicy);
    7368        ~ThreadableLoaderOptions();
    7469
     
    7671        ContentSecurityPolicyEnforcement contentSecurityPolicyEnforcement { ContentSecurityPolicyEnforcement::EnforceConnectSrcDirective };
    7772        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 };
    8074    };
    8175
  • trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp

    r210279 r210514  
    9393
    9494LoaderTaskOptions::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)
    9696    , referrer(referrer.isolatedCopy())
    9797    , origin(WTFMove(origin))
  • trunk/Source/WebCore/workers/WorkerScriptLoader.cpp

    r210279 r210514  
    6767    options.sendLoadCallbacks = SendCallbacks;
    6868    options.contentSecurityPolicyEnforcement = contentSecurityPolicyEnforcement;
    69     options.filteringPolicy = ResponseFilteringPolicy::Disable;
    7069
    7170    WorkerThreadableLoader::loadResourceSynchronously(downcast<WorkerGlobalScope>(*scriptExecutionContext), WTFMove(*request), *this, options);
     
    9392    options.sendLoadCallbacks = SendCallbacks;
    9493    options.contentSecurityPolicyEnforcement = contentSecurityPolicyEnforcement;
    95     options.filteringPolicy = ResponseFilteringPolicy::Disable;
    9694
    9795    // During create, callbacks may happen which remove the last reference to this object.
  • trunk/Source/WebCore/xml/XMLHttpRequest.cpp

    r209629 r210514  
    670670    options.initiator = cachedResourceRequestInitiators().xmlhttprequest;
    671671    options.sameOriginDataURLFlag = SameOriginDataURLFlag::Set;
     672    options.filteringPolicy = ResponseFilteringPolicy::Enable;
    672673
    673674    if (m_timeoutMilliseconds) {
Note: See TracChangeset for help on using the changeset viewer.