Index: Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp |
diff --git a/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp b/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp |
index c9adbd0c035e4af9f010bf49ec6e4a37c849c911..a4106c92395ecb6a52e653194763dbc1b865eeb0 100644 |
--- a/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp |
+++ b/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp |
@@ -54,6 +54,8 @@ public: |
static ScriptPromise create(ScriptState*, HTMLMediaElement&, MediaKeys*); |
virtual ~SetMediaKeysHandler(); |
+ virtual void trace(Visitor*) override; |
+ |
private: |
SetMediaKeysHandler(ScriptState*, HTMLMediaElement&, MediaKeys*); |
void timerFired(Timer<SetMediaKeysHandler>*); |
@@ -65,8 +67,8 @@ private: |
void reportSetFailed(ExceptionCode, const String& errorMessage); |
// Keep media element alive until promise is fulfilled |
- RefPtrWillBePersistent<HTMLMediaElement> m_element; |
- Persistent<MediaKeys> m_newMediaKeys; |
+ RefPtrWillBeMember<HTMLMediaElement> m_element; |
+ PersistentWillBeMember<MediaKeys> m_newMediaKeys; |
Timer<SetMediaKeysHandler> m_timer; |
}; |
@@ -113,7 +115,7 @@ private: |
ScriptPromise SetMediaKeysHandler::create(ScriptState* scriptState, HTMLMediaElement& element, MediaKeys* mediaKeys) |
{ |
- RefPtr<SetMediaKeysHandler> handler = adoptRef(new SetMediaKeysHandler(scriptState, element, mediaKeys)); |
+ RefPtrWillBeRawPtr<SetMediaKeysHandler> handler = adoptRefWillBeNoop(new SetMediaKeysHandler(scriptState, element, mediaKeys)); |
handler->suspendIfNeeded(); |
handler->keepAliveWhilePending(); |
return handler->promise(); |
@@ -234,6 +236,13 @@ void SetMediaKeysHandler::reportSetFailed(ExceptionCode code, const String& erro |
reject(DOMException::create(code, errorMessage)); |
} |
+void SetMediaKeysHandler::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_element); |
+ visitor->trace(m_newMediaKeys); |
+ ScriptPromiseResolver::trace(visitor); |
+} |
+ |
HTMLMediaElementEncryptedMedia::HTMLMediaElementEncryptedMedia() |
: m_emeMode(EmeModeNotSelected) |
{ |