Diff
Modified: trunk/Source/WebKit2/ChangeLog (202053 => 202054)
--- trunk/Source/WebKit2/ChangeLog 2016-06-14 18:09:09 UTC (rev 202053)
+++ trunk/Source/WebKit2/ChangeLog 2016-06-14 18:37:17 UTC (rev 202054)
@@ -1,3 +1,25 @@
+2016-06-14 Chris Dumez <[email protected]>
+
+ Reduce copying of NetworkLoadParameters
+ https://bugs.webkit.org/show_bug.cgi?id=158744
+
+ Reviewed by Alex Christensen.
+
+ Reduce copying of NetworkLoadParameters by moving it around instead.
+
+ * NetworkProcess/Downloads/DownloadManager.cpp:
+ (WebKit::DownloadManager::startDownload):
+ * NetworkProcess/Downloads/PendingDownload.cpp:
+ (WebKit::PendingDownload::PendingDownload):
+ * NetworkProcess/Downloads/PendingDownload.h:
+ * NetworkProcess/NetworkLoad.cpp:
+ (WebKit::NetworkLoad::NetworkLoad):
+ * NetworkProcess/NetworkLoad.h:
+ * NetworkProcess/NetworkResourceLoader.cpp:
+ (WebKit::NetworkResourceLoader::startNetworkLoad):
+ * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
+ (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
+
2016-06-14 Carlos Garcia Campos <[email protected]>
[ThreadedCompositor] Opening the inspector in a window causes a crash.
Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp (202053 => 202054)
--- trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp 2016-06-14 18:09:09 UTC (rev 202053)
+++ trunk/Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp 2016-06-14 18:37:17 UTC (rev 202054)
@@ -54,7 +54,7 @@
parameters.sessionID = sessionID;
parameters.request = request;
parameters.clientCredentialPolicy = AskClientForAllCredentials;
- m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(parameters, downloadID));
+ m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(WTFMove(parameters), downloadID));
#else
auto download = std::make_unique<Download>(*this, downloadID, request, suggestedName);
download->start();
Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.cpp (202053 => 202054)
--- trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.cpp 2016-06-14 18:09:09 UTC (rev 202053)
+++ trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.cpp 2016-06-14 18:37:17 UTC (rev 202054)
@@ -38,8 +38,8 @@
namespace WebKit {
-PendingDownload::PendingDownload(const NetworkLoadParameters& parameters, DownloadID downloadID)
- : m_networkLoad(std::make_unique<NetworkLoad>(*this, parameters))
+PendingDownload::PendingDownload(NetworkLoadParameters&& parameters, DownloadID downloadID)
+ : m_networkLoad(std::make_unique<NetworkLoad>(*this, WTFMove(parameters)))
{
m_networkLoad->setPendingDownloadID(downloadID);
m_networkLoad->setPendingDownload(*this);
Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h (202053 => 202054)
--- trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h 2016-06-14 18:09:09 UTC (rev 202053)
+++ trunk/Source/WebKit2/NetworkProcess/Downloads/PendingDownload.h 2016-06-14 18:37:17 UTC (rev 202054)
@@ -44,7 +44,7 @@
class PendingDownload : public NetworkLoadClient, public IPC::MessageSender {
WTF_MAKE_FAST_ALLOCATED;
public:
- PendingDownload(const NetworkLoadParameters&, DownloadID);
+ PendingDownload(NetworkLoadParameters&&, DownloadID);
void continueWillSendRequest(WebCore::ResourceRequest&&);
void continueCanAuthenticateAgainstProtectionSpace(bool canAuthenticate);
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp (202053 => 202054)
--- trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp 2016-06-14 18:09:09 UTC (rev 202053)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp 2016-06-14 18:37:17 UTC (rev 202054)
@@ -41,31 +41,31 @@
using namespace WebCore;
-NetworkLoad::NetworkLoad(NetworkLoadClient& client, const NetworkLoadParameters& parameters)
+NetworkLoad::NetworkLoad(NetworkLoadClient& client, NetworkLoadParameters&& parameters)
: m_client(client)
- , m_parameters(parameters)
+ , m_parameters(WTFMove(parameters))
#if !USE(NETWORK_SESSION)
- , m_networkingContext(RemoteNetworkingContext::create(parameters.sessionID, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect))
+ , m_networkingContext(RemoteNetworkingContext::create(m_parameters.sessionID, m_parameters.shouldClearReferrerOnHTTPSToHTTPRedirect))
#endif
- , m_currentRequest(parameters.request)
+ , m_currentRequest(m_parameters.request)
{
#if USE(NETWORK_SESSION)
- if (parameters.request.url().protocolIsBlob()) {
- m_handle = ResourceHandle::create(nullptr, parameters.request, this, parameters.defersLoading, parameters.contentSniffingPolicy == SniffContent);
+ if (m_parameters.request.url().protocolIsBlob()) {
+ m_handle = ResourceHandle::create(nullptr, m_parameters.request, this, m_parameters.defersLoading, m_parameters.contentSniffingPolicy == SniffContent);
return;
}
- if (auto* networkSession = SessionTracker::networkSession(parameters.sessionID)) {
- m_task = NetworkDataTask::create(*networkSession, *this, parameters.request, parameters.allowStoredCredentials, parameters.contentSniffingPolicy, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect);
- if (!parameters.defersLoading)
+ if (auto* networkSession = SessionTracker::networkSession(m_parameters.sessionID)) {
+ m_task = NetworkDataTask::create(*networkSession, *this, m_parameters.request, m_parameters.allowStoredCredentials, m_parameters.contentSniffingPolicy, m_parameters.shouldClearReferrerOnHTTPSToHTTPRedirect);
+ if (!m_parameters.defersLoading)
m_task->resume();
} else {
- WTFLogAlways("Attempted to create a NetworkLoad with a session (id=%" PRIu64 ") that does not exist.", parameters.sessionID.sessionID());
- RunLoop::current().dispatch([this, url = "" {
+ WTFLogAlways("Attempted to create a NetworkLoad with a session (id=%" PRIu64 ") that does not exist.", m_parameters.sessionID.sessionID());
+ RunLoop::current().dispatch([this, url = "" {
didCompleteWithError(internalError(url));
});
}
#else
- m_handle = ResourceHandle::create(m_networkingContext.get(), parameters.request, this, parameters.defersLoading, parameters.contentSniffingPolicy == SniffContent);
+ m_handle = ResourceHandle::create(m_networkingContext.get(), m_parameters.request, this, m_parameters.defersLoading, m_parameters.contentSniffingPolicy == SniffContent);
#endif
}
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h (202053 => 202054)
--- trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h 2016-06-14 18:09:09 UTC (rev 202053)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h 2016-06-14 18:37:17 UTC (rev 202054)
@@ -46,7 +46,7 @@
{
WTF_MAKE_FAST_ALLOCATED;
public:
- NetworkLoad(NetworkLoadClient&, const NetworkLoadParameters&);
+ NetworkLoad(NetworkLoadClient&, NetworkLoadParameters&&);
~NetworkLoad();
void setDefersLoading(bool);
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp (202053 => 202054)
--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp 2016-06-14 18:09:09 UTC (rev 202053)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp 2016-06-14 18:37:17 UTC (rev 202054)
@@ -208,7 +208,7 @@
NetworkLoadParameters parameters = m_parameters;
parameters.defersLoading = m_defersLoading;
parameters.request = request;
- m_networkLoad = std::make_unique<NetworkLoad>(*this, parameters);
+ m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters));
}
void NetworkResourceLoader::setDefersLoading(bool defers)
Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp (202053 => 202054)
--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp 2016-06-14 18:09:09 UTC (rev 202053)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp 2016-06-14 18:37:17 UTC (rev 202054)
@@ -55,7 +55,7 @@
parameters.allowStoredCredentials = AllowStoredCredentials;
parameters.contentSniffingPolicy = DoNotSniffContent;
parameters.request = m_originalRequest;
- m_networkLoad = std::make_unique<NetworkLoad>(*this, parameters);
+ m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters));
}
SpeculativeLoad::~SpeculativeLoad()