Changeset 239725 in webkit
- Timestamp:
- Jan 8, 2019, 8:43:14 AM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r239721 r239725 1 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 3 Always call CompletionHandler in Cache::store 4 https://bugs.webkit.org/show_bug.cgi?id=193237 5 6 Reviewed by Chris Dumez. 7 8 No change in behavior. This just fixes an assertion introduced in r239710 when the speculative loader finishes. 9 10 * NetworkProcess/NetworkResourceLoader.cpp: 11 (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): 12 * NetworkProcess/cache/NetworkCache.cpp: 13 (WebKit::NetworkCache::Cache::store): 14 * NetworkProcess/cache/NetworkCache.h: 15 * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: 16 (WebKit::NetworkCache::SpeculativeLoad::didFinishLoading): 17 1 18 2019-01-08 Carlos Garcia Campos <cgarcia@igalia.com> 2 19 -
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
r239680 r239725 795 795 return; 796 796 797 m_cache->store(m_networkLoad->currentRequest(), m_response, WTFMove(m_bufferedDataForCache), [loader = makeRef(*this)](auto &mappedBody) mutable {797 m_cache->store(m_networkLoad->currentRequest(), m_response, WTFMove(m_bufferedDataForCache), [loader = makeRef(*this)](auto* mappedBody) mutable { 798 798 #if ENABLE(SHAREABLE_RESOURCE) 799 if ( mappedBody.shareableResourceHandle.isNull())799 if (!mappedBody || mappedBody->shareableResourceHandle.isNull()) 800 800 return; 801 801 LOG(NetworkCache, "(NetworkProcess) sending DidCacheResource"); 802 loader->send(Messages::NetworkProcessConnection::DidCacheResource(loader->originalRequest(), mappedBody .shareableResourceHandle, loader->sessionID()));802 loader->send(Messages::NetworkProcessConnection::DidCacheResource(loader->originalRequest(), mappedBody->shareableResourceHandle, loader->sessionID())); 803 803 #endif 804 804 }); -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.cpp
r239710 r239725 372 372 } 373 373 374 std::unique_ptr<Entry> Cache::store(const WebCore::ResourceRequest& request, const WebCore::ResourceResponse& response, RefPtr<WebCore::SharedBuffer>&& responseData, CompletionHandler<void(MappedBody &)>&& completionHandler)374 std::unique_ptr<Entry> Cache::store(const WebCore::ResourceRequest& request, const WebCore::ResourceResponse& response, RefPtr<WebCore::SharedBuffer>&& responseData, CompletionHandler<void(MappedBody*)>&& completionHandler) 375 375 { 376 376 ASSERT(responseData); … … 392 392 m_statistics->recordNotCachingResponse(key, storeDecision); 393 393 394 completionHandler(nullptr); 394 395 return nullptr; 395 396 } … … 407 408 } 408 409 #endif 409 completionHandler( mappedBody);410 completionHandler(&mappedBody); 410 411 LOG(NetworkCache, "(NetworkProcess) stored"); 411 412 }); -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.h
r239710 r239725 114 114 using RetrieveCompletionHandler = CompletionHandler<void(std::unique_ptr<Entry>, const RetrieveInfo&)>; 115 115 void retrieve(const WebCore::ResourceRequest&, const GlobalFrameID&, RetrieveCompletionHandler&&); 116 std::unique_ptr<Entry> store(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, RefPtr<WebCore::SharedBuffer>&&, CompletionHandler<void(MappedBody &)>&&);116 std::unique_ptr<Entry> store(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, RefPtr<WebCore::SharedBuffer>&&, CompletionHandler<void(MappedBody*)>&&); 117 117 std::unique_ptr<Entry> storeRedirect(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, const WebCore::ResourceRequest& redirectRequest, Optional<Seconds> maxAgeCap); 118 118 std::unique_ptr<Entry> update(const WebCore::ResourceRequest&, const GlobalFrameID&, const Entry&, const WebCore::ResourceResponse& validatingResponse); -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp
r239427 r239725 122 122 return; 123 123 if (!m_cacheEntry && m_bufferedDataForCache) { 124 m_cacheEntry = m_cache->store(m_originalRequest, m_response, m_bufferedDataForCache.copyRef(), [](auto &mappedBody) { });124 m_cacheEntry = m_cache->store(m_originalRequest, m_response, m_bufferedDataForCache.copyRef(), [](auto* mappedBody) { }); 125 125 // Create a synthetic cache entry if we can't store. 126 126 if (!m_cacheEntry && isStatusCodeCacheableByDefault(m_response.httpStatusCode())) -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp
r239427 r239725 885 885 ASSERT(!record.key.isNull()); 886 886 887 if (!m_capacity) 888 return; 887 if (!m_capacity) { 888 completionHandler(0); 889 return; 890 } 889 891 890 892 auto writeOperation = std::make_unique<WriteOperation>(*this, record, WTFMove(mappedBodyHandler), WTFMove(completionHandler));
Note:
See TracChangeset
for help on using the changeset viewer.