Changeset 239759 in webkit
- Timestamp:
- Jan 8, 2019, 5:28:13 PM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r239757 r239759 1 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 3 Fix CompletionHandler assertions introduced today. 4 https://bugs.webkit.org/show_bug.cgi?id=193237 5 6 This reverts part of r239710 and all of r239725, r239738, and r239748 which unsuccessfully tried to fix all the assertions. 7 This code is a mess that will have to be cleaned up later. 8 9 * NetworkProcess/NetworkResourceLoader.cpp: 10 (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): 11 * NetworkProcess/cache/CacheStorageEngine.cpp: 12 (WebKit::CacheStorage::Engine::from): 13 * NetworkProcess/cache/CacheStorageEngine.h: 14 * NetworkProcess/cache/NetworkCache.cpp: 15 (WebKit::NetworkCache::Cache::store): 16 (WebKit::NetworkCache::Cache::remove): 17 (WebKit::NetworkCache::Cache::traverse): 18 (WebKit::NetworkCache::Cache::clear): 19 (WebKit::NetworkCache::Cache::retrieveData): 20 * NetworkProcess/cache/NetworkCache.h: 21 * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: 22 (WebKit::NetworkCache::SpeculativeLoad::didFinishLoading): 23 * NetworkProcess/cache/NetworkCacheStorage.cpp: 24 (WebKit::NetworkCache::Storage::store): 25 (WebKit::NetworkCache::Storage::WriteOperation::~WriteOperation): Deleted. 26 * NetworkProcess/cache/NetworkCacheStorage.h: 27 (WebKit::NetworkCache::Storage::store): 28 1 29 2019-01-08 Jiewen Tan <jiewen_tan@apple.com> 2 30 -
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
r239741 r239759 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 || mappedBody->shareableResourceHandle.isNull())799 if (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/CacheStorageEngine.cpp
r239710 r239759 74 74 } 75 75 76 void Engine::from(NetworkProcess& networkProcess, PAL::SessionID sessionID, CompletionHandler<void(Engine&)>&& callback)76 void Engine::from(NetworkProcess& networkProcess, PAL::SessionID sessionID, Function<void(Engine&)>&& callback) 77 77 { 78 78 if (auto* engine = networkProcess.findCacheEngine(sessionID)) { -
trunk/Source/WebKit/NetworkProcess/cache/CacheStorageEngine.h
r239710 r239759 60 60 ~Engine(); 61 61 62 static void from(NetworkProcess&, PAL::SessionID, CompletionHandler<void(Engine&)>&&);62 static void from(NetworkProcess&, PAL::SessionID, Function<void(Engine&)>&&); 63 63 static void destroyEngine(NetworkProcess&, PAL::SessionID); 64 64 static void fetchEntries(NetworkProcess&, PAL::SessionID, bool shouldComputeSize, CompletionHandler<void(Vector<WebsiteData::Entry>)>&&); … … 121 121 122 122 using CachesOrError = Expected<std::reference_wrapper<Caches>, WebCore::DOMCacheEngine::Error>; 123 using CachesCallback = CompletionHandler<void(CachesOrError&&)>;123 using CachesCallback = Function<void(CachesOrError&&)>; 124 124 void readCachesFromDisk(const WebCore::ClientOrigin&, CachesCallback&&); 125 125 126 126 using CacheOrError = Expected<std::reference_wrapper<Cache>, WebCore::DOMCacheEngine::Error>; 127 using CacheCallback = CompletionHandler<void(CacheOrError&&)>;127 using CacheCallback = Function<void(CacheOrError&&)>; 128 128 void readCache(uint64_t cacheIdentifier, CacheCallback&&); 129 129 -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.cpp
r239740 r239759 373 373 } 374 374 375 std::unique_ptr<Entry> Cache::store(const WebCore::ResourceRequest& request, const WebCore::ResourceResponse& response, RefPtr<WebCore::SharedBuffer>&& responseData, CompletionHandler<void(MappedBody*)>&& completionHandler)375 std::unique_ptr<Entry> Cache::store(const WebCore::ResourceRequest& request, const WebCore::ResourceResponse& response, RefPtr<WebCore::SharedBuffer>&& responseData, Function<void(MappedBody&)>&& completionHandler) 376 376 { 377 377 ASSERT(responseData); … … 393 393 m_statistics->recordNotCachingResponse(key, storeDecision); 394 394 395 completionHandler(nullptr);396 395 return nullptr; 397 396 } … … 409 408 } 410 409 #endif 411 completionHandler( &mappedBody);410 completionHandler(mappedBody); 412 411 LOG(NetworkCache, "(NetworkProcess) stored"); 413 412 }); … … 476 475 } 477 476 478 void Cache::remove(const Vector<Key>& keys, CompletionHandler<void()>&& completionHandler)477 void Cache::remove(const Vector<Key>& keys, Function<void()>&& completionHandler) 479 478 { 480 479 m_storage->remove(keys, WTFMove(completionHandler)); 481 480 } 482 481 483 void Cache::traverse( CompletionHandler<void(const TraversalEntry*)>&& traverseHandler)482 void Cache::traverse(Function<void(const TraversalEntry*)>&& traverseHandler) 484 483 { 485 484 // Protect against clients making excessive traversal requests. … … 580 579 } 581 580 582 void Cache::clear(WallTime modifiedSince, CompletionHandler<void()>&& completionHandler)581 void Cache::clear(WallTime modifiedSince, Function<void()>&& completionHandler) 583 582 { 584 583 LOG(NetworkCache, "(NetworkProcess) clearing cache"); … … 603 602 } 604 603 605 void Cache::retrieveData(const DataKey& dataKey, CompletionHandler<void(const uint8_t*, size_t)> completionHandler)604 void Cache::retrieveData(const DataKey& dataKey, Function<void(const uint8_t*, size_t)> completionHandler) 606 605 { 607 606 Key key { dataKey, m_storage->salt() }; -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.h
r239740 r239759 115 115 WTF_MAKE_FAST_ALLOCATED; 116 116 }; 117 using RetrieveCompletionHandler = CompletionHandler<void(std::unique_ptr<Entry>, const RetrieveInfo&)>;117 using RetrieveCompletionHandler = Function<void(std::unique_ptr<Entry>, const RetrieveInfo&)>; 118 118 void retrieve(const WebCore::ResourceRequest&, const GlobalFrameID&, RetrieveCompletionHandler&&); 119 std::unique_ptr<Entry> store(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, RefPtr<WebCore::SharedBuffer>&&, CompletionHandler<void(MappedBody*)>&&);119 std::unique_ptr<Entry> store(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, RefPtr<WebCore::SharedBuffer>&&, Function<void(MappedBody&)>&&); 120 120 std::unique_ptr<Entry> storeRedirect(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, const WebCore::ResourceRequest& redirectRequest, Optional<Seconds> maxAgeCap); 121 121 std::unique_ptr<Entry> update(const WebCore::ResourceRequest&, const GlobalFrameID&, const Entry&, const WebCore::ResourceResponse& validatingResponse); … … 125 125 const Storage::RecordInfo& recordInfo; 126 126 }; 127 void traverse( CompletionHandler<void(const TraversalEntry*)>&&);127 void traverse(Function<void(const TraversalEntry*)>&&); 128 128 void remove(const Key&); 129 129 void remove(const WebCore::ResourceRequest&); 130 void remove(const Vector<Key>&, CompletionHandler<void()>&&);130 void remove(const Vector<Key>&, Function<void()>&&); 131 131 132 132 void clear(); 133 void clear(WallTime modifiedSince, CompletionHandler<void()>&&);133 void clear(WallTime modifiedSince, Function<void()>&&); 134 134 135 void retrieveData(const DataKey&, CompletionHandler<void(const uint8_t*, size_t)>);135 void retrieveData(const DataKey&, Function<void(const uint8_t*, size_t)>); 136 136 void storeData(const DataKey&, const uint8_t* data, size_t); 137 137 -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp
r239725 r239759 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
r239740 r239759 114 114 { } 115 115 116 ~WriteOperation()117 {118 if (completionHandler)119 completionHandler(0);120 }121 122 116 Ref<Storage> storage; 123 117 … … 892 886 ASSERT(!record.key.isNull()); 893 887 894 if (!m_capacity) { 895 completionHandler(0); 896 return; 897 } 888 if (!m_capacity) 889 return; 898 890 899 891 auto writeOperation = std::make_unique<WriteOperation>(*this, record, WTFMove(mappedBodyHandler), WTFMove(completionHandler)); -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.h
r239748 r239759 83 83 84 84 using MappedBodyHandler = Function<void (const Data& mappedBody)>; 85 void store(const Record&, MappedBodyHandler&&, CompletionHandler<void(int)>&& = [] (int){ });85 void store(const Record&, MappedBodyHandler&&, CompletionHandler<void(int)>&& = { }); 86 86 87 87 void remove(const Key&);
Note:
See TracChangeset
for help on using the changeset viewer.