WebKit Bugzilla
Attachment 360593 Details for
Bug 194027
: Stop using blobRegistry in NetworkProcess
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194027-20190130103151.patch (text/plain), 47.55 KB, created by
Alex Christensen
on 2019-01-30 10:31:52 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2019-01-30 10:31:52 PST
Size:
47.55 KB
patch
obsolete
>Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 240680) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,14 @@ >+2019-01-30 Alex Christensen <achristensen@webkit.org> >+ >+ Stop using blobRegistry in NetworkProcess >+ https://bugs.webkit.org/show_bug.cgi?id=194027 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * platform/network/BlobRegistryImpl.cpp: >+ (WebCore::BlobRegistryImpl::clear): >+ * platform/network/BlobRegistryImpl.h: >+ > 2019-01-29 Simon Fraser <simon.fraser@apple.com> > > REGRESSION(r240553): [iOS] Crash in ScrollingTree::updateTreeFromStateNode when attempting to log in to icloud.com >Index: Source/WebCore/platform/network/BlobRegistryImpl.cpp >=================================================================== >--- Source/WebCore/platform/network/BlobRegistryImpl.cpp (revision 240680) >+++ Source/WebCore/platform/network/BlobRegistryImpl.cpp (working copy) >@@ -343,4 +343,9 @@ void BlobRegistryImpl::writeBlobToFilePa > }); > } > >+void BlobRegistryImpl::clear() >+{ >+ m_blobs.clear(); >+} >+ > } // namespace WebCore >Index: Source/WebCore/platform/network/BlobRegistryImpl.h >=================================================================== >--- Source/WebCore/platform/network/BlobRegistryImpl.h (revision 240680) >+++ Source/WebCore/platform/network/BlobRegistryImpl.h (working copy) >@@ -56,7 +56,6 @@ public: > 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; >@@ -78,6 +77,9 @@ private: > > bool populateBlobsForFileWriting(const Vector<String>& blobURLs, Vector<BlobForFileWriting>&); > >+ void clear(); >+ >+private: > HashMap<String, RefPtr<BlobData>> m_blobs; > }; > >Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 240715) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,54 @@ >+2019-01-30 Alex Christensen <achristensen@webkit.org> >+ >+ Stop using blobRegistry in NetworkProcess >+ https://bugs.webkit.org/show_bug.cgi?id=194027 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * NetworkProcess/Downloads/DownloadManager.cpp: >+ (WebKit::DownloadManager::startDownload): >+ * NetworkProcess/Downloads/PendingDownload.cpp: >+ (WebKit::PendingDownload::PendingDownload): >+ * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: Removed. >+ * NetworkProcess/FileAPI/NetworkBlobRegistry.h: Removed. >+ * NetworkProcess/NetworkConnectionToWebProcess.cpp: >+ (WebKit::NetworkConnectionToWebProcess::didClose): >+ (WebKit::NetworkConnectionToWebProcess::registerFileBlobURL): >+ (WebKit::NetworkConnectionToWebProcess::registerBlobURL): >+ (WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL): >+ (WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked): >+ (WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice): >+ (WebKit::NetworkConnectionToWebProcess::unregisterBlobURL): >+ (WebKit::NetworkConnectionToWebProcess::blobSize): >+ (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): >+ (WebKit::NetworkConnectionToWebProcess::filesInBlob): >+ * NetworkProcess/NetworkConnectionToWebProcess.h: >+ (WebKit::NetworkConnectionToWebProcess::blobRegistry): >+ * NetworkProcess/NetworkDataTask.cpp: >+ (WebKit::NetworkDataTask::create): >+ * NetworkProcess/NetworkDataTaskBlob.cpp: >+ (WebKit::NetworkDataTaskBlob::NetworkDataTaskBlob): >+ * NetworkProcess/NetworkDataTaskBlob.h: >+ * NetworkProcess/NetworkLoad.cpp: >+ (WebKit::NetworkLoad::NetworkLoad): >+ (WebKit::NetworkLoad::initialize): >+ * NetworkProcess/NetworkLoad.h: >+ * NetworkProcess/NetworkProcess.cpp: >+ (WebKit::NetworkProcess::NetworkProcess): >+ (WebKit::NetworkProcess::removeNetworkConnectionToWebProcess): >+ (WebKit::NetworkProcess::registerBlobURLForAllConnections): >+ * NetworkProcess/NetworkProcess.h: >+ * NetworkProcess/NetworkProcessPlatformStrategies.cpp: >+ (WebKit::NetworkProcessPlatformStrategies::createBlobRegistry): >+ * NetworkProcess/NetworkResourceLoader.cpp: >+ (WebKit::m_shouldCaptureExtraNetworkLoadMetrics): >+ (WebKit::NetworkResourceLoader::startNetworkLoad): >+ * NetworkProcess/PreconnectTask.cpp: >+ * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: >+ (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): >+ * Sources.txt: >+ * WebKit.xcodeproj/project.pbxproj: >+ > 2019-01-30 Simon Fraser <simon.fraser@apple.com> > > Add some basic geometry information to the scrolling tree >Index: Source/WebKit/Sources.txt >=================================================================== >--- Source/WebKit/Sources.txt (revision 240683) >+++ Source/WebKit/Sources.txt (working copy) >@@ -50,8 +50,6 @@ NetworkProcess/Downloads/Download.cpp > NetworkProcess/Downloads/DownloadManager.cpp > NetworkProcess/Downloads/PendingDownload.cpp > >-NetworkProcess/FileAPI/NetworkBlobRegistry.cpp >- > NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp > > NetworkProcess/ServiceWorker/WebSWOriginStore.cpp @no-unify >Index: Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (revision 240696) >+++ Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (working copy) >@@ -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 @@ void NetworkConnectionToWebProcess::didC > // root activity trackers. > stopAllNetworkActivityTracking(); > >- NetworkBlobRegistry::singleton().connectionToWebProcessDidClose(*this); >+ m_blobRegistry.clear(); > m_networkProcess->removeNetworkConnectionToWebProcess(*this); > > #if USE(LIBWEBRTC) >@@ -493,57 +493,74 @@ void NetworkConnectionToWebProcess::dele > > void NetworkConnectionToWebProcess::registerFileBlobURL(const URL& url, const String& path, SandboxExtension::Handle&& extensionHandle, const String& contentType) > { >- RefPtr<SandboxExtension> extension = SandboxExtension::create(WTFMove(extensionHandle)); >- >- NetworkBlobRegistry::singleton().registerFileBlobURL(*this, url, path, WTFMove(extension), contentType); >+ auto fileReference = BlobDataFileReferenceWithSandboxExtension::create(path, SandboxExtension::create(WTFMove(extensionHandle))); >+ m_blobRegistry.registerFileBlobURL(url, WTFMove(fileReference), contentType); > } > > void NetworkConnectionToWebProcess::registerBlobURL(const URL& url, Vector<BlobPart>&& blobParts, const String& contentType) > { >- NetworkBlobRegistry::singleton().registerBlobURL(*this, url, WTFMove(blobParts), contentType); >+ m_blobRegistry.registerBlobURL(url, WTFMove(blobParts), contentType); > } > > void NetworkConnectionToWebProcess::registerBlobURLFromURL(const URL& url, const URL& srcURL, bool shouldBypassConnectionCheck) > { >- NetworkBlobRegistry::singleton().registerBlobURL(*this, url, srcURL, shouldBypassConnectionCheck); >+ if (shouldBypassConnectionCheck) >+ m_networkProcess->registerBlobURLForAllConnections(url, srcURL); >+ else >+ m_blobRegistry.registerBlobURL(url, srcURL); > } > > void NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked(const URL& url, const URL& srcURL, const String& fileBackedPath, const String& contentType) > { >- NetworkBlobRegistry::singleton().registerBlobURLOptionallyFileBacked(*this, url, srcURL, fileBackedPath, contentType); >+ m_blobRegistry.registerBlobURLOptionallyFileBacked(url, srcURL, BlobDataFileReferenceWithSandboxExtension::create(fileBackedPath, nullptr), contentType); > } > > void NetworkConnectionToWebProcess::registerBlobURLForSlice(const URL& url, const URL& srcURL, int64_t start, int64_t end) > { >- NetworkBlobRegistry::singleton().registerBlobURLForSlice(*this, url, srcURL, start, end); >+ m_blobRegistry.registerBlobURLForSlice(url, srcURL, start, end); > } > > void NetworkConnectionToWebProcess::unregisterBlobURL(const URL& url) > { >- NetworkBlobRegistry::singleton().unregisterBlobURL(*this, url); >+ m_blobRegistry.unregisterBlobURL(url); > } > > void NetworkConnectionToWebProcess::blobSize(const URL& url, uint64_t& resultSize) > { >- resultSize = NetworkBlobRegistry::singleton().blobSize(*this, url); >+ resultSize = m_blobRegistry.blobSize(url); > } > > void NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles(const Vector<String>& blobURLs, CompletionHandler<void(Vector<String>&&)>&& completionHandler) > { > Vector<RefPtr<BlobDataFileReference>> fileReferences; > for (auto& url : blobURLs) >- fileReferences.appendVector(NetworkBlobRegistry::singleton().filesInBlob(*this, { { }, url })); >+ fileReferences.appendVector(filesInBlob(URL({ }, url))); > > for (auto& file : fileReferences) > file->prepareForFileAccess(); > >- NetworkBlobRegistry::singleton().writeBlobsToTemporaryFiles(blobURLs, [fileReferences = WTFMove(fileReferences), completionHandler = WTFMove(completionHandler)](auto&& fileNames) mutable { >+ m_blobRegistry.writeBlobsToTemporaryFiles(blobURLs, [fileReferences = WTFMove(fileReferences), completionHandler = WTFMove(completionHandler)](auto&& fileNames) mutable { > for (auto& file : fileReferences) > file->revokeFileAccess(); > completionHandler(WTFMove(fileNames)); > }); > } > >+Vector<RefPtr<WebCore::BlobDataFileReference>> NetworkConnectionToWebProcess::filesInBlob(const URL& url) >+{ >+ auto* blobData = m_blobRegistry.getBlobDataFromURL(url); >+ if (!blobData) >+ return { }; >+ >+ Vector<RefPtr<BlobDataFileReference>> result; >+ for (const BlobDataItem& item : blobData->items()) { >+ if (item.type() == BlobDataItem::Type::File) >+ result.append(item.file()); >+ } >+ >+ return result; >+} >+ > void NetworkConnectionToWebProcess::setCaptureExtraNetworkLoadMetricsEnabled(bool enabled) > { > m_captureExtraNetworkLoadMetricsEnabled = enabled; >Index: Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (revision 240680) >+++ Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (working copy) >@@ -32,6 +32,7 @@ > #include "NetworkConnectionToWebProcessMessages.h" > #include "NetworkMDNSRegister.h" > #include "NetworkRTCProvider.h" >+#include <WebCore/BlobRegistryImpl.h> > #include <WebCore/NetworkLoadInformation.h> > #include <wtf/RefCounted.h> > >@@ -121,6 +122,9 @@ public: > Optional<NetworkActivityTracker> startTrackingResourceLoad(uint64_t pageID, ResourceLoadIdentifier resourceID, bool isMainResource, const PAL::SessionID&); > void stopTrackingResourceLoad(ResourceLoadIdentifier resourceID, NetworkActivityTracker::CompletionCode); > >+ WebCore::BlobRegistryImpl& blobRegistry() { return m_blobRegistry; } >+ Vector<RefPtr<WebCore::BlobDataFileReference>> filesInBlob(const URL&); >+ > private: > NetworkConnectionToWebProcess(NetworkProcess&, IPC::Connection::Identifier); > >@@ -245,6 +249,7 @@ private: > HashMap<ResourceLoadIdentifier, Ref<NetworkResourceLoader>> m_networkResourceLoaders; > HashMap<String, RefPtr<WebCore::BlobDataFileReference>> m_blobDataFileReferences; > Vector<ResourceNetworkActivityTracker> m_networkActivityTrackers; >+ WebCore::BlobRegistryImpl m_blobRegistry; > > HashMap<ResourceLoadIdentifier, WebCore::NetworkLoadInformation> m_networkLoadInformationByID; > >Index: Source/WebKit/NetworkProcess/NetworkDataTask.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkDataTask.cpp (revision 240680) >+++ Source/WebKit/NetworkProcess/NetworkDataTask.cpp (working copy) >@@ -47,9 +47,6 @@ using namespace WebCore; > > Ref<NetworkDataTask> NetworkDataTask::create(NetworkSession& session, NetworkDataTaskClient& client, const NetworkLoadParameters& parameters) > { >- 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 >Index: Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp (revision 240680) >+++ Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp (working copy) >@@ -65,7 +65,7 @@ static const char* httpInternalErrorText > > static const char* const webKitBlobResourceDomain = "WebKitBlobResource"; > >-NetworkDataTaskBlob::NetworkDataTaskBlob(NetworkSession& session, NetworkDataTaskClient& client, const ResourceRequest& request, ContentSniffingPolicy shouldContentSniff, const Vector<RefPtr<WebCore::BlobDataFileReference>>& fileReferences) >+NetworkDataTaskBlob::NetworkDataTaskBlob(NetworkSession& session, BlobRegistryImpl& blobRegistry, 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 @@ NetworkDataTaskBlob::NetworkDataTaskBlob > for (auto& fileReference : m_fileReferences) > fileReference->prepareForFileAccess(); > >- m_blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(request.url()); >+ m_blobData = blobRegistry.getBlobDataFromURL(request.url()); > > m_session->registerNetworkDataTask(*this); > LOG(NetworkSession, "%p - Created NetworkDataTaskBlob for %s", this, request.url().string().utf8().data()); >Index: Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h (revision 240680) >+++ Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h (working copy) >@@ -40,6 +40,7 @@ class AsyncFileStream; > class BlobDataFileReference; > class BlobData; > class BlobDataItem; >+class BlobRegistryImpl; > } > > namespace WebKit { >@@ -48,15 +49,15 @@ class NetworkProcess; > > class NetworkDataTaskBlob final : public NetworkDataTask, public WebCore::FileStreamClient { > public: >- static Ref<NetworkDataTask> create(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& request, WebCore::ContentSniffingPolicy shouldContentSniff, const Vector<RefPtr<WebCore::BlobDataFileReference>>& fileReferences) >+ static Ref<NetworkDataTask> create(NetworkSession& session, WebCore::BlobRegistryImpl& blobRegistry, NetworkDataTaskClient& client, const WebCore::ResourceRequest& request, WebCore::ContentSniffingPolicy shouldContentSniff, const Vector<RefPtr<WebCore::BlobDataFileReference>>& fileReferences) > { >- return adoptRef(*new NetworkDataTaskBlob(session, client, request, shouldContentSniff, fileReferences)); >+ return adoptRef(*new NetworkDataTaskBlob(session, blobRegistry, client, request, shouldContentSniff, fileReferences)); > } > > ~NetworkDataTaskBlob(); > > private: >- NetworkDataTaskBlob(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::ContentSniffingPolicy, const Vector<RefPtr<WebCore::BlobDataFileReference>>&); >+ NetworkDataTaskBlob(NetworkSession&, WebCore::BlobRegistryImpl&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::ContentSniffingPolicy, const Vector<RefPtr<WebCore::BlobDataFileReference>>&); > > void suspend() override; > void cancel() override; >Index: Source/WebKit/NetworkProcess/NetworkLoad.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkLoad.cpp (revision 240680) >+++ Source/WebKit/NetworkProcess/NetworkLoad.cpp (working copy) >@@ -50,19 +50,23 @@ struct NetworkLoad::Throttle { > ResponseCompletionHandler responseCompletionHandler; > }; > >-NetworkLoad::NetworkLoad(NetworkLoadClient& client, NetworkLoadParameters&& parameters, NetworkSession& networkSession) >+NetworkLoad::NetworkLoad(NetworkLoadClient& client, BlobRegistryImpl* blobRegistry, NetworkLoadParameters&& parameters, NetworkSession& networkSession) > : m_client(client) > , m_networkProcess(networkSession.networkProcess()) > , m_parameters(WTFMove(parameters)) > , m_loadThrottleLatency(networkSession.loadThrottleLatency()) > , m_currentRequest(m_parameters.request) > { >- initialize(networkSession); >+ initialize(networkSession, blobRegistry); > } > >-void NetworkLoad::initialize(NetworkSession& networkSession) >+void NetworkLoad::initialize(NetworkSession& networkSession, WebCore::BlobRegistryImpl* blobRegistry) > { >- m_task = NetworkDataTask::create(networkSession, *this, m_parameters); >+ 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); >+ > if (!m_parameters.defersLoading) > m_task->resume(); > } >Index: Source/WebKit/NetworkProcess/NetworkLoad.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkLoad.h (revision 240680) >+++ Source/WebKit/NetworkProcess/NetworkLoad.h (working copy) >@@ -33,6 +33,10 @@ > #include <wtf/CompletionHandler.h> > #include <wtf/text/WTFString.h> > >+namespace WebCore { >+class BlobRegistryImpl; >+} >+ > namespace WebKit { > > class NetworkProcess; >@@ -40,7 +44,7 @@ class NetworkProcess; > class NetworkLoad final : private NetworkDataTaskClient { > WTF_MAKE_FAST_ALLOCATED; > public: >- NetworkLoad(NetworkLoadClient&, NetworkLoadParameters&&, NetworkSession&); >+ NetworkLoad(NetworkLoadClient&, WebCore::BlobRegistryImpl*, NetworkLoadParameters&&, NetworkSession&); > ~NetworkLoad(); > > void setDefersLoading(bool); >@@ -65,7 +69,7 @@ public: > String description() const; > > private: >- void initialize(NetworkSession&); >+ void initialize(NetworkSession&, WebCore::BlobRegistryImpl*); > > // NetworkDataTaskClient > void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) final; >Index: Source/WebKit/NetworkProcess/NetworkProcess.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcess.cpp (revision 240696) >+++ Source/WebKit/NetworkProcess/NetworkProcess.cpp (working copy) >@@ -37,7 +37,6 @@ > #include "LegacyCustomProtocolManager.h" > #endif > #include "Logging.h" >-#include "NetworkBlobRegistry.h" > #include "NetworkConnectionToWebProcess.h" > #include "NetworkContentRuleListManagerMessages.h" > #include "NetworkProcessCreationParameters.h" >@@ -150,9 +149,10 @@ NetworkProcess::NetworkProcess(Auxiliary > }); > #endif > >- NetworkStateNotifier::singleton().addListener([this](bool isOnLine) { >- auto webProcessConnections = m_webProcessConnections; >- for (auto& webProcessConnection : webProcessConnections) >+ NetworkStateNotifier::singleton().addListener([weakThis = makeWeakPtr(*this)](bool isOnLine) { >+ if (!weakThis) >+ return; >+ for (auto& webProcessConnection : weakThis->m_webProcessConnections) > webProcessConnection->setOnLineState(isOnLine); > }); > >@@ -186,10 +186,10 @@ NetworkProximityManager& NetworkProcess: > > void NetworkProcess::removeNetworkConnectionToWebProcess(NetworkConnectionToWebProcess& connection) > { >- size_t vectorIndex = m_webProcessConnections.find(&connection); >- ASSERT(vectorIndex != notFound); >- >- m_webProcessConnections.remove(vectorIndex); >+ auto count = m_webProcessConnections.removeAllMatching([&] (const auto& c) { >+ return c.ptr() == &connection; >+ }); >+ ASSERT_UNUSED(count, count == 1); > } > > bool NetworkProcess::shouldTerminate() >@@ -2254,6 +2254,15 @@ void NetworkProcess::addServiceWorkerSes > } > #endif // ENABLE(SERVICE_WORKER) > >+void NetworkProcess::registerBlobURLForAllConnections(const URL& url, const URL& srcURL) >+{ >+ // FIXME: Once we stop using BlobRegistry in the WebProcess and pass a SessionID with blob URLs, >+ // we should move the BlobRegistry from the NetworkConnectionToWebProcess to the NetworkSession. >+ // Until then, this is needed for service workers. >+ for (const auto& connection : m_webProcessConnections) >+ connection->blobRegistry().registerBlobURL(url, srcURL); >+} >+ > void NetworkProcess::requestCacheStorageSpace(PAL::SessionID sessionID, const ClientOrigin& origin, uint64_t quota, uint64_t currentSize, uint64_t spaceRequired, CompletionHandler<void(Optional<uint64_t>)>&& callback) > { > parentProcessConnection()->sendWithAsyncReply(Messages::NetworkProcessProxy::RequestCacheStorageSpace { sessionID, origin, quota, currentSize, spaceRequired }, WTFMove(callback), 0); >Index: Source/WebKit/NetworkProcess/NetworkProcess.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcess.h (revision 240696) >+++ Source/WebKit/NetworkProcess/NetworkProcess.h (working copy) >@@ -291,6 +291,8 @@ public: > 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>)>&&); > >+ void registerBlobURLForAllConnections(const URL&, const URL& srcURL); >+ > private: > void platformInitializeNetworkProcess(const NetworkProcessCreationParameters&); > std::unique_ptr<WebCore::NetworkStorageSession> platformCreateDefaultStorageSession() const; >@@ -422,7 +424,7 @@ private: > void ensurePathExists(const String& path); > > // Connections to WebProcesses. >- Vector<RefPtr<NetworkConnectionToWebProcess>> m_webProcessConnections; >+ Vector<Ref<NetworkConnectionToWebProcess>> m_webProcessConnections; > > String m_diskCacheDirectory; > bool m_hasSetCacheModel { false }; >Index: Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp (revision 240680) >+++ Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp (working copy) >@@ -26,7 +26,6 @@ > #include "config.h" > #include "NetworkProcessPlatformStrategies.h" > >-#include <WebCore/BlobRegistryImpl.h> > #include <wtf/NeverDestroyed.h> > > namespace WebKit { >@@ -50,7 +49,7 @@ PasteboardStrategy* NetworkProcessPlatfo > > BlobRegistry* NetworkProcessPlatformStrategies::createBlobRegistry() > { >- return new BlobRegistryImpl; >+ return nullptr; > } > > } >Index: Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (revision 240680) >+++ Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (working copy) >@@ -29,7 +29,6 @@ > #include "DataReference.h" > #include "FormDataReference.h" > #include "Logging.h" >-#include "NetworkBlobRegistry.h" > #include "NetworkCache.h" > #include "NetworkConnectionToWebProcess.h" > #include "NetworkLoad.h" >@@ -106,7 +105,7 @@ NetworkResourceLoader::NetworkResourceLo > 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)); >+ m_fileReferences.appendVector(connection.filesInBlob(blobData->url)); > } > } > >@@ -282,7 +281,7 @@ void NetworkResourceLoader::startNetwork > parameters.storedCredentialsPolicy = m_networkLoadChecker->storedCredentialsPolicy(); > > if (request.url().protocolIsBlob()) >- parameters.blobFileReferences = NetworkBlobRegistry::singleton().filesInBlob(m_connection, originalRequest().url()); >+ parameters.blobFileReferences = m_connection->filesInBlob(originalRequest().url()); > > auto* networkSession = m_connection->networkProcess().networkSession(parameters.sessionID); > if (!networkSession && parameters.sessionID.isEphemeral()) { >@@ -298,7 +297,7 @@ void NetworkResourceLoader::startNetwork > } > > parameters.request = WTFMove(request); >- m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters), *networkSession); >+ m_networkLoad = std::make_unique<NetworkLoad>(*this, &m_connection->blobRegistry(), 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()); > >Index: Source/WebKit/NetworkProcess/PreconnectTask.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/PreconnectTask.cpp (revision 240680) >+++ Source/WebKit/NetworkProcess/PreconnectTask.cpp (working copy) >@@ -53,7 +53,7 @@ PreconnectTask::PreconnectTask(NetworkPr > } > > ASSERT(parameters.shouldPreconnectOnly == PreconnectOnly::Yes); >- m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters), *networkSession); >+ m_networkLoad = std::make_unique<NetworkLoad>(*this, nullptr, WTFMove(parameters), *networkSession); > > m_timeoutTimer.startOneShot(60000_s); > } >Index: Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp (revision 240680) >+++ Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp (working copy) >@@ -27,7 +27,7 @@ > #include "DownloadManager.h" > > #include "Download.h" >-#include "NetworkBlobRegistry.h" >+#include "NetworkConnectionToWebProcess.h" > #include "NetworkLoad.h" > #include "NetworkSession.h" > #include "PendingDownload.h" >@@ -54,7 +54,7 @@ void DownloadManager::startDownload(Netw > parameters.request = request; > parameters.clientCredentialPolicy = ClientCredentialPolicy::MayAskClientForCredentials; > if (request.url().protocolIsBlob() && connection) >- parameters.blobFileReferences = NetworkBlobRegistry::singleton().filesInBlob(*connection, request.url()); >+ parameters.blobFileReferences = connection->filesInBlob(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, suggestedName)); >Index: Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp (revision 240680) >+++ Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp (working copy) >@@ -37,7 +37,7 @@ namespace WebKit { > using namespace WebCore; > > 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_networkLoad(std::make_unique<NetworkLoad>(*this, nullptr, WTFMove(parameters), networkSession)) > , m_parentProcessConnection(parentProcessConnection) > { > m_isAllowedToAskUserForCredentials = parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials; >Index: Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp (revision 240696) >+++ Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp (nonexistent) >@@ -1,193 +0,0 @@ >-/* >- * Copyright (C) 2013-2016 Apple Inc. All rights reserved. >- * >- * Redistribution and use in source and binary forms, with or without >- * modification, are permitted provided that the following conditions >- * are met: >- * 1. Redistributions of source code must retain the above copyright >- * notice, this list of conditions and the following disclaimer. >- * 2. Redistributions in binary form must reproduce the above copyright >- * notice, this list of conditions and the following disclaimer in the >- * documentation and/or other materials provided with the distribution. >- * >- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >- * THE POSSIBILITY OF SUCH DAMAGE. >- */ >- >-#include "config.h" >-#include "NetworkBlobRegistry.h" >- >-#include "BlobDataFileReferenceWithSandboxExtension.h" >-#include "NetworkConnectionToWebProcess.h" >-#include "SandboxExtension.h" >-#include <WebCore/BlobPart.h> >-#include <WebCore/BlobRegistryImpl.h> >-#include <wtf/NeverDestroyed.h> >-#include <wtf/RunLoop.h> >- >-namespace WebKit { >-using namespace WebCore; >- >-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) >-{ >- blobRegistry().registerFileBlobURL(url, BlobDataFileReferenceWithSandboxExtension::create(path, WTFMove(sandboxExtension)), contentType); >- >- ASSERT(!m_blobsForConnection.get(&connection).contains(url)); >- BlobForConnectionMap::iterator mapIterator = m_blobsForConnection.find(&connection); >- if (mapIterator == m_blobsForConnection.end()) >- mapIterator = m_blobsForConnection.add(&connection, HashSet<URL>()).iterator; >- mapIterator->value.add(url); >-} >- >-void NetworkBlobRegistry::registerBlobURL(NetworkConnectionToWebProcess& connection, const URL& url, Vector<WebCore::BlobPart>&& blobParts, const String& contentType) >-{ >- blobRegistry().registerBlobURL(url, WTFMove(blobParts), contentType); >- >- ASSERT(!m_blobsForConnection.get(&connection).contains(url)); >- BlobForConnectionMap::iterator mapIterator = m_blobsForConnection.find(&connection); >- if (mapIterator == m_blobsForConnection.end()) >- mapIterator = m_blobsForConnection.add(&connection, HashSet<URL>()).iterator; >- mapIterator->value.add(url); >-} >- >-void NetworkBlobRegistry::registerBlobURL(NetworkConnectionToWebProcess& connection, const URL& url, const URL& srcURL, bool shouldBypassConnectionCheck) >-{ >- // The connection may not be registered if NetworkProcess prevously crashed for any reason. >- BlobForConnectionMap::iterator mapIterator = m_blobsForConnection.find(&connection); >- if (mapIterator == m_blobsForConnection.end()) { >- if (!shouldBypassConnectionCheck) >- return; >- mapIterator = m_blobsForConnection.add(&connection, HashSet<URL>()).iterator; >- } >- >- blobRegistry().registerBlobURL(url, srcURL); >- >- ASSERT(shouldBypassConnectionCheck || mapIterator->value.contains(srcURL)); >- mapIterator->value.add(url); >-} >- >-void NetworkBlobRegistry::registerBlobURLOptionallyFileBacked(NetworkConnectionToWebProcess& connection, const URL& url, const URL& srcURL, const String& fileBackedPath, const String& contentType) >-{ >- blobRegistry().registerBlobURLOptionallyFileBacked(url, srcURL, BlobDataFileReferenceWithSandboxExtension::create(fileBackedPath, nullptr), contentType); >- >- ASSERT(!m_blobsForConnection.get(&connection).contains(url)); >- BlobForConnectionMap::iterator mapIterator = m_blobsForConnection.find(&connection); >- if (mapIterator == m_blobsForConnection.end()) >- mapIterator = m_blobsForConnection.add(&connection, HashSet<URL>()).iterator; >- mapIterator->value.add(url); >-} >- >-void NetworkBlobRegistry::registerBlobURLForSlice(NetworkConnectionToWebProcess& connection, const URL& url, const URL& srcURL, int64_t start, int64_t end) >-{ >- // The connection may not be registered if NetworkProcess prevously crashed for any reason. >- BlobForConnectionMap::iterator mapIterator = m_blobsForConnection.find(&connection); >- if (mapIterator == m_blobsForConnection.end()) >- return; >- >- blobRegistry().registerBlobURLForSlice(url, srcURL, start, end); >- >- ASSERT(mapIterator->value.contains(srcURL)); >- mapIterator->value.add(url); >-} >- >-void NetworkBlobRegistry::unregisterBlobURL(NetworkConnectionToWebProcess& connection, const URL& url) >-{ >- // The connection may not be registered if NetworkProcess prevously crashed for any reason. >- BlobForConnectionMap::iterator mapIterator = m_blobsForConnection.find(&connection); >- if (mapIterator == m_blobsForConnection.end()) >- return; >- >- blobRegistry().unregisterBlobURL(url); >- >- mapIterator->value.remove(url); >-} >- >-uint64_t NetworkBlobRegistry::blobSize(NetworkConnectionToWebProcess& connection, const URL& url) >-{ >- if (!m_blobsForConnection.contains(&connection) || !m_blobsForConnection.find(&connection)->value.contains(url)) >- return 0; >- >- return blobRegistry().blobSize(url); >-} >- >-void NetworkBlobRegistry::writeBlobsToTemporaryFiles(const Vector<String>& blobURLs, CompletionHandler<void(Vector<String>&&)>&& completionHandler) >-{ >- blobRegistry().writeBlobsToTemporaryFiles(blobURLs, WTFMove(completionHandler)); >-} >- >-void NetworkBlobRegistry::writeBlobToFilePath(const URL& blobURL, const String& path, CompletionHandler<void(bool success)>&& completionHandler) >-{ >- if (!blobRegistry().isBlobRegistryImpl()) { >- completionHandler(false); >- ASSERT_NOT_REACHED(); >- return; >- } >- >- auto blobFiles = filesInBlob({ { }, blobURL }); >- for (auto& file : blobFiles) >- file->prepareForFileAccess(); >- >- static_cast<BlobRegistryImpl&>(blobRegistry()).writeBlobToFilePath(blobURL, path, [blobFiles = WTFMove(blobFiles), completionHandler = WTFMove(completionHandler)] (bool success) mutable { >- for (auto& file : blobFiles) >- file->revokeFileAccess(); >- completionHandler(success); >- }); >-} >- >-void NetworkBlobRegistry::connectionToWebProcessDidClose(NetworkConnectionToWebProcess& connection) >-{ >- if (!m_blobsForConnection.contains(&connection)) >- return; >- >- HashSet<URL>& blobsForConnection = m_blobsForConnection.find(&connection)->value; >- for (HashSet<URL>::iterator iter = blobsForConnection.begin(), end = blobsForConnection.end(); iter != end; ++iter) >- blobRegistry().unregisterBlobURL(*iter); >- >- m_blobsForConnection.remove(&connection); >-} >- >-Vector<RefPtr<BlobDataFileReference>> NetworkBlobRegistry::filesInBlob(NetworkConnectionToWebProcess& connection, const URL& url) >-{ >- if (!m_blobsForConnection.contains(&connection) || !m_blobsForConnection.find(&connection)->value.contains(url)) >- return { }; >- >- return filesInBlob(url); >-} >- >-Vector<RefPtr<BlobDataFileReference>> NetworkBlobRegistry::filesInBlob(const URL& url) >-{ >- ASSERT(blobRegistry().isBlobRegistryImpl()); >- BlobData* blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(url); >- if (!blobData) >- return { }; >- >- Vector<RefPtr<BlobDataFileReference>> result; >- for (const BlobDataItem& item : blobData->items()) { >- if (item.type() == BlobDataItem::Type::File) >- result.append(item.file()); >- } >- >- return result; >-} >- >-} > >Property changes on: Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp >___________________________________________________________________ >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Index: Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.h >=================================================================== >--- Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.h (revision 240696) >+++ Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.h (nonexistent) >@@ -1,71 +0,0 @@ >-/* >- * Copyright (C) 2013-2016 Apple Inc. All rights reserved. >- * >- * Redistribution and use in source and binary forms, with or without >- * modification, are permitted provided that the following conditions >- * are met: >- * 1. Redistributions of source code must retain the above copyright >- * notice, this list of conditions and the following disclaimer. >- * 2. Redistributions in binary form must reproduce the above copyright >- * notice, this list of conditions and the following disclaimer in the >- * documentation and/or other materials provided with the distribution. >- * >- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >- * THE POSSIBILITY OF SUCH DAMAGE. >- */ >- >-#pragma once >- >-#include <wtf/Function.h> >-#include <wtf/HashMap.h> >-#include <wtf/HashSet.h> >-#include <wtf/URLHash.h> >- >-namespace WebCore { >-class BlobDataFileReference; >-class BlobPart; >-} >- >-namespace WebKit { >- >-class NetworkConnectionToWebProcess; >-class SandboxExtension; >- >-class NetworkBlobRegistry { >-WTF_MAKE_NONCOPYABLE(NetworkBlobRegistry); >-public: >- 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); >- void registerBlobURL(NetworkConnectionToWebProcess&, const URL&, const URL& srcURL, bool shouldBypassConnectionCheck); >- void registerBlobURLOptionallyFileBacked(NetworkConnectionToWebProcess&, const URL&, const URL& srcURL, const String& fileBackedPath, const String& contentType); >- void registerBlobURLForSlice(NetworkConnectionToWebProcess&, const URL&, const URL& srcURL, int64_t start, int64_t end); >- void unregisterBlobURL(NetworkConnectionToWebProcess&, const URL&); >- uint64_t blobSize(NetworkConnectionToWebProcess&, const URL&); >- void writeBlobsToTemporaryFiles(const Vector<String>& blobURLs, CompletionHandler<void(Vector<String>&&)>&&); >- void writeBlobToFilePath(const URL& blobURL, const String& path, CompletionHandler<void(bool success)>&&); >- >- void connectionToWebProcessDidClose(NetworkConnectionToWebProcess&); >- >- Vector<RefPtr<WebCore::BlobDataFileReference>> filesInBlob(NetworkConnectionToWebProcess&, const URL&); >- Vector<RefPtr<WebCore::BlobDataFileReference>> filesInBlob(const URL&); >- >-private: >- ~NetworkBlobRegistry(); >- >- typedef HashMap<NetworkConnectionToWebProcess*, HashSet<URL>> BlobForConnectionMap; >- BlobForConnectionMap m_blobsForConnection; >-}; >- >-} > >Property changes on: Source/WebKit/NetworkProcess/FileAPI/NetworkBlobRegistry.h >___________________________________________________________________ >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Index: Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp (revision 240680) >+++ Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp (working copy) >@@ -60,7 +60,7 @@ SpeculativeLoad::SpeculativeLoad(Cache& > parameters.contentSniffingPolicy = ContentSniffingPolicy::DoNotSniffContent; > parameters.contentEncodingSniffingPolicy = ContentEncodingSniffingPolicy::Sniff; > parameters.request = m_originalRequest; >- m_networkLoad = std::make_unique<NetworkLoad>(*this, WTFMove(parameters), *cache.networkProcess().networkSession(PAL::SessionID::defaultSessionID())); >+ m_networkLoad = std::make_unique<NetworkLoad>(*this, nullptr, WTFMove(parameters), *cache.networkProcess().networkSession(PAL::SessionID::defaultSessionID())); > } > > SpeculativeLoad::~SpeculativeLoad() >Index: Source/WebKit/WebKit.xcodeproj/project.pbxproj >=================================================================== >--- Source/WebKit/WebKit.xcodeproj/project.pbxproj (revision 240683) >+++ Source/WebKit/WebKit.xcodeproj/project.pbxproj (working copy) >@@ -1268,7 +1268,6 @@ > 9FB5F395169E6A80002C25BF /* WKContextPrivateMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FB5F393169E6A80002C25BF /* WKContextPrivateMac.h */; settings = {ATTRIBUTES = (Private, ); }; }; > A102A7081EC0EEE900D81D82 /* com.macromedia.Flash Player ESR.plugin.sb in Copy Plug-in Sandbox Profiles */ = {isa = PBXBuildFile; fileRef = 7A5E39491D5BD8A700B4B7CE /* com.macromedia.Flash Player ESR.plugin.sb */; }; > A1046EA12079263100F0C5D8 /* WKPDFView.h in Headers */ = {isa = PBXBuildFile; fileRef = A1046E9F2079263100F0C5D8 /* WKPDFView.h */; }; >- A105D0D1212734B20034F6C7 /* NetworkBlobRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = A105D0D0212734B10034F6C7 /* NetworkBlobRegistry.h */; }; > A11455AC211FCFCA00CA935B /* NetworkProximityAssertion.h in Headers */ = {isa = PBXBuildFile; fileRef = A11455AA211FCFCA00CA935B /* NetworkProximityAssertion.h */; }; > A11455B0211FD25200CA935B /* NetworkProximityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A11455AE211FD25200CA935B /* NetworkProximityManager.h */; }; > A115DC72191D82DA00DA8072 /* _WKWebViewPrintFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = A115DC6E191D82AB00DA8072 /* _WKWebViewPrintFormatter.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -3821,7 +3820,6 @@ > 9FB5F393169E6A80002C25BF /* WKContextPrivateMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKContextPrivateMac.h; path = mac/WKContextPrivateMac.h; sourceTree = "<group>"; }; > A1046E9F2079263100F0C5D8 /* WKPDFView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WKPDFView.h; path = ios/WKPDFView.h; sourceTree = "<group>"; }; > A1046EA02079263100F0C5D8 /* WKPDFView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = WKPDFView.mm; path = ios/WKPDFView.mm; sourceTree = "<group>"; }; >- A105D0D0212734B10034F6C7 /* NetworkBlobRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkBlobRegistry.h; sourceTree = "<group>"; }; > A11455AA211FCFCA00CA935B /* NetworkProximityAssertion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetworkProximityAssertion.h; sourceTree = "<group>"; }; > A11455AB211FCFCA00CA935B /* NetworkProximityAssertion.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = NetworkProximityAssertion.mm; sourceTree = "<group>"; }; > A11455AE211FD25200CA935B /* NetworkProximityManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetworkProximityManager.h; sourceTree = "<group>"; }; >@@ -4435,7 +4433,6 @@ > E164A2F0191AF14E0010737D /* BlobDataFileReferenceWithSandboxExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlobDataFileReferenceWithSandboxExtension.h; sourceTree = "<group>"; }; > E170876916D6CA6900F99226 /* BlobRegistryProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BlobRegistryProxy.cpp; path = WebProcess/FileAPI/BlobRegistryProxy.cpp; sourceTree = "<group>"; }; > E170876A16D6CA6900F99226 /* BlobRegistryProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BlobRegistryProxy.h; path = WebProcess/FileAPI/BlobRegistryProxy.h; sourceTree = "<group>"; }; >- E1798C7716E6818800240139 /* NetworkBlobRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkBlobRegistry.cpp; sourceTree = "<group>"; }; > E179FD9B134D38060015B883 /* ArgumentCodersMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArgumentCodersMac.h; sourceTree = "<group>"; }; > E179FD9E134D38250015B883 /* ArgumentCodersMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ArgumentCodersMac.mm; sourceTree = "<group>"; }; > E17AE2C116B9C139001C42F1 /* com.apple.WebKit.NetworkProcess.sb.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = com.apple.WebKit.NetworkProcess.sb.in; sourceTree = "<group>"; }; >@@ -6433,7 +6430,6 @@ > 5C1426F21C23F82D00D41183 /* CustomProtocols */, > 5C1426F11C23F81700D41183 /* Downloads */, > BC82837C16B45DA500A278FE /* EntryPoint */, >- E1798C7616E6815500240139 /* FileAPI */, > 939288E021404DF000EBBA33 /* IndexedDB */, > 2DA944BB188511DD00ED86DB /* ios */, > 510CC7DC16138E2900D03ED3 /* mac */, >@@ -8713,15 +8709,6 @@ > name = FileAPI; > sourceTree = "<group>"; > }; >- E1798C7616E6815500240139 /* FileAPI */ = { >- isa = PBXGroup; >- children = ( >- E1798C7716E6818800240139 /* NetworkBlobRegistry.cpp */, >- A105D0D0212734B10034F6C7 /* NetworkBlobRegistry.h */, >- ); >- path = FileAPI; >- sourceTree = "<group>"; >- }; > E199875B142BF9CF00BB2DE7 /* PDF */ = { > isa = PBXGroup; > children = ( >@@ -9155,7 +9142,6 @@ > 1A4A9C5612B816CF008FE984 /* NetscapePluginModule.h in Headers */, > 1AA5889211EE70400061B882 /* NetscapePluginStream.h in Headers */, > 535BCB922069C49C00CCCE02 /* NetworkActivityTracker.h in Headers */, >- A105D0D1212734B20034F6C7 /* NetworkBlobRegistry.h in Headers */, > E4436ECC1A0D040B00EAD204 /* NetworkCache.h in Headers */, > E49D40D71AD3FB170066B7B9 /* NetworkCacheBlobStorage.h in Headers */, > E489D28C1A0A2DB80078C06A /* NetworkCacheCoders.h in Headers */,
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194027
:
360593
|
360598
|
360603
|
360787
|
360792
|
360805
|
360814
|
360893
|
360899
|
360920
|
360955
|
361199
|
361255
|
361257