Changeset 185529 in webkit
- Timestamp:
- Jun 12, 2015, 6:40:57 PM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
Shared/SecurityOriginData.h (modified) (1 diff)
-
UIProcess/API/C/WKContext.cpp (modified) (1 diff)
-
UIProcess/API/C/WKResourceCacheManager.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r185527 r185529 1 2015-06-12 Anders Carlsson <andersca@apple.com> 2 3 Reimplement WKResourceCacheManagerRef on top of WKWebsiteDataStoreRef 4 https://bugs.webkit.org/show_bug.cgi?id=145951 5 6 Reviewed by Darin Adler. 7 8 * UIProcess/API/C/WKContext.cpp: 9 (WKContextGetResourceCacheManager): 10 * UIProcess/API/C/WKResourceCacheManager.cpp: 11 (WKResourceCacheManagerGetTypeID): 12 (toWebsiteDataTypes): 13 (WKResourceCacheManagerGetCacheOrigins): 14 (WKResourceCacheManagerClearCacheForOrigin): 15 (WKResourceCacheManagerClearCacheForAllOrigins): 16 1 17 2015-06-12 Anders Carlsson <andersca@apple.com> 2 18 -
trunk/Source/WebKit2/Shared/SecurityOriginData.h
r180568 r185529 1 /*1 /* 2 2 * Copyright (C) 2011 Apple Inc. All rights reserved. 3 3 * -
trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp
r185527 r185529 473 473 } 474 474 475 WKResourceCacheManagerRef WKContextGetResourceCacheManager(WKContextRef context Ref)476 { 477 return toAPI(toImpl(contextRef)->supplement<WebResourceCacheManagerProxy>());475 WKResourceCacheManagerRef WKContextGetResourceCacheManager(WKContextRef context) 476 { 477 return reinterpret_cast<WKResourceCacheManagerRef>(WKContextGetWebsiteDataStore(context)); 478 478 } 479 479 -
trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp
r170000 r185529 27 27 #include "WKResourceCacheManager.h" 28 28 29 #include " WebResourceCacheManagerProxy.h"29 #include "APIWebsiteDataStore.h" 30 30 #include "WKAPICast.h" 31 #include "WebsiteDataRecord.h" 31 32 32 33 using namespace WebKit; … … 34 35 WKTypeID WKResourceCacheManagerGetTypeID() 35 36 { 36 return toAPI( WebResourceCacheManagerProxy::APIType);37 return toAPI(API::WebsiteDataStore::APIType); 37 38 } 38 39 39 void WKResourceCacheManagerGetCacheOrigins(WKResourceCacheManagerRef cacheManagerRef, void* context, WKResourceCacheManagerGetCacheOriginsFunction callback)40 static WebsiteDataTypes toWebsiteDataTypes(WKResourceCachesToClear cachesToClear) 40 41 { 41 toImpl(cacheManagerRef)->getCacheOrigins(toGenericCallbackFunction(context, callback)); 42 using WebsiteDataTypes = WebKit::WebsiteDataTypes; 43 44 int websiteDataTypes = WebsiteDataTypeMemoryCache; 45 46 if (cachesToClear == WKResourceCachesToClearAll) 47 websiteDataTypes |= WebsiteDataTypeDiskCache; 48 49 return static_cast<WebsiteDataTypes>(websiteDataTypes); 42 50 } 43 51 44 void WKResourceCacheManager ClearCacheForOrigin(WKResourceCacheManagerRef cacheManagerRef, WKSecurityOriginRef originRef, WKResourceCachesToClear cachesToClear)52 void WKResourceCacheManagerGetCacheOrigins(WKResourceCacheManagerRef cacheManager, void* context, WKResourceCacheManagerGetCacheOriginsFunction callback) 45 53 { 46 toImpl(cacheManagerRef)->clearCacheForOrigin(toImpl(originRef), toResourceCachesToClear(cachesToClear)); 54 auto& websiteDataStore = toImpl(reinterpret_cast<WKWebsiteDataStoreRef>(cacheManager))->websiteDataStore(); 55 websiteDataStore.fetchData(toWebsiteDataTypes(WKResourceCachesToClearAll), [context, callback](Vector<WebsiteDataRecord> dataRecords) { 56 Vector<RefPtr<API::Object>> securityOrigins; 57 for (const auto& dataRecord : dataRecords) { 58 for (const auto& origin : dataRecord.origins) 59 securityOrigins.append(API::SecurityOrigin::create(origin)); 60 } 61 62 callback(toAPI(API::Array::create(WTF::move(securityOrigins)).ptr()), nullptr, context); 63 }); 47 64 } 48 65 49 void WKResourceCacheManagerClearCacheFor AllOrigins(WKResourceCacheManagerRef cacheManagerRef, WKResourceCachesToClear cachesToClear)66 void WKResourceCacheManagerClearCacheForOrigin(WKResourceCacheManagerRef cacheManager, WKSecurityOriginRef origin, WKResourceCachesToClear cachesToClear) 50 67 { 51 toImpl(cacheManagerRef)->clearCacheForAllOrigins(toResourceCachesToClear(cachesToClear)); 68 auto& websiteDataStore = toImpl(reinterpret_cast<WKWebsiteDataStoreRef>(cacheManager))->websiteDataStore(); 69 70 Vector<WebsiteDataRecord> dataRecords; 71 72 { 73 WebsiteDataRecord dataRecord; 74 dataRecord.add(WebsiteDataTypes::WebsiteDataTypeMemoryCache, &toImpl(origin)->securityOrigin()); 75 76 dataRecords.append(dataRecord); 77 } 78 79 if (cachesToClear == WKResourceCachesToClearAll) { 80 WebsiteDataRecord dataRecord; 81 dataRecord.add(WebsiteDataTypes::WebsiteDataTypeDiskCache, &toImpl(origin)->securityOrigin()); 82 83 dataRecords.append(dataRecord); 84 } 85 86 websiteDataStore.removeData(toWebsiteDataTypes(cachesToClear), dataRecords, [] { }); 52 87 } 88 89 void WKResourceCacheManagerClearCacheForAllOrigins(WKResourceCacheManagerRef cacheManager, WKResourceCachesToClear cachesToClear) 90 { 91 auto& websiteDataStore = toImpl(reinterpret_cast<WKWebsiteDataStoreRef>(cacheManager))->websiteDataStore(); 92 websiteDataStore.removeData(toWebsiteDataTypes(cachesToClear), std::chrono::system_clock::time_point::min(), [] { }); 93 }
Note:
See TracChangeset
for help on using the changeset viewer.