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

benm at google.com benm at google.com
Wed Dec 22 11:42:14 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 644e0dd8ac0e4b8d6ed7820c16e831c2207be81e
Author: benm at google.com <benm at google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Aug 4 09:30:15 2010 +0000

    HTML5 parser may cause onload not to fire
    https://bugs.webkit.org/show_bug.cgi?id=43423
    
    Reviewed by Darin Adler.
    
    If a complex page causes the HTML parser to yield,
    then when parsing continues again and eventually
    finishes, we are missing a call to endIfDelayed(). This
    results in onload never being called.
    
    Not for lack of trying, but it seems almost
    impossible to write a reliable test for this bug,
    due to the highly timing-dependent nature of the
    bug. The link above contains further discussion and
    attempts at writing a test.
    
    * html/HTMLDocumentParser.cpp:
    (WebCore::HTMLDocumentParser::resumeParsingAfterYield):
    Add a call to endIfDelayed() after pumping the tokenizer
    post the parser yielding to ensure that the parsing step
    is completed properly and the onload event fires.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64638 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 07fe278..669f3b7 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,27 @@
+2010-08-03  Ben Murdoch  <benm at google.com>
+
+        Reviewed by Darin Adler.
+
+        HTML5 parser may cause onload not to fire
+        https://bugs.webkit.org/show_bug.cgi?id=43423
+
+        If a complex page causes the HTML parser to yield,
+        then when parsing continues again and eventually
+        finishes, we are missing a call to endIfDelayed(). This
+        results in onload never being called.
+
+        Not for lack of trying, but it seems almost
+        impossible to write a reliable test for this bug,
+        due to the highly timing-dependent nature of the
+        bug. The link above contains further discussion and
+        attempts at writing a test.
+        
+        * html/HTMLDocumentParser.cpp:
+        (WebCore::HTMLDocumentParser::resumeParsingAfterYield):
+        Add a call to endIfDelayed() after pumping the tokenizer
+        post the parser yielding to ensure that the parsing step
+        is completed properly and the onload event fires.
+
 2010-08-04  Dirk Schulze  <krit at webkit.org>
 
         Unreviewed sort of XCode project file.
diff --git a/WebCore/html/HTMLDocumentParser.cpp b/WebCore/html/HTMLDocumentParser.cpp
index 723fbe7..354e7ed 100644
--- a/WebCore/html/HTMLDocumentParser.cpp
+++ b/WebCore/html/HTMLDocumentParser.cpp
@@ -138,6 +138,7 @@ void HTMLDocumentParser::resumeParsingAfterYield()
     // We should never be here unless we can pump immediately.  Call pumpTokenizer()
     // directly so that ASSERTS will fire if we're wrong.
     pumpTokenizer(AllowYield);
+    endIfDelayed();
 }
 
 bool HTMLDocumentParser::runScriptsForPausedTreeBuilder()

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list