Diff
Modified: trunk/Source/WebCore/ChangeLog (241004 => 241005)
--- trunk/Source/WebCore/ChangeLog 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebCore/ChangeLog 2019-02-06 01:02:44 UTC (rev 241005)
@@ -1,3 +1,15 @@
+2019-02-05 Truitt Savell <[email protected]>
+
+ Unreviewed, rolling out r240984.
+
+ Revision casued two API timeouts
+
+ Reverted changeset:
+
+ "Stop using blobRegistry in NetworkProcess"
+ https://bugs.webkit.org/show_bug.cgi?id=194027
+ https://trac.webkit.org/changeset/240984
+
2019-02-05 Keith Rollin <[email protected]>
Enable the automatic checking and regenerations of .xcfilelists during builds
Modified: trunk/Source/WebCore/platform/network/BlobRegistryImpl.h (241004 => 241005)
--- trunk/Source/WebCore/platform/network/BlobRegistryImpl.h 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebCore/platform/network/BlobRegistryImpl.h 2019-02-06 01:02:44 UTC (rev 241005)
@@ -56,6 +56,7 @@
Ref<ResourceHandle> createResourceHandle(const ResourceRequest&, ResourceHandleClient*);
void writeBlobToFilePath(const URL& blobURL, const String& path, Function<void(bool success)>&& completionHandler);
+private:
void appendStorageItems(BlobData*, const BlobDataItemList&, long long offset, long long length);
void registerFileBlobURL(const URL&, Ref<BlobDataFileReference>&&, const String& contentType) override;
@@ -77,7 +78,6 @@
bool populateBlobsForFileWriting(const Vector<String>& blobURLs, Vector<BlobForFileWriting>&);
-private:
HashMap<String, RefPtr<BlobData>> m_blobs;
};
Modified: trunk/Source/WebCore/platform/network/FormData.cpp (241004 => 241005)
--- trunk/Source/WebCore/platform/network/FormData.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebCore/platform/network/FormData.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -311,14 +311,14 @@
return Latin1Encoding().decode(reinterpret_cast<const char*>(bytes.data()), bytes.size());
}
-static void appendBlobResolved(BlobRegistry& blobRegistry, FormData& formData, const URL& url)
+static void appendBlobResolved(FormData* formData, const URL& url)
{
- if (!blobRegistry.isBlobRegistryImpl()) {
+ if (!blobRegistry().isBlobRegistryImpl()) {
LOG_ERROR("Tried to resolve a blob without a usable registry");
return;
}
- auto* blobData = static_cast<BlobRegistryImpl&>(blobRegistry).getBlobDataFromURL(url);
+ BlobData* blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(url);
if (!blobData) {
LOG_ERROR("Could not get blob data from a registry");
return;
@@ -327,15 +327,15 @@
for (const auto& blobItem : blobData->items()) {
if (blobItem.type() == BlobDataItem::Type::Data) {
ASSERT(blobItem.data().data());
- formData.appendData(blobItem.data().data()->data() + static_cast<int>(blobItem.offset()), static_cast<int>(blobItem.length()));
+ formData->appendData(blobItem.data().data()->data() + static_cast<int>(blobItem.offset()), static_cast<int>(blobItem.length()));
} else if (blobItem.type() == BlobDataItem::Type::File)
- formData.appendFileRange(blobItem.file()->path(), blobItem.offset(), blobItem.length(), blobItem.file()->expectedModificationTime());
+ formData->appendFileRange(blobItem.file()->path(), blobItem.offset(), blobItem.length(), blobItem.file()->expectedModificationTime());
else
ASSERT_NOT_REACHED();
}
}
-Ref<FormData> FormData::resolveBlobReferences(BlobRegistry& blobRegistry)
+Ref<FormData> FormData::resolveBlobReferences()
{
// First check if any blobs needs to be resolved, or we can take the fast path.
bool hasBlob = false;
@@ -361,7 +361,7 @@
}, [&] (const FormDataElement::EncodedFileData& fileData) {
newFormData->appendFileRange(fileData.filename, fileData.fileStart, fileData.fileLength, fileData.expectedFileModificationTime, fileData.shouldGenerateFile);
}, [&] (const FormDataElement::EncodedBlobData& blobData) {
- appendBlobResolved(blobRegistry, newFormData.get(), blobData.url);
+ appendBlobResolved(newFormData.ptr(), blobData.url);
}
);
}
Modified: trunk/Source/WebCore/platform/network/FormData.h (241004 => 241005)
--- trunk/Source/WebCore/platform/network/FormData.h 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebCore/platform/network/FormData.h 2019-02-06 01:02:44 UTC (rev 241005)
@@ -29,7 +29,6 @@
namespace WebCore {
-class BlobRegistry;
class DOMFormData;
class Document;
class File;
@@ -227,7 +226,7 @@
// Resolve all blob references so we only have file and data.
// If the FormData has no blob references to resolve, this is returned.
- WEBCORE_EXPORT Ref<FormData> resolveBlobReferences(BlobRegistry&);
+ Ref<FormData> resolveBlobReferences();
bool isEmpty() const { return m_elements.isEmpty(); }
const Vector<FormDataElement>& elements() const { return m_elements; }
Modified: trunk/Source/WebCore/platform/network/cf/FormDataStreamCFNet.cpp (241004 => 241005)
--- trunk/Source/WebCore/platform/network/cf/FormDataStreamCFNet.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebCore/platform/network/cf/FormDataStreamCFNet.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -30,7 +30,6 @@
#include "FormDataStreamCFNet.h"
#include "BlobData.h"
-#include "BlobRegistry.h"
#include "FormData.h"
#include <sys/stat.h>
#include <sys/types.h>
@@ -373,7 +372,7 @@
RetainPtr<CFReadStreamRef> createHTTPBodyCFReadStream(FormData& formData)
{
- auto resolvedFormData = formData.resolveBlobReferences(blobRegistry());
+ auto resolvedFormData = formData.resolveBlobReferences();
// Precompute the content length so CFNetwork doesn't use chunked mode.
unsigned long long length = 0;
Modified: trunk/Source/WebCore/platform/network/curl/CurlFormDataStream.cpp (241004 => 241005)
--- trunk/Source/WebCore/platform/network/curl/CurlFormDataStream.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebCore/platform/network/curl/CurlFormDataStream.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -34,7 +34,6 @@
#if USE(CURL)
-#include "BlobRegistry.h"
#include "CurlContext.h"
#include "Logging.h"
#include <wtf/MainThread.h>
@@ -51,7 +50,7 @@
m_formData = formData->isolatedCopy();
// Resolve the blob elements so the formData can correctly report it's size.
- m_formData = m_formData->resolveBlobReferences(blobRegistry());
+ m_formData = m_formData->resolveBlobReferences();
}
CurlFormDataStream::~CurlFormDataStream()
Modified: trunk/Source/WebKit/ChangeLog (241004 => 241005)
--- trunk/Source/WebKit/ChangeLog 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/ChangeLog 2019-02-06 01:02:44 UTC (rev 241005)
@@ -1,3 +1,15 @@
+2019-02-05 Truitt Savell <[email protected]>
+
+ Unreviewed, rolling out r240984.
+
+ Revision casued two API timeouts
+
+ Reverted changeset:
+
+ "Stop using blobRegistry in NetworkProcess"
+ https://bugs.webkit.org/show_bug.cgi?id=194027
+ https://trac.webkit.org/changeset/240984
+
2019-02-05 Youenn Fablet <[email protected]>
UserMediaPermissionRequestManagerProxy lambdas should check for 'this' being valid
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -27,7 +27,7 @@
#include "DownloadManager.h"
#include "Download.h"
-#include "NetworkConnectionToWebProcess.h"
+#include "NetworkBlobRegistry.h"
#include "NetworkLoad.h"
#include "NetworkSession.h"
#include "PendingDownload.h"
@@ -54,10 +54,10 @@
parameters.request = request;
parameters.clientCredentialPolicy = ClientCredentialPolicy::MayAskClientForCredentials;
if (request.url().protocolIsBlob() && connection)
- parameters.blobFileReferences = connection->filesInBlob(request.url());
+ parameters.blobFileReferences = NetworkBlobRegistry::singleton().filesInBlob(*connection, request.url());
parameters.storedCredentialsPolicy = sessionID.isEphemeral() ? StoredCredentialsPolicy::DoNotUse : StoredCredentialsPolicy::Use;
- m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(m_client.parentProcessConnectionForDownloads(), WTFMove(parameters), downloadID, *networkSession, connection ? &connection->blobRegistry() : nullptr, suggestedName));
+ m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(m_client.parentProcessConnectionForDownloads(), WTFMove(parameters), downloadID, *networkSession, suggestedName));
}
void DownloadManager::dataTaskBecameDownloadTask(DownloadID downloadID, std::unique_ptr<Download>&& download)
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -36,8 +36,8 @@
namespace WebKit {
using namespace WebCore;
-PendingDownload::PendingDownload(IPC::Connection* parentProcessConnection, NetworkLoadParameters&& parameters, DownloadID downloadID, NetworkSession& networkSession, WebCore::BlobRegistryImpl* blobRegistry, const String& suggestedName)
- : m_networkLoad(std::make_unique<NetworkLoad>(*this, blobRegistry, WTFMove(parameters), networkSession))
+PendingDownload::PendingDownload(IPC::Connection* parentProcessConnection, NetworkLoadParameters&& parameters, DownloadID downloadID, NetworkSession& networkSession, const String& suggestedName)
+ : m_networkLoad(std::make_unique<NetworkLoad>(*this, WTFMove(parameters), networkSession))
, m_parentProcessConnection(parentProcessConnection)
{
m_isAllowedToAskUserForCredentials = parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials;
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.h (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.h 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.h 2019-02-06 01:02:44 UTC (rev 241005)
@@ -34,7 +34,6 @@
}
namespace WebCore {
-class BlobRegistryImpl;
class ResourceResponse;
}
@@ -49,7 +48,7 @@
class PendingDownload : public NetworkLoadClient, public IPC::MessageSender {
WTF_MAKE_FAST_ALLOCATED;
public:
- PendingDownload(IPC::Connection*, NetworkLoadParameters&&, DownloadID, NetworkSession&, WebCore::BlobRegistryImpl*, const String& suggestedName);
+ PendingDownload(IPC::Connection*, NetworkLoadParameters&&, DownloadID, NetworkSession&, const String& suggestedName);
PendingDownload(IPC::Connection*, std::unique_ptr<NetworkLoad>&&, ResponseCompletionHandler&&, DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
void continueWillSendRequest(WebCore::ResourceRequest&&);
Modified: trunk/Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -37,12 +37,20 @@
namespace WebKit {
using namespace WebCore;
-NetworkBlobRegistry::NetworkBlobRegistry() = default;
-NetworkBlobRegistry::~NetworkBlobRegistry() = default;
+NetworkBlobRegistry& NetworkBlobRegistry::singleton()
+{
+ ASSERT(RunLoop::isMain());
+ static NeverDestroyed<NetworkBlobRegistry> registry;
+ return registry;
+}
+NetworkBlobRegistry::NetworkBlobRegistry()
+{
+}
+
void NetworkBlobRegistry::registerFileBlobURL(NetworkConnectionToWebProcess& connection, const URL& url, const String& path, RefPtr<SandboxExtension>&& sandboxExtension, const String& contentType)
{
- m_blobRegistry.registerFileBlobURL(url, BlobDataFileReferenceWithSandboxExtension::create(path, WTFMove(sandboxExtension)), contentType);
+ blobRegistry().registerFileBlobURL(url, BlobDataFileReferenceWithSandboxExtension::create(path, WTFMove(sandboxExtension)), contentType);
ASSERT(!m_blobsForConnection.get(&connection).contains(url));
BlobForConnectionMap::iterator mapIterator = m_blobsForConnection.find(&connection);
@@ -53,7 +61,7 @@
void NetworkBlobRegistry::registerBlobURL(NetworkConnectionToWebProcess& connection, const URL& url, Vector<WebCore::BlobPart>&& blobParts, const String& contentType)
{
- m_blobRegistry.registerBlobURL(url, WTFMove(blobParts), contentType);
+ blobRegistry().registerBlobURL(url, WTFMove(blobParts), contentType);
ASSERT(!m_blobsForConnection.get(&connection).contains(url));
BlobForConnectionMap::iterator mapIterator = m_blobsForConnection.find(&connection);
@@ -72,7 +80,7 @@
mapIterator = m_blobsForConnection.add(&connection, HashSet<URL>()).iterator;
}
- m_blobRegistry.registerBlobURL(url, srcURL);
+ blobRegistry().registerBlobURL(url, srcURL);
ASSERT(shouldBypassConnectionCheck || mapIterator->value.contains(srcURL));
mapIterator->value.add(url);
@@ -80,7 +88,7 @@
void NetworkBlobRegistry::registerBlobURLOptionallyFileBacked(NetworkConnectionToWebProcess& connection, const URL& url, const URL& srcURL, const String& fileBackedPath, const String& contentType)
{
- m_blobRegistry.registerBlobURLOptionallyFileBacked(url, srcURL, BlobDataFileReferenceWithSandboxExtension::create(fileBackedPath, nullptr), contentType);
+ blobRegistry().registerBlobURLOptionallyFileBacked(url, srcURL, BlobDataFileReferenceWithSandboxExtension::create(fileBackedPath, nullptr), contentType);
ASSERT(!m_blobsForConnection.get(&connection).contains(url));
BlobForConnectionMap::iterator mapIterator = m_blobsForConnection.find(&connection);
@@ -96,7 +104,7 @@
if (mapIterator == m_blobsForConnection.end())
return;
- m_blobRegistry.registerBlobURLForSlice(url, srcURL, start, end);
+ blobRegistry().registerBlobURLForSlice(url, srcURL, start, end);
ASSERT(mapIterator->value.contains(srcURL));
mapIterator->value.add(url);
@@ -109,7 +117,7 @@
if (mapIterator == m_blobsForConnection.end())
return;
- m_blobRegistry.unregisterBlobURL(url);
+ blobRegistry().unregisterBlobURL(url);
mapIterator->value.remove(url);
}
@@ -119,17 +127,17 @@
if (!m_blobsForConnection.contains(&connection) || !m_blobsForConnection.find(&connection)->value.contains(url))
return 0;
- return m_blobRegistry.blobSize(url);
+ return blobRegistry().blobSize(url);
}
void NetworkBlobRegistry::writeBlobsToTemporaryFiles(const Vector<String>& blobURLs, CompletionHandler<void(Vector<String>&&)>&& completionHandler)
{
- m_blobRegistry.writeBlobsToTemporaryFiles(blobURLs, WTFMove(completionHandler));
+ blobRegistry().writeBlobsToTemporaryFiles(blobURLs, WTFMove(completionHandler));
}
void NetworkBlobRegistry::writeBlobToFilePath(const URL& blobURL, const String& path, CompletionHandler<void(bool success)>&& completionHandler)
{
- if (!m_blobRegistry.isBlobRegistryImpl()) {
+ if (!blobRegistry().isBlobRegistryImpl()) {
completionHandler(false);
ASSERT_NOT_REACHED();
return;
@@ -139,7 +147,7 @@
for (auto& file : blobFiles)
file->prepareForFileAccess();
- m_blobRegistry.writeBlobToFilePath(blobURL, path, [blobFiles = WTFMove(blobFiles), completionHandler = WTFMove(completionHandler)] (bool success) mutable {
+ static_cast<BlobRegistryImpl&>(blobRegistry()).writeBlobToFilePath(blobURL, path, [blobFiles = WTFMove(blobFiles), completionHandler = WTFMove(completionHandler)] (bool success) mutable {
for (auto& file : blobFiles)
file->revokeFileAccess();
completionHandler(success);
@@ -153,7 +161,7 @@
HashSet<URL>& blobsForConnection = m_blobsForConnection.find(&connection)->value;
for (HashSet<URL>::iterator iter = blobsForConnection.begin(), end = blobsForConnection.end(); iter != end; ++iter)
- m_blobRegistry.unregisterBlobURL(*iter);
+ blobRegistry().unregisterBlobURL(*iter);
m_blobsForConnection.remove(&connection);
}
@@ -168,8 +176,8 @@
Vector<RefPtr<BlobDataFileReference>> NetworkBlobRegistry::filesInBlob(const URL& url)
{
- ASSERT(m_blobRegistry.isBlobRegistryImpl());
- BlobData* blobData = m_blobRegistry.getBlobDataFromURL(url);
+ ASSERT(blobRegistry().isBlobRegistryImpl());
+ BlobData* blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(url);
if (!blobData)
return { };
Modified: trunk/Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.h (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.h 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.h 2019-02-06 01:02:44 UTC (rev 241005)
@@ -25,7 +25,6 @@
#pragma once
-#include <WebCore/BlobRegistryImpl.h>
#include <wtf/Function.h>
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
@@ -45,7 +44,7 @@
WTF_MAKE_NONCOPYABLE(NetworkBlobRegistry);
public:
NetworkBlobRegistry();
- ~NetworkBlobRegistry();
+ static NetworkBlobRegistry& singleton();
void registerFileBlobURL(NetworkConnectionToWebProcess&, const URL&, const String& path, RefPtr<SandboxExtension>&&, const String& contentType);
void registerBlobURL(NetworkConnectionToWebProcess&, const URL&, Vector<WebCore::BlobPart>&&, const String& contentType);
@@ -61,13 +60,12 @@
Vector<RefPtr<WebCore::BlobDataFileReference>> filesInBlob(NetworkConnectionToWebProcess&, const URL&);
Vector<RefPtr<WebCore::BlobDataFileReference>> filesInBlob(const URL&);
-
- WebCore::BlobRegistryImpl& blobRegistry() { return m_blobRegistry; }
private:
+ ~NetworkBlobRegistry();
+
typedef HashMap<NetworkConnectionToWebProcess*, HashSet<URL>> BlobForConnectionMap;
BlobForConnectionMap m_blobsForConnection;
- WebCore::BlobRegistryImpl m_blobRegistry;
};
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -26,9 +26,9 @@
#include "config.h"
#include "NetworkConnectionToWebProcess.h"
-#include "BlobDataFileReferenceWithSandboxExtension.h"
#include "CacheStorageEngineConnectionMessages.h"
#include "DataReference.h"
+#include "NetworkBlobRegistry.h"
#include "NetworkCache.h"
#include "NetworkMDNSRegisterMessages.h"
#include "NetworkProcess.h"
@@ -249,7 +249,7 @@
// root activity trackers.
stopAllNetworkActivityTracking();
- m_networkProcess->networkBlobRegistry().connectionToWebProcessDidClose(*this);
+ NetworkBlobRegistry::singleton().connectionToWebProcessDidClose(*this);
m_networkProcess->removeNetworkConnectionToWebProcess(*this);
#if USE(LIBWEBRTC)
@@ -311,20 +311,6 @@
#endif
}
-Vector<RefPtr<WebCore::BlobDataFileReference>> NetworkConnectionToWebProcess::resolveBlobReferences(const NetworkResourceLoadParameters& parameters)
-{
- Vector<RefPtr<WebCore::BlobDataFileReference>> files;
- if (auto* body = parameters.request.httpBody()) {
- for (auto& element : body->elements()) {
- if (auto* blobData = WTF::get_if<FormDataElement::EncodedBlobData>(element.data))
- files.appendVector(m_networkProcess->networkBlobRegistry().filesInBlob(*this, blobData->url));
- }
- const_cast<WebCore::ResourceRequest&>(parameters.request).setHTTPBody(body->resolveBlobReferences(m_networkProcess->networkBlobRegistry().blobRegistry()));
- }
-
- return files;
-}
-
void NetworkConnectionToWebProcess::scheduleResourceLoad(NetworkResourceLoadParameters&& loadParameters)
{
auto identifier = loadParameters.identifier;
@@ -356,7 +342,7 @@
};
// PingLoad manages its own lifetime, deleting itself when its purpose has been fulfilled.
- new PingLoad(*this, networkProcess(), WTFMove(loadParameters), WTFMove(completionHandler));
+ new PingLoad(networkProcess(), WTFMove(loadParameters), WTFMove(completionHandler));
}
void NetworkConnectionToWebProcess::setOnLineState(bool isOnLine)
@@ -405,8 +391,6 @@
void NetworkConnectionToWebProcess::preconnectTo(uint64_t preconnectionIdentifier, NetworkResourceLoadParameters&& parameters)
{
- ASSERT(!parameters.request.httpBody());
-
#if ENABLE(SERVER_PRECONNECT)
new PreconnectTask(networkProcess(), WTFMove(parameters), [this, protectedThis = makeRef(*this), identifier = preconnectionIdentifier] (const ResourceError& error) {
didFinishPreconnection(identifier, error);
@@ -509,37 +493,39 @@
void NetworkConnectionToWebProcess::registerFileBlobURL(const URL& url, const String& path, SandboxExtension::Handle&& extensionHandle, const String& contentType)
{
- m_networkProcess->networkBlobRegistry().registerFileBlobURL(*this, url, path, SandboxExtension::create(WTFMove(extensionHandle)), contentType);
+ RefPtr<SandboxExtension> extension = SandboxExtension::create(WTFMove(extensionHandle));
+
+ NetworkBlobRegistry::singleton().registerFileBlobURL(*this, url, path, WTFMove(extension), contentType);
}
void NetworkConnectionToWebProcess::registerBlobURL(const URL& url, Vector<BlobPart>&& blobParts, const String& contentType)
{
- m_networkProcess->networkBlobRegistry().registerBlobURL(*this, url, WTFMove(blobParts), contentType);
+ NetworkBlobRegistry::singleton().registerBlobURL(*this, url, WTFMove(blobParts), contentType);
}
void NetworkConnectionToWebProcess::registerBlobURLFromURL(const URL& url, const URL& srcURL, bool shouldBypassConnectionCheck)
{
- m_networkProcess->networkBlobRegistry().registerBlobURL(*this, url, srcURL, shouldBypassConnectionCheck);
+ NetworkBlobRegistry::singleton().registerBlobURL(*this, url, srcURL, shouldBypassConnectionCheck);
}
void NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked(const URL& url, const URL& srcURL, const String& fileBackedPath, const String& contentType)
{
- m_networkProcess->networkBlobRegistry().registerBlobURLOptionallyFileBacked(*this, url, srcURL, fileBackedPath, contentType);
+ NetworkBlobRegistry::singleton().registerBlobURLOptionallyFileBacked(*this, url, srcURL, fileBackedPath, contentType);
}
void NetworkConnectionToWebProcess::registerBlobURLForSlice(const URL& url, const URL& srcURL, int64_t start, int64_t end)
{
- m_networkProcess->networkBlobRegistry().registerBlobURLForSlice(*this, url, srcURL, start, end);
+ NetworkBlobRegistry::singleton().registerBlobURLForSlice(*this, url, srcURL, start, end);
}
void NetworkConnectionToWebProcess::unregisterBlobURL(const URL& url)
{
- m_networkProcess->networkBlobRegistry().unregisterBlobURL(*this, url);
+ NetworkBlobRegistry::singleton().unregisterBlobURL(*this, url);
}
void NetworkConnectionToWebProcess::blobSize(const URL& url, uint64_t& resultSize)
{
- resultSize = m_networkProcess->networkBlobRegistry().blobSize(*this, url);
+ resultSize = NetworkBlobRegistry::singleton().blobSize(*this, url);
}
void NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles(const Vector<String>& blobURLs, CompletionHandler<void(Vector<String>&&)>&& completionHandler)
@@ -546,12 +532,12 @@
{
Vector<RefPtr<BlobDataFileReference>> fileReferences;
for (auto& url : blobURLs)
- fileReferences.appendVector(m_networkProcess->networkBlobRegistry().filesInBlob(*this, { { }, url }));
+ fileReferences.appendVector(NetworkBlobRegistry::singleton().filesInBlob(*this, { { }, url }));
for (auto& file : fileReferences)
file->prepareForFileAccess();
- m_networkProcess->networkBlobRegistry().writeBlobsToTemporaryFiles(blobURLs, [fileReferences = WTFMove(fileReferences), completionHandler = WTFMove(completionHandler)](auto&& fileNames) mutable {
+ NetworkBlobRegistry::singleton().writeBlobsToTemporaryFiles(blobURLs, [fileReferences = WTFMove(fileReferences), completionHandler = WTFMove(completionHandler)](auto&& fileNames) mutable {
for (auto& file : fileReferences)
file->revokeFileAccess();
completionHandler(WTFMove(fileNames));
@@ -558,16 +544,6 @@
});
}
-Vector<RefPtr<WebCore::BlobDataFileReference>> NetworkConnectionToWebProcess::filesInBlob(const URL& url)
-{
- return m_networkProcess->networkBlobRegistry().filesInBlob(*this, url);
-}
-
-WebCore::BlobRegistryImpl& NetworkConnectionToWebProcess::blobRegistry()
-{
- return m_networkProcess->networkBlobRegistry().blobRegistry();
-}
-
void NetworkConnectionToWebProcess::setCaptureExtraNetworkLoadMetricsEnabled(bool enabled)
{
m_captureExtraNetworkLoadMetricsEnabled = enabled;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2019-02-06 01:02:44 UTC (rev 241005)
@@ -41,7 +41,6 @@
namespace WebCore {
class BlobDataFileReference;
-class BlobRegistryImpl;
class ResourceError;
class ResourceRequest;
struct SameSiteInfo;
@@ -122,10 +121,6 @@
Optional<NetworkActivityTracker> startTrackingResourceLoad(uint64_t pageID, ResourceLoadIdentifier resourceID, bool isMainResource, const PAL::SessionID&);
void stopTrackingResourceLoad(ResourceLoadIdentifier resourceID, NetworkActivityTracker::CompletionCode);
- WebCore::BlobRegistryImpl& blobRegistry();
- Vector<RefPtr<WebCore::BlobDataFileReference>> filesInBlob(const URL&);
- Vector<RefPtr<WebCore::BlobDataFileReference>> resolveBlobReferences(const NetworkResourceLoadParameters&);
-
private:
NetworkConnectionToWebProcess(NetworkProcess&, IPC::Connection::Identifier);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -47,7 +47,9 @@
Ref<NetworkDataTask> NetworkDataTask::create(NetworkSession& session, NetworkDataTaskClient& client, const NetworkLoadParameters& parameters)
{
- ASSERT(!parameters.request.url().protocolIsBlob());
+ if (parameters.request.url().protocolIsBlob())
+ return NetworkDataTaskBlob::create(session, client, parameters.request, parameters.contentSniffingPolicy, parameters.blobFileReferences);
+
#if PLATFORM(COCOA)
return NetworkDataTaskCocoa::create(session, client, parameters.request, parameters.webFrameID, parameters.webPageID, parameters.storedCredentialsPolicy, parameters.contentSniffingPolicy, parameters.contentEncodingSniffingPolicy, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect, parameters.shouldPreconnectOnly, parameters.isMainFrameNavigation, parameters.networkActivityTracker);
#endif
Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -65,7 +65,7 @@
static const char* const webKitBlobResourceDomain = "WebKitBlobResource";
-NetworkDataTaskBlob::NetworkDataTaskBlob(NetworkSession& session, BlobRegistryImpl& blobRegistry, NetworkDataTaskClient& client, const ResourceRequest& request, ContentSniffingPolicy shouldContentSniff, const Vector<RefPtr<WebCore::BlobDataFileReference>>& fileReferences)
+NetworkDataTaskBlob::NetworkDataTaskBlob(NetworkSession& session, NetworkDataTaskClient& client, const ResourceRequest& request, ContentSniffingPolicy shouldContentSniff, const Vector<RefPtr<WebCore::BlobDataFileReference>>& fileReferences)
: NetworkDataTask(session, client, request, StoredCredentialsPolicy::DoNotUse, false, false)
, m_stream(std::make_unique<AsyncFileStream>(*this))
, m_fileReferences(fileReferences)
@@ -74,7 +74,7 @@
for (auto& fileReference : m_fileReferences)
fileReference->prepareForFileAccess();
- m_blobData = blobRegistry.getBlobDataFromURL(request.url());
+ m_blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(request.url());
m_session->registerNetworkDataTask(*this);
LOG(NetworkSession, "%p - Created NetworkDataTaskBlob for %s", this, request.url().string().utf8().data());
Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h 2019-02-06 01:02:44 UTC (rev 241005)
@@ -40,7 +40,6 @@
class BlobDataFileReference;
class BlobData;
class BlobDataItem;
-class BlobRegistryImpl;
}
namespace WebKit {
@@ -49,15 +48,15 @@
class NetworkDataTaskBlob final : public NetworkDataTask, public WebCore::FileStreamClient {
public:
- static Ref<NetworkDataTask> create(NetworkSession& session, WebCore::BlobRegistryImpl& blobRegistry, NetworkDataTaskClient& client, const WebCore::ResourceRequest& request, WebCore::ContentSniffingPolicy shouldContentSniff, const Vector<RefPtr<WebCore::BlobDataFileReference>>& fileReferences)
+ static Ref<NetworkDataTask> create(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& request, WebCore::ContentSniffingPolicy shouldContentSniff, const Vector<RefPtr<WebCore::BlobDataFileReference>>& fileReferences)
{
- return adoptRef(*new NetworkDataTaskBlob(session, blobRegistry, client, request, shouldContentSniff, fileReferences));
+ return adoptRef(*new NetworkDataTaskBlob(session, client, request, shouldContentSniff, fileReferences));
}
~NetworkDataTaskBlob();
private:
- NetworkDataTaskBlob(NetworkSession&, WebCore::BlobRegistryImpl&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::ContentSniffingPolicy, const Vector<RefPtr<WebCore::BlobDataFileReference>>&);
+ NetworkDataTaskBlob(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::ContentSniffingPolicy, const Vector<RefPtr<WebCore::BlobDataFileReference>>&);
void suspend() override;
void cancel() override;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -50,7 +50,7 @@
ResponseCompletionHandler responseCompletionHandler;
};
-NetworkLoad::NetworkLoad(NetworkLoadClient& client, BlobRegistryImpl* blobRegistry, NetworkLoadParameters&& parameters, NetworkSession& networkSession)
+NetworkLoad::NetworkLoad(NetworkLoadClient& client, NetworkLoadParameters&& parameters, NetworkSession& networkSession)
: m_client(client)
, m_networkProcess(networkSession.networkProcess())
, m_parameters(WTFMove(parameters))
@@ -57,16 +57,12 @@
, m_loadThrottleLatency(networkSession.loadThrottleLatency())
, m_currentRequest(m_parameters.request)
{
- initialize(networkSession, blobRegistry);
+ initialize(networkSession);
}
-void NetworkLoad::initialize(NetworkSession& networkSession, WebCore::BlobRegistryImpl* blobRegistry)
+void NetworkLoad::initialize(NetworkSession& networkSession)
{
- if (blobRegistry && m_parameters.request.url().protocolIsBlob())
- m_task = NetworkDataTaskBlob::create(networkSession, *blobRegistry, *this, m_parameters.request, m_parameters.contentSniffingPolicy, m_parameters.blobFileReferences);
- else
- m_task = NetworkDataTask::create(networkSession, *this, m_parameters);
-
+ m_task = NetworkDataTask::create(networkSession, *this, m_parameters);
if (!m_parameters.defersLoading)
m_task->resume();
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoad.h (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkLoad.h 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoad.h 2019-02-06 01:02:44 UTC (rev 241005)
@@ -33,10 +33,6 @@
#include <wtf/CompletionHandler.h>
#include <wtf/text/WTFString.h>
-namespace WebCore {
-class BlobRegistryImpl;
-}
-
namespace WebKit {
class NetworkProcess;
@@ -44,7 +40,7 @@
class NetworkLoad final : private NetworkDataTaskClient {
WTF_MAKE_FAST_ALLOCATED;
public:
- NetworkLoad(NetworkLoadClient&, WebCore::BlobRegistryImpl*, NetworkLoadParameters&&, NetworkSession&);
+ NetworkLoad(NetworkLoadClient&, NetworkLoadParameters&&, NetworkSession&);
~NetworkLoad();
void setDefersLoading(bool);
@@ -69,7 +65,7 @@
String description() const;
private:
- void initialize(NetworkSession&, WebCore::BlobRegistryImpl*);
+ void initialize(NetworkSession&);
// NetworkDataTaskClient
void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) final;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -37,6 +37,7 @@
#include "LegacyCustomProtocolManager.h"
#endif
#include "Logging.h"
+#include "NetworkBlobRegistry.h"
#include "NetworkConnectionToWebProcess.h"
#include "NetworkContentRuleListManagerMessages.h"
#include "NetworkProcessCreationParameters.h"
@@ -149,10 +150,9 @@
});
#endif
- NetworkStateNotifier::singleton().addListener([weakThis = makeWeakPtr(*this)](bool isOnLine) {
- if (!weakThis)
- return;
- for (auto& webProcessConnection : weakThis->m_webProcessConnections)
+ NetworkStateNotifier::singleton().addListener([this](bool isOnLine) {
+ auto webProcessConnections = m_webProcessConnections;
+ for (auto& webProcessConnection : webProcessConnections)
webProcessConnection->setOnLineState(isOnLine);
});
@@ -186,10 +186,10 @@
void NetworkProcess::removeNetworkConnectionToWebProcess(NetworkConnectionToWebProcess& connection)
{
- auto count = m_webProcessConnections.removeAllMatching([&] (const auto& c) {
- return c.ptr() == &connection;
- });
- ASSERT_UNUSED(count, count == 1);
+ size_t vectorIndex = m_webProcessConnections.find(&connection);
+ ASSERT(vectorIndex != notFound);
+
+ m_webProcessConnections.remove(vectorIndex);
}
bool NetworkProcess::shouldTerminate()
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-02-06 01:02:44 UTC (rev 241005)
@@ -28,7 +28,6 @@
#include "AuxiliaryProcess.h"
#include "CacheModel.h"
#include "DownloadManager.h"
-#include "NetworkBlobRegistry.h"
#include "NetworkContentRuleListManager.h"
#include "NetworkHTTPSUpgradeChecker.h"
#include "SandboxExtension.h"
@@ -292,8 +291,6 @@
void removeCacheEngine(const PAL::SessionID&);
void requestCacheStorageSpace(PAL::SessionID, const WebCore::ClientOrigin&, uint64_t quota, uint64_t currentSize, uint64_t spaceRequired, CompletionHandler<void(Optional<uint64_t>)>&&);
- NetworkBlobRegistry& networkBlobRegistry() { return m_networkBlobRegistry; }
-
private:
void platformInitializeNetworkProcess(const NetworkProcessCreationParameters&);
std::unique_ptr<WebCore::NetworkStorageSession> platformCreateDefaultStorageSession() const;
@@ -425,7 +422,7 @@
void ensurePathExists(const String& path);
// Connections to WebProcesses.
- Vector<Ref<NetworkConnectionToWebProcess>> m_webProcessConnections;
+ Vector<RefPtr<NetworkConnectionToWebProcess>> m_webProcessConnections;
String m_diskCacheDirectory;
bool m_hasSetCacheModel { false };
@@ -448,7 +445,6 @@
HashMap<PAL::SessionID, Ref<NetworkSession>> m_networkSessions;
HashMap<PAL::SessionID, std::unique_ptr<WebCore::NetworkStorageSession>> m_networkStorageSessions;
mutable std::unique_ptr<WebCore::NetworkStorageSession> m_defaultNetworkStorageSession;
- NetworkBlobRegistry m_networkBlobRegistry;
#if PLATFORM(COCOA)
void platformInitializeNetworkProcessCocoa(const NetworkProcessCreationParameters&);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -26,7 +26,7 @@
#include "config.h"
#include "NetworkProcessPlatformStrategies.h"
-#include <WebCore/BlobRegistry.h>
+#include <WebCore/BlobRegistryImpl.h>
#include <wtf/NeverDestroyed.h>
namespace WebKit {
@@ -50,20 +50,7 @@
BlobRegistry* NetworkProcessPlatformStrategies::createBlobRegistry()
{
- using namespace WebCore;
- class EmptyBlobRegistry : public WebCore::BlobRegistry {
- void registerFileBlobURL(const URL&, Ref<BlobDataFileReference>&&, const String& contentType) final { ASSERT_NOT_REACHED(); }
- void registerBlobURL(const URL&, Vector<BlobPart>&&, const String& contentType) final { ASSERT_NOT_REACHED(); }
- void registerBlobURL(const URL&, const URL& srcURL) final { ASSERT_NOT_REACHED(); }
- void registerBlobURLOptionallyFileBacked(const URL&, const URL& srcURL, RefPtr<BlobDataFileReference>&&, const String& contentType) final { ASSERT_NOT_REACHED(); }
- void registerBlobURLForSlice(const URL&, const URL& srcURL, long long start, long long end) final { ASSERT_NOT_REACHED(); }
- void unregisterBlobURL(const URL&) final { ASSERT_NOT_REACHED(); }
- unsigned long long blobSize(const URL&) final { ASSERT_NOT_REACHED(); return 0; }
- void writeBlobsToTemporaryFiles(const Vector<String>& blobURLs, CompletionHandler<void(Vector<String>&& filePaths)>&&) final { ASSERT_NOT_REACHED(); }
- bool isBlobRegistryImpl() const { return false; }
- };
- static NeverDestroyed<EmptyBlobRegistry> blobRegistry;
- return &blobRegistry.get();
+ return new BlobRegistryImpl;
}
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -29,6 +29,7 @@
#include "DataReference.h"
#include "FormDataReference.h"
#include "Logging.h"
+#include "NetworkBlobRegistry.h"
#include "NetworkCache.h"
#include "NetworkConnectionToWebProcess.h"
#include "NetworkLoad.h"
@@ -91,7 +92,6 @@
NetworkResourceLoader::NetworkResourceLoader(NetworkResourceLoadParameters&& parameters, NetworkConnectionToWebProcess& connection, Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply&& synchronousReply)
: m_parameters { WTFMove(parameters) }
, m_connection { connection }
- , m_fileReferences(connection.resolveBlobReferences(m_parameters))
, m_defersLoading { parameters.defersLoading }
, m_isAllowedToAskUserForCredentials { m_parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials }
, m_bufferingTimer { *this, &NetworkResourceLoader::bufferingTimerFired }
@@ -103,6 +103,13 @@
// Once bug 116233 is resolved, this ASSERT can just be "m_webPageID && m_webFrameID"
ASSERT((m_parameters.webPageID && m_parameters.webFrameID) || m_parameters.clientCredentialPolicy == ClientCredentialPolicy::CannotAskClientForCredentials);
+ if (originalRequest().httpBody()) {
+ for (const auto& element : originalRequest().httpBody()->elements()) {
+ if (auto* blobData = WTF::get_if<FormDataElement::EncodedBlobData>(element.data))
+ m_fileReferences.appendVector(NetworkBlobRegistry::singleton().filesInBlob(connection, blobData->url));
+ }
+ }
+
if (synchronousReply || parameters.shouldRestrictHTTPResponseAccess) {
NetworkLoadChecker::LoadType requestLoadType = isMainFrameLoad() ? NetworkLoadChecker::LoadType::MainFrame : NetworkLoadChecker::LoadType::Other;
m_networkLoadChecker = std::make_unique<NetworkLoadChecker>(connection.networkProcess(), FetchOptions { m_parameters.options }, m_parameters.sessionID, m_parameters.webPageID, m_parameters.webFrameID, HTTPHeaderMap { m_parameters.originalRequestHeaders }, URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.preflightPolicy, originalRequest().httpReferrer(), m_parameters.isHTTPSUpgradeEnabled, shouldCaptureExtraNetworkLoadMetrics(), requestLoadType);
@@ -121,7 +128,6 @@
ASSERT(RunLoop::isMain());
ASSERT(!m_networkLoad);
ASSERT(!isSynchronous() || !m_synchronousLoadData->delayedReply);
- ASSERT(m_fileReferences.isEmpty());
if (m_responseCompletionHandler)
m_responseCompletionHandler(PolicyAction::Ignore);
}
@@ -276,7 +282,7 @@
parameters.storedCredentialsPolicy = m_networkLoadChecker->storedCredentialsPolicy();
if (request.url().protocolIsBlob())
- parameters.blobFileReferences = m_connection->filesInBlob(originalRequest().url());
+ parameters.blobFileReferences = NetworkBlobRegistry::singleton().filesInBlob(m_connection, originalRequest().url());
auto* networkSession = m_connection->networkProcess().networkSession(parameters.sessionID);
if (!networkSession && parameters.sessionID.isEphemeral()) {
@@ -292,7 +298,7 @@
}
parameters.request = WTFMove(request);
- m_networkLoad = std::make_unique<NetworkLoad>(*this, &m_connection->blobRegistry(), WTFMove(parameters), *networkSession);
+ m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters), *networkSession);
RELEASE_LOG_IF_ALLOWED("startNetworkLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", description = %{public}s)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, m_networkLoad->description().utf8().data());
Modified: trunk/Source/WebKit/NetworkProcess/PingLoad.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/PingLoad.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/PingLoad.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -29,7 +29,6 @@
#include "AuthenticationChallengeDisposition.h"
#include "AuthenticationManager.h"
#include "Logging.h"
-#include "NetworkConnectionToWebProcess.h"
#include "NetworkLoadChecker.h"
#include "NetworkProcess.h"
#include "WebErrors.h"
@@ -40,18 +39,12 @@
using namespace WebCore;
-PingLoad::PingLoad(NetworkConnectionToWebProcess& connection, NetworkProcess& networkProcess, NetworkResourceLoadParameters&& parameters, CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler)
+PingLoad::PingLoad(NetworkProcess& networkProcess, NetworkResourceLoadParameters&& parameters, CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler)
: m_parameters(WTFMove(parameters))
, m_completionHandler(WTFMove(completionHandler))
, m_timeoutTimer(*this, &PingLoad::timeoutTimerFired)
, m_networkLoadChecker(makeUniqueRef<NetworkLoadChecker>(networkProcess, FetchOptions { m_parameters.options}, m_parameters.sessionID, m_parameters.webPageID, m_parameters.webFrameID, WTFMove(m_parameters.originalRequestHeaders), URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.preflightPolicy, m_parameters.request.httpReferrer()))
- , m_blobFiles(connection.resolveBlobReferences(m_parameters))
{
- for (auto& file : m_blobFiles) {
- if (file)
- file->prepareForFileAccess();
- }
-
m_networkLoadChecker->enableContentExtensionsCheck();
if (m_parameters.cspResponseHeaders)
m_networkLoadChecker->setCSPResponseHeaders(WTFMove(m_parameters.cspResponseHeaders.value()));
@@ -86,10 +79,6 @@
m_task->clearClient();
m_task->cancel();
}
- for (auto& file : m_blobFiles) {
- if (file)
- file->revokeFileAccess();
- }
}
void PingLoad::didFinish(const ResourceError& error, const ResourceResponse& response)
Modified: trunk/Source/WebKit/NetworkProcess/PingLoad.h (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/PingLoad.h 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/PingLoad.h 2019-02-06 01:02:44 UTC (rev 241005)
@@ -40,7 +40,7 @@
class PingLoad final : public CanMakeWeakPtr<PingLoad>, private NetworkDataTaskClient {
public:
- PingLoad(NetworkConnectionToWebProcess&, NetworkProcess&, NetworkResourceLoadParameters&&, CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
+ PingLoad(NetworkProcess&, NetworkResourceLoadParameters&&, CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
private:
~PingLoad();
@@ -66,7 +66,6 @@
RefPtr<NetworkDataTask> m_task;
WebCore::Timer m_timeoutTimer;
UniqueRef<NetworkLoadChecker> m_networkLoadChecker;
- Vector<RefPtr<WebCore::BlobDataFileReference>> m_blobFiles;
};
}
Modified: trunk/Source/WebKit/NetworkProcess/PreconnectTask.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/PreconnectTask.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/PreconnectTask.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -53,7 +53,7 @@
}
ASSERT(parameters.shouldPreconnectOnly == PreconnectOnly::Yes);
- m_networkLoad = std::make_unique<NetworkLoad>(*this, nullptr, WTFMove(parameters), *networkSession);
+ m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters), *networkSession);
m_timeoutTimer.startOneShot(60000_s);
}
Modified: trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp (241004 => 241005)
--- trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp 2019-02-06 01:01:38 UTC (rev 241004)
+++ trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp 2019-02-06 01:02:44 UTC (rev 241005)
@@ -60,7 +60,7 @@
parameters.contentSniffingPolicy = ContentSniffingPolicy::DoNotSniffContent;
parameters.contentEncodingSniffingPolicy = ContentEncodingSniffingPolicy::Sniff;
parameters.request = m_originalRequest;
- m_networkLoad = std::make_unique<NetworkLoad>(*this, nullptr, WTFMove(parameters), *cache.networkProcess().networkSession(PAL::SessionID::defaultSessionID()));
+ m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters), *cache.networkProcess().networkSession(PAL::SessionID::defaultSessionID()));
}
SpeculativeLoad::~SpeculativeLoad()