Changeset 185262 in webkit
- Timestamp:
- Jun 5, 2015 2:31:27 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r185261 r185262 1 2015-06-05 Anders Carlsson <andersca@apple.com> 2 3 Make the network cache directory part of WKContextConfigurationRef 4 https://bugs.webkit.org/show_bug.cgi?id=145711 5 6 Reviewed by Antti Koivisto. 7 8 Also, make the UI process be in control of where we place the new network cache. 9 When using the Modern WebKit API, put the cache in ~/Library/Caches/<Bundle ID>/WebKit/NetworkCache, 10 and put the cache in ~/Library/Caches/<Bundle ID>/WebKitCache otherwise (this is just for Safari). 11 12 * NetworkProcess/cache/NetworkCacheStorage.cpp: 13 (WebKit::NetworkCache::Storage::open): 14 * UIProcess/API/APIProcessPoolConfiguration.cpp: 15 (API::ProcessPoolConfiguration::createWithLegacyOptions): 16 (API::ProcessPoolConfiguration::ProcessPoolConfiguration): 17 (API::ProcessPoolConfiguration::copy): 18 * UIProcess/API/APIProcessPoolConfiguration.h: 19 * UIProcess/API/C/WKContext.cpp: 20 (WKContextSetDiskCacheDirectory): Deleted. 21 * UIProcess/API/C/WKContextConfigurationRef.cpp: 22 (WKContextConfigurationCopyDiskCacheDirectory): 23 (WKContextConfigurationSetDiskCacheDirectory): 24 * UIProcess/API/C/WKContextConfigurationRef.h: 25 * UIProcess/API/C/WKContextPrivate.h: 26 * UIProcess/Cocoa/WebProcessPoolCocoa.mm: 27 (WebKit::WebProcessPool::platformInitializeNetworkProcess): 28 (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): 29 (WebKit::WebProcessPool::isNetworkCacheEnabled): 30 (WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted. 31 * UIProcess/WebProcessPool.cpp: 32 (WebKit::legacyWebsiteDataStoreConfiguration): 33 (WebKit::WebProcessPool::WebProcessPool): 34 (WebKit::WebProcessPool::ensureNetworkProcess): 35 (WebKit::WebProcessPool::diskCacheDirectory): Deleted. 36 * UIProcess/WebProcessPool.h: 37 1 38 2015-06-05 Anders Carlsson <andersca@apple.com> 2 39 -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp
r185251 r185262 42 42 namespace NetworkCache { 43 43 44 static const char networkCacheSubdirectory[] = "WebKitCache";45 44 static const char versionDirectoryPrefix[] = "Version "; 46 45 static const char recordsDirectoryName[] = "Records"; … … 80 79 ASSERT(RunLoop::isMain()); 81 80 82 String networkCachePath = WebCore::pathByAppendingComponent(cachePath, networkCacheSubdirectory); 83 84 if (!WebCore::makeAllDirectories(networkCachePath)) 81 if (!WebCore::makeAllDirectories(cachePath)) 85 82 return nullptr; 86 return std::unique_ptr<Storage>(new Storage( networkCachePath));83 return std::unique_ptr<Storage>(new Storage(cachePath)); 87 84 } 88 85 -
trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp
r185261 r185262 47 47 48 48 configuration->m_applicationCacheDirectory = WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory(); 49 configuration->m_diskCacheDirectory = WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory(); 49 50 configuration->m_indexedDBDatabaseDirectory = WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory(); 50 51 configuration->m_localStorageDirectory = WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory(); … … 57 58 ProcessPoolConfiguration::ProcessPoolConfiguration() 58 59 : m_applicationCacheDirectory(WebsiteDataStore::defaultApplicationCacheDirectory()) 60 , m_diskCacheDirectory(WebsiteDataStore::defaultNetworkCacheDirectory()) 59 61 , m_indexedDBDatabaseDirectory(WebsiteDataStore::defaultIndexedDBDatabaseDirectory()) 60 62 , m_localStorageDirectory(WebsiteDataStore::defaultLocalStorageDirectory()) … … 79 81 copy->m_diskCacheSizeOverride = this->m_diskCacheSizeOverride; 80 82 copy->m_applicationCacheDirectory = this->m_applicationCacheDirectory; 83 copy->m_diskCacheDirectory = this->m_diskCacheDirectory; 81 84 copy->m_indexedDBDatabaseDirectory = this->m_indexedDBDatabaseDirectory; 82 85 copy->m_injectedBundlePath = this->m_injectedBundlePath; -
trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h
r185261 r185262 67 67 void setApplicationCacheDirectory(const WTF::String& applicationCacheDirectory) { m_applicationCacheDirectory = applicationCacheDirectory; } 68 68 69 WTF::String diskCacheDirectory() const { return m_diskCacheDirectory; } 70 void setDiskCacheDirectory(const WTF::String& diskCacheDirectory) { m_diskCacheDirectory = diskCacheDirectory; } 71 69 72 WTF::String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; } 70 73 void setIndexedDBDatabaseDirectory(const WTF::String& indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; } … … 95 98 96 99 WTF::String m_applicationCacheDirectory; 100 WTF::String m_diskCacheDirectory; 97 101 WTF::String m_indexedDBDatabaseDirectory; 98 102 WTF::String m_injectedBundlePath; -
trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp
r185261 r185262 505 505 } 506 506 507 WK_EXPORT void WKContextSetDiskCacheDirectory(WKContextRef contextRef, WKStringRef diskCacheDirectory)508 {509 toImpl(contextRef)->setDiskCacheDirectory(toImpl(diskCacheDirectory)->string());510 }511 512 507 WK_EXPORT void WKContextSetCookieStorageDirectory(WKContextRef contextRef, WKStringRef cookieStorageDirectory) 513 508 { -
trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp
r185261 r185262 41 41 42 42 return toAPI(&configuration.leakRef()); 43 } 44 45 WKStringRef WKContextConfigurationCopyDiskCacheDirectory(WKContextConfigurationRef configuration) 46 { 47 return toCopiedAPI(toImpl(configuration)->diskCacheDirectory()); 48 } 49 50 void WKContextConfigurationSetDiskCacheDirectory(WKContextConfigurationRef configuration, WKStringRef diskCacheDirectory) 51 { 52 toImpl(configuration)->setDiskCacheDirectory(toImpl(diskCacheDirectory)->string()); 43 53 } 44 54 -
trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.h
r185261 r185262 38 38 WK_EXPORT void WKContextConfigurationSetApplicationCacheDirectory(WKContextConfigurationRef configuration, WKStringRef applicationCacheDirectory); 39 39 40 WK_EXPORT WKStringRef WKContextConfigurationCopyDiskCacheDirectory(WKContextConfigurationRef configuration); 41 WK_EXPORT void WKContextConfigurationSetDiskCacheDirectory(WKContextConfigurationRef configuration, WKStringRef diskCacheDirectory); 42 40 43 WK_EXPORT WKStringRef WKContextConfigurationCopyIndexedDBDatabaseDirectory(WKContextConfigurationRef configuration); 41 44 WK_EXPORT void WKContextConfigurationSetIndexedDBDatabaseDirectory(WKContextConfigurationRef configuration, WKStringRef indexedDBDatabaseDirectory); -
trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h
r185261 r185262 65 65 WK_EXPORT void WKContextAllowSpecificHTTPSCertificateForHost(WKContextRef context, WKCertificateInfoRef certificate, WKStringRef host); 66 66 67 WK_EXPORT void WKContextSetDiskCacheDirectory(WKContextRef context, WKStringRef diskCacheDirectory);68 67 WK_EXPORT void WKContextSetCookieStorageDirectory(WKContextRef context, WKStringRef cookieStorageDirectory); 69 68 -
trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm
r185251 r185262 253 253 254 254 #if ENABLE(NETWORK_CACHE) 255 bool networkCacheEnabledByDefaults = [defaults boolForKey:WebKitNetworkCacheEnabledDefaultsKey] && ![defaults boolForKey:WebKitNetworkCacheTemporarilyDisabledForTestingKey]; 256 parameters.shouldEnableNetworkCache = networkCacheEnabledByDefaults && linkedOnOrAfter(LibraryVersion::FirstWithNetworkCache); 255 parameters.shouldEnableNetworkCache = isNetworkCacheEnabled(); 257 256 parameters.shouldEnableNetworkCacheEfficacyLogging = [defaults boolForKey:WebKitNetworkCacheEfficacyLoggingEnabledDefaultsKey]; 258 257 #endif … … 269 268 { 270 269 unregisterNotificationObservers(); 271 }272 273 String WebProcessPool::platformDefaultDiskCacheDirectory() const274 {275 RetainPtr<NSString> cachePath = adoptNS((NSString *)WKCopyFoundationCacheDirectory());276 if (!cachePath)277 cachePath = @"~/Library/Caches/com.apple.WebKit.WebProcess";278 return stringByResolvingSymlinksInPath([cachePath stringByStandardizingPath]);279 270 } 280 271 … … 389 380 NSString* cachePath = [cacheDir stringByAppendingPathComponent:appName]; 390 381 return stringByResolvingSymlinksInPath([cachePath stringByStandardizingPath]); 382 } 383 384 String WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory() 385 { 386 RetainPtr<NSString> cachePath = adoptNS((NSString *)WKCopyFoundationCacheDirectory()); 387 if (!cachePath) 388 cachePath = @"~/Library/Caches/com.apple.WebKit.WebProcess"; 389 390 #if ENABLE(NETWORK_CACHE) 391 if (isNetworkCacheEnabled()) 392 cachePath = [cachePath stringByAppendingPathComponent:@"WebKitCache"]; 393 #endif 394 395 return stringByResolvingSymlinksInPath([cachePath stringByStandardizingPath]); 396 } 397 398 bool WebProcessPool::isNetworkCacheEnabled() 399 { 400 #if ENABLE(NETWORK_CACHE) 401 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 402 403 bool networkCacheEnabledByDefaults = [defaults boolForKey:WebKitNetworkCacheEnabledDefaultsKey] && ![defaults boolForKey:WebKitNetworkCacheTemporarilyDisabledForTestingKey]; 404 405 return networkCacheEnabledByDefaults && linkedOnOrAfter(LibraryVersion::FirstWithNetworkCache); 406 #else 407 return false; 408 #endif 391 409 } 392 410 -
trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp
r185261 r185262 139 139 configuration.applicationCacheDirectory = WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory(); 140 140 configuration.mediaKeysStorageDirectory = WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory(); 141 configuration.networkCacheDirectory = WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory(); 141 142 142 143 return configuration; … … 167 168 #endif 168 169 , m_applicationCacheDirectory(configuration.applicationCacheDirectory()) 170 , m_diskCacheDirectory(configuration.diskCacheDirectory()) 169 171 , m_indexedDBDatabaseDirectory(configuration.indexedDBDatabaseDirectory()) 170 172 , m_mediaKeysStorageDirectory(configuration.mediaKeysStorageDirectory()) … … 417 419 parameters.canHandleHTTPSServerTrustEvaluation = m_canHandleHTTPSServerTrustEvaluation; 418 420 419 parameters.diskCacheDirectory = stringByResolvingSymlinksInPath(diskCacheDirectory());421 parameters.diskCacheDirectory = m_diskCacheDirectory; 420 422 if (!parameters.diskCacheDirectory.isEmpty()) 421 423 SandboxExtension::createHandleForReadWriteDirectory(parameters.diskCacheDirectory, parameters.diskCacheDirectoryExtensionHandle); … … 1183 1185 } 1184 1186 1185 String WebProcessPool::diskCacheDirectory() const1186 {1187 if (!m_overrideDiskCacheDirectory.isEmpty())1188 return m_overrideDiskCacheDirectory;1189 1190 return platformDefaultDiskCacheDirectory();1191 }1192 1193 1187 #if ENABLE(SECCOMP_FILTERS) 1194 1188 String WebProcessPool::cookieStorageDirectory() const -
trunk/Source/WebKit2/UIProcess/WebProcessPool.h
r185261 r185262 246 246 void setIconDatabasePath(const String&); 247 247 String iconDatabasePath() const; 248 void setDiskCacheDirectory(const String& dir) { m_overrideDiskCacheDirectory = dir; }249 248 void setCookieStorageDirectory(const String& dir) { m_overrideCookieStorageDirectory = dir; } 250 249 … … 365 364 static String legacyPlatformDefaultMediaKeysStorageDirectory(); 366 365 static String legacyPlatformDefaultApplicationCacheDirectory(); 366 static String legacyPlatformDefaultNetworkCacheDirectory(); 367 static bool isNetworkCacheEnabled(); 367 368 368 369 private: … … 395 396 396 397 String platformDefaultIconDatabasePath() const; 397 398 String diskCacheDirectory() const;399 String platformDefaultDiskCacheDirectory() const;400 398 401 399 #if PLATFORM(IOS) || ENABLE(SECCOMP_FILTERS) … … 506 504 507 505 String m_overrideIconDatabasePath; 508 String m_overrideDiskCacheDirectory;509 506 String m_overrideCookieStorageDirectory; 510 507 511 508 String m_applicationCacheDirectory; 509 String m_diskCacheDirectory; 512 510 String m_indexedDBDatabaseDirectory; 513 511 String m_mediaKeysStorageDirectory; -
trunk/Tools/ChangeLog
r185261 r185262 1 2015-06-05 Anders Carlsson <andersca@apple.com> 2 3 Make the network cache directory part of WKContextConfigurationRef 4 https://bugs.webkit.org/show_bug.cgi?id=145711 5 6 Reviewed by Antti Koivisto. 7 8 * WebKitTestRunner/TestController.cpp: 9 (WTR::TestController::initialize): 10 1 11 2015-06-05 Anders Carlsson <andersca@apple.com> 2 12 -
trunk/Tools/WebKitTestRunner/TestController.cpp
r185261 r185262 360 360 361 361 WKContextConfigurationSetApplicationCacheDirectory(configuration.get(), toWK(temporaryFolder + separator + "ApplicationCache").get()); 362 WKContextConfigurationSetDiskCacheDirectory(configuration.get(), toWK(temporaryFolder + separator + "Cache").get()); 362 363 WKContextConfigurationSetIndexedDBDatabaseDirectory(configuration.get(), toWK(temporaryFolder + separator + "Databases" + separator + "IndexedDB").get()); 363 364 WKContextConfigurationSetLocalStorageDirectory(configuration.get(), toWK(temporaryFolder + separator + "LocalStorage").get()); … … 377 378 String temporaryFolder = String::fromUTF8(dumpRenderTreeTemp); 378 379 379 const char separator = '/';380 381 380 // FIXME: This should be migrated to WKContextConfigurationRef. 382 WKContextSetDiskCacheDirectory(m_context.get(), toWK(temporaryFolder + separator + "Cache").get());383 381 // Disable icon database to avoid fetching <http://127.0.0.1:8000/favicon.ico> and making tests flaky. 384 382 // Invividual tests can enable it using testRunner.setIconDatabaseEnabled, although it's not currently supported in WebKitTestRunner.
Note: See TracChangeset
for help on using the changeset viewer.