Title: [185529] trunk/Source/WebKit2
- Revision
- 185529
- Author
- [email protected]
- Date
- 2015-06-12 18:40:57 -0700 (Fri, 12 Jun 2015)
Log Message
Reimplement WKResourceCacheManagerRef on top of WKWebsiteDataStoreRef
https://bugs.webkit.org/show_bug.cgi?id=145951
Reviewed by Darin Adler.
* UIProcess/API/C/WKContext.cpp:
(WKContextGetResourceCacheManager):
* UIProcess/API/C/WKResourceCacheManager.cpp:
(WKResourceCacheManagerGetTypeID):
(toWebsiteDataTypes):
(WKResourceCacheManagerGetCacheOrigins):
(WKResourceCacheManagerClearCacheForOrigin):
(WKResourceCacheManagerClearCacheForAllOrigins):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (185528 => 185529)
--- trunk/Source/WebKit2/ChangeLog 2015-06-13 01:35:08 UTC (rev 185528)
+++ trunk/Source/WebKit2/ChangeLog 2015-06-13 01:40:57 UTC (rev 185529)
@@ -1,5 +1,21 @@
2015-06-12 Anders Carlsson <[email protected]>
+ Reimplement WKResourceCacheManagerRef on top of WKWebsiteDataStoreRef
+ https://bugs.webkit.org/show_bug.cgi?id=145951
+
+ Reviewed by Darin Adler.
+
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextGetResourceCacheManager):
+ * UIProcess/API/C/WKResourceCacheManager.cpp:
+ (WKResourceCacheManagerGetTypeID):
+ (toWebsiteDataTypes):
+ (WKResourceCacheManagerGetCacheOrigins):
+ (WKResourceCacheManagerClearCacheForOrigin):
+ (WKResourceCacheManagerClearCacheForAllOrigins):
+
+2015-06-12 Anders Carlsson <[email protected]>
+
Reimplement WKApplicationCacheManagerRef as WKWebsiteDataStoreRef
https://bugs.webkit.org/show_bug.cgi?id=145950
Modified: trunk/Source/WebKit2/Shared/SecurityOriginData.h (185528 => 185529)
--- trunk/Source/WebKit2/Shared/SecurityOriginData.h 2015-06-13 01:35:08 UTC (rev 185528)
+++ trunk/Source/WebKit2/Shared/SecurityOriginData.h 2015-06-13 01:40:57 UTC (rev 185529)
@@ -1,4 +1,4 @@
-/*
+ /*
* Copyright (C) 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (185528 => 185529)
--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2015-06-13 01:35:08 UTC (rev 185528)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2015-06-13 01:40:57 UTC (rev 185529)
@@ -472,9 +472,9 @@
#endif
}
-WKResourceCacheManagerRef WKContextGetResourceCacheManager(WKContextRef contextRef)
+WKResourceCacheManagerRef WKContextGetResourceCacheManager(WKContextRef context)
{
- return toAPI(toImpl(contextRef)->supplement<WebResourceCacheManagerProxy>());
+ return reinterpret_cast<WKResourceCacheManagerRef>(WKContextGetWebsiteDataStore(context));
}
WKOriginDataManagerRef WKContextGetOriginDataManager(WKContextRef context)
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp (185528 => 185529)
--- trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp 2015-06-13 01:35:08 UTC (rev 185528)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp 2015-06-13 01:40:57 UTC (rev 185529)
@@ -26,27 +26,68 @@
#include "config.h"
#include "WKResourceCacheManager.h"
-#include "WebResourceCacheManagerProxy.h"
+#include "APIWebsiteDataStore.h"
#include "WKAPICast.h"
+#include "WebsiteDataRecord.h"
using namespace WebKit;
WKTypeID WKResourceCacheManagerGetTypeID()
{
- return toAPI(WebResourceCacheManagerProxy::APIType);
+ return toAPI(API::WebsiteDataStore::APIType);
}
-void WKResourceCacheManagerGetCacheOrigins(WKResourceCacheManagerRef cacheManagerRef, void* context, WKResourceCacheManagerGetCacheOriginsFunction callback)
+static WebsiteDataTypes toWebsiteDataTypes(WKResourceCachesToClear cachesToClear)
{
- toImpl(cacheManagerRef)->getCacheOrigins(toGenericCallbackFunction(context, callback));
+ using WebsiteDataTypes = WebKit::WebsiteDataTypes;
+
+ int websiteDataTypes = WebsiteDataTypeMemoryCache;
+
+ if (cachesToClear == WKResourceCachesToClearAll)
+ websiteDataTypes |= WebsiteDataTypeDiskCache;
+
+ return static_cast<WebsiteDataTypes>(websiteDataTypes);
}
-void WKResourceCacheManagerClearCacheForOrigin(WKResourceCacheManagerRef cacheManagerRef, WKSecurityOriginRef originRef, WKResourceCachesToClear cachesToClear)
+void WKResourceCacheManagerGetCacheOrigins(WKResourceCacheManagerRef cacheManager, void* context, WKResourceCacheManagerGetCacheOriginsFunction callback)
{
- toImpl(cacheManagerRef)->clearCacheForOrigin(toImpl(originRef), toResourceCachesToClear(cachesToClear));
+ auto& websiteDataStore = toImpl(reinterpret_cast<WKWebsiteDataStoreRef>(cacheManager))->websiteDataStore();
+ websiteDataStore.fetchData(toWebsiteDataTypes(WKResourceCachesToClearAll), [context, callback](Vector<WebsiteDataRecord> dataRecords) {
+ Vector<RefPtr<API::Object>> securityOrigins;
+ for (const auto& dataRecord : dataRecords) {
+ for (const auto& origin : dataRecord.origins)
+ securityOrigins.append(API::SecurityOrigin::create(origin));
+ }
+
+ callback(toAPI(API::Array::create(WTF::move(securityOrigins)).ptr()), nullptr, context);
+ });
}
-void WKResourceCacheManagerClearCacheForAllOrigins(WKResourceCacheManagerRef cacheManagerRef, WKResourceCachesToClear cachesToClear)
+void WKResourceCacheManagerClearCacheForOrigin(WKResourceCacheManagerRef cacheManager, WKSecurityOriginRef origin, WKResourceCachesToClear cachesToClear)
{
- toImpl(cacheManagerRef)->clearCacheForAllOrigins(toResourceCachesToClear(cachesToClear));
+ auto& websiteDataStore = toImpl(reinterpret_cast<WKWebsiteDataStoreRef>(cacheManager))->websiteDataStore();
+
+ Vector<WebsiteDataRecord> dataRecords;
+
+ {
+ WebsiteDataRecord dataRecord;
+ dataRecord.add(WebsiteDataTypes::WebsiteDataTypeMemoryCache, &toImpl(origin)->securityOrigin());
+
+ dataRecords.append(dataRecord);
+ }
+
+ if (cachesToClear == WKResourceCachesToClearAll) {
+ WebsiteDataRecord dataRecord;
+ dataRecord.add(WebsiteDataTypes::WebsiteDataTypeDiskCache, &toImpl(origin)->securityOrigin());
+
+ dataRecords.append(dataRecord);
+ }
+
+ websiteDataStore.removeData(toWebsiteDataTypes(cachesToClear), dataRecords, [] { });
}
+
+void WKResourceCacheManagerClearCacheForAllOrigins(WKResourceCacheManagerRef cacheManager, WKResourceCachesToClear cachesToClear)
+{
+ auto& websiteDataStore = toImpl(reinterpret_cast<WKWebsiteDataStoreRef>(cacheManager))->websiteDataStore();
+ websiteDataStore.removeData(toWebsiteDataTypes(cachesToClear), std::chrono::system_clock::time_point::min(), [] { });
+}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes