Title: [169994] trunk/Source/WebKit2
Revision
169994
Author
[email protected]
Date
2014-06-15 13:50:43 -0700 (Sun, 15 Jun 2014)

Log Message

Get rid of VoidAPICallback
https://bugs.webkit.org/show_bug.cgi?id=133928

Reviewed by Sam Weinig.

* UIProcess/API/C/WKPage.cpp:
(WKPageForceRepaint): Wrap the API callback in a generic callback here.

* UIProcess/API/C/WKPluginSiteDataManager.cpp:
(WKPluginSiteDataManagerClearSiteData): Ditto.
(WKPluginSiteDataManagerClearAllSiteData): Ditto.

* UIProcess/GenericCallback.h:
(WebKit::GenericCallback::performCallback): Added this helper for 0-argument callbacks.
(WebKit::VoidCallback::create): Deleted.
(WebKit::VoidCallback::~VoidCallback): Deleted.
(WebKit::VoidCallback::performCallback): Deleted.
(WebKit::VoidCallback::invalidate): Deleted.
(WebKit::VoidCallback::VoidCallback): Deleted.
(WebKit::VoidAPICallback::create): Deleted.

* UIProcess/mac/WKFullScreenWindowController.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (169993 => 169994)


--- trunk/Source/WebKit2/ChangeLog	2014-06-15 19:35:34 UTC (rev 169993)
+++ trunk/Source/WebKit2/ChangeLog	2014-06-15 20:50:43 UTC (rev 169994)
@@ -1,3 +1,28 @@
+2014-06-15  Dan Bernstein  <[email protected]>
+
+        Get rid of VoidAPICallback
+        https://bugs.webkit.org/show_bug.cgi?id=133928
+
+        Reviewed by Sam Weinig.
+
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageForceRepaint): Wrap the API callback in a generic callback here.
+
+        * UIProcess/API/C/WKPluginSiteDataManager.cpp:
+        (WKPluginSiteDataManagerClearSiteData): Ditto.
+        (WKPluginSiteDataManagerClearAllSiteData): Ditto.
+
+        * UIProcess/GenericCallback.h:
+        (WebKit::GenericCallback::performCallback): Added this helper for 0-argument callbacks.
+        (WebKit::VoidCallback::create): Deleted.
+        (WebKit::VoidCallback::~VoidCallback): Deleted.
+        (WebKit::VoidCallback::performCallback): Deleted.
+        (WebKit::VoidCallback::invalidate): Deleted.
+        (WebKit::VoidCallback::VoidCallback): Deleted.
+        (WebKit::VoidAPICallback::create): Deleted.
+
+        * UIProcess/mac/WKFullScreenWindowController.h:
+
 2014-06-15  Zan Dobersek  <[email protected]>
 
         Unreviewed build fix for the GTK+ port after r169990.

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (169993 => 169994)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2014-06-15 19:35:34 UTC (rev 169993)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2014-06-15 20:50:43 UTC (rev 169994)
@@ -1611,7 +1611,9 @@
 
 void WKPageForceRepaint(WKPageRef pageRef, void* context, WKPageForceRepaintFunction callback)
 {
-    toImpl(pageRef)->forceRepaint(VoidAPICallback::create(context, callback));
+    toImpl(pageRef)->forceRepaint(VoidCallback::create([context, callback](CallbackBase::Error error) {
+        callback(error == CallbackBase::Error::None ? nullptr : toAPI(API::Error::create().get()), context);
+    }));
 }
 
 WK_EXPORT WKURLRef WKPageCopyPendingAPIRequestURL(WKPageRef pageRef)

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


--- trunk/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp	2014-06-15 19:35:34 UTC (rev 169993)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp	2014-06-15 20:50:43 UTC (rev 169994)
@@ -72,7 +72,9 @@
 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, VoidAPICallback::create(context, function));
+    toImpl(managerRef)->clearSiteData(toImpl(sitesRef), toNPClearSiteDataFlags(flags), maxAgeInSeconds, VoidCallback::create([context, function](CallbackBase::Error error) {
+        function(error == CallbackBase::Error::None ? nullptr : toAPI(API::Error::create().get()), context);
+    }));
 #else
     UNUSED_PARAM(managerRef);
     UNUSED_PARAM(sitesRef);
