Changeset 231532 in webkit
- Timestamp:
- May 8, 2018, 5:40:29 PM (7 years ago)
- Location:
- trunk/Source
- Files:
-
- 1 deleted
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r231531 r231532 1 2018-05-08 Ryan Haddad <ryanhaddad@apple.com> 2 3 Unreviewed, rolling out r231486. 4 5 Caused service worker LayoutTest failures on macOS Debug WK2. 6 7 Reverted changeset: 8 9 "Allow WebResourceLoader to cancel a load served from a 10 service worker" 11 https://bugs.webkit.org/show_bug.cgi?id=185274 12 https://trac.webkit.org/changeset/231486 13 1 14 2018-05-08 Wenson Hsieh <wenson_hsieh@apple.com> 2 15 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r231531 r231532 1073 1073 4162A451101145AE00DFF3ED /* DedicatedWorkerGlobalScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 4162A44E101145AE00DFF3ED /* DedicatedWorkerGlobalScope.h */; }; 1074 1074 4162A4581011464700DFF3ED /* JSDedicatedWorkerGlobalScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 4162A4561011464700DFF3ED /* JSDedicatedWorkerGlobalScope.h */; }; 1075 416E0B3A209BC3CB004A95D9 /* FetchIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 416E0B37209BC3C2004A95D9 /* FetchIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };1076 1075 416E29A6102FA962007FC14E /* WorkerReportingProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 416E29A5102FA962007FC14E /* WorkerReportingProxy.h */; }; 1077 1076 416E6FE81BBD12DF000A3F64 /* ReadableStreamInternalsBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8061BB3110D00B764D9 /* ReadableStreamInternalsBuiltins.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 7202 7201 4162A4551011464700DFF3ED /* JSDedicatedWorkerGlobalScope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDedicatedWorkerGlobalScope.cpp; sourceTree = "<group>"; }; 7203 7202 4162A4561011464700DFF3ED /* JSDedicatedWorkerGlobalScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDedicatedWorkerGlobalScope.h; sourceTree = "<group>"; }; 7204 416E0B37209BC3C2004A95D9 /* FetchIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FetchIdentifier.h; sourceTree = "<group>"; };7205 7203 416E29A5102FA962007FC14E /* WorkerReportingProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkerReportingProxy.h; sourceTree = "<group>"; }; 7206 7204 4170A2E91D8C0CC000318452 /* JSDOMWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMWrapper.cpp; sourceTree = "<group>"; }; … … 16993 16991 41F54F831C50C4F600338488 /* FetchHeaders.h */, 16994 16992 41F54F841C50C4F600338488 /* FetchHeaders.idl */, 16995 416E0B37209BC3C2004A95D9 /* FetchIdentifier.h */,16996 16993 4147E2B41C89912600A7E715 /* FetchLoader.cpp */, 16997 16994 4147E2B51C89912600A7E715 /* FetchLoader.h */, … … 27763 27760 4129C9971F59B963009D7403 /* FetchBodySource.h in Headers */, 27764 27761 41D129DB1F3D143800D15E47 /* FetchHeaders.h in Headers */, 27765 416E0B3A209BC3CB004A95D9 /* FetchIdentifier.h in Headers */,27766 27762 CEBB8C3320786DCB00039547 /* FetchIdioms.h in Headers */, 27767 27763 4161E2D51FE48DC500EC2E96 /* FetchLoader.h in Headers */, -
trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.h
r231486 r231532 54 54 virtual void didFinish() = 0; 55 55 virtual void didNotHandle() = 0; 56 virtual void cancel() = 0;57 56 }; 58 57 -
trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp
r231486 r231532 186 186 } 187 187 188 void ServiceWorkerThreadProxy::startFetch(SWServerConnectionIdentifier connectionIdentifier, FetchIdentifier fetchIdentifier, Ref<ServiceWorkerFetch::Client>&& client, std::optional<ServiceWorkerClientIdentifier>&& clientId, ResourceRequest&& request, String&& referrer, FetchOptions&& options)189 {190 auto key = std::make_pair(connectionIdentifier, fetchIdentifier);191 192 ASSERT(!m_ongoingFetchTasks.contains(key));193 m_ongoingFetchTasks.add(key, client.copyRef());194 thread().postFetchTask(WTFMove(client), WTFMove(clientId), WTFMove(request), WTFMove(referrer), WTFMove(options));195 }196 197 void ServiceWorkerThreadProxy::cancelFetch(SWServerConnectionIdentifier connectionIdentifier, FetchIdentifier fetchIdentifier)198 {199 if (auto client = m_ongoingFetchTasks.take(std::make_pair(connectionIdentifier, fetchIdentifier)))200 client.value()->cancel();201 }202 203 void ServiceWorkerThreadProxy::removeFetch(SWServerConnectionIdentifier connectionIdentifier, FetchIdentifier fetchIdentifier)204 {205 m_ongoingFetchTasks.remove(std::make_pair(connectionIdentifier, fetchIdentifier));206 }207 208 188 } // namespace WebCore 209 189 -
trunk/Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h
r231486 r231532 30 30 #include "CacheStorageConnection.h" 31 31 #include "Document.h" 32 #include "FetchIdentifier.h"33 32 #include "Page.h" 34 33 #include "SecurityOrigin.h" … … 72 71 WEBCORE_TESTSUPPORT_EXPORT void notifyNetworkStateChange(bool isOnline); 73 72 74 WEBCORE_EXPORT void startFetch(SWServerConnectionIdentifier, FetchIdentifier, Ref<ServiceWorkerFetch::Client>&&, std::optional<ServiceWorkerClientIdentifier>&&, ResourceRequest&&, String&& referrer, FetchOptions&&);75 WEBCORE_EXPORT void cancelFetch(SWServerConnectionIdentifier, FetchIdentifier);76 WEBCORE_EXPORT void removeFetch(SWServerConnectionIdentifier, FetchIdentifier);77 78 73 private: 79 74 WEBCORE_EXPORT ServiceWorkerThreadProxy(PageConfiguration&&, const ServiceWorkerContextData&, PAL::SessionID, String&& userAgent, CacheStorageProvider&, SecurityOrigin::StorageBlockingPolicy); … … 102 97 std::unique_ptr<ServiceWorkerDebuggable> m_remoteDebuggable; 103 98 #endif 104 HashMap<std::pair<SWServerConnectionIdentifier, FetchIdentifier>, Ref<ServiceWorkerFetch::Client>> m_ongoingFetchTasks;105 99 }; 106 100 -
trunk/Source/WebKit/ChangeLog
r231530 r231532 1 2018-05-08 Ryan Haddad <ryanhaddad@apple.com> 2 3 Unreviewed, rolling out r231486. 4 5 Caused service worker LayoutTest failures on macOS Debug WK2. 6 7 Reverted changeset: 8 9 "Allow WebResourceLoader to cancel a load served from a 10 service worker" 11 https://bugs.webkit.org/show_bug.cgi?id=185274 12 https://trac.webkit.org/changeset/231486 13 1 14 2018-05-08 Andy Estes <aestes@apple.com> 2 15 -
trunk/Source/WebKit/Scripts/webkit/messages.py
r231486 r231532 192 192 'String', 193 193 'WebCore::DocumentIdentifier', 194 'WebCore::FetchIdentifier',195 194 'WebCore::ServiceWorkerIdentifier', 196 195 'WebCore::ServiceWorkerJobIdentifier', -
trunk/Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.cpp
r231486 r231532 132 132 } 133 133 134 void WebSWServerConnection::cancelFetch(ServiceWorkerRegistrationIdentifier serviceWorkerRegistrationIdentifier, FetchIdentifier fetchIdentifier) 135 { 136 auto* worker = server().activeWorkerFromRegistrationID(serviceWorkerRegistrationIdentifier); 137 if (!worker || !worker->isRunning()) 138 return; 139 140 auto serviceWorkerIdentifier = worker->identifier(); 141 server().runServiceWorkerIfNecessary(serviceWorkerIdentifier, [weakThis = makeWeakPtr(this), this, serviceWorkerIdentifier, fetchIdentifier](auto* contextConnection) mutable { 142 if (weakThis && contextConnection) 143 sendToContextProcess(*contextConnection, Messages::WebSWContextManagerConnection::CancelFetch { this->identifier(), serviceWorkerIdentifier, fetchIdentifier }); 144 }); 145 } 146 147 void WebSWServerConnection::startFetch(ServiceWorkerRegistrationIdentifier serviceWorkerRegistrationIdentifier, FetchIdentifier fetchIdentifier, ResourceRequest&& request, FetchOptions&& options, IPC::FormDataReference&& formData, String&& referrer) 134 void WebSWServerConnection::startFetch(uint64_t fetchIdentifier, ServiceWorkerRegistrationIdentifier serviceWorkerRegistrationIdentifier, ResourceRequest&& request, FetchOptions&& options, IPC::FormDataReference&& formData, String&& referrer) 148 135 { 149 136 auto* worker = server().activeWorkerFromRegistrationID(serviceWorkerRegistrationIdentifier); 150 137 if (!worker) { 151 SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("startFetch: fetchIdentifier: % s -> DidNotHandle because no active worker", fetchIdentifier.loggingString().utf8().data());152 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier .toUInt64());138 SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("startFetch: fetchIdentifier: %" PRIu64 " -> DidNotHandle because no active worker", fetchIdentifier); 139 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier); 153 140 return; 154 141 } … … 160 147 161 148 if (!success) { 162 SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("startFetch: fetchIdentifier: % s DidNotHandle because worker did not become activated", fetchIdentifier.loggingString().utf8().data());163 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier .toUInt64());149 SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("startFetch: fetchIdentifier: %" PRIu64 " -> DidNotHandle because worker did not become activated", fetchIdentifier); 150 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier); 164 151 return; 165 152 } … … 167 154 auto* worker = server().workerByID(serviceWorkerIdentifier); 168 155 if (!worker) { 169 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier .toUInt64());156 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier); 170 157 return; 171 158 } … … 179 166 180 167 if (contextConnection) { 181 SWSERVERCONNECTION_RELEASE_LOG_IF_ALLOWED("startFetch: Starting fetch % s via service worker %s", fetchIdentifier.loggingString().utf8().data(), serviceWorkerIdentifier.loggingString().utf8().data());182 sendToContextProcess(*contextConnection, Messages::WebSWContextManagerConnection::StartFetch { this->identifier(), serviceWorkerIdentifier, fetchIdentifier, request, options, formData, referrer });168 SWSERVERCONNECTION_RELEASE_LOG_IF_ALLOWED("startFetch: Starting fetch %" PRIu64 " via service worker %" PRIu64, fetchIdentifier, serviceWorkerIdentifier.toUInt64()); 169 sendToContextProcess(*contextConnection, Messages::WebSWContextManagerConnection::StartFetch { this->identifier(), fetchIdentifier, serviceWorkerIdentifier, request, options, formData, referrer }); 183 170 } else { 184 SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("startFetch: fetchIdentifier: % s DidNotHandle because failed to run service worker", fetchIdentifier.loggingString().utf8().data());185 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier .toUInt64());171 SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("startFetch: fetchIdentifier: %" PRIu64 " -> DidNotHandle because failed to run service worker", fetchIdentifier); 172 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier); 186 173 } 187 174 }); … … 236 223 } 237 224 238 void WebSWServerConnection::didReceiveFetchResponse(FetchIdentifier fetchIdentifier, const ResourceResponse& response) 239 { 240 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidReceiveResponse { response }, fetchIdentifier.toUInt64()); 241 } 242 243 void WebSWServerConnection::didReceiveFetchData(FetchIdentifier fetchIdentifier, const IPC::DataReference& data, int64_t encodedDataLength) 244 { 245 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidReceiveData { data, encodedDataLength }, fetchIdentifier.toUInt64()); 246 } 247 248 void WebSWServerConnection::didReceiveFetchFormData(FetchIdentifier fetchIdentifier, const IPC::FormDataReference& formData) 249 { 250 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidReceiveFormData { formData }, fetchIdentifier.toUInt64()); 251 } 252 253 void WebSWServerConnection::didFinishFetch(FetchIdentifier fetchIdentifier) 254 { 255 SWSERVERCONNECTION_RELEASE_LOG_IF_ALLOWED("didFinishFetch: fetchIdentifier: %s", fetchIdentifier.loggingString().utf8().data()); 256 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidFinish { }, fetchIdentifier.toUInt64()); 257 } 258 259 void WebSWServerConnection::didFailFetch(FetchIdentifier fetchIdentifier) 260 { 261 SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("didFailFetch: fetchIdentifier: %s", fetchIdentifier.loggingString().utf8().data()); 262 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidFail { }, fetchIdentifier.toUInt64()); 263 } 264 265 void WebSWServerConnection::didNotHandleFetch(FetchIdentifier fetchIdentifier) 266 { 267 SWSERVERCONNECTION_RELEASE_LOG_IF_ALLOWED("didNotHandleFetch: fetchIdentifier: %s", fetchIdentifier.loggingString().utf8().data()); 268 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier.toUInt64()); 225 226 void WebSWServerConnection::didReceiveFetchResponse(uint64_t fetchIdentifier, const ResourceResponse& response) 227 { 228 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidReceiveResponse { response }, fetchIdentifier); 229 } 230 231 void WebSWServerConnection::didReceiveFetchData(uint64_t fetchIdentifier, const IPC::DataReference& data, int64_t encodedDataLength) 232 { 233 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidReceiveData { data, encodedDataLength }, fetchIdentifier); 234 } 235 236 void WebSWServerConnection::didReceiveFetchFormData(uint64_t fetchIdentifier, const IPC::FormDataReference& formData) 237 { 238 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidReceiveFormData { formData }, fetchIdentifier); 239 } 240 241 void WebSWServerConnection::didFinishFetch(uint64_t fetchIdentifier) 242 { 243 SWSERVERCONNECTION_RELEASE_LOG_IF_ALLOWED("didFinishFetch: fetchIdentifier: %" PRIu64, fetchIdentifier); 244 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidFinish { }, fetchIdentifier); 245 } 246 247 void WebSWServerConnection::didFailFetch(uint64_t fetchIdentifier) 248 { 249 SWSERVERCONNECTION_RELEASE_LOG_ERROR_IF_ALLOWED("didFailFetch: fetchIdentifier: %" PRIu64, fetchIdentifier); 250 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidFail { }, fetchIdentifier); 251 } 252 253 void WebSWServerConnection::didNotHandleFetch(uint64_t fetchIdentifier) 254 { 255 SWSERVERCONNECTION_RELEASE_LOG_IF_ALLOWED("didNotHandleFetch: fetchIdentifier: %" PRIu64, fetchIdentifier); 256 m_contentConnection->send(Messages::ServiceWorkerClientFetch::DidNotHandle { }, fetchIdentifier); 269 257 } 270 258 -
trunk/Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.h
r231486 r231532 30 30 #include "MessageReceiver.h" 31 31 #include "MessageSender.h" 32 #include <WebCore/FetchIdentifier.h>33 32 #include <WebCore/SWServer.h> 34 33 #include <pal/SessionID.h> … … 63 62 PAL::SessionID sessionID() const { return m_sessionID; } 64 63 65 void didReceiveFetchResponse( WebCore::FetchIdentifier, const WebCore::ResourceResponse&);66 void didReceiveFetchData( WebCore::FetchIdentifier, const IPC::DataReference&, int64_t encodedDataLength);67 void didReceiveFetchFormData( WebCore::FetchIdentifier, const IPC::FormDataReference&);68 void didFinishFetch( WebCore::FetchIdentifier);69 void didFailFetch( WebCore::FetchIdentifier);70 void didNotHandleFetch( WebCore::FetchIdentifier);64 void didReceiveFetchResponse(uint64_t fetchIdentifier, const WebCore::ResourceResponse&); 65 void didReceiveFetchData(uint64_t fetchIdentifier, const IPC::DataReference&, int64_t encodedDataLength); 66 void didReceiveFetchFormData(uint64_t fetchIdentifier, const IPC::FormDataReference&); 67 void didFinishFetch(uint64_t fetchIdentifier); 68 void didFailFetch(uint64_t fetchIdentifier); 69 void didNotHandleFetch(uint64_t fetchIdentifier); 71 70 72 71 void postMessageToServiceWorkerClient(WebCore::DocumentIdentifier destinationContextIdentifier, WebCore::MessageWithMessagePorts&&, WebCore::ServiceWorkerIdentifier sourceServiceWorkerIdentifier, const String& sourceOrigin); … … 89 88 void scheduleJobInServer(WebCore::ServiceWorkerJobData&&); 90 89 91 void startFetch(WebCore::ServiceWorkerRegistrationIdentifier, WebCore::FetchIdentifier, WebCore::ResourceRequest&&, WebCore::FetchOptions&&, IPC::FormDataReference&&, String&& referrer); 92 void cancelFetch(WebCore::ServiceWorkerRegistrationIdentifier, WebCore::FetchIdentifier); 90 void startFetch(uint64_t fetchIdentifier, WebCore::ServiceWorkerRegistrationIdentifier, WebCore::ResourceRequest&&, WebCore::FetchOptions&&, IPC::FormDataReference&&, String&& referrer); 93 91 94 92 void matchRegistration(uint64_t registrationMatchRequestIdentifier, const WebCore::SecurityOriginData& topOrigin, const WebCore::URL& clientURL); -
trunk/Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.messages.in
r231486 r231532 30 30 RemoveServiceWorkerRegistrationInServer(WebCore::ServiceWorkerRegistrationIdentifier identifier) 31 31 32 StartFetch(WebCore::ServiceWorkerRegistrationIdentifier serviceWorkerRegistrationIdentifier, WebCore::FetchIdentifier fetchIdentifier, WebCore::ResourceRequest request, struct WebCore::FetchOptions options, IPC::FormDataReference requestBody, String referrer) 33 CancelFetch(WebCore::ServiceWorkerRegistrationIdentifier serviceWorkerRegistrationIdentifier, WebCore::FetchIdentifier fetchIdentifier) 32 StartFetch(uint64_t identifier, WebCore::ServiceWorkerRegistrationIdentifier serviceWorkerRegistrationIdentifier, WebCore::ResourceRequest request, struct WebCore::FetchOptions options, IPC::FormDataReference requestBody, String referrer) 34 33 35 34 PostMessageToServiceWorker(WebCore::ServiceWorkerIdentifier destination, struct WebCore::MessageWithMessagePorts message, WebCore::ServiceWorkerOrClientIdentifier source) -
trunk/Source/WebKit/StorageProcess/StorageProcess.cpp
r231486 r231532 466 466 } 467 467 468 void StorageProcess::didFailFetch(SWServerConnectionIdentifier serverConnectionIdentifier, FetchIdentifierfetchIdentifier)468 void StorageProcess::didFailFetch(SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier) 469 469 { 470 470 if (auto* connection = m_swServerConnections.get(serverConnectionIdentifier)) … … 472 472 } 473 473 474 void StorageProcess::didNotHandleFetch(SWServerConnectionIdentifier serverConnectionIdentifier, FetchIdentifierfetchIdentifier)474 void StorageProcess::didNotHandleFetch(SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier) 475 475 { 476 476 if (auto* connection = m_swServerConnections.get(serverConnectionIdentifier)) … … 478 478 } 479 479 480 void StorageProcess::didReceiveFetchResponse(SWServerConnectionIdentifier serverConnectionIdentifier, FetchIdentifierfetchIdentifier, const WebCore::ResourceResponse& response)480 void StorageProcess::didReceiveFetchResponse(SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier, const WebCore::ResourceResponse& response) 481 481 { 482 482 if (auto* connection = m_swServerConnections.get(serverConnectionIdentifier)) … … 484 484 } 485 485 486 void StorageProcess::didReceiveFetchData(SWServerConnectionIdentifier serverConnectionIdentifier, FetchIdentifierfetchIdentifier, const IPC::DataReference& data, int64_t encodedDataLength)486 void StorageProcess::didReceiveFetchData(SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier, const IPC::DataReference& data, int64_t encodedDataLength) 487 487 { 488 488 if (auto* connection = m_swServerConnections.get(serverConnectionIdentifier)) … … 490 490 } 491 491 492 void StorageProcess::didReceiveFetchFormData(SWServerConnectionIdentifier serverConnectionIdentifier, FetchIdentifierfetchIdentifier, const IPC::FormDataReference& formData)492 void StorageProcess::didReceiveFetchFormData(SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier, const IPC::FormDataReference& formData) 493 493 { 494 494 if (auto* connection = m_swServerConnections.get(serverConnectionIdentifier)) … … 496 496 } 497 497 498 void StorageProcess::didFinishFetch(SWServerConnectionIdentifier serverConnectionIdentifier, FetchIdentifierfetchIdentifier)498 void StorageProcess::didFinishFetch(SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier) 499 499 { 500 500 if (auto* connection = m_swServerConnections.get(serverConnectionIdentifier)) -
trunk/Source/WebKit/StorageProcess/StorageProcess.h
r231486 r231532 28 28 #include "ChildProcess.h" 29 29 #include "SandboxExtension.h" 30 #include <WebCore/FetchIdentifier.h>31 30 #include <WebCore/IDBBackingStore.h> 32 31 #include <WebCore/IDBServer.h> … … 137 136 #endif 138 137 #if ENABLE(SERVICE_WORKER) 139 void didReceiveFetchResponse(WebCore::SWServerConnectionIdentifier, WebCore::FetchIdentifier, const WebCore::ResourceResponse&);140 void didReceiveFetchData(WebCore::SWServerConnectionIdentifier, WebCore::FetchIdentifier, const IPC::DataReference&, int64_t encodedDataLength);141 void didReceiveFetchFormData(WebCore::SWServerConnectionIdentifier, WebCore::FetchIdentifier, const IPC::FormDataReference&);142 void didFinishFetch(WebCore::SWServerConnectionIdentifier, WebCore::FetchIdentifier);143 void didFailFetch(WebCore::SWServerConnectionIdentifier, WebCore::FetchIdentifier);144 void didNotHandleFetch(WebCore::SWServerConnectionIdentifier, WebCore::FetchIdentifier);138 void didReceiveFetchResponse(WebCore::SWServerConnectionIdentifier, uint64_t fetchIdentifier, const WebCore::ResourceResponse&); 139 void didReceiveFetchData(WebCore::SWServerConnectionIdentifier, uint64_t fetchIdentifier, const IPC::DataReference&, int64_t encodedDataLength); 140 void didReceiveFetchFormData(WebCore::SWServerConnectionIdentifier, uint64_t fetchIdentifier, const IPC::FormDataReference&); 141 void didFinishFetch(WebCore::SWServerConnectionIdentifier, uint64_t fetchIdentifier); 142 void didFailFetch(WebCore::SWServerConnectionIdentifier, uint64_t fetchIdentifier); 143 void didNotHandleFetch(WebCore::SWServerConnectionIdentifier, uint64_t fetchIdentifier); 145 144 146 145 void postMessageToServiceWorkerClient(const WebCore::ServiceWorkerClientIdentifier& destinationIdentifier, WebCore::MessageWithMessagePorts&&, WebCore::ServiceWorkerIdentifier sourceIdentifier, const String& sourceOrigin); -
trunk/Source/WebKit/StorageProcess/StorageProcess.messages.in
r231486 r231532 37 37 38 38 #if ENABLE(SERVICE_WORKER) 39 DidNotHandleFetch(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, WebCore::FetchIdentifierfetchIdentifier)40 DidFailFetch(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, WebCore::FetchIdentifierfetchIdentifier)41 DidReceiveFetchResponse(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, WebCore::FetchIdentifierfetchIdentifier, WebCore::ResourceResponse response)42 DidReceiveFetchData(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, WebCore::FetchIdentifierfetchIdentifier, IPC::DataReference data, int64_t encodedDataLength)43 DidReceiveFetchFormData(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, WebCore::FetchIdentifierfetchIdentifier, IPC::FormDataReference data)44 DidFinishFetch(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, WebCore::FetchIdentifierfetchIdentifier)39 DidNotHandleFetch(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier) 40 DidFailFetch(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier) 41 DidReceiveFetchResponse(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier, WebCore::ResourceResponse response) 42 DidReceiveFetchData(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier, IPC::DataReference data, int64_t encodedDataLength) 43 DidReceiveFetchFormData(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier, IPC::FormDataReference data) 44 DidFinishFetch(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier) 45 45 PostMessageToServiceWorkerClient(struct WebCore::ServiceWorkerClientIdentifier destinationIdentifier, struct WebCore::MessageWithMessagePorts message, WebCore::ServiceWorkerIdentifier sourceIdentifier, String sourceOrigin) 46 46 -
trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
r231486 r231532 400 400 401 401 #if ENABLE(SERVICE_WORKER) 402 if (WebServiceWorkerProvider::singleton().cancelFetch( makeObjectIdentifier<FetchIdentifierType>(identifier)))402 if (WebServiceWorkerProvider::singleton().cancelFetch(identifier)) 403 403 return; 404 404 #endif -
trunk/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp
r231486 r231532 41 41 namespace WebKit { 42 42 43 Ref<ServiceWorkerClientFetch> ServiceWorkerClientFetch::create(WebServiceWorkerProvider& serviceWorkerProvider, Ref<WebCore::ResourceLoader>&& loader, FetchIdentifieridentifier, Ref<WebSWClientConnection>&& connection, bool shouldClearReferrerOnHTTPSToHTTPRedirect, Callback&& callback)43 Ref<ServiceWorkerClientFetch> ServiceWorkerClientFetch::create(WebServiceWorkerProvider& serviceWorkerProvider, Ref<WebCore::ResourceLoader>&& loader, uint64_t identifier, Ref<WebSWClientConnection>&& connection, bool shouldClearReferrerOnHTTPSToHTTPRedirect, Callback&& callback) 44 44 { 45 45 auto fetch = adoptRef(*new ServiceWorkerClientFetch { serviceWorkerProvider, WTFMove(loader), identifier, WTFMove(connection), shouldClearReferrerOnHTTPSToHTTPRedirect, WTFMove(callback) }); … … 52 52 } 53 53 54 ServiceWorkerClientFetch::ServiceWorkerClientFetch(WebServiceWorkerProvider& serviceWorkerProvider, Ref<WebCore::ResourceLoader>&& loader, FetchIdentifieridentifier, Ref<WebSWClientConnection>&& connection, bool shouldClearReferrerOnHTTPSToHTTPRedirect, Callback&& callback)54 ServiceWorkerClientFetch::ServiceWorkerClientFetch(WebServiceWorkerProvider& serviceWorkerProvider, Ref<WebCore::ResourceLoader>&& loader, uint64_t identifier, Ref<WebSWClientConnection>&& connection, bool shouldClearReferrerOnHTTPSToHTTPRedirect, Callback&& callback) 55 55 : m_serviceWorkerProvider(serviceWorkerProvider) 56 56 , m_loader(WTFMove(loader)) … … 76 76 77 77 ASSERT(options.serviceWorkersMode != ServiceWorkersMode::None); 78 m_serviceWorkerRegistrationIdentifier = options.serviceWorkerRegistrationIdentifier.value(); 79 m_connection->startFetch(m_identifier, m_serviceWorkerRegistrationIdentifier, request, options, referrer); 78 m_connection->startFetch(m_loader->identifier(), options.serviceWorkerRegistrationIdentifier.value(), request, options, referrer); 80 79 81 80 m_redirectionStatus = RedirectionStatus::None; … … 261 260 if (auto callback = WTFMove(m_callback)) 262 261 callback(Result::Cancelled); 263 264 if (!m_didFinish && !m_didFail) {265 m_connection->cancelFetch(m_identifier, m_serviceWorkerRegistrationIdentifier);266 267 }268 262 m_loader = nullptr; 269 263 m_buffer = nullptr; -
trunk/Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.h
r231486 r231532 32 32 #include "MessageReceiver.h" 33 33 #include "MessageSender.h" 34 #include <WebCore/FetchIdentifier.h>35 34 #include <WebCore/ResourceLoader.h> 36 35 #include <wtf/CompletionHandler.h> … … 46 45 using Callback = WTF::CompletionHandler<void(Result)>; 47 46 48 static Ref<ServiceWorkerClientFetch> create(WebServiceWorkerProvider&, Ref<WebCore::ResourceLoader>&&, WebCore::FetchIdentifier, Ref<WebSWClientConnection>&&, bool shouldClearReferrerOnHTTPSToHTTPRedirect, Callback&&);47 static Ref<ServiceWorkerClientFetch> create(WebServiceWorkerProvider&, Ref<WebCore::ResourceLoader>&&, uint64_t identifier, Ref<WebSWClientConnection>&&, bool shouldClearReferrerOnHTTPSToHTTPRedirect, Callback&&); 49 48 ~ServiceWorkerClientFetch(); 50 49 … … 57 56 58 57 private: 59 ServiceWorkerClientFetch(WebServiceWorkerProvider&, Ref<WebCore::ResourceLoader>&&, WebCore::FetchIdentifier, Ref<WebSWClientConnection>&&, bool shouldClearReferrerOnHTTPSToHTTPRedirect, Callback&&);58 ServiceWorkerClientFetch(WebServiceWorkerProvider&, Ref<WebCore::ResourceLoader>&&, uint64_t identifier, Ref<WebSWClientConnection>&&, bool shouldClearReferrerOnHTTPSToHTTPRedirect, Callback&&); 60 59 61 60 std::optional<WebCore::ResourceError> validateResponse(const WebCore::ResourceResponse&); … … 72 71 WebServiceWorkerProvider& m_serviceWorkerProvider; 73 72 RefPtr<WebCore::ResourceLoader> m_loader; 74 WebCore::FetchIdentifier m_identifier;73 uint64_t m_identifier { 0 }; 75 74 Ref<WebSWClientConnection> m_connection; 76 75 Callback m_callback; … … 83 82 bool m_didFinish { false }; 84 83 bool m_didFail { false }; 85 86 WebCore::ServiceWorkerRegistrationIdentifier m_serviceWorkerRegistrationIdentifier;87 84 }; 88 85 -
trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp
r231486 r231532 200 200 } 201 201 202 void WebSWClientConnection::startFetch(WebCore::FetchIdentifier fetchIdentifier, WebCore::ServiceWorkerRegistrationIdentifier serviceWorkerRegistrationIdentifier, const WebCore::ResourceRequest& request, const WebCore::FetchOptions& options, const String& referrer) 203 { 204 send(Messages::WebSWServerConnection::StartFetch { serviceWorkerRegistrationIdentifier, fetchIdentifier, request, options, IPC::FormDataReference { request.httpBody() }, referrer }); 205 } 206 207 void WebSWClientConnection::cancelFetch(WebCore::FetchIdentifier fetchIdentifier, WebCore::ServiceWorkerRegistrationIdentifier serviceWorkerRegistrationIdentifier) 208 { 209 send(Messages::WebSWServerConnection::CancelFetch { serviceWorkerRegistrationIdentifier, fetchIdentifier }); 202 void WebSWClientConnection::startFetch(uint64_t fetchIdentifier, WebCore::ServiceWorkerRegistrationIdentifier serviceWorkerRegistrationIdentifier, const WebCore::ResourceRequest& request, const WebCore::FetchOptions& options, const String& referrer) 203 { 204 send(Messages::WebSWServerConnection::StartFetch { fetchIdentifier, serviceWorkerRegistrationIdentifier, request, options, IPC::FormDataReference { request.httpBody() }, referrer }); 210 205 } 211 206 -
trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.h
r231486 r231532 62 62 63 63 bool mayHaveServiceWorkerRegisteredForOrigin(const WebCore::SecurityOriginData&) const final; 64 void startFetch(WebCore::FetchIdentifier, WebCore::ServiceWorkerRegistrationIdentifier, const WebCore::ResourceRequest&, const WebCore::FetchOptions&, const String& referrer); 65 void cancelFetch(WebCore::FetchIdentifier, WebCore::ServiceWorkerRegistrationIdentifier); 64 void startFetch(uint64_t fetchIdentifier, WebCore::ServiceWorkerRegistrationIdentifier, const WebCore::ResourceRequest&, const WebCore::FetchOptions&, const String& referrer); 66 65 67 66 void postMessageToServiceWorkerClient(WebCore::DocumentIdentifier destinationContextIdentifier, WebCore::MessageWithMessagePorts&&, WebCore::ServiceWorkerData&& source, const String& sourceOrigin); -
trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp
r231486 r231532 199 199 } 200 200 201 void WebSWContextManagerConnection::cancelFetch(SWServerConnectionIdentifier serverConnectionIdentifier, ServiceWorkerIdentifier serviceWorkerIdentifier, FetchIdentifier fetchIdentifier) 202 { 203 if (auto* serviceWorkerThreadProxy = SWContextManager::singleton().serviceWorkerThreadProxy(serviceWorkerIdentifier)) 204 serviceWorkerThreadProxy->cancelFetch(serverConnectionIdentifier, fetchIdentifier); 205 } 206 207 void WebSWContextManagerConnection::startFetch(SWServerConnectionIdentifier serverConnectionIdentifier, ServiceWorkerIdentifier serviceWorkerIdentifier, FetchIdentifier fetchIdentifier, ResourceRequest&& request, FetchOptions&& options, IPC::FormDataReference&& formData, String&& referrer) 201 void WebSWContextManagerConnection::startFetch(SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier, ServiceWorkerIdentifier serviceWorkerIdentifier, ResourceRequest&& request, FetchOptions&& options, IPC::FormDataReference&& formData, String&& referrer) 208 202 { 209 203 auto* serviceWorkerThreadProxy = SWContextManager::singleton().serviceWorkerThreadProxy(serviceWorkerIdentifier); 210 204 if (!serviceWorkerThreadProxy) { 211 m_connectionToStorageProcess->send(Messages::StorageProcess::DidNotHandleFetch { serverConnectionIdentifier, fetchIdentifier }, 0);205 m_connectionToStorageProcess->send(Messages::StorageProcess::DidNotHandleFetch(serverConnectionIdentifier, fetchIdentifier), 0); 212 206 return; 213 207 } … … 221 215 222 216 request.setHTTPBody(formData.takeData()); 223 serviceWorkerThreadProxy-> startFetch(serverConnectionIdentifier, fetchIdentifier,WTFMove(client), WTFMove(clientId), WTFMove(request), WTFMove(referrer), WTFMove(options));217 serviceWorkerThreadProxy->thread().postFetchTask(WTFMove(client), WTFMove(clientId), WTFMove(request), WTFMove(referrer), WTFMove(options)); 224 218 } 225 219 -
trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h
r231486 r231532 77 77 void serviceWorkerStartedWithMessage(std::optional<WebCore::ServiceWorkerJobDataIdentifier>, WebCore::ServiceWorkerIdentifier, const String& exceptionMessage) final; 78 78 void installServiceWorker(const WebCore::ServiceWorkerContextData&, PAL::SessionID); 79 void startFetch(WebCore::SWServerConnectionIdentifier, WebCore::ServiceWorkerIdentifier, WebCore::FetchIdentifier, WebCore::ResourceRequest&&, WebCore::FetchOptions&&, IPC::FormDataReference&&, String&& referrer); 80 void cancelFetch(WebCore::SWServerConnectionIdentifier, WebCore::ServiceWorkerIdentifier, WebCore::FetchIdentifier); 79 void startFetch(WebCore::SWServerConnectionIdentifier, uint64_t fetchIdentifier, WebCore::ServiceWorkerIdentifier, WebCore::ResourceRequest&&, WebCore::FetchOptions&&, IPC::FormDataReference&&, String&& referrer); 81 80 void postMessageToServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, WebCore::MessageWithMessagePorts&&, WebCore::ServiceWorkerOrClientData&& sourceData); 82 81 void fireInstallEvent(WebCore::ServiceWorkerIdentifier); -
trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.messages.in
r231486 r231532 25 25 messages -> WebSWContextManagerConnection { 26 26 InstallServiceWorker(struct WebCore::ServiceWorkerContextData contextData, PAL::SessionID sessionID) 27 StartFetch(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, WebCore::ServiceWorkerIdentifier serviceWorkerIdentifier, WebCore::FetchIdentifier fetchIdentifier, WebCore::ResourceRequest request, struct WebCore::FetchOptions options, IPC::FormDataReference requestBody, String referrer) 28 CancelFetch(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, WebCore::ServiceWorkerIdentifier serviceWorkerIdentifier, WebCore::FetchIdentifier fetchIdentifier) 27 StartFetch(WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchIdentifier, WebCore::ServiceWorkerIdentifier serviceWorkerIdentifier, WebCore::ResourceRequest request, struct WebCore::FetchOptions options, IPC::FormDataReference requestBody, String referrer) 29 28 PostMessageToServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, struct WebCore::MessageWithMessagePorts message, WebCore::ServiceWorkerOrClientData sourceData) 30 29 FireInstallEvent(WebCore::ServiceWorkerIdentifier identifier) -
trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp
r231486 r231532 47 47 } 48 48 49 WebServiceWorkerFetchTaskClient::WebServiceWorkerFetchTaskClient(Ref<IPC::Connection>&& connection, WebCore::ServiceWorkerIdentifier serviceWorkerIdentifier, WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, FetchIdentifier fetchIdentifier)49 WebServiceWorkerFetchTaskClient::WebServiceWorkerFetchTaskClient(Ref<IPC::Connection>&& connection, WebCore::ServiceWorkerIdentifier serviceWorkerIdentifier, WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchTaskIdentifier) 50 50 : m_connection(WTFMove(connection)) 51 51 , m_serverConnectionIdentifier(serverConnectionIdentifier) 52 52 , m_serviceWorkerIdentifier(serviceWorkerIdentifier) 53 , m_fetch Identifier(fetchIdentifier)53 , m_fetchTaskIdentifier(fetchTaskIdentifier) 54 54 { 55 55 } … … 59 59 if (!m_connection) 60 60 return; 61 m_connection->send(Messages::StorageProcess::DidReceiveFetchResponse { m_serverConnectionIdentifier, m_fetch Identifier, response }, 0);61 m_connection->send(Messages::StorageProcess::DidReceiveFetchResponse { m_serverConnectionIdentifier, m_fetchTaskIdentifier, response }, 0); 62 62 } 63 63 … … 67 67 return; 68 68 IPC::SharedBufferDataReference dataReference { buffer.ptr() }; 69 m_connection->send(Messages::StorageProcess::DidReceiveFetchData { m_serverConnectionIdentifier, m_fetch Identifier, dataReference, static_cast<int64_t>(buffer->size()) }, 0);69 m_connection->send(Messages::StorageProcess::DidReceiveFetchData { m_serverConnectionIdentifier, m_fetchTaskIdentifier, dataReference, static_cast<int64_t>(buffer->size()) }, 0); 70 70 } 71 71 … … 79 79 URL blobURL = formData->asBlobURL(); 80 80 if (blobURL.isNull()) { 81 m_connection->send(Messages::StorageProcess::DidReceiveFetchFormData { m_serverConnectionIdentifier, m_fetch Identifier, IPC::FormDataReference { WTFMove(formData) } }, 0);81 m_connection->send(Messages::StorageProcess::DidReceiveFetchFormData { m_serverConnectionIdentifier, m_fetchTaskIdentifier, IPC::FormDataReference { WTFMove(formData) } }, 0); 82 82 return; 83 83 } … … 108 108 109 109 IPC::DataReference dataReference { reinterpret_cast<const uint8_t*>(data), size }; 110 m_connection->send(Messages::StorageProcess::DidReceiveFetchData { m_serverConnectionIdentifier, m_fetch Identifier, dataReference, static_cast<int64_t>(size) }, 0);110 m_connection->send(Messages::StorageProcess::DidReceiveFetchData { m_serverConnectionIdentifier, m_fetchTaskIdentifier, dataReference, static_cast<int64_t>(size) }, 0); 111 111 } 112 112 … … 122 122 if (!m_connection) 123 123 return; 124 125 m_connection->send(Messages::StorageProcess::DidFailFetch { m_serverConnectionIdentifier, m_fetchIdentifier }, 0); 126 127 cleanup(); 124 m_connection->send(Messages::StorageProcess::DidFailFetch { m_serverConnectionIdentifier, m_fetchTaskIdentifier }, 0); 125 m_connection = nullptr; 128 126 } 129 127 … … 133 131 return; 134 132 135 m_connection->send(Messages::StorageProcess::DidFinishFetch { m_serverConnectionIdentifier, m_fetchIdentifier }, 0); 136 137 cleanup(); 133 m_connection->send(Messages::StorageProcess::DidFinishFetch { m_serverConnectionIdentifier, m_fetchTaskIdentifier }, 0); 134 m_connection = nullptr; 138 135 } 139 136 … … 142 139 if (!m_connection) 143 140 return; 144 145 m_connection->send(Messages::StorageProcess::DidNotHandleFetch { m_serverConnectionIdentifier, m_fetchIdentifier }, 0); 146 147 cleanup(); 148 } 149 150 void WebServiceWorkerFetchTaskClient::cancel() 151 { 141 m_connection->send(Messages::StorageProcess::DidNotHandleFetch { m_serverConnectionIdentifier, m_fetchTaskIdentifier }, 0); 152 142 m_connection = nullptr; 153 }154 155 void WebServiceWorkerFetchTaskClient::cleanup()156 {157 ASSERT(m_connection);158 m_connection = nullptr;159 160 if (!isMainThread()) {161 callOnMainThread([protectedThis = makeRef(*this)] () {162 protectedThis->cleanup();163 });164 return;165 }166 if (auto* serviceWorkerThreadProxy = SWContextManager::singleton().serviceWorkerThreadProxy(m_serviceWorkerIdentifier))167 serviceWorkerThreadProxy->removeFetch(m_serverConnectionIdentifier, m_fetchIdentifier);168 143 } 169 144 -
trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h
r231486 r231532 29 29 30 30 #include "Connection.h" 31 #include <WebCore/FetchIdentifier.h>32 31 #include <WebCore/FetchLoader.h> 33 32 #include <WebCore/FetchLoaderClient.h> … … 39 38 class WebServiceWorkerFetchTaskClient final : public WebCore::ServiceWorkerFetch::Client { 40 39 public: 41 static Ref<WebServiceWorkerFetchTaskClient> create(Ref<IPC::Connection>&& connection, WebCore::ServiceWorkerIdentifier serviceWorkerIdentifier, WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, WebCore::FetchIdentifierfetchTaskIdentifier)40 static Ref<WebServiceWorkerFetchTaskClient> create(Ref<IPC::Connection>&& connection, WebCore::ServiceWorkerIdentifier serviceWorkerIdentifier, WebCore::SWServerConnectionIdentifier serverConnectionIdentifier, uint64_t fetchTaskIdentifier) 42 41 { 43 42 return adoptRef(*new WebServiceWorkerFetchTaskClient(WTFMove(connection), serviceWorkerIdentifier, serverConnectionIdentifier, fetchTaskIdentifier)); … … 47 46 48 47 private: 49 WebServiceWorkerFetchTaskClient(Ref<IPC::Connection>&&, WebCore::ServiceWorkerIdentifier, WebCore::SWServerConnectionIdentifier, WebCore::FetchIdentifier);48 WebServiceWorkerFetchTaskClient(Ref<IPC::Connection>&&, WebCore::ServiceWorkerIdentifier, WebCore::SWServerConnectionIdentifier, uint64_t fetchTaskIdentifier); 50 49 51 50 void didReceiveResponse(const WebCore::ResourceResponse&) final; … … 55 54 void didFinish() final; 56 55 void didNotHandle() final; 57 void cancel() final;58 56 59 void cleanup();60 61 57 void didReceiveBlobChunk(const char* data, size_t size); 62 58 void didFinishBlobLoading(); … … 78 74 WebCore::SWServerConnectionIdentifier m_serverConnectionIdentifier; 79 75 WebCore::ServiceWorkerIdentifier m_serviceWorkerIdentifier; 80 WebCore::FetchIdentifier m_fetchIdentifier;76 uint64_t m_fetchTaskIdentifier { 0 }; 81 77 std::optional<BlobLoader> m_blobLoader; 82 78 }; -
trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerProvider.cpp
r231486 r231532 89 89 90 90 auto& connection = WebProcess::singleton().ensureWebToStorageProcessConnection(sessionID).serviceWorkerConnectionForSession(sessionID); 91 auto fetchIdentifier = makeObjectIdentifier<FetchIdentifierType>(loader.identifier()); 92 m_ongoingFetchTasks.add(fetchIdentifier, ServiceWorkerClientFetch::create(*this, loader, fetchIdentifier, connection, shouldClearReferrerOnHTTPSToHTTPRedirect, WTFMove(callback))); 91 m_ongoingFetchTasks.add(loader.identifier(), ServiceWorkerClientFetch::create(*this, loader, loader.identifier(), connection, shouldClearReferrerOnHTTPSToHTTPRedirect, WTFMove(callback))); 93 92 } 94 93 95 bool WebServiceWorkerProvider::cancelFetch( FetchIdentifierfetchIdentifier)94 bool WebServiceWorkerProvider::cancelFetch(uint64_t fetchIdentifier) 96 95 { 97 96 auto fetch = m_ongoingFetchTasks.take(fetchIdentifier); … … 101 100 } 102 101 103 void WebServiceWorkerProvider::fetchFinished( FetchIdentifierfetchIdentifier)102 void WebServiceWorkerProvider::fetchFinished(uint64_t fetchIdentifier) 104 103 { 105 104 m_ongoingFetchTasks.take(fetchIdentifier); … … 108 107 void WebServiceWorkerProvider::didReceiveServiceWorkerClientFetchMessage(IPC::Connection& connection, IPC::Decoder& decoder) 109 108 { 110 if (auto fetch = m_ongoingFetchTasks.get( makeObjectIdentifier<FetchIdentifierType>(decoder.destinationID())))109 if (auto fetch = m_ongoingFetchTasks.get(decoder.destinationID())) 111 110 fetch->didReceiveMessage(connection, decoder); 112 111 } -
trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerProvider.h
r231486 r231532 43 43 44 44 void handleFetch(WebCore::ResourceLoader&, WebCore::CachedResource*, PAL::SessionID, bool shouldClearReferrerOnHTTPSToHTTPRedirect, ServiceWorkerClientFetch::Callback&&); 45 bool cancelFetch( WebCore::FetchIdentifier);46 void fetchFinished( WebCore::FetchIdentifier);45 bool cancelFetch(uint64_t fetchIdentifier); 46 void fetchFinished(uint64_t fetchIdentifier); 47 47 48 48 void didReceiveServiceWorkerClientFetchMessage(IPC::Connection&, IPC::Decoder&); … … 56 56 WebCore::SWClientConnection& serviceWorkerConnectionForSession(PAL::SessionID) final; 57 57 58 HashMap< WebCore::FetchIdentifier, Ref<ServiceWorkerClientFetch>> m_ongoingFetchTasks;58 HashMap<uint64_t, Ref<ServiceWorkerClientFetch>> m_ongoingFetchTasks; 59 59 }; // class WebServiceWorkerProvider 60 60
Note:
See TracChangeset
for help on using the changeset viewer.