Index: Source/core/html/HTMLMediaElement.cpp |
diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp |
index 6440307b61afc4f36bd2e4df3be7da234189fd09..21a10f48eedc1c3f7369d360c2df26f80153144d 100644 |
--- a/Source/core/html/HTMLMediaElement.cpp |
+++ b/Source/core/html/HTMLMediaElement.cpp |
@@ -353,6 +353,8 @@ HTMLMediaElement::~HTMLMediaElement() |
void HTMLMediaElement::didMoveToNewDocument(Document* oldDocument) |
{ |
+ LOG(Media, "HTMLMediaElement::didMoveToNewDocument"); |
+ |
if (m_shouldDelayLoadEvent) { |
if (oldDocument) |
oldDocument->decrementLoadEventDelayCount(); |
@@ -364,6 +366,13 @@ void HTMLMediaElement::didMoveToNewDocument(Document* oldDocument) |
addElementToDocumentMap(this, document()); |
+ // FIXME: This is a temporary fix to prevent this object from causing the |
+ // MediaPlayer to dereference Frame and FrameLoader pointers from the |
+ // previous document. A proper fix would provide a mechanism to allow this |
+ // object to refresh the MediaPlayer's Frame and FrameLoader references on |
+ // document changes so that playback can be resumed properly. |
+ userCancelledLoad(); |
+ |
HTMLElement::didMoveToNewDocument(oldDocument); |
} |