Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (230527 => 230528)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2018-04-11 16:43:53 UTC (rev 230527)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2018-04-11 16:56:38 UTC (rev 230528)
@@ -228,17 +228,23 @@
#endif
}
-void NetworkConnectionToWebProcess::scheduleResourceLoad(const NetworkResourceLoadParameters& loadParameters)
+void NetworkConnectionToWebProcess::scheduleResourceLoad(NetworkResourceLoadParameters&& loadParameters)
{
- auto loader = NetworkResourceLoader::create(loadParameters, *this);
- m_networkResourceLoaders.add(loadParameters.identifier, loader.ptr());
+ auto identifier = loadParameters.identifier;
+ ASSERT(!m_networkResourceLoaders.contains(identifier));
+
+ auto loader = NetworkResourceLoader::create(WTFMove(loadParameters), *this);
+ m_networkResourceLoaders.add(identifier, loader.ptr());
loader->start();
}
-void NetworkConnectionToWebProcess::performSynchronousLoad(const NetworkResourceLoadParameters& loadParameters, Ref<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& reply)
+void NetworkConnectionToWebProcess::performSynchronousLoad(NetworkResourceLoadParameters&& loadParameters, Ref<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& reply)
{
- auto loader = NetworkResourceLoader::create(loadParameters, *this, WTFMove(reply));
- m_networkResourceLoaders.add(loadParameters.identifier, loader.ptr());
+ auto identifier = loadParameters.identifier;
+ ASSERT(!m_networkResourceLoaders.contains(identifier));
+
+ auto loader = NetworkResourceLoader::create(WTFMove(loadParameters), *this, WTFMove(reply));
+ m_networkResourceLoaders.add(identifier, loader.ptr());
loader->start();
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (230527 => 230528)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2018-04-11 16:43:53 UTC (rev 230527)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2018-04-11 16:56:38 UTC (rev 230528)
@@ -90,8 +90,8 @@
void didReceiveNetworkConnectionToWebProcessMessage(IPC::Connection&, IPC::Decoder&);
void didReceiveSyncNetworkConnectionToWebProcessMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&);
- void scheduleResourceLoad(const NetworkResourceLoadParameters&);
- void performSynchronousLoad(const NetworkResourceLoadParameters&, Ref<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&);
+ void scheduleResourceLoad(NetworkResourceLoadParameters&&);
+ void performSynchronousLoad(NetworkResourceLoadParameters&&, Ref<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&);
void loadPing(NetworkResourceLoadParameters&&, WebCore::HTTPHeaderMap&& originalRequestHeaders);
void prefetchDNS(const String&);
void preconnectTo(uint64_t preconnectionIdentifier, NetworkLoadParameters&&);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (230527 => 230528)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2018-04-11 16:43:53 UTC (rev 230527)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2018-04-11 16:56:38 UTC (rev 230528)
@@ -86,11 +86,11 @@
data.delayedReply = nullptr;
}
-NetworkResourceLoader::NetworkResourceLoader(const NetworkResourceLoadParameters& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& synchronousReply)
- : m_parameters { parameters }
+NetworkResourceLoader::NetworkResourceLoader(NetworkResourceLoadParameters&& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& synchronousReply)
+ : m_parameters { WTFMove(parameters) }
, m_connection { connection }
, m_defersLoading { parameters.defersLoading }
- , m_isAllowedToAskUserForCredentials { parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials }
+ , m_isAllowedToAskUserForCredentials { m_parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials }
, m_bufferingTimer { *this, &NetworkResourceLoader::bufferingTimerFired }
, m_cache { sessionID().isEphemeral() ? nullptr : NetworkProcess::singleton().cache() }
{
@@ -167,7 +167,7 @@
return;
}
- startNetworkLoad(originalRequest());
+ startNetworkLoad(ResourceRequest { originalRequest() });
}
void NetworkResourceLoader::retrieveCacheEntry(const ResourceRequest& request)
@@ -175,7 +175,7 @@
ASSERT(canUseCache(request));
RefPtr<NetworkResourceLoader> loader(this);
- m_cache->retrieve(request, { m_parameters.webPageID, m_parameters.webFrameID }, [this, loader = WTFMove(loader), request](auto entry) {
+ m_cache->retrieve(request, { m_parameters.webPageID, m_parameters.webFrameID }, [this, loader = WTFMove(loader), request = ResourceRequest { request }](auto entry) mutable {
#if RELEASE_LOG_DISABLED
UNUSED_PARAM(this);
#endif
@@ -185,7 +185,7 @@
}
if (!entry) {
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());
- loader->startNetworkLoad(request);
+ loader->startNetworkLoad(WTFMove(request));
return;
}
if (entry->redirectRequest()) {
@@ -195,7 +195,7 @@
}
if (loader->m_parameters.needsCertificateInfo && !entry->response().certificateInfo()) {
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());
- loader->startNetworkLoad(request);
+ loader->startNetworkLoad(WTFMove(request));
return;
}
if (entry->needsValidation() || request.cachePolicy() == WebCore::RefreshAnyCacheData) {
@@ -208,7 +208,7 @@
});
}
-void NetworkResourceLoader::startNetworkLoad(const ResourceRequest& request)
+void NetworkResourceLoader::startNetworkLoad(ResourceRequest&& request)
{
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());
@@ -222,7 +222,6 @@
NetworkLoadParameters parameters = m_parameters;
parameters.defersLoading = m_defersLoading;
- parameters.request = request;
if (request.url().protocolIsBlob())
parameters.blobFileReferences = NetworkBlobRegistry::singleton().filesInBlob(m_connection, originalRequest().url());
@@ -239,6 +238,8 @@
didFailLoading(internalError(request.url()));
return;
}
+
+ parameters.request = WTFMove(request);
m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters), *networkSession);
if (m_defersLoading) {
@@ -497,7 +498,7 @@
if (canUseCachedRedirect(newRequest))
retrieveCacheEntry(newRequest);
else
- startNetworkLoad(newRequest);
+ startNetworkLoad(WTFMove(newRequest));
return;
}
@@ -672,7 +673,7 @@
m_cacheEntryForValidation = WTFMove(entry);
- startNetworkLoad(revalidationRequest);
+ startNetworkLoad(WTFMove(revalidationRequest));
}
void NetworkResourceLoader::dispatchWillSendRequestForCacheEntry(std::unique_ptr<NetworkCache::Entry> entry)
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h (230527 => 230528)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h 2018-04-11 16:43:53 UTC (rev 230527)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.h 2018-04-11 16:56:38 UTC (rev 230528)
@@ -53,9 +53,9 @@
class NetworkResourceLoader final : public RefCounted<NetworkResourceLoader>, public NetworkLoadClient, public IPC::MessageSender {
public:
- static Ref<NetworkResourceLoader> create(const NetworkResourceLoadParameters& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& reply = nullptr)
+ static Ref<NetworkResourceLoader> create(NetworkResourceLoadParameters&& parameters, NetworkConnectionToWebProcess& connection, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&& reply = nullptr)
{
- return adoptRef(*new NetworkResourceLoader(parameters, connection, WTFMove(reply)));
+ return adoptRef(*new NetworkResourceLoader(WTFMove(parameters), connection, WTFMove(reply)));
}
virtual ~NetworkResourceLoader();
@@ -112,7 +112,7 @@
#endif
private:
- NetworkResourceLoader(const NetworkResourceLoadParameters&, NetworkConnectionToWebProcess&, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&);
+ NetworkResourceLoader(NetworkResourceLoadParameters&&, NetworkConnectionToWebProcess&, RefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>&&);
// IPC::MessageSender
IPC::Connection* messageSenderConnection() override;
@@ -129,7 +129,7 @@
void dispatchWillSendRequestForCacheEntry(std::unique_ptr<NetworkCache::Entry>);
void continueProcessingCachedEntryAfterDidReceiveResponse(std::unique_ptr<NetworkCache::Entry>);
- void startNetworkLoad(const WebCore::ResourceRequest&);
+ void startNetworkLoad(WebCore::ResourceRequest&&);
void continueDidReceiveResponse();
void cleanup();