| Index: Source/modules/encryptedmedia/MediaKeySession.cpp
|
| diff --git a/Source/modules/encryptedmedia/MediaKeySession.cpp b/Source/modules/encryptedmedia/MediaKeySession.cpp
|
| index 28101cc1ba78be64fa61952a187fc2b58d656ec4..0bc78cb793a0b1449f5fb572456218ac84acdc2b 100644
|
| --- a/Source/modules/encryptedmedia/MediaKeySession.cpp
|
| +++ b/Source/modules/encryptedmedia/MediaKeySession.cpp
|
| @@ -84,7 +84,12 @@ MediaKeySession::MediaKeySession(ExecutionContext* context, blink::WebContentDec
|
| MediaKeySession::~MediaKeySession()
|
| {
|
| m_session.clear();
|
| +#if !ENABLE(OILPAN)
|
| + // MediaKeySession and m_asyncEventQueue always become unreachable
|
| + // together. So MediaKeySession and m_asyncEventQueue are destructed in the
|
| + // same GC. We don't need to call cancelAllEvents explicitly in Oilpan.
|
| m_asyncEventQueue->cancelAllEvents();
|
| +#endif
|
| }
|
|
|
| void MediaKeySession::setError(MediaKeyError* error)
|
| @@ -272,6 +277,7 @@ void MediaKeySession::stop()
|
|
|
| void MediaKeySession::trace(Visitor* visitor)
|
| {
|
| + visitor->trace(m_asyncEventQueue);
|
| visitor->trace(m_keys);
|
| EventTargetWithInlineData::trace(visitor);
|
| }
|
|
|