Title: [185457] trunk/Source/WebKit2
Revision
185457
Author
[email protected]
Date
2015-06-11 10:01:46 -0700 (Thu, 11 Jun 2015)

Log Message

Rewrite WKPluginSiteDataManager using WebsiteDataStore functions
https://bugs.webkit.org/show_bug.cgi?id=145868

Reviewed by Antti Koivisto.

* UIProcess/API/C/WKPluginSiteDataManager.cpp:
(WKPluginSiteDataManagerGetSitesWithData):
(WKPluginSiteDataManagerClearSiteData):
(WKPluginSiteDataManagerClearAllSiteData):
(toNPClearSiteDataFlags): Deleted.
* UIProcess/Plugins/WebPluginSiteDataManager.h:
(WebKit::WebPluginSiteDataManager::processPool):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (185456 => 185457)


--- trunk/Source/WebKit2/ChangeLog	2015-06-11 16:00:40 UTC (rev 185456)
+++ trunk/Source/WebKit2/ChangeLog	2015-06-11 17:01:46 UTC (rev 185457)
@@ -1,3 +1,18 @@
+2015-06-10  Anders Carlsson  <[email protected]>
+
+        Rewrite WKPluginSiteDataManager using WebsiteDataStore functions
+        https://bugs.webkit.org/show_bug.cgi?id=145868
+
+        Reviewed by Antti Koivisto.
+
+        * UIProcess/API/C/WKPluginSiteDataManager.cpp:
+        (WKPluginSiteDataManagerGetSitesWithData):
+        (WKPluginSiteDataManagerClearSiteData):
+        (WKPluginSiteDataManagerClearAllSiteData):
+        (toNPClearSiteDataFlags): Deleted.
+        * UIProcess/Plugins/WebPluginSiteDataManager.h:
+        (WebKit::WebPluginSiteDataManager::processPool):
+
 2015-06-11  Antti Koivisto  <[email protected]>
 
         3% cold PLT regression from network cache on iOS

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp (185456 => 185457)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp	2015-06-11 16:00:40 UTC (rev 185456)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp	2015-06-11 17:01:46 UTC (rev 185457)
@@ -29,14 +29,9 @@
 #include "APIObject.h"
 #include "WKAPICast.h"
 #include "WebPluginSiteDataManager.h"
+#include "WebProcessPool.h"
+#include "WebsiteDataRecord.h"
 
-#if ENABLE(NETSCAPE_PLUGIN_API)
-#include <WebCore/npapi.h>
-#if defined(MOZ_X11)
-#undef None
-#endif
-#endif
-
 using namespace WebKit;
 
 WKTypeID WKPluginSiteDataManagerGetTypeID()
@@ -48,55 +43,61 @@
 #endif
 }
 
-void WKPluginSiteDataManagerGetSitesWithData(WKPluginSiteDataManagerRef managerRef, void* context, WKPluginSiteDataManagerGetSitesWithDataFunction callback)
+void WKPluginSiteDataManagerGetSitesWithData(WKPluginSiteDataManagerRef manager, void* context, WKPluginSiteDataManagerGetSitesWithDataFunction callback)
 {
 #if ENABLE(NETSCAPE_PLUGIN_API)
-    toImpl(managerRef)->getSitesWithData(toGenericCallbackFunction(context, callback));
+    auto& websiteDataStore = toImpl(manager)->processPool().websiteDataStore()->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
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    WebsiteDataRecord dataRecord;
+    for (const auto& string : toImpl(sites)->elementsOfType<API::String>())
+        dataRecord.pluginDataHostNames.add(string->string());
 
-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, [context, function](CallbackBase::Error error) {
-        function(error == CallbackBase::Error::None ? nullptr : toAPI(API::Error::create().ptr()), context);
+    auto& websiteDataStore = toImpl(manager)->processPool().websiteDataStore()->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(), [context, function](CallbackBase::Error error) {
-        function(error == CallbackBase::Error::None ? nullptr : toAPI(API::Error::create().ptr()), context);
+    auto& websiteDataStore = toImpl(manager)->processPool().websiteDataStore()->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
 }

Modified: trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h (185456 => 185457)


--- trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h	2015-06-11 16:00:40 UTC (rev 185456)
+++ trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h	2015-06-11 17:01:46 UTC (rev 185457)
@@ -47,6 +47,8 @@
     static PassRefPtr<WebPluginSiteDataManager> create(WebProcessPool*);
     virtual ~WebPluginSiteDataManager();
 
+    WebProcessPool& processPool() { return *m_processPool; }
+
     void invalidate();
     void clearProcessPool() { m_processPool = nullptr; }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to