| Index: Source/core/html/HTMLMediaElement.cpp
|
| diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp
|
| index 9883ca15e071d770a2e497b891f9e0ff648b4a53..5b710d42c174b936b741b68e5aec125c0c761bfc 100644
|
| --- a/Source/core/html/HTMLMediaElement.cpp
|
| +++ b/Source/core/html/HTMLMediaElement.cpp
|
| @@ -332,6 +332,7 @@ HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName, Document& docum
|
| , m_processingPreferenceChange(false)
|
| #if ENABLE(OILPAN)
|
| , m_isFinalizing(false)
|
| + , m_closeMediaSourceWhenFinalizing(false)
|
| #endif
|
| , m_lastTextTrackUpdateTime(-1)
|
| , m_audioTracks(AudioTrackList::create(*this))
|
| @@ -390,9 +391,12 @@ HTMLMediaElement::~HTMLMediaElement()
|
| }
|
| #endif
|
|
|
| +#if ENABLE(OILPAN)
|
| + if (m_closeMediaSourceWhenFinalizing)
|
| + closeMediaSource();
|
| +#else
|
| closeMediaSource();
|
|
|
| -#if !ENABLE(OILPAN)
|
| removeElementFromDocumentMap(this, &document());
|
| #endif
|
|
|
| @@ -443,6 +447,14 @@ HTMLMediaElement::~HTMLMediaElement()
|
| #endif
|
| }
|
|
|
| +#if ENABLE(OILPAN)
|
| +void HTMLMediaElement::setCloseMediaSourceWhenFinalizing()
|
| +{
|
| + ASSERT(!m_closeMediaSourceWhenFinalizing);
|
| + m_closeMediaSourceWhenFinalizing = true;
|
| +}
|
| +#endif
|
| +
|
| void HTMLMediaElement::didMoveToNewDocument(Document& oldDocument)
|
| {
|
| WTF_LOG(Media, "HTMLMediaElement::didMoveToNewDocument");
|
| @@ -3914,6 +3926,7 @@ void HTMLMediaElement::trace(Visitor* visitor)
|
| visitor->trace(m_error);
|
| visitor->trace(m_currentSourceNode);
|
| visitor->trace(m_nextChildNodeToConsider);
|
| + visitor->trace(m_mediaSource);
|
| visitor->trace(m_audioTracks);
|
| visitor->trace(m_videoTracks);
|
| visitor->trace(m_textTracks);
|
|
|