[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

joepeck at webkit.org joepeck at webkit.org
Wed Dec 22 14:29:16 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit c4b6566b7fcd4452a5f842b4d2f849cb024bd206
Author: joepeck at webkit.org <joepeck at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Oct 11 19:03:08 2010 +0000

    2010-10-11  Joseph Pecoraro  <joepeck at webkit.org>
    
            Reviewed by Eric Carlson.
    
            CRASH at WebCore::HTMLSourceElement::scheduleErrorEvent
            https://bugs.webkit.org/show_bug.cgi?id=46777
    
            Another case that could lead to an improper set of states between
            m_currentNode and m_loadingState. Also added an ASSERT and early
            return to prevent crashes if this case can still happen in other ways.
    
            * html/HTMLMediaElement.cpp:
            (WebCore::HTMLMediaElement::prepareForLoad):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69514 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 15b2404..07f2a65 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-10-11  Joseph Pecoraro  <joepeck at webkit.org>
+
+        Reviewed by Eric Carlson.
+
+        CRASH at WebCore::HTMLSourceElement::scheduleErrorEvent
+        https://bugs.webkit.org/show_bug.cgi?id=46777
+
+        Another case that could lead to an improper set of states between
+        m_currentNode and m_loadingState. Also added an ASSERT and early
+        return to prevent crashes if this case can still happen in other ways.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::prepareForLoad):
+
 2010-10-11  Ryosuke Niwa  <rniwa at webkit.org>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/html/HTMLMediaElement.cpp b/WebCore/html/HTMLMediaElement.cpp
index 3d9149e..7c2138f 100644
--- a/WebCore/html/HTMLMediaElement.cpp
+++ b/WebCore/html/HTMLMediaElement.cpp
@@ -530,6 +530,7 @@ void HTMLMediaElement::prepareForLoad()
     m_displayMode = Unknown;
 
     // 1 - Abort any already-running instance of the resource selection algorithm for this element.
+    m_loadState = WaitingForSource;
     m_currentSourceNode = 0;
 
     // 2 - If there are any tasks from the media element's media element event task source in 
@@ -873,6 +874,10 @@ void HTMLMediaElement::setNetworkState(MediaPlayer::NetworkState state)
         // If we failed while trying to load a <source> element, the movie was never parsed, and there are more
         // <source> children, schedule the next one
         if (m_readyState < HAVE_METADATA && m_loadState == LoadingFromSourceElement) {
+            ASSERT(m_currentSourceNode);
+            if (!m_currentSourceNode)
+                return;
+
             m_currentSourceNode->scheduleErrorEvent();
             if (havePotentialSourceChild()) {
                 LOG(Media, "HTMLMediaElement::setNetworkState scheduling next <source>");

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list