Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(299)

Unified Diff: Source/bindings/core/v8/CallbackPromiseAdapter.h

Issue 1222103006: (WONT COMMIT) Make CallbackPromiseAdapter accept a bool object passed by value (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « no previous file | Source/modules/push_messaging/PushSubscriptionCallbacks.h » ('j') | public/platform/WebCallbacks.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698