Diff
Modified: trunk/Source/WebKit2/ChangeLog (169961 => 169962)
--- trunk/Source/WebKit2/ChangeLog 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/ChangeLog 2014-06-14 05:32:07 UTC (rev 169962)
@@ -1,3 +1,66 @@
+2014-06-13 Dan Bernstein <m...@apple.com>
+
+ Make GenericCallback variadic
+ https://bugs.webkit.org/show_bug.cgi?id=133897
+
+ Reviewed by Sam Weinig.
+
+ Also eliminated legacy callback functions and all CallbackBase derived classes outside of
+ GenericCallback.h.
+
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageValidateCommand): Changed legacy callback (with leading bool parameter) into modern
+ callback (with trailing error parameter).
+ (WKPageComputePagesForPrinting): Ditto.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _getWebArchiveDataWithCompletionHandler:]): Ditto.
+ (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Ditto.
+
+ * UIProcess/API/Cocoa/_WKThumbnailView.mm:
+ (-[_WKThumbnailView _requestSnapshotIfNeeded]): Ditto.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView validateUserInterfaceItem:]): Ditto.
+ (-[WKView startSpeaking:]): Ditto.
+
+ * UIProcess/AutoCorrectionCallback.h: Replaced CallbackBase derived classes with
+ GenericCallback specializations.
+
+ * UIProcess/GenericCallback.h:
+ - Made GenericCallback variadic:
+ (WebKit::GenericCallback::performCallbackWithReturnValue):
+ (WebKit::GenericCallback::invalidate):
+ (WebKit::GenericAPICallback::create):
+
+ - Replaced CallbackBase derived classes with GenericCallback specializations:
+ (WebKit::GenericCallback::create): Deleted.
+ (WebKit::ComputedPagesCallback::create): Deleted.
+ (WebKit::ComputedPagesCallback::~ComputedPagesCallback): Deleted.
+ (WebKit::ComputedPagesCallback::performCallbackWithReturnValue): Deleted.
+ (WebKit::ComputedPagesCallback::invalidate): Deleted.
+ (WebKit::ComputedPagesCallback::ComputedPagesCallback): Deleted.
+ (WebKit::ImageCallback::create): Deleted.
+ (WebKit::ImageCallback::~ImageCallback): Deleted.
+ (WebKit::ImageCallback::performCallbackWithReturnValue): Deleted.
+ (WebKit::ImageCallback::invalidate): Deleted.
+ (WebKit::ImageCallback::ImageCallback): Deleted.
+
+ * UIProcess/WebPageProxy.h: Replaced CallbackBase derived classes with GenericCallback
+ specializations.
+
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]): Changed
+ legacy callback (with leading bool parameter) into modern callback (with trailing error
+ parameter).
+ (-[WKContentView requestDictationContext:]): Ditto.
+ (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]): Ditto.
+
+ * UIProcess/mac/WKPrintingView.mm:
+ (-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): Ditto.
+ (-[WKPrintingView _askPageToComputePageRects]): Ditto.
+ (-[WKPrintingView _drawPreview:]): Ditto.
+
2014-06-13 Tim Horton <timothy_hor...@apple.com>
Unreviewed; fix the build.
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (169961 => 169962)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp 2014-06-14 05:32:07 UTC (rev 169962)
@@ -1657,8 +1657,8 @@
void WKPageValidateCommand(WKPageRef pageRef, WKStringRef command, void* context, WKPageValidateCommandCallback callback)
{
- toImpl(pageRef)->validateCommand(toImpl(command)->string(), ValidateCommandCallback::create([context, callback](bool error, StringImpl* commandName, bool isEnabled, int32_t state) {
- callback(toAPI(commandName), isEnabled, state, error ? toAPI(API::Error::create().get()) : 0, context);
+ toImpl(pageRef)->validateCommand(toImpl(command)->string(), ValidateCommandCallback::create([context, callback](StringImpl* commandName, bool isEnabled, int32_t state, CallbackBase::Error error) {
+ callback(toAPI(commandName), isEnabled, state, error != CallbackBase::Error::None ? toAPI(API::Error::create().get()) : 0, context);
}));
}
@@ -1679,11 +1679,11 @@
void WKPageComputePagesForPrinting(WKPageRef page, WKFrameRef frame, WKPrintInfo printInfo, WKPageComputePagesForPrintingFunction callback, void* context)
{
- toImpl(page)->computePagesForPrinting(toImpl(frame), printInfoFromWKPrintInfo(printInfo), ComputedPagesCallback::create([context, callback](bool error, const Vector<WebCore::IntRect>& rects, double scaleFactor) {
+ toImpl(page)->computePagesForPrinting(toImpl(frame), printInfoFromWKPrintInfo(printInfo), ComputedPagesCallback::create([context, callback](const Vector<WebCore::IntRect>& rects, double scaleFactor, CallbackBase::Error error) {
Vector<WKRect> wkRects(rects.size());
for (size_t i = 0; i < rects.size(); ++i)
wkRects[i] = toAPI(rects[i]);
- callback(wkRects.data(), wkRects.size(), scaleFactor, error ? toAPI(API::Error::create().get()) : 0, context);
+ callback(wkRects.data(), wkRects.size(), scaleFactor, error != CallbackBase::Error::None ? toAPI(API::Error::create().get()) : 0, context);
}));
}
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (169961 => 169962)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2014-06-14 05:32:07 UTC (rev 169962)
@@ -1520,9 +1520,9 @@
{
auto handler = adoptNS([completionHandler copy]);
- _page->getWebArchiveOfFrame(_page->mainFrame(), WebKit::DataCallback::create([handler](bool isError, API::Data* data) {
+ _page->getWebArchiveOfFrame(_page->mainFrame(), WebKit::DataCallback::create([handler](API::Data* data, WebKit::CallbackBase::Error error) {
void (^completionHandlerBlock)(NSData *, NSError *) = (void (^)(NSData *, NSError *))handler.get();
- if (isError) {
+ if (error != WebKit::CallbackBase::Error::None) {
// FIXME: Pipe a proper error in from the WebPageProxy.
RetainPtr<NSError> error = adoptNS([[NSError alloc] init]);
completionHandlerBlock(nil, error.get());
@@ -2030,7 +2030,7 @@
#endif
void(^copiedCompletionHandler)(CGImageRef) = [completionHandler copy];
- _page->takeSnapshot(WebCore::enclosingIntRect(snapshotRectInContentCoordinates), WebCore::expandedIntSize(WebCore::FloatSize(imageSize)), WebKit::SnapshotOptionsExcludeDeviceScaleFactor, [=](bool, const WebKit::ShareableBitmap::Handle& imageHandle) {
+ _page->takeSnapshot(WebCore::enclosingIntRect(snapshotRectInContentCoordinates), WebCore::expandedIntSize(WebCore::FloatSize(imageSize)), WebKit::SnapshotOptionsExcludeDeviceScaleFactor, [=](const WebKit::ShareableBitmap::Handle& imageHandle, CallbackBase::Error) {
#if PLATFORM(IOS)
// Automatically delete when this goes out of scope.
auto uniqueActivityToken = std::unique_ptr<WebKit::ProcessThrottler::BackgroundActivityToken>(activityToken);
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKThumbnailView.mm (169961 => 169962)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKThumbnailView.mm 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKThumbnailView.mm 2014-06-14 05:32:07 UTC (rev 169962)
@@ -129,7 +129,7 @@
IntSize bitmapSize = snapshotRect.size();
bitmapSize.scale(_scale * _webPageProxy->deviceScaleFactor());
_lastSnapshotScale = _scale;
- _webPageProxy->takeSnapshot(snapshotRect, bitmapSize, options, [thumbnailView](bool, const ShareableBitmap::Handle& imageHandle) {
+ _webPageProxy->takeSnapshot(snapshotRect, bitmapSize, options, [thumbnailView](const ShareableBitmap::Handle& imageHandle, CallbackBase::Error) {
RefPtr<ShareableBitmap> bitmap = ShareableBitmap::create(imageHandle, SharedMemory::ReadOnly);
RetainPtr<CGImageRef> cgImage = bitmap ? bitmap->makeCGImage() : nullptr;
[thumbnailView _didTakeSnapshot:cgImage.get()];
Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (169961 => 169962)
--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2014-06-14 05:32:07 UTC (rev 169962)
@@ -835,9 +835,9 @@
// If we are not already awaiting validation for this command, start the asynchronous validation process.
// FIXME: Theoretically, there is a race here; when we get the answer it might be old, from a previous time
// we asked for the same command; there is no guarantee the answer is still valid.
- _data->_page->validateCommand(commandName, ValidateCommandCallback::create([self](bool error, StringImpl* commandName, bool isEnabled, int32_t state) {
+ _data->_page->validateCommand(commandName, ValidateCommandCallback::create([self](StringImpl* commandName, bool isEnabled, int32_t state, CallbackBase::Error error) {
// If the process exits before the command can be validated, we'll be called back with an error.
- if (error)
+ if (error != CallbackBase::Error::None)
return;
[self _setUserInterfaceItemState:nsStringFromWebCoreString(commandName) enabled:isEnabled state:state];
@@ -852,8 +852,8 @@
- (IBAction)startSpeaking:(id)sender
{
- _data->_page->getSelectionOrContentsAsString(StringCallback::create([self](bool error, StringImpl* string) {
- if (error)
+ _data->_page->getSelectionOrContentsAsString(StringCallback::create([self](StringImpl* string, CallbackBase::Error error) {
+ if (error != CallbackBase::Error::None)
return;
if (!string)
return;
Modified: trunk/Source/WebKit2/UIProcess/AutoCorrectionCallback.h (169961 => 169962)
--- trunk/Source/WebKit2/UIProcess/AutoCorrectionCallback.h 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/UIProcess/AutoCorrectionCallback.h 2014-06-14 05:32:07 UTC (rev 169962)
@@ -35,130 +35,10 @@
namespace WebKit {
-class AutocorrectionDataCallback : public CallbackBase {
-public:
- typedef std::function<void (bool, const Vector<WebCore::FloatRect>&, const String&, double, uint64_t)> CallbackFunction;
+typedef GenericCallback<const Vector<WebCore::FloatRect>&, const String&, double, uint64_t> AutocorrectionDataCallback;
+typedef GenericCallback<const String&, const String&, const String&, const String&, uint64_t, uint64_t> AutocorrectionContextCallback;
+typedef GenericCallback<const String&, const String&, const String&> DictationContextCallback;
- static PassRefPtr<AutocorrectionDataCallback> create(CallbackFunction callback)
- {
- return adoptRef(new AutocorrectionDataCallback(callback));
- }
-
- virtual ~AutocorrectionDataCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(const Vector<WebCore::FloatRect>& returnValue1, const String& returnValue2, double returnValue3, uint64_t returnValue4)
- {
- ASSERT(m_callback);
-
- m_callback(false, returnValue1, returnValue2, returnValue3, returnValue4);
-
- m_callback = 0;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- m_callback(true, Vector<WebCore::FloatRect>(), String(), 0, 0);
-
- m_callback = 0;
- }
-
-private:
- AutocorrectionDataCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- ASSERT(m_callback);
- }
-
- CallbackFunction m_callback;
-};
-
-class AutocorrectionContextCallback : public CallbackBase {
-public:
- typedef std::function<void (bool, const String&, const String&, const String&, const String&, uint64_t, uint64_t)> CallbackFunction;
-
- static PassRefPtr<AutocorrectionContextCallback> create(CallbackFunction callback)
- {
- return adoptRef(new AutocorrectionContextCallback(callback));
- }
-
- virtual ~AutocorrectionContextCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(const String& returnValue1, const String& returnValue2, const String& returnValue3, const String& returnValue4, uint64_t returnValue5, uint64_t returnValue6)
- {
- ASSERT(m_callback);
-
- m_callback(false, returnValue1, returnValue2, returnValue3, returnValue4, returnValue5, returnValue6);
-
- m_callback = 0;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- m_callback(true, String(), String(), String(), String(), 0, 0);
-
- m_callback = 0;
- }
-
-private:
- AutocorrectionContextCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- ASSERT(m_callback);
- }
-
- CallbackFunction m_callback;
-};
-
-class DictationContextCallback : public CallbackBase {
-public:
- typedef std::function<void (bool, const String&, const String&, const String&)> CallbackFunction;
-
- static PassRefPtr<DictationContextCallback> create(CallbackFunction callback)
- {
- return adoptRef(new DictationContextCallback(callback));
- }
-
- virtual ~DictationContextCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(const String& returnValue1, const String& returnValue2, const String& returnValue3)
- {
- ASSERT(m_callback);
-
- m_callback(false, returnValue1, returnValue2, returnValue3);
- m_callback = nullptr;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- m_callback(true, String(), String(), String());
- m_callback = nullptr;
- }
-
-private:
- DictationContextCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- ASSERT(m_callback);
- }
-
- CallbackFunction m_callback;
-};
-
} // namespace WebKit
#endif // AutoCorrectionCallback_h
Modified: trunk/Source/WebKit2/UIProcess/GenericCallback.h (169961 => 169962)
--- trunk/Source/WebKit2/UIProcess/GenericCallback.h 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/UIProcess/GenericCallback.h 2014-06-14 05:32:07 UTC (rev 169962)
@@ -124,36 +124,27 @@
}
};
-template<typename T>
+template<typename... T>
class GenericCallback : public CallbackBase {
public:
- typedef std::function<void (T, Error)> CallbackFunction;
+ typedef std::function<void (T..., Error)> CallbackFunction;
static PassRefPtr<GenericCallback> create(CallbackFunction callback)
{
return adoptRef(new GenericCallback(callback));
}
- // FIXME: Get rid of this legacy version.
- typedef std::function<void (bool, T)> LegacyCallbackFunction;
- static PassRefPtr<GenericCallback> create(LegacyCallbackFunction callback)
- {
- return adoptRef(new GenericCallback([callback](T t, Error error) {
- callback(error != Error::None, std::move(t));
- }));
- }
-
virtual ~GenericCallback()
{
ASSERT(!m_callback);
}
- void performCallbackWithReturnValue(T returnValue)
+ void performCallbackWithReturnValue(T... returnValue)
{
if (!m_callback)
return;
- m_callback(returnValue, Error::None);
+ m_callback(returnValue..., Error::None);
m_callback = nullptr;
}
@@ -163,7 +154,7 @@
if (!m_callback)
return;
- m_callback(T(), error);
+ m_callback(typename std::remove_reference<T>::type()..., error);
m_callback = nullptr;
}
@@ -184,99 +175,15 @@
static PassRefPtr<GenericCallback<InternalReturnValueType>> create(void* context, CallbackFunction callback)
{
- return GenericCallback<InternalReturnValueType>::create([context, callback](bool error, InternalReturnValueType returnValue) {
- callback(toAPI(returnValue), error ? toAPI(API::Error::create().get()) : 0, context);
+ return GenericCallback<InternalReturnValueType>::create([context, callback](InternalReturnValueType returnValue, CallbackBase::Error error) {
+ callback(toAPI(returnValue), error != CallbackBase::Error::None ? toAPI(API::Error::create().get()) : 0, context);
});
}
};
-// FIXME: Make a version of GenericCallback with two arguments, and define ComputedPagesCallback as a specialization.
-class ComputedPagesCallback : public CallbackBase {
-public:
- typedef std::function<void (bool, const Vector<WebCore::IntRect>&, double)> CallbackFunction;
+typedef GenericCallback<const Vector<WebCore::IntRect>&, double> ComputedPagesCallback;
+typedef GenericCallback<const ShareableBitmap::Handle&> ImageCallback;
- static PassRefPtr<ComputedPagesCallback> create(CallbackFunction callback)
- {
- return adoptRef(new ComputedPagesCallback(callback));
- }
-
- virtual ~ComputedPagesCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(const Vector<WebCore::IntRect>& returnValue1, double returnValue2)
- {
- ASSERT(m_callback);
-
- m_callback(false, returnValue1, returnValue2);
-
- m_callback = 0;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- m_callback(true, Vector<WebCore::IntRect>(), 0);
-
- m_callback = 0;
- }
-
-private:
-
- ComputedPagesCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- }
-
- CallbackFunction m_callback;
-};
-
-class ImageCallback : public CallbackBase {
-public:
- typedef std::function<void (bool, const ShareableBitmap::Handle&)> CallbackFunction;
-
- static PassRefPtr<ImageCallback> create(CallbackFunction callback)
- {
- return adoptRef(new ImageCallback(callback));
- }
-
- virtual ~ImageCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(const ShareableBitmap::Handle& returnValue1)
- {
- ASSERT(m_callback);
-
- m_callback(false, returnValue1);
-
- m_callback = 0;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- RefPtr<API::Error> error = API::Error::create();
- ShareableBitmap::Handle handle;
- m_callback(true, handle);
-
- m_callback = 0;
- }
-
-private:
-
- ImageCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- }
-
- CallbackFunction m_callback;
-};
-
template<typename T>
void invalidateCallbackMap(HashMap<uint64_t, T>& map, CallbackBase::Error error = CallbackBase::Error::Unknown)
{
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (169961 => 169962)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2014-06-14 05:32:07 UTC (rev 169962)
@@ -204,226 +204,16 @@
};
#endif
-// FIXME: Make a version of CallbackBase with three arguments, and define ValidateCommandCallback as a specialization.
-class ValidateCommandCallback : public CallbackBase {
-public:
- typedef std::function<void (bool, StringImpl*, bool, int32_t)> CallbackFunction;
+typedef GenericCallback<StringImpl*, bool, int32_t> ValidateCommandCallback;
+typedef GenericCallback<const WebCore::IntRect&, const EditingRange&> RectForCharacterRangeCallback;
- static PassRefPtr<ValidateCommandCallback> create(CallbackFunction callback)
- {
- return adoptRef(new ValidateCommandCallback(callback));
- }
-
- virtual ~ValidateCommandCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(StringImpl* returnValue1, bool returnValue2, int returnValue3)
- {
- ASSERT(m_callback);
-
- m_callback(false, returnValue1, returnValue2, returnValue3);
-
- m_callback = 0;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- m_callback(true, 0, 0, 0);
-
- m_callback = 0;
- }
-
-private:
-
- ValidateCommandCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- }
-
- CallbackFunction m_callback;
-};
-
-// FIXME: Make a version of CallbackBase with two arguments, and define RectForCharacterRangeCallback as a specialization.
-class RectForCharacterRangeCallback : public CallbackBase {
-public:
- typedef std::function<void (bool, const WebCore::IntRect&, const EditingRange&)> CallbackFunction;
-
- static PassRefPtr<RectForCharacterRangeCallback> create(CallbackFunction callback)
- {
- return adoptRef(new RectForCharacterRangeCallback(callback));
- }
-
- virtual ~RectForCharacterRangeCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(const WebCore::IntRect& rect, const EditingRange& range)
- {
- ASSERT(m_callback);
-
- m_callback(false, rect, range);
-
- m_callback = 0;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- m_callback(true, WebCore::IntRect(), EditingRange());
-
- m_callback = 0;
- }
-
-private:
-
- RectForCharacterRangeCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- }
-
- CallbackFunction m_callback;
-};
-
#if PLATFORM(MAC)
-
-// FIXME: Make a version of CallbackBase with two arguments, and define AttributedStringForCharacterRangeCallback as a specialization.
-class AttributedStringForCharacterRangeCallback : public CallbackBase {
-public:
- typedef std::function<void (bool, const AttributedString&, const EditingRange&)> CallbackFunction;
-
- static PassRefPtr<AttributedStringForCharacterRangeCallback> create(CallbackFunction callback)
- {
- return adoptRef(new AttributedStringForCharacterRangeCallback(callback));
- }
-
- virtual ~AttributedStringForCharacterRangeCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(const AttributedString& string, const EditingRange& range)
- {
- ASSERT(m_callback);
-
- m_callback(false, string, range);
-
- m_callback = 0;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- m_callback(true, AttributedString(), EditingRange());
-
- m_callback = 0;
- }
-
-private:
-
- AttributedStringForCharacterRangeCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- }
-
- CallbackFunction m_callback;
-};
-
+typedef GenericCallback<const AttributedString&, const EditingRange&> AttributedStringForCharacterRangeCallback;
#endif
#if PLATFORM(IOS)
-class GestureCallback : public CallbackBase {
-public:
- typedef std::function<void (bool, const WebCore::IntPoint&, uint32_t, uint32_t, uint32_t)> CallbackFunction;
-
- static PassRefPtr<GestureCallback> create(CallbackFunction callback)
- {
- return adoptRef(new GestureCallback(callback));
- }
-
- virtual ~GestureCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(const WebCore::IntPoint& returnValue1, uint32_t returnValue2, uint32_t returnValue3, uint32_t returnValue4)
- {
- ASSERT(m_callback);
-
- m_callback(false, returnValue1, returnValue2, returnValue3, returnValue4);
-
- m_callback = 0;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- m_callback(true, WebCore::IntPoint(), 0, 0, 0);
-
- m_callback = 0;
- }
-
-private:
-
- GestureCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- ASSERT(m_callback);
- }
-
- CallbackFunction m_callback;
-};
-
-class TouchesCallback : public CallbackBase {
-public:
- typedef std::function<void(bool, const WebCore::IntPoint&, uint32_t)> CallbackFunction;
-
- static PassRefPtr<TouchesCallback> create(CallbackFunction callback)
- {
- return adoptRef(new TouchesCallback(callback));
- }
-
- virtual ~TouchesCallback()
- {
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(const WebCore::IntPoint& returnValue1, uint32_t returnValue2)
- {
- ASSERT(m_callback);
-
- m_callback(false, returnValue1, returnValue2);
-
- m_callback = 0;
- }
-
- void invalidate()
- {
- ASSERT(m_callback);
-
- RefPtr<API::Error> error = API::Error::create();
- m_callback(true, WebCore::IntPoint(), 0);
-
- m_callback = 0;
- }
-
-private:
-
- TouchesCallback(CallbackFunction callback)
- : m_callback(callback)
- {
- ASSERT(m_callback);
- }
-
- CallbackFunction m_callback;
-};
+typedef GenericCallback<const WebCore::IntPoint&, uint32_t, uint32_t, uint32_t> GestureCallback;
+typedef GenericCallback<const WebCore::IntPoint&, uint32_t> TouchesCallback;
#endif
struct WebPageConfiguration {
Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm (169961 => 169962)
--- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm 2014-06-14 05:32:07 UTC (rev 169962)
@@ -1477,7 +1477,7 @@
}
_autocorrectionData.autocorrectionHandler = [completionHandler copy];
- _page->requestAutocorrectionData(input, AutocorrectionDataCallback::create([self](bool, const Vector<FloatRect>& rects, const String& fontName, double fontSize, uint64_t traits) {
+ _page->requestAutocorrectionData(input, AutocorrectionDataCallback::create([self](const Vector<FloatRect>& rects, const String& fontName, double fontSize, uint64_t traits, CallbackBase::Error) {
CGRect firstRect = CGRectZero;
CGRect lastRect = CGRectZero;
if (rects.size()) {
@@ -1540,7 +1540,7 @@
{
UIWKDictationContextHandler dictationHandler = [completionHandler copy];
- _page->requestDictationContext(DictationContextCallback::create([dictationHandler](bool /*error*/, const String& selectedText, const String& beforeText, const String& afterText) {
+ _page->requestDictationContext(DictationContextCallback::create([dictationHandler](const String& selectedText, const String& beforeText, const String& afterText, CallbackBase::Error) {
dictationHandler(selectedText, beforeText, afterText);
[dictationHandler release];
}));
@@ -1580,7 +1580,7 @@
completionHandler([WKAutocorrectionContext autocorrectionContextWithData:beforeText markedText:markedText selectedText:selectedText afterText:afterText selectedRangeInMarkedText:NSMakeRange(location, length)]);
} else {
_autocorrectionData.autocorrectionContextHandler = [completionHandler copy];
- _page->requestAutocorrectionContext(AutocorrectionContextCallback::create([self](bool /*error*/, const String& beforeText, const String& markedText, const String& selectedText, const String& afterText, uint64_t location, uint64_t length) {
+ _page->requestAutocorrectionContext(AutocorrectionContextCallback::create([self](const String& beforeText, const String& markedText, const String& selectedText, const String& afterText, uint64_t location, uint64_t length, CallbackBase::Error) {
_autocorrectionData.autocorrectionContextHandler([WKAutocorrectionContext autocorrectionContextWithData:beforeText markedText:markedText selectedText:selectedText afterText:afterText selectedRangeInMarkedText:NSMakeRange(location, length)]);
}));
}
Modified: trunk/Source/WebKit2/UIProcess/mac/WKPrintingView.mm (169961 => 169962)
--- trunk/Source/WebKit2/UIProcess/mac/WKPrintingView.mm 2014-06-14 05:09:37 UTC (rev 169961)
+++ trunk/Source/WebKit2/UIProcess/mac/WKPrintingView.mm 2014-06-14 05:32:07 UTC (rev 169962)
@@ -265,7 +265,7 @@
_webFrame->page()->beginPrinting(_webFrame.get(), printInfo);
IPCCallbackContext* context = new IPCCallbackContext;
- RefPtr<DataCallback> callback = DataCallback::create([context](bool, API::Data* data) {
+ RefPtr<DataCallback> callback = DataCallback::create([context](API::Data* data, CallbackBase::Error) {
ASSERT(RunLoop::isMain());
OwnPtr<IPCCallbackContext> contextDeleter = adoptPtr(context);
@@ -340,7 +340,7 @@
ASSERT(!_expectedComputedPagesCallback);
IPCCallbackContext* context = new IPCCallbackContext;
- RefPtr<ComputedPagesCallback> callback = ComputedPagesCallback::create([context](bool, const Vector<WebCore::IntRect>& pageRects, double totalScaleFactorForPrinting) {
+ RefPtr<ComputedPagesCallback> callback = ComputedPagesCallback::create([context](const Vector<WebCore::IntRect>& pageRects, double totalScaleFactorForPrinting, CallbackBase::Error) {
OwnPtr<IPCCallbackContext> contextDeleter = adoptPtr(context);
pageDidComputePageRects(pageRects, totalScaleFactorForPrinting, context);
});
@@ -492,7 +492,7 @@
_webFrame->page()->beginPrinting(_webFrame.get(), PrintInfo([_printOperation printInfo]));
IPCCallbackContext* context = new IPCCallbackContext;
- RefPtr<ImageCallback> callback = ImageCallback::create([context](bool, const ShareableBitmap::Handle& imageHandle) {
+ RefPtr<ImageCallback> callback = ImageCallback::create([context](const ShareableBitmap::Handle& imageHandle, CallbackBase::Error) {
OwnPtr<IPCCallbackContext> contextDeleter = adoptPtr(context);
pageDidDrawToImage(imageHandle, context);
});