diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp')
| -rw-r--r-- | Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp | 71 |
1 files changed, 37 insertions, 34 deletions
diff --git a/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp b/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp index 5ae8abf9d..1015fc4f2 100644 --- a/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp +++ b/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp @@ -28,68 +28,71 @@ #include "APIObject.h" #include "WKAPICast.h" -#include "WebPluginSiteDataManager.h" - -#if ENABLE(NETSCAPE_PLUGIN_API) -#include <WebCore/npapi.h> -#endif +#include "WebProcessPool.h" +#include "WebsiteDataRecord.h" using namespace WebKit; WKTypeID WKPluginSiteDataManagerGetTypeID() { -#if ENABLE(NETSCAPE_PLUGIN_API) - return toAPI(WebPluginSiteDataManager::APIType); -#else - return toAPI(API::Object::Type::Null); -#endif + return toAPI(API::WebsiteDataStore::APIType); } -void WKPluginSiteDataManagerGetSitesWithData(WKPluginSiteDataManagerRef managerRef, void* context, WKPluginSiteDataManagerGetSitesWithDataFunction callback) +void WKPluginSiteDataManagerGetSitesWithData(WKPluginSiteDataManagerRef manager, void* context, WKPluginSiteDataManagerGetSitesWithDataFunction callback) { #if ENABLE(NETSCAPE_PLUGIN_API) - toImpl(managerRef)->getSitesWithData(ArrayCallback::create(context, callback)); + auto& websiteDataStore = toImpl(reinterpret_cast<WKWebsiteDataStoreRef>(manager))->websiteDataStore(); + websiteDataStore.fetchData(WebsiteDataTypes::WebsiteDataTypePlugInData, [context, callback](Vector<WebsiteDataRecord> dataRecords) { + Vector<String> hostNames; + for (const auto& dataRecord : dataRecords) { + for (const auto& hostName : dataRecord.pluginDataHostNames) + hostNames.append(hostName); + } + + callback(toAPI(API::Array::createStringArray(hostNames).ptr()), nullptr, context); + }); #else - UNUSED_PARAM(managerRef); + UNUSED_PARAM(manager); UNUSED_PARAM(context); UNUSED_PARAM(callback); #endif } -#if ENABLE(NETSCAPE_PLUGIN_API) -static uint64_t toNPClearSiteDataFlags(WKClearSiteDataFlags flags) +void WKPluginSiteDataManagerClearSiteData(WKPluginSiteDataManagerRef manager, WKArrayRef sites, WKClearSiteDataFlags flags, uint64_t maxAgeInSeconds, void* context, WKPluginSiteDataManagerClearSiteDataFunction callback) { - if (flags == kWKClearSiteDataFlagsClearAll) - return NP_CLEAR_ALL; + // These are the only parameters supported. + ASSERT_UNUSED(flags, flags == kWKClearSiteDataFlagsClearAll); + ASSERT_UNUSED(maxAgeInSeconds, maxAgeInSeconds == std::numeric_limits<uint64_t>::max()); - uint64_t result = 0; - if (flags & kWKClearSiteDataFlagsClearCache) - result |= NP_CLEAR_CACHE; - return result; -} -#endif - -void WKPluginSiteDataManagerClearSiteData(WKPluginSiteDataManagerRef managerRef, WKArrayRef sitesRef, WKClearSiteDataFlags flags, uint64_t maxAgeInSeconds, void* context, WKPluginSiteDataManagerClearSiteDataFunction function) -{ #if ENABLE(NETSCAPE_PLUGIN_API) - toImpl(managerRef)->clearSiteData(toImpl(sitesRef), toNPClearSiteDataFlags(flags), maxAgeInSeconds, VoidCallback::create(context, function)); + WebsiteDataRecord dataRecord; + for (const auto& string : toImpl(sites)->elementsOfType<API::String>()) + dataRecord.pluginDataHostNames.add(string->string()); + + auto& websiteDataStore = toImpl(reinterpret_cast<WKWebsiteDataStoreRef>(manager))->websiteDataStore(); + websiteDataStore.removeData(WebsiteDataTypes::WebsiteDataTypePlugInData, { dataRecord }, [context, callback] { + callback(nullptr, context); + }); #else - UNUSED_PARAM(managerRef); - UNUSED_PARAM(sitesRef); + UNUSED_PARAM(manager); + UNUSED_PARAM(sites); UNUSED_PARAM(flags); UNUSED_PARAM(maxAgeInSeconds); UNUSED_PARAM(context); - UNUSED_PARAM(function); + UNUSED_PARAM(callback); #endif } -void WKPluginSiteDataManagerClearAllSiteData(WKPluginSiteDataManagerRef managerRef, void* context, WKPluginSiteDataManagerClearSiteDataFunction function) +void WKPluginSiteDataManagerClearAllSiteData(WKPluginSiteDataManagerRef manager, void* context, WKPluginSiteDataManagerClearSiteDataFunction callback) { #if ENABLE(NETSCAPE_PLUGIN_API) - toImpl(managerRef)->clearSiteData(0, NP_CLEAR_ALL, std::numeric_limits<uint64_t>::max(), VoidCallback::create(context, function)); + auto& websiteDataStore = toImpl(reinterpret_cast<WKWebsiteDataStoreRef>(manager))->websiteDataStore(); + websiteDataStore.removeData(WebsiteDataTypes::WebsiteDataTypePlugInData, std::chrono::system_clock::time_point::min(), [context, callback] { + callback(nullptr, context); + }); #else - UNUSED_PARAM(managerRef); + UNUSED_PARAM(manager); UNUSED_PARAM(context); - UNUSED_PARAM(function); + UNUSED_PARAM(callback); #endif } |
