| OLD | NEW |
| 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 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 }; | 153 }; |
| 154 | 154 |
| 155 template <typename S, typename T> | 155 template <typename S, typename T> |
| 156 class OnSuccess : public Base<S, T> { | 156 class OnSuccess : public Base<S, T> { |
| 157 public: | 157 public: |
| 158 explicit OnSuccess(ScriptPromiseResolver* resolver) : Base<S, T>(resolve
r) {} | 158 explicit OnSuccess(ScriptPromiseResolver* resolver) : Base<S, T>(resolve
r) {} |
| 159 void onSuccess(WebPassType<typename S::WebType> r) override | 159 void onSuccess(WebPassType<typename S::WebType> r) override |
| 160 { | 160 { |
| 161 typename S::WebType result(adopt(r)); | 161 typename S::WebType result(adopt(r)); |
| 162 ScriptPromiseResolver* resolver = this->resolver(); | 162 ScriptPromiseResolver* resolver = this->resolver(); |
| 163 if (!resolver->executionContext() || resolver->executionContext()->a
ctiveDOMObjectsAreStopped()) | 163 if (!resolver->getExecutionContext() || resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| 164 return; | 164 return; |
| 165 resolver->resolve(S::take(resolver, pass(result))); | 165 resolver->resolve(S::take(resolver, pass(result))); |
| 166 } | 166 } |
| 167 }; | 167 }; |
| 168 template <typename T> | 168 template <typename T> |
| 169 class OnSuccess<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T> : publi
c Base<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T> { | 169 class OnSuccess<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T> : publi
c Base<CallbackPromiseAdapterTrivialWebTypeHolder<void>, T> { |
| 170 public: | 170 public: |
| 171 explicit OnSuccess(ScriptPromiseResolver* resolver) : Base<CallbackPromi
seAdapterTrivialWebTypeHolder<void>, T>(resolver) {} | 171 explicit OnSuccess(ScriptPromiseResolver* resolver) : Base<CallbackPromi
seAdapterTrivialWebTypeHolder<void>, T>(resolver) {} |
| 172 void onSuccess() override | 172 void onSuccess() override |
| 173 { | 173 { |
| 174 ScriptPromiseResolver* resolver = this->resolver(); | 174 ScriptPromiseResolver* resolver = this->resolver(); |
| 175 if (!resolver->executionContext() || resolver->executionContext()->a
ctiveDOMObjectsAreStopped()) | 175 if (!resolver->getExecutionContext() || resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| 176 return; | 176 return; |
| 177 resolver->resolve(); | 177 resolver->resolve(); |
| 178 } | 178 } |
| 179 }; | 179 }; |
| 180 template <typename S, typename T> | 180 template <typename S, typename T> |
| 181 class OnError : public OnSuccess<S, T> { | 181 class OnError : public OnSuccess<S, T> { |
| 182 public: | 182 public: |
| 183 explicit OnError(ScriptPromiseResolver* resolver) : OnSuccess<S, T>(reso
lver) {} | 183 explicit OnError(ScriptPromiseResolver* resolver) : OnSuccess<S, T>(reso
lver) {} |
| 184 void onError(WebPassType<typename T::WebType> e) override | 184 void onError(WebPassType<typename T::WebType> e) override |
| 185 { | 185 { |
| 186 typename T::WebType result(adopt(e)); | 186 typename T::WebType result(adopt(e)); |
| 187 ScriptPromiseResolver* resolver = this->resolver(); | 187 ScriptPromiseResolver* resolver = this->resolver(); |
| 188 if (!resolver->executionContext() || resolver->executionContext()->a
ctiveDOMObjectsAreStopped()) | 188 if (!resolver->getExecutionContext() || resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| 189 return; | 189 return; |
| 190 resolver->reject(T::take(resolver, pass(result))); | 190 resolver->reject(T::take(resolver, pass(result))); |
| 191 } | 191 } |
| 192 }; | 192 }; |
| 193 template <typename S> | 193 template <typename S> |
| 194 class OnError<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>> : public
OnSuccess<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>> { | 194 class OnError<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>> : public
OnSuccess<S, CallbackPromiseAdapterTrivialWebTypeHolder<void>> { |
| 195 public: | 195 public: |
| 196 explicit OnError(ScriptPromiseResolver* resolver) : OnSuccess<S, Callbac
kPromiseAdapterTrivialWebTypeHolder<void>>(resolver) {} | 196 explicit OnError(ScriptPromiseResolver* resolver) : OnSuccess<S, Callbac
kPromiseAdapterTrivialWebTypeHolder<void>>(resolver) {} |
| 197 void onError() override | 197 void onError() override |
| 198 { | 198 { |
| 199 ScriptPromiseResolver* resolver = this->resolver(); | 199 ScriptPromiseResolver* resolver = this->resolver(); |
| 200 if (!resolver->executionContext() || resolver->executionContext()->a
ctiveDOMObjectsAreStopped()) | 200 if (!resolver->getExecutionContext() || resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| 201 return; | 201 return; |
| 202 resolver->reject(); | 202 resolver->reject(); |
| 203 } | 203 } |
| 204 }; | 204 }; |
| 205 | 205 |
| 206 public: | 206 public: |
| 207 template <typename S, typename T> | 207 template <typename S, typename T> |
| 208 class CallbackPromiseAdapter final : public OnError<WebTypeHolder<S>, WebTyp
eHolder<T>> { | 208 class CallbackPromiseAdapter final : public OnError<WebTypeHolder<S>, WebTyp
eHolder<T>> { |
| 209 WTF_MAKE_NONCOPYABLE(CallbackPromiseAdapter); | 209 WTF_MAKE_NONCOPYABLE(CallbackPromiseAdapter); |
| 210 public: | 210 public: |
| 211 explicit CallbackPromiseAdapter(ScriptPromiseResolver* resolver) : OnErr
or<WebTypeHolder<S>, WebTypeHolder<T>>(resolver) {} | 211 explicit CallbackPromiseAdapter(ScriptPromiseResolver* resolver) : OnErr
or<WebTypeHolder<S>, WebTypeHolder<T>>(resolver) {} |
| 212 }; | 212 }; |
| 213 }; | 213 }; |
| 214 | 214 |
| 215 } // namespace internal | 215 } // namespace internal |
| 216 | 216 |
| 217 template <typename S, typename T> | 217 template <typename S, typename T> |
| 218 using CallbackPromiseAdapter = internal::CallbackPromiseAdapterInternal::Callbac
kPromiseAdapter<S, T>; | 218 using CallbackPromiseAdapter = internal::CallbackPromiseAdapterInternal::Callbac
kPromiseAdapter<S, T>; |
| 219 | 219 |
| 220 } // namespace blink | 220 } // namespace blink |
| 221 | 221 |
| 222 #endif | 222 #endif |
| OLD | NEW |