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 {