Changeset 249303 in webkit
- Timestamp:
- Aug 29, 2019 5:17:41 PM (5 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r249296 r249303 1 2019-08-29 Alex Christensen <achristensen@webkit.org> 2 3 Speculative loads should use the NetworkSession owning their Cache 4 https://bugs.webkit.org/show_bug.cgi?id=201314 5 6 Reviewed by Chris Dumez. 7 8 This provides a performance improvement when using non-default persistent WKWebsiteDataStores. 9 10 * NetworkProcess/NetworkSession.cpp: 11 (WebKit::NetworkSession::NetworkSession): 12 * NetworkProcess/cache/NetworkCache.cpp: 13 (WebKit::NetworkCache::Cache::open): 14 (WebKit::NetworkCache::Cache::Cache): 15 * NetworkProcess/cache/NetworkCache.h: 16 (WebKit::NetworkCache::Cache::sessionID const): 17 * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: 18 (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): 19 1 20 2019-08-29 Wenson Hsieh <wenson_hsieh@apple.com> 2 21 -
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
r248956 r249303 93 93 SandboxExtension::consumePermanently(parameters.networkCacheDirectoryExtensionHandle); 94 94 95 m_cache = NetworkCache::Cache::open(networkProcess, networkCacheDirectory, networkProcess.cacheOptions() );95 m_cache = NetworkCache::Cache::open(networkProcess, networkCacheDirectory, networkProcess.cacheOptions(), m_sessionID); 96 96 if (!m_cache) 97 97 RELEASE_LOG_ERROR(NetworkCache, "Failed to initialize the WebKit network disk cache"); -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.cpp
r248963 r249303 60 60 } 61 61 62 RefPtr<Cache> Cache::open(NetworkProcess& networkProcess, const String& cachePath, OptionSet<CacheOption> options )62 RefPtr<Cache> Cache::open(NetworkProcess& networkProcess, const String& cachePath, OptionSet<CacheOption> options, PAL::SessionID sessionID) 63 63 { 64 64 auto storage = Storage::open(cachePath, options.contains(CacheOption::TestingMode) ? Storage::Mode::AvoidRandomness : Storage::Mode::Normal); … … 69 69 return nullptr; 70 70 71 return adoptRef(*new Cache(networkProcess, storage.releaseNonNull(), options ));71 return adoptRef(*new Cache(networkProcess, storage.releaseNonNull(), options, sessionID)); 72 72 } 73 73 … … 79 79 #endif 80 80 81 Cache::Cache(NetworkProcess& networkProcess, Ref<Storage>&& storage, OptionSet<CacheOption> options )81 Cache::Cache(NetworkProcess& networkProcess, Ref<Storage>&& storage, OptionSet<CacheOption> options, PAL::SessionID sessionID) 82 82 : m_storage(WTFMove(storage)) 83 83 , m_networkProcess(networkProcess) 84 , m_sessionID(sessionID) 84 85 { 85 86 #if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION) -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.h
r248963 r249303 100 100 class Cache : public RefCounted<Cache> { 101 101 public: 102 static RefPtr<Cache> open(NetworkProcess&, const String& cachePath, OptionSet<CacheOption> );102 static RefPtr<Cache> open(NetworkProcess&, const String& cachePath, OptionSet<CacheOption>, PAL::SessionID); 103 103 104 104 void setCapacity(size_t); … … 147 147 148 148 NetworkProcess& networkProcess() { return m_networkProcess.get(); } 149 const PAL::SessionID& sessionID() const { return m_sessionID; } 149 150 150 151 ~Cache(); 151 152 152 153 private: 153 Cache(NetworkProcess&, Ref<Storage>&&, OptionSet<CacheOption> );154 Cache(NetworkProcess&, Ref<Storage>&&, OptionSet<CacheOption>, PAL::SessionID); 154 155 155 156 Key makeCacheKey(const WebCore::ResourceRequest&); … … 171 172 172 173 unsigned m_traverseCount { 0 }; 174 PAL::SessionID m_sessionID; 173 175 }; 174 176 -
trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp
r248846 r249303 53 53 ASSERT(!m_cacheEntry || m_cacheEntry->needsValidation()); 54 54 55 NetworkLoadParameters parameters { PAL::SessionID::defaultSessionID() };55 NetworkLoadParameters parameters { cache.sessionID() }; 56 56 parameters.webPageID = globalFrameID.first; 57 57 parameters.webFrameID = globalFrameID.second; … … 60 60 parameters.contentEncodingSniffingPolicy = ContentEncodingSniffingPolicy::Sniff; 61 61 parameters.request = m_originalRequest; 62 m_networkLoad = makeUnique<NetworkLoad>(*this, nullptr, WTFMove(parameters), *cache.networkProcess().networkSession( PAL::SessionID::defaultSessionID()));62 m_networkLoad = makeUnique<NetworkLoad>(*this, nullptr, WTFMove(parameters), *cache.networkProcess().networkSession(cache.sessionID())); 63 63 } 64 64 … … 74 74 Optional<Seconds> maxAgeCap; 75 75 #if ENABLE(RESOURCE_LOAD_STATISTICS) 76 if (auto* networkStorageSession = m_cache->networkProcess().storageSession( PAL::SessionID::defaultSessionID()))76 if (auto* networkStorageSession = m_cache->networkProcess().storageSession(m_cache->sessionID())) 77 77 maxAgeCap = networkStorageSession->maxAgeCacheCap(request); 78 78 #endif
Note: See TracChangeset
for help on using the changeset viewer.