Index: Source/modules/crypto/CryptoResultImpl.h |
diff --git a/Source/modules/crypto/CryptoResultImpl.h b/Source/modules/crypto/CryptoResultImpl.h |
index 3ea352cb662d7b5bb8d5a35704e30b9bfeaeb49d..d2e5cf2118f4c358c2aec9bfdff86c67040a6315 100644 |
--- a/Source/modules/crypto/CryptoResultImpl.h |
+++ b/Source/modules/crypto/CryptoResultImpl.h |
@@ -57,7 +57,7 @@ class CryptoResultImpl final : public CryptoResult { |
public: |
~CryptoResultImpl(); |
- static PassRefPtr<CryptoResultImpl> create(ScriptState*); |
+ static PassRefPtrWillBeRawPtr<CryptoResultImpl> create(ScriptState*); |
virtual void completeWithError(WebCryptoErrorType, const WebString&) override; |
virtual void completeWithBuffer(const void* bytes, unsigned bytesSize) override; |
@@ -71,13 +71,21 @@ public: |
// ScriptPromise. |
ScriptPromise promise(); |
+ void clearResolver(); |
+ |
private: |
+ ScriptPromiseResolver* resolver(); |
+ |
class WeakResolver; |
explicit CryptoResultImpl(ScriptState*); |
void cancel(); |
- WeakPtr<ScriptPromiseResolver> m_resolver; |
+#if !ENABLE(OILPAN) |
+ RawPtr<ScriptPromiseResolver> m_resolver; |
+#else |
+ OwnPtr<Persistent<ScriptPromiseResolver>> m_resolver; |
+#endif |
volatile int m_cancelled; |
}; |