Changeset 230528 in webkit


Ignore:
Timestamp:
Apr 11, 2018 9:56:38 AM (6 years ago)
Author:
youenn@apple.com
Message:

Use more r-values in NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=184478

Reviewed by Chris Dumez.

Pass load parameters as r-values to remove some unneeded copies.
Ditto for ResourceRequest inside NetworkResourceLoader.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::validateCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
Location:
trunk/Source/WebKit
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r230527 r230528  
     12018-04-11  Youenn Fablet  <youenn@apple.com>
     2
     3        Use more r-values in NetworkResourceLoader
     4        https://bugs.webkit.org/show_bug.cgi?id=184478
     5
     6        Reviewed by Chris Dumez.
     7
     8        Pass load parameters as r-values to remove some unneeded copies.
     9        Ditto for ResourceRequest inside NetworkResourceLoader.
     10
     11        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
     12        (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
     13        (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
     14        * NetworkProcess/NetworkConnectionToWebProcess.h:
     15        * NetworkProcess/NetworkResourceLoader.cpp:
     16        (WebKit::NetworkResourceLoader::NetworkResourceLoader):
     17        (WebKit::NetworkResourceLoader::start):
     18        (WebKit::NetworkResourceLoader::retrieveCacheEntry):
     19        (WebKit::NetworkResourceLoader::startNetworkLoad):
     20        (WebKit::NetworkResourceLoader::continueWillSendRequest):
     21        (WebKit::NetworkResourceLoader::validateCacheEntry):
     22        * NetworkProcess/NetworkResourceLoader.h:
     23
    1242018-04-11  Wenson Hsieh  <wenson_hsieh@apple.com>
    225
  • trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp

    r230293 r230528  
    229229}
    230230
    231 void NetworkConnectionToWebProcess::scheduleResourceLoad(const NetworkResourceLoadParameters& loadParameters)
    232 {
    233     auto loader = NetworkResourceLoader::create(loadParameters, *this);
    234     m_networkResourceLoaders.add(loadParameters.identifier, loader.ptr());
     231void NetworkConnectionToWebProcess::scheduleResourceLoad(NetworkResourceLoadParameters&& loadParameters)
     232{
     233    auto identifier = loadParameters.identifier;
     234    ASSERT(!m_networkResourceLoaders.contains(identifier));
     235
     236    auto loader = NetworkResourceLoader::create(WTFMove(loadParameters), *this);
     237    m_networkResourceLoaders.add(identifier, loader.ptr());
    235238    loader->start();
    236239}
    237240
    238 void NetworkConnectionToWebProcess::performSynchronousLoad(const NetworkResourceLoadParameters& loadParameters, Ref<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& reply)
    239 {
    240     auto loader = NetworkResourceLoader::create(loadParameters, *this, WTFMove(reply));
    241     m_networkResourceLoaders.add(loadParameters.identifier, loader.ptr());
     241void NetworkConnectionToWebProcess::performSynchronousLoad(NetworkResourceLoadParameters&& loadParameters, Ref<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& reply)
     242{
     243    auto identifier = loadParameters.identifier;
     244    ASSERT(!m_networkResourceLoaders.contains(identifier));
     245
     246    auto loader = NetworkResourceLoader::create(WTFMove(loadParameters), *this, WTFMove(reply));
     247    m_networkResourceLoaders.add(identifier, loader.ptr());
    242248    loader->start();
    243249}
  • trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h

    r230293 r230528  
    9191    void didReceiveSyncNetworkConnectionToWebProcessMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&);
    9292
    93     void scheduleResourceLoad(const NetworkResourceLoadParameters&);
    94     void performSynchronousLoad(const NetworkResourceLoadParameters&, Ref<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&);
     93    void scheduleResourceLoad(NetworkResourceLoadParameters&&);
     94    void performSynchronousLoad(NetworkResourceLoadParameters&&, Ref<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&);
    9595    void loadPing(NetworkResourceLoadParameters&&, WebCore::HTTPHeaderMap&& originalRequestHeaders);
    9696    void prefetchDNS(const String&);
  • trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

    r230365 r230528  
    8787}
    8888
    89 NetworkResourceLoader::NetworkResourceLoader(const NetworkResourceLoadParameters& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& synchronousReply)
    90     : m_parameters { parameters }
     89NetworkResourceLoader::NetworkResourceLoader(NetworkResourceLoadParameters&& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& synchronousReply)
     90    : m_parameters { WTFMove(parameters) }
    9191    , m_connection { connection }
    9292    , m_defersLoading { parameters.defersLoading }
    93     , m_isAllowedToAskUserForCredentials { parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials }
     93    , m_isAllowedToAskUserForCredentials { m_parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials }
    9494    , m_bufferingTimer { *this, &NetworkResourceLoader::bufferingTimerFired }
    9595    , m_cache { sessionID().isEphemeral() ? nullptr : NetworkProcess::singleton().cache() }
     
    168168    }
    169169
    170     startNetworkLoad(originalRequest());
     170    startNetworkLoad(ResourceRequest { originalRequest() });
    171171}
    172172
     
    176176
    177177    RefPtr<NetworkResourceLoader> loader(this);
    178     m_cache->retrieve(request, { m_parameters.webPageID, m_parameters.webFrameID }, [this, loader = WTFMove(loader), request](auto entry) {
     178    m_cache->retrieve(request, { m_parameters.webPageID, m_parameters.webFrameID }, [this, loader = WTFMove(loader), request = ResourceRequest { request }](auto entry) mutable {
    179179#if RELEASE_LOG_DISABLED
    180180        UNUSED_PARAM(this);
     
    186186        if (!entry) {
    187187            RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource not in cache (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous());
    188             loader->startNetworkLoad(request);
     188            loader->startNetworkLoad(WTFMove(request));
    189189            return;
    190190        }
     
    196196        if (loader->m_parameters.needsCertificateInfo && !entry->response().certificateInfo()) {
    197197            RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource does not have required certificate (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous());
    198             loader->startNetworkLoad(request);
     198            loader->startNetworkLoad(WTFMove(request));
    199199            return;
    200200        }
     
    209209}
    210210
    211 void NetworkResourceLoader::startNetworkLoad(const ResourceRequest& request)
     211void NetworkResourceLoader::startNetworkLoad(ResourceRequest&& request)
    212212{
    213213    RELEASE_LOG_IF_ALLOWED("startNetworkLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous());
     
    223223    NetworkLoadParameters parameters = m_parameters;
    224224    parameters.defersLoading = m_defersLoading;
    225     parameters.request = request;
    226225
    227226    if (request.url().protocolIsBlob())
     
    240239        return;
    241240    }
     241
     242    parameters.request = WTFMove(request);
    242243    m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters), *networkSession);
    243244
     
    498499            retrieveCacheEntry(newRequest);
    499500        else
    500             startNetworkLoad(newRequest);
     501            startNetworkLoad(WTFMove(newRequest));
    501502
    502503        return;
     
    673674    m_cacheEntryForValidation = WTFMove(entry);
    674675
    675     startNetworkLoad(revalidationRequest);
     676    startNetworkLoad(WTFMove(revalidationRequest));
    676677}
    677678
  • trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h

    r230365 r230528  
    5454class NetworkResourceLoader final : public RefCounted<NetworkResourceLoader>, public NetworkLoadClient, public IPC::MessageSender {
    5555public:
    56     static Ref<NetworkResourceLoader> create(const NetworkResourceLoadParameters& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& reply = nullptr)
     56    static Ref<NetworkResourceLoader> create(NetworkResourceLoadParameters&& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& reply = nullptr)
    5757    {
    58         return adoptRef(*new NetworkResourceLoader(parameters, connection, WTFMove(reply)));
     58        return adoptRef(*new NetworkResourceLoader(WTFMove(parameters), connection, WTFMove(reply)));
    5959    }
    6060    virtual ~NetworkResourceLoader();
     
    113113
    114114private:
    115     NetworkResourceLoader(const NetworkResourceLoadParameters&, NetworkConnectionToWebProcess&, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&);
     115    NetworkResourceLoader(NetworkResourceLoadParameters&&, NetworkConnectionToWebProcess&, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&);
    116116
    117117    // IPC::MessageSender
     
    130130    void continueProcessingCachedEntryAfterDidReceiveResponse(std::unique_ptr<NetworkCache::Entry>);
    131131
    132     void startNetworkLoad(const WebCore::ResourceRequest&);
     132    void startNetworkLoad(WebCore::ResourceRequest&&);
    133133    void continueDidReceiveResponse();
    134134
Note: See TracChangeset for help on using the changeset viewer.