| Index: Source/bindings/core/v8/CallbackPromiseAdapter.h
|
| diff --git a/Source/bindings/core/v8/CallbackPromiseAdapter.h b/Source/bindings/core/v8/CallbackPromiseAdapter.h
|
| index 666bccc485d7bb2689fa90a0413408c824ddb41b..4beb6ab3ce9cd6f029d9583b5d1bb14c5a8f1915 100644
|
| --- a/Source/bindings/core/v8/CallbackPromiseAdapter.h
|
| +++ b/Source/bindings/core/v8/CallbackPromiseAdapter.h
|
| @@ -71,7 +71,8 @@ namespace blink {
|
| // - This class does not manage its own lifetime. In this example that ownership
|
| // of the WebCallbacks instance is being passed in and it is up to the callee
|
| // to free the WebCallbacks instance.
|
| -// - onSuccess and onError take ownership of the given WebType instance.
|
| +// - onSuccess(typename S::WebType*) and onError(typename T::WebType*) take
|
| +// ownership of the given WebType instance.
|
| template<typename S, typename T>
|
| class CallbackPromiseAdapter final : public WebCallbacks<typename S::WebType, typename T::WebType> {
|
| WTF_MAKE_NONCOPYABLE(CallbackPromiseAdapter);
|
| @@ -83,6 +84,11 @@ public:
|
| }
|
| virtual ~CallbackPromiseAdapter() { }
|
|
|
| + virtual void onSuccess(typename S::WebType result) override
|
| + {
|
| + ASSERT_NOT_REACHED();
|
| + }
|
| +
|
| // Takes ownership of |result|.
|
| virtual void onSuccess(typename S::WebType* result) override
|
| {
|
| @@ -151,6 +157,11 @@ public:
|
| }
|
| virtual ~CallbackPromiseAdapter() { }
|
|
|
| + virtual void onSuccess(typename S::WebType result) override
|
| + {
|
| + ASSERT_NOT_REACHED();
|
| + }
|
| +
|
| // Takes ownership of |result|.
|
| virtual void onSuccess(typename S::WebType* result) override
|
| {
|
| @@ -182,10 +193,17 @@ public:
|
| }
|
| virtual ~CallbackPromiseAdapter() { }
|
|
|
| - // TODO(nhiroki): onSuccess should take ownership of a bool object for
|
| - // consistency. (http://crbug.com/493531)
|
| + virtual void onSuccess(bool result) override
|
| + {
|
| + if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
|
| + return;
|
| + m_resolver->resolve(result);
|
| + }
|
| +
|
| virtual void onSuccess(bool* result) override
|
| {
|
| + // TODO(nhiroki): Replace with ASSERT_NOT_REACHED() after chromium-side
|
| + // changes are landed (http://crbug.com/493531).
|
| if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
|
| return;
|
| m_resolver->resolve(*result);
|
| @@ -233,37 +251,6 @@ private:
|
| RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver;
|
| };
|
|
|
| -template<>
|
| -class CallbackPromiseAdapter<bool, void> final : public WebCallbacks<bool, void> {
|
| - WTF_MAKE_NONCOPYABLE(CallbackPromiseAdapter);
|
| -public:
|
| - explicit CallbackPromiseAdapter(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver)
|
| - : m_resolver(resolver)
|
| - {
|
| - ASSERT(m_resolver);
|
| - }
|
| - virtual ~CallbackPromiseAdapter() { }
|
| -
|
| - // TODO(nhiroki): onSuccess should take ownership of a bool object for
|
| - // consistency. (http://crbug.com/493531)
|
| - virtual void onSuccess(bool* result) override
|
| - {
|
| - if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
|
| - return;
|
| - m_resolver->resolve(*result);
|
| - }
|
| -
|
| - virtual void onError() override
|
| - {
|
| - if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
|
| - return;
|
| - m_resolver->reject();
|
| - }
|
| -
|
| -private:
|
| - RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver;
|
| -};
|
| -
|
| } // namespace blink
|
|
|
| #endif
|
|
|