diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/crypto/crypto_result_impl.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/crypto/crypto_result_impl.cc | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/chromium/third_party/blink/renderer/modules/crypto/crypto_result_impl.cc b/chromium/third_party/blink/renderer/modules/crypto/crypto_result_impl.cc index 91e9cb555e8..5252b6db429 100644 --- a/chromium/third_party/blink/renderer/modules/crypto/crypto_result_impl.cc +++ b/chromium/third_party/blink/renderer/modules/crypto/crypto_result_impl.cc @@ -65,12 +65,14 @@ class CryptoResultImpl::Resolver final : public ScriptPromiseResolver { public: static Resolver* Create(ScriptState* script_state, CryptoResultImpl* result) { DCHECK(script_state->ContextIsValid()); - Resolver* resolver = new Resolver(script_state, result); - resolver->PauseIfNeeded(); + Resolver* resolver = MakeGarbageCollected<Resolver>(script_state, result); resolver->KeepAliveWhilePending(); return resolver; } + Resolver(ScriptState* script_state, CryptoResultImpl* result) + : ScriptPromiseResolver(script_state), result_(result) {} + void ContextDestroyed(ExecutionContext* destroyed_context) override { result_->Cancel(); result_ = nullptr; @@ -83,22 +85,9 @@ class CryptoResultImpl::Resolver final : public ScriptPromiseResolver { } private: - Resolver(ScriptState* script_state, CryptoResultImpl* result) - : ScriptPromiseResolver(script_state), result_(result) {} - Member<CryptoResultImpl> result_; }; -CryptoResultImpl::ResultCancel::ResultCancel() : cancelled_(0) {} - -bool CryptoResultImpl::ResultCancel::Cancelled() const { - return AcquireLoad(&cancelled_); -} - -void CryptoResultImpl::ResultCancel::Cancel() { - ReleaseStore(&cancelled_, 1); -} - ExceptionCode WebCryptoErrorToExceptionCode(WebCryptoErrorType error_type) { switch (error_type) { case kWebCryptoErrorTypeNotSupported: @@ -121,7 +110,7 @@ ExceptionCode WebCryptoErrorToExceptionCode(WebCryptoErrorType error_type) { CryptoResultImpl::CryptoResultImpl(ScriptState* script_state) : resolver_(Resolver::Create(script_state, this)), - cancel_(ResultCancel::Create()) { + cancel_(base::MakeRefCounted<CryptoResultCancel>()) { // Sync cancellation state. if (ExecutionContext::From(script_state)->IsContextDestroyed()) cancel_->Cancel(); @@ -141,7 +130,7 @@ void CryptoResultImpl::ClearResolver() { } CryptoResultImpl* CryptoResultImpl::Create(ScriptState* script_state) { - return new CryptoResultImpl(script_state); + return MakeGarbageCollected<CryptoResultImpl>(script_state); } void CryptoResultImpl::CompleteWithError(WebCryptoErrorType error_type, |