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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/CallbackPromiseAdapter.h

Issue 2433773006: Remove ExecutionContext::activeDOMObjectsAreStopped()
Patch Set: Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 Persistent<ScriptPromiseResolver> m_resolver; 131 Persistent<ScriptPromiseResolver> m_resolver;
132 }; 132 };
133 133
134 template <typename S, typename T> 134 template <typename S, typename T>
135 class OnSuccess : public Base<S, T> { 135 class OnSuccess : public Base<S, T> {
136 public: 136 public:
137 explicit OnSuccess(ScriptPromiseResolver* resolver) 137 explicit OnSuccess(ScriptPromiseResolver* resolver)
138 : Base<S, T>(resolver) {} 138 : Base<S, T>(resolver) {}
139 void onSuccess(typename S::WebType result) override { 139 void onSuccess(typename S::WebType result) override {
140 ScriptPromiseResolver* resolver = this->resolver(); 140 ScriptPromiseResolver* resolver = this->resolver();
141 if (!resolver->getExecutionContext() || 141 if (!resolver->getExecutionContext())
142 resolver->getExecutionContext()->activeDOMObjectsAreStopped())
143 return; 142 return;
144 resolver->resolve(S::take(resolver, std::move(result))); 143 resolver->resolve(S::take(resolver, std::move(result)));
145 } 144 }
146 }; 145 };
147 template <typename T> 146 template <typename T>
148 class OnSuccess<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T> 147 class OnSuccess<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T>
149 : public Base<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T> { 148 : public Base<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T> {
150 public: 149 public:
151 explicit OnSuccess(ScriptPromiseResolver* resolver) 150 explicit OnSuccess(ScriptPromiseResolver* resolver)
152 : Base<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T>(resolver) {} 151 : Base<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T>(resolver) {}
153 void onSuccess() override { 152 void onSuccess() override {
154 ScriptPromiseResolver* resolver = this->resolver(); 153 ScriptPromiseResolver* resolver = this->resolver();
155 if (!resolver->getExecutionContext() || 154 if (!resolver->getExecutionContext())
156 resolver->getExecutionContext()->activeDOMObjectsAreStopped())
157 return; 155 return;
158 resolver->resolve(); 156 resolver->resolve();
159 } 157 }
160 }; 158 };
161 template <typename S, typename T> 159 template <typename S, typename T>
162 class OnError : public OnSuccess<S, T> { 160 class OnError : public OnSuccess<S, T> {
163 public: 161 public:
164 explicit OnError(ScriptPromiseResolver* resolver) 162 explicit OnError(ScriptPromiseResolver* resolver)
165 : OnSuccess<S, T>(resolver) {} 163 : OnSuccess<S, T>(resolver) {}
166 void onError(typename T::WebType e) override { 164 void onError(typename T::WebType e) override {
167 ScriptPromiseResolver* resolver = this->resolver(); 165 ScriptPromiseResolver* resolver = this->resolver();
168 if (!resolver->getExecutionContext() || 166 if (!resolver->getExecutionContext())
169 resolver->getExecutionContext()->activeDOMObjectsAreStopped())
170 return; 167 return;
171 ScriptState::Scope scope(resolver->getScriptState()); 168 ScriptState::Scope scope(resolver->getScriptState());
172 resolver->reject(T::take(resolver, std::move(e))); 169 resolver->reject(T::take(resolver, std::move(e)));
173 } 170 }
174 }; 171 };
175 template <typename S> 172 template <typename S>
176 class OnError<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>> 173 class OnError<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>>
177 : public OnSuccess<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>> { 174 : public OnSuccess<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>> {
178 public: 175 public:
179 explicit OnError(ScriptPromiseResolver* resolver) 176 explicit OnError(ScriptPromiseResolver* resolver)
180 : OnSuccess<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>>( 177 : OnSuccess<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>>(
181 resolver) {} 178 resolver) {}
182 void onError() override { 179 void onError() override {
183 ScriptPromiseResolver* resolver = this->resolver(); 180 ScriptPromiseResolver* resolver = this->resolver();
184 if (!resolver->getExecutionContext() || 181 if (!resolver->getExecutionContext())
185 resolver->getExecutionContext()->activeDOMObjectsAreStopped())
186 return; 182 return;
187 resolver->reject(); 183 resolver->reject();
188 } 184 }
189 }; 185 };
190 186
191 public: 187 public:
192 template <typename S, typename T> 188 template <typename S, typename T>
193 class CallbackPromiseAdapter final 189 class CallbackPromiseAdapter final
194 : public OnError<WebTypeHolder<S>, WebTypeHolder<T>> { 190 : public OnError<WebTypeHolder<S>, WebTypeHolder<T>> {
195 WTF_MAKE_NONCOPYABLE(CallbackPromiseAdapter); 191 WTF_MAKE_NONCOPYABLE(CallbackPromiseAdapter);
196 192
197 public: 193 public:
198 explicit CallbackPromiseAdapter(ScriptPromiseResolver* resolver) 194 explicit CallbackPromiseAdapter(ScriptPromiseResolver* resolver)
199 : OnError<WebTypeHolder<S>, WebTypeHolder<T>>(resolver) {} 195 : OnError<WebTypeHolder<S>, WebTypeHolder<T>>(resolver) {}
200 }; 196 };
201 }; 197 };
202 198
203 } // namespace internal 199 } // namespace internal
204 200
205 template <typename S, typename T> 201 template <typename S, typename T>
206 using CallbackPromiseAdapter = 202 using CallbackPromiseAdapter =
207 internal::CallbackPromiseAdapterInternal::CallbackPromiseAdapter<S, T>; 203 internal::CallbackPromiseAdapterInternal::CallbackPromiseAdapter<S, T>;
208 204
209 } // namespace blink 205 } // namespace blink
210 206
211 #endif 207 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698