@@ -86,7 +88,9 @@
 void WKPluginSiteDataManagerClearAllSiteData(WKPluginSiteDataManagerRef managerRef, void* context, WKPluginSiteDataManagerClearSiteDataFunction function)
 {
 #if ENABLE(NETSCAPE_PLUGIN_API)
-    toImpl(managerRef)->clearSiteData(0, NP_CLEAR_ALL, std::numeric_limits<uint64_t>::max(), VoidAPICallback::create(context, function));
+    toImpl(managerRef)->clearSiteData(0, NP_CLEAR_ALL, std::numeric_limits<uint64_t>::max(), VoidCallback::create([context, function](CallbackBase::Error error) {
+        function(error == CallbackBase::Error::None ? nullptr : toAPI(API::Error::create().get()), context);
+    }));
 #else
     UNUSED_PARAM(managerRef);
     UNUSED_PARAM(context);

Modified: trunk/Source/WebKit2/UIProcess/GenericCallback.h (169993 => 169994)


--- trunk/Source/WebKit2/UIProcess/GenericCallback.h	2014-06-15 19:35:34 UTC (rev 169993)
+++ trunk/Source/WebKit2/UIProcess/GenericCallback.h	2014-06-15 20:50:43 UTC (rev 169994)
@@ -69,61 +69,6 @@
     uint64_t m_callbackID;
 };
 
-class VoidCallback : public CallbackBase {
-public:
-    typedef std::function<void (Error)> CallbackFunction;
-
-    static PassRefPtr<VoidCallback> create(CallbackFunction callback)
-    {
-        return adoptRef(new VoidCallback(callback));
-    }
-
-    virtual ~VoidCallback()
-    {
-        ASSERT(!m_callback);
-    }
-
-    void performCallback()
-    {
-        if (!m_callback)
-            return;
-
-        m_callback(Error::None);
-
-        m_callback = nullptr;
-    }
-    
-    void invalidate(Error error)
-    {
-        if (!m_callback)
-            return;
-
-        m_callback(error);
-
-        m_callback = nullptr;
-    }
-
-private:
-    VoidCallback(CallbackFunction callback)
-        : m_callback(callback)
-    {
-    }
-
-    CallbackFunction m_callback;
-};
-
-class VoidAPICallback : public CallbackBase {
-public:
-    typedef void (*CallbackFunction)(WKErrorRef, void*);
-
-    static PassRefPtr<VoidCallback> create(void* context, CallbackFunction callback)
-    {
-        return VoidCallback::create([context, callback](Error error) {
-            callback(error != Error::None ? toAPI(API::Error::create().get()) : 0, context);
-        });
-    }
-};
-
 template<typename... T>
 class GenericCallback : public CallbackBase {
 public:
@@ -148,7 +93,12 @@
 
         m_callback = nullptr;
     }
-    
+
+    void performCallback()
+    {
+        performCallbackWithReturnValue();
+    }
+
     void invalidate(Error error = Error::Unknown)
     {
         if (!m_callback)
@@ -176,6 +126,7 @@
     };
 }
 
+typedef GenericCallback<> VoidCallback;
 typedef GenericCallback<const Vector<WebCore::IntRect>&, double> ComputedPagesCallback;
 typedef GenericCallback<const ShareableBitmap::Handle&> ImageCallback;
 

Modified: trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.h (169993 => 169994)


--- trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.h	2014-06-15 19:35:34 UTC (rev 169993)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.h	2014-06-15 20:50:43 UTC (rev 169994)
@@ -25,12 +25,12 @@
 
 #if ENABLE(FULLSCREEN_API)
 
+#import "GenericCallback.h"
 #import <wtf/OwnPtr.h>
 #import <wtf/RetainPtr.h>
 
 namespace WebKit { 
 class LayerTreeContext;
-class VoidCallback;
 }
 
 namespace WebCore {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to