| Index: public/platform/modules/background_sync/WebSyncProvider.h
|
| diff --git a/public/platform/modules/background_sync/WebSyncProvider.h b/public/platform/modules/background_sync/WebSyncProvider.h
|
| index f118589cf972ac0d03d1f4467cc7e21df602bc29..144f4d3e6a3a290c047c56c297b48f945f4717d5 100644
|
| --- a/public/platform/modules/background_sync/WebSyncProvider.h
|
| +++ b/public/platform/modules/background_sync/WebSyncProvider.h
|
| @@ -7,6 +7,7 @@
|
|
|
| #include "public/platform/WebCallbacks.h"
|
| #include "public/platform/WebCommon.h"
|
| +#include "public/platform/WebPassOwnPtr.h"
|
| #include "public/platform/WebString.h"
|
| #include "public/platform/WebVector.h"
|
| #include "public/platform/modules/background_sync/WebSyncError.h"
|
| @@ -16,12 +17,78 @@
|
| namespace blink {
|
|
|
| class WebServiceWorkerRegistration;
|
| +template <>
|
| +class WebCallbacks<WebPassOwnPtr<WebSyncRegistration>, const WebSyncError&> {
|
| +public:
|
| + virtual ~WebCallbacks() {}
|
| + void onSuccess(WebSyncRegistration* r) { onSuccess(adoptWebPtr(r)); }
|
| + void onError(WebSyncError* e)
|
| + {
|
| + onError(*e);
|
| + delete e;
|
| + }
|
| + virtual void onSuccess(WebPassOwnPtr<WebSyncRegistration>) = 0;
|
| + virtual void onError(const WebSyncError&) = 0;
|
| +};
|
| +using WebSyncRegistrationCallbacks = WebCallbacks<WebPassOwnPtr<WebSyncRegistration>, const WebSyncError&>;
|
| +
|
| +template <>
|
| +class WebCallbacks<bool, const WebSyncError&> {
|
| +public:
|
| + virtual ~WebCallbacks() {}
|
| + void onSuccess(bool* r)
|
| + {
|
| + onSuccess(*r);
|
| + delete r;
|
| + }
|
| + void onError(WebSyncError* e)
|
| + {
|
| + onError(*e);
|
| + delete e;
|
| + }
|
| + virtual void onSuccess(bool) = 0;
|
| + virtual void onError(const WebSyncError&) = 0;
|
| +};
|
| +using WebSyncNotifyWhenDoneCallbacks = WebCallbacks<bool, const WebSyncError&>;
|
| +using WebSyncUnregistrationCallbacks = WebCallbacks<bool, const WebSyncError&>;
|
| +
|
| +template <>
|
| +class WebCallbacks<const WebVector<WebSyncRegistration*>&, const WebSyncError&> {
|
| +public:
|
| + virtual ~WebCallbacks() {}
|
| + void onSuccess(WebVector<WebSyncRegistration*>* r)
|
| + {
|
| + onSuccess(*r);
|
| + delete r;
|
| + }
|
| + void onError(WebSyncError* e)
|
| + {
|
| + onError(*e);
|
| + delete e;
|
| + }
|
| + virtual void onSuccess(const WebVector<WebSyncRegistration*>&) = 0;
|
| + virtual void onError(const WebSyncError&) = 0;
|
| +};
|
| +using WebSyncGetRegistrationsCallbacks = WebCallbacks<const WebVector<WebSyncRegistration*>&, const WebSyncError&>;
|
|
|
| -using WebSyncRegistrationCallbacks = WebCallbacks<WebSyncRegistration*, WebSyncError*>;
|
| -using WebSyncNotifyWhenDoneCallbacks = WebCallbacks<bool*, WebSyncError*>;
|
| -using WebSyncUnregistrationCallbacks = WebCallbacks<bool*, WebSyncError*>;
|
| -using WebSyncGetRegistrationsCallbacks = WebCallbacks<WebVector<WebSyncRegistration*>*, WebSyncError*>;
|
| -using WebSyncGetPermissionStatusCallbacks = WebCallbacks<WebSyncPermissionStatus*, WebSyncError*>;
|
| +template <>
|
| +class WebCallbacks<WebSyncPermissionStatus, const WebSyncError&> {
|
| +public:
|
| + virtual ~WebCallbacks() {}
|
| + void onSuccess(WebSyncPermissionStatus* r)
|
| + {
|
| + onSuccess(*r);
|
| + delete r;
|
| + }
|
| + void onError(WebSyncError* e)
|
| + {
|
| + onError(*e);
|
| + delete e;
|
| + }
|
| + virtual void onSuccess(WebSyncPermissionStatus) = 0;
|
| + virtual void onError(const WebSyncError&) = 0;
|
| +};
|
| +using WebSyncGetPermissionStatusCallbacks = WebCallbacks<WebSyncPermissionStatus, const WebSyncError&>;
|
|
|
| class WebSyncProvider {
|
| public:
|
| @@ -58,7 +125,7 @@ public:
|
| virtual void notifyWhenDone(int64_t syncId, WebSyncNotifyWhenDoneCallbacks* callbacks)
|
| {
|
| // TODO(jkarlin): After landing both legs of the notifyWhenDone CLs, make this a pure virtual function.
|
| - callbacks->onError(new WebSyncError(WebSyncError::ErrorTypeAbort, "Function not implemented."));
|
| + callbacks->onError(WebSyncError(WebSyncError::ErrorTypeAbort, "Function not implemented."));
|
| delete callbacks;
|
| }
|
|
|
|
|