Title: [187687] trunk/Source/WebCore
Revision
187687
Author
[email protected]
Date
2015-07-31 15:43:55 -0700 (Fri, 31 Jul 2015)

Log Message

Crashes under HTMLMediaElement::updateActiveTextTrackCues() when destroying CachedPage.
<https://webkit.org/b/147506>
<rdar://problem/21939014>

Reviewed by Chris Dumez.

Don't mess with the media element's text tracks below its ActiveDOMObject::stop()
implementation, since that may cause DOM mutations.

I don't have a repro or a test for this, but plenty of crash logs to indicate that
we're getting ourselves into trouble by modifying the DOM during CachedPage teardown.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::configureTextTrackDisplay):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (187686 => 187687)


--- trunk/Source/WebCore/ChangeLog	2015-07-31 22:34:23 UTC (rev 187686)
+++ trunk/Source/WebCore/ChangeLog	2015-07-31 22:43:55 UTC (rev 187687)
@@ -1,3 +1,20 @@
+2015-07-31  Andreas Kling  <[email protected]>
+
+        Crashes under HTMLMediaElement::updateActiveTextTrackCues() when destroying CachedPage.
+        <https://webkit.org/b/147506>
+        <rdar://problem/21939014>
+
+        Reviewed by Chris Dumez.
+
+        Don't mess with the media element's text tracks below its ActiveDOMObject::stop()
+        implementation, since that may cause DOM mutations.
+
+        I don't have a repro or a test for this, but plenty of crash logs to indicate that
+        we're getting ourselves into trouble by modifying the DOM during CachedPage teardown.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::configureTextTrackDisplay):
+
 2015-07-31  Tim Horton  <[email protected]>
 
         [iOS] DOMNode preview snapshot rects are wrong for user-select: none links

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (187686 => 187687)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2015-07-31 22:34:23 UTC (rev 187686)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2015-07-31 22:43:55 UTC (rev 187687)
@@ -5548,6 +5548,9 @@
     if (m_processingPreferenceChange)
         return;
 
+    if (document().activeDOMObjectsAreStopped())
+        return;
+
     bool haveVisibleTextTrack = false;
     for (unsigned i = 0; i < m_textTracks->length(); ++i) {
         if (m_textTracks->item(i)->mode() == TextTrack::showingKeyword()) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to