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 |