Index: Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp |
diff --git a/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp b/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp |
index 4634eac545e730e53b83991ef5955e4ac0af32c0..9b90ec29c180b5093209b82d8543ee24ee0f198a 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; |
}; |
@@ -107,7 +109,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(); |
@@ -228,6 +230,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) |
{ |