Changeset 230528 in webkit
- Timestamp:
- Apr 11, 2018 9:56:38 AM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r230527 r230528 1 2018-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 1 24 2018-04-11 Wenson Hsieh <wenson_hsieh@apple.com> 2 25 -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
r230293 r230528 229 229 } 230 230 231 void NetworkConnectionToWebProcess::scheduleResourceLoad(const NetworkResourceLoadParameters& loadParameters) 232 { 233 auto loader = NetworkResourceLoader::create(loadParameters, *this); 234 m_networkResourceLoaders.add(loadParameters.identifier, loader.ptr()); 231 void 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()); 235 238 loader->start(); 236 239 } 237 240 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()); 241 void 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()); 242 248 loader->start(); 243 249 } -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
r230293 r230528 91 91 void didReceiveSyncNetworkConnectionToWebProcessMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&); 92 92 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>&&); 95 95 void loadPing(NetworkResourceLoadParameters&&, WebCore::HTTPHeaderMap&& originalRequestHeaders); 96 96 void prefetchDNS(const String&); -
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
r230365 r230528 87 87 } 88 88 89 NetworkResourceLoader::NetworkResourceLoader( const NetworkResourceLoadParameters& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& synchronousReply)90 : m_parameters { parameters}89 NetworkResourceLoader::NetworkResourceLoader(NetworkResourceLoadParameters&& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& synchronousReply) 90 : m_parameters { WTFMove(parameters) } 91 91 , m_connection { connection } 92 92 , m_defersLoading { parameters.defersLoading } 93 , m_isAllowedToAskUserForCredentials { parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials }93 , m_isAllowedToAskUserForCredentials { m_parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials } 94 94 , m_bufferingTimer { *this, &NetworkResourceLoader::bufferingTimerFired } 95 95 , m_cache { sessionID().isEphemeral() ? nullptr : NetworkProcess::singleton().cache() } … … 168 168 } 169 169 170 startNetworkLoad( originalRequest());170 startNetworkLoad(ResourceRequest { originalRequest() }); 171 171 } 172 172 … … 176 176 177 177 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 { 179 179 #if RELEASE_LOG_DISABLED 180 180 UNUSED_PARAM(this); … … 186 186 if (!entry) { 187 187 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)); 189 189 return; 190 190 } … … 196 196 if (loader->m_parameters.needsCertificateInfo && !entry->response().certificateInfo()) { 197 197 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)); 199 199 return; 200 200 } … … 209 209 } 210 210 211 void NetworkResourceLoader::startNetworkLoad( const ResourceRequest& request)211 void NetworkResourceLoader::startNetworkLoad(ResourceRequest&& request) 212 212 { 213 213 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()); … … 223 223 NetworkLoadParameters parameters = m_parameters; 224 224 parameters.defersLoading = m_defersLoading; 225 parameters.request = request;226 225 227 226 if (request.url().protocolIsBlob()) … … 240 239 return; 241 240 } 241 242 parameters.request = WTFMove(request); 242 243 m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters), *networkSession); 243 244 … … 498 499 retrieveCacheEntry(newRequest); 499 500 else 500 startNetworkLoad( newRequest);501 startNetworkLoad(WTFMove(newRequest)); 501 502 502 503 return; … … 673 674 m_cacheEntryForValidation = WTFMove(entry); 674 675 675 startNetworkLoad( revalidationRequest);676 startNetworkLoad(WTFMove(revalidationRequest)); 676 677 } 677 678 -
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h
r230365 r230528 54 54 class NetworkResourceLoader final : public RefCounted<NetworkResourceLoader>, public NetworkLoadClient, public IPC::MessageSender { 55 55 public: 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) 57 57 { 58 return adoptRef(*new NetworkResourceLoader( parameters, connection, WTFMove(reply)));58 return adoptRef(*new NetworkResourceLoader(WTFMove(parameters), connection, WTFMove(reply))); 59 59 } 60 60 virtual ~NetworkResourceLoader(); … … 113 113 114 114 private: 115 NetworkResourceLoader( const NetworkResourceLoadParameters&, NetworkConnectionToWebProcess&, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&);115 NetworkResourceLoader(NetworkResourceLoadParameters&&, NetworkConnectionToWebProcess&, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&); 116 116 117 117 // IPC::MessageSender … … 130 130 void continueProcessingCachedEntryAfterDidReceiveResponse(std::unique_ptr<NetworkCache::Entry>); 131 131 132 void startNetworkLoad( const WebCore::ResourceRequest&);132 void startNetworkLoad(WebCore::ResourceRequest&&); 133 133 void continueDidReceiveResponse(); 134 134
Note: See TracChangeset
for help on using the changeset viewer.