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

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 12:56:23 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 29dddd5d690bcbaed3f5ee805b8d717cb260cfba
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 2 11:43:30 2010 +0000

    2010-09-02  Sheriff Bot  <webkit.review.bot at gmail.com>
    
            Unreviewed, rolling out r66649.
            http://trac.webkit.org/changeset/66649
            https://bugs.webkit.org/show_bug.cgi?id=45103
    
            It broke ~2000 tests on Qt bot (Requested by Ossy on #webkit).
    
            * fast/dom/HTMLScriptElement/defer-double-defer-write-expected.txt: Removed.
            * fast/dom/HTMLScriptElement/defer-double-defer-write.html: Removed.
            * fast/dom/HTMLScriptElement/defer-double-write-expected.txt: Removed.
            * fast/dom/HTMLScriptElement/defer-double-write.html: Removed.
            * fast/dom/HTMLScriptElement/defer-inline-script-expected.txt: Removed.
            * fast/dom/HTMLScriptElement/defer-inline-script.html: Removed.
            * fast/dom/HTMLScriptElement/defer-onbeforeload-expected.txt: Removed.
            * fast/dom/HTMLScriptElement/defer-onbeforeload.html: Removed.
            * fast/dom/HTMLScriptElement/defer-script-invalid-url-expected.txt: Removed.
            * fast/dom/HTMLScriptElement/defer-script-invalid-url.html: Removed.
            * fast/dom/HTMLScriptElement/defer-write-expected.txt: Removed.
            * fast/dom/HTMLScriptElement/defer-write.html: Removed.
            * fast/dom/HTMLScriptElement/resources/defer.js: Removed.
            * fast/dom/HTMLScriptElement/resources/external.js: Removed.
            * fast/dom/HTMLScriptElement/resources/shouldnotexecute.js: Removed.
            * fast/dom/HTMLScriptElement/shouldnotexecute.js: Removed.
            * fast/dom/HTMLScriptElement/two-defer-writes-expected.txt: Removed.
            * fast/dom/HTMLScriptElement/two-defer-writes.html: Removed.
            * http/tests/misc/resources/defer-script.js: Removed.
            * http/tests/misc/resources/external-script.js: Removed.
            * http/tests/misc/resources/script-debug-body-background.js: Removed.
            * http/tests/misc/resources/script-write-slow-stylesheet.js: Removed.
            * http/tests/misc/resources/slow-defer-script.cgi: Removed.
            * http/tests/misc/resources/slow-stylesheet.cgi: Removed.
            * http/tests/misc/script-defer-after-slow-stylesheet-expected.txt: Removed.
            * http/tests/misc/script-defer-after-slow-stylesheet.html: Removed.
            * http/tests/misc/script-defer-expected.txt: Removed.
            * http/tests/misc/script-defer.html: Removed.
    2010-09-02  Sheriff Bot  <webkit.review.bot at gmail.com>
    
            Unreviewed, rolling out r66649.
            http://trac.webkit.org/changeset/66649
            https://bugs.webkit.org/show_bug.cgi?id=45103
    
            It broke ~2000 tests on Qt bot (Requested by Ossy on #webkit).
    
            * dom/Document.cpp:
            (WebCore::Document::open):
            * dom/DocumentParser.cpp:
            (WebCore::DocumentParser::DocumentParser):
            (WebCore::DocumentParser::detach):
            * dom/DocumentParser.h:
            (WebCore::DocumentParser::isDetached):
            (WebCore::DocumentParser::stopParsing):
            * dom/RawDataDocumentParser.h:
            (WebCore::RawDataDocumentParser::finish):
            * dom/XMLDocumentParser.cpp:
            (WebCore::XMLDocumentParser::append):
            (WebCore::XMLDocumentParser::exitText):
            * dom/XMLDocumentParserLibxml2.cpp:
            (WebCore::XMLDocumentParser::doWrite):
            (WebCore::XMLDocumentParser::startElementNs):
            (WebCore::XMLDocumentParser::endElementNs):
            (WebCore::XMLDocumentParser::characters):
            (WebCore::XMLDocumentParser::error):
            (WebCore::XMLDocumentParser::processingInstruction):
            (WebCore::XMLDocumentParser::cdataBlock):
            (WebCore::XMLDocumentParser::comment):
            (WebCore::XMLDocumentParser::internalSubset):
            (WebCore::XMLDocumentParser::initializeParserContext):
            (WebCore::XMLDocumentParser::doEnd):
            * dom/XMLDocumentParserQt.cpp:
            (WebCore::XMLDocumentParser::initializeParserContext):
            (WebCore::XMLDocumentParser::doEnd):
            (WebCore::XMLDocumentParser::parse):
            * html/parser/HTMLDocumentParser.cpp:
            (WebCore::HTMLDocumentParser::pumpTokenizerIfPossible):
            (WebCore::HTMLDocumentParser::pumpTokenizer):
            (WebCore::HTMLDocumentParser::insert):
            (WebCore::HTMLDocumentParser::append):
            (WebCore::HTMLDocumentParser::end):
            (WebCore::HTMLDocumentParser::attemptToEnd):
            (WebCore::HTMLDocumentParser::endIfDelayed):
            (WebCore::HTMLDocumentParser::notifyFinished):
            * html/parser/HTMLDocumentParser.h:
            * html/parser/HTMLScriptRunner.cpp:
            (WebCore::HTMLScriptRunner::~HTMLScriptRunner):
            (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
            (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
            (WebCore::HTMLScriptRunner::runScript):
            * html/parser/HTMLScriptRunner.h:
            * loader/ImageDocument.cpp:
            (WebCore::ImageDocumentParser::finish):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66660 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 4390a3e..6320950 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,40 @@
+2010-09-02  Sheriff Bot  <webkit.review.bot at gmail.com>
+
+        Unreviewed, rolling out r66649.
+        http://trac.webkit.org/changeset/66649
+        https://bugs.webkit.org/show_bug.cgi?id=45103
+
+        It broke ~2000 tests on Qt bot (Requested by Ossy on #webkit).
+
+        * fast/dom/HTMLScriptElement/defer-double-defer-write-expected.txt: Removed.
+        * fast/dom/HTMLScriptElement/defer-double-defer-write.html: Removed.
+        * fast/dom/HTMLScriptElement/defer-double-write-expected.txt: Removed.
+        * fast/dom/HTMLScriptElement/defer-double-write.html: Removed.
+        * fast/dom/HTMLScriptElement/defer-inline-script-expected.txt: Removed.
+        * fast/dom/HTMLScriptElement/defer-inline-script.html: Removed.
+        * fast/dom/HTMLScriptElement/defer-onbeforeload-expected.txt: Removed.
+        * fast/dom/HTMLScriptElement/defer-onbeforeload.html: Removed.
+        * fast/dom/HTMLScriptElement/defer-script-invalid-url-expected.txt: Removed.
+        * fast/dom/HTMLScriptElement/defer-script-invalid-url.html: Removed.
+        * fast/dom/HTMLScriptElement/defer-write-expected.txt: Removed.
+        * fast/dom/HTMLScriptElement/defer-write.html: Removed.
+        * fast/dom/HTMLScriptElement/resources/defer.js: Removed.
+        * fast/dom/HTMLScriptElement/resources/external.js: Removed.
+        * fast/dom/HTMLScriptElement/resources/shouldnotexecute.js: Removed.
+        * fast/dom/HTMLScriptElement/shouldnotexecute.js: Removed.
+        * fast/dom/HTMLScriptElement/two-defer-writes-expected.txt: Removed.
+        * fast/dom/HTMLScriptElement/two-defer-writes.html: Removed.
+        * http/tests/misc/resources/defer-script.js: Removed.
+        * http/tests/misc/resources/external-script.js: Removed.
+        * http/tests/misc/resources/script-debug-body-background.js: Removed.
+        * http/tests/misc/resources/script-write-slow-stylesheet.js: Removed.
+        * http/tests/misc/resources/slow-defer-script.cgi: Removed.
+        * http/tests/misc/resources/slow-stylesheet.cgi: Removed.
+        * http/tests/misc/script-defer-after-slow-stylesheet-expected.txt: Removed.
+        * http/tests/misc/script-defer-after-slow-stylesheet.html: Removed.
+        * http/tests/misc/script-defer-expected.txt: Removed.
+        * http/tests/misc/script-defer.html: Removed.
+
 2010-09-02  Andreas Kling  <andreas.kling at nokia.com>
 
         Unreviewed, forgot to add the new layout test in last commit.
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-double-defer-write-expected.txt b/LayoutTests/fast/dom/HTMLScriptElement/defer-double-defer-write-expected.txt
deleted file mode 100755
index 7ef22e9..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-double-defer-write-expected.txt
+++ /dev/null
@@ -1 +0,0 @@
-PASS
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-double-defer-write.html b/LayoutTests/fast/dom/HTMLScriptElement/defer-double-defer-write.html
deleted file mode 100644
index 0412050..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-double-defer-write.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<script>
-if (window.layoutTestController)
-    layoutTestController.dumpAsText();
-</script>
-FAIL
-<script defer src="data:text/javascript,document.write('FAIL'); document.write('<script defer src=\'data:text/javascript,document.write(&quot;PASS&quot;);\'></script>'); document.close();"></script>
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-double-write-expected.txt b/LayoutTests/fast/dom/HTMLScriptElement/defer-double-write-expected.txt
deleted file mode 100755
index 8d04f96..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-double-write-expected.txt
+++ /dev/null
@@ -1 +0,0 @@
-1 2
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-double-write.html b/LayoutTests/fast/dom/HTMLScriptElement/defer-double-write.html
deleted file mode 100644
index e55e1d3..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-double-write.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<script>
-if (window.layoutTestController)
-    layoutTestController.dumpAsText();
-</script>
-FAIL
-<script defer src="data:text/javascript,document.writeln(1); document.write('<script src=\'data:text/javascript,document.writeln(2)\'></script>');"></script>
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script-expected.txt b/LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script-expected.txt
deleted file mode 100755
index beaaad8..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Checks that inline scripts are not deferred.
-1
-2
-
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script.html b/LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script.html
deleted file mode 100644
index a15c201..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<link rel="stylesheet" href="../../js/resources/js-test-style.css">
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-Checks that inline scripts are not deferred.
-<div id="console"></div>
-<script src="data:text/javascript,debug(2);" defer></script>
-<script defer>
-  debug(1);
-</script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload-expected.txt b/LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload-expected.txt
deleted file mode 100644
index 2eb56c9..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload-expected.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Checks that deferred scripts fire onbeforeload immediately and that it is cancellable.
-cancelled onbeforeload defer
-onbeforeload defer
-onbeforeload external
-external
-defer
-
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload.html b/LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload.html
deleted file mode 100644
index a22b184..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<link rel="stylesheet" href="../../js/resources/js-test-style.css">
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-Checks that deferred scripts fire onbeforeload immediately and that it is cancellable.
-<div id="console"></div>
-<script src="resources/shouldnotexecute.js" onbeforeload="debug('cancelled onbeforeload defer'); return false;" defer></script>
-<script src="resources/defer.js" onbeforeload="debug('onbeforeload defer'); return true;" defer></script>
-<script src="resources/external.js" onbeforeload="debug('onbeforeload external'); return true;"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-script-invalid-url-expected.txt b/LayoutTests/fast/dom/HTMLScriptElement/defer-script-invalid-url-expected.txt
deleted file mode 100644
index 045af1d..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-script-invalid-url-expected.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Checks that deferred scripts with invalid URLs are ignored and subsequent deferred scripts executed.
-defer
-
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-script-invalid-url.html b/LayoutTests/fast/dom/HTMLScriptElement/defer-script-invalid-url.html
deleted file mode 100644
index bf6cee4..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-script-invalid-url.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<link rel="stylesheet" href="../../js/resources/js-test-style.css">
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-Checks that deferred scripts with invalid URLs are ignored and subsequent deferred scripts executed.
-<div id="console"></div>
-<script src="http://localhost:999999/" defer></script>
-<script src="resources/defer.js" defer></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-write-expected.txt b/LayoutTests/fast/dom/HTMLScriptElement/defer-write-expected.txt
deleted file mode 100644
index 7ef22e9..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-write-expected.txt
+++ /dev/null
@@ -1 +0,0 @@
-PASS
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/defer-write.html b/LayoutTests/fast/dom/HTMLScriptElement/defer-write.html
deleted file mode 100644
index 0c0bbff..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/defer-write.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<script>
-if (window.layoutTestController)
-    layoutTestController.dumpAsText();
-</script>
-FAIL
-<script defer src="data:text/javascript,document.write('PASS');"></script>
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/resources/defer.js b/LayoutTests/fast/dom/HTMLScriptElement/resources/defer.js
deleted file mode 100644
index fc67db4..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/resources/defer.js
+++ /dev/null
@@ -1 +0,0 @@
-debug("defer");
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/resources/external.js b/LayoutTests/fast/dom/HTMLScriptElement/resources/external.js
deleted file mode 100644
index fbad465..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/resources/external.js
+++ /dev/null
@@ -1 +0,0 @@
-debug("external");
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/resources/shouldnotexecute.js b/LayoutTests/fast/dom/HTMLScriptElement/resources/shouldnotexecute.js
deleted file mode 100644
index c0d6954..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/resources/shouldnotexecute.js
+++ /dev/null
@@ -1 +0,0 @@
-debug("FAIL");
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/shouldnotexecute.js b/LayoutTests/fast/dom/HTMLScriptElement/shouldnotexecute.js
deleted file mode 100644
index fc67db4..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/shouldnotexecute.js
+++ /dev/null
@@ -1 +0,0 @@
-debug("defer");
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/two-defer-writes-expected.txt b/LayoutTests/fast/dom/HTMLScriptElement/two-defer-writes-expected.txt
deleted file mode 100644
index 7ef22e9..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/two-defer-writes-expected.txt
+++ /dev/null
@@ -1 +0,0 @@
-PASS
diff --git a/LayoutTests/fast/dom/HTMLScriptElement/two-defer-writes.html b/LayoutTests/fast/dom/HTMLScriptElement/two-defer-writes.html
deleted file mode 100644
index 4b0d378..0000000
--- a/LayoutTests/fast/dom/HTMLScriptElement/two-defer-writes.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<script>
-if (window.layoutTestController)
-    layoutTestController.dumpAsText();
-</script>
-FAIL
-<script defer src="data:text/javascript,document.write('PASS');"></script>
-<script defer src="data:text/javascript,document.write('FAIL');"></script>
diff --git a/LayoutTests/http/tests/misc/resources/defer-script.js b/LayoutTests/http/tests/misc/resources/defer-script.js
deleted file mode 100644
index fc67db4..0000000
--- a/LayoutTests/http/tests/misc/resources/defer-script.js
+++ /dev/null
@@ -1 +0,0 @@
-debug("defer");
diff --git a/LayoutTests/http/tests/misc/resources/external-script.js b/LayoutTests/http/tests/misc/resources/external-script.js
deleted file mode 100644
index fbad465..0000000
--- a/LayoutTests/http/tests/misc/resources/external-script.js
+++ /dev/null
@@ -1 +0,0 @@
-debug("external");
diff --git a/LayoutTests/http/tests/misc/resources/script-debug-body-background.js b/LayoutTests/http/tests/misc/resources/script-debug-body-background.js
deleted file mode 100644
index 6fbe7a1..0000000
--- a/LayoutTests/http/tests/misc/resources/script-debug-body-background.js
+++ /dev/null
@@ -1 +0,0 @@
-shouldBeEqualToString("getComputedStyle(document.body)['background-color']", "rgb(255, 0, 0)");
diff --git a/LayoutTests/http/tests/misc/resources/script-write-slow-stylesheet.js b/LayoutTests/http/tests/misc/resources/script-write-slow-stylesheet.js
deleted file mode 100644
index ed11eb5..0000000
--- a/LayoutTests/http/tests/misc/resources/script-write-slow-stylesheet.js
+++ /dev/null
@@ -1 +0,0 @@
-document.write('<link rel="stylesheet" href="http://127.0.0.1:8000/misc/resources/slow-stylesheet.cgi">');
diff --git a/LayoutTests/http/tests/misc/resources/slow-defer-script.cgi b/LayoutTests/http/tests/misc/resources/slow-defer-script.cgi
deleted file mode 100755
index a98d3d5..0000000
--- a/LayoutTests/http/tests/misc/resources/slow-defer-script.cgi
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/perl -w
-
-print "Content-type: text/javascript\n\n";
-sleep(0.5);
-print "debug('slowDefer');\n";
diff --git a/LayoutTests/http/tests/misc/resources/slow-stylesheet.cgi b/LayoutTests/http/tests/misc/resources/slow-stylesheet.cgi
deleted file mode 100755
index fcddca4..0000000
--- a/LayoutTests/http/tests/misc/resources/slow-stylesheet.cgi
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/perl -w
-
-print "Content-type: text/css\n\n";
-sleep(0.5);
-print "body { background-color: #FF0000 }\n";
diff --git a/LayoutTests/http/tests/misc/script-defer-after-slow-stylesheet-expected.txt b/LayoutTests/http/tests/misc/script-defer-after-slow-stylesheet-expected.txt
deleted file mode 100644
index 5245763..0000000
--- a/LayoutTests/http/tests/misc/script-defer-after-slow-stylesheet-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This tests that an inline slow stylesheet executes before deferred scripts.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-PASS getComputedStyle(document.body)['background-color'] is "rgb(255, 0, 0)"
-DOMContentLoaded
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/http/tests/misc/script-defer-after-slow-stylesheet.html b/LayoutTests/http/tests/misc/script-defer-after-slow-stylesheet.html
deleted file mode 100644
index 06ec849..0000000
--- a/LayoutTests/http/tests/misc/script-defer-after-slow-stylesheet.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<link rel="stylesheet" href="../../js-test-resources/js-test-style.css">
-<script src="../../js-test-resources/js-test-pre.js"></script>
-</head>
-<body>
-<dvi id="description"></div>
-<div id="console"></div>
-<script type="text/javascript">
-description('This tests that an inline slow stylesheet executes before deferred scripts.');
-
-var jsTestIsAsync = true;
-
-document.addEventListener("DOMContentLoaded", function() {
-  debug('DOMContentLoaded');
-
-  finishJSTest();
-}, false);
-</script>
-
-<script src="http://127.0.0.1:8000/misc/resources/script-debug-body-background.
-js" defer="defer"></script>
-<link rel="stylesheet" href="http://127.0.0.1:8000/misc/resources/slow-styleshe
-et.cgi">
-<script>
-var successfullyParsed = true;
-</script>
-<script src="../../js-test-resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/http/tests/misc/script-defer-expected.txt b/LayoutTests/http/tests/misc/script-defer-expected.txt
deleted file mode 100644
index bfcaa6e..0000000
--- a/LayoutTests/http/tests/misc/script-defer-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This tests for proper execution order of scripts with the defer attribute https://bugs.webkit.org/show_bug.cgi?id=20710.
-external
-inline
-slowDefer
-defer
-DOMContentLoaded
-load
-
diff --git a/LayoutTests/http/tests/misc/script-defer.html b/LayoutTests/http/tests/misc/script-defer.html
deleted file mode 100644
index 95cf8b3..0000000
--- a/LayoutTests/http/tests/misc/script-defer.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<link rel="stylesheet" href="../../js-test-resources/js-test-style.css">
-<script src="../../js-test-resources/js-test-pre.js"></script>
-</head>
-<body onload="debug('load')">
-This tests for proper execution order of scripts with the defer attribute <a href="https://bugs.webkit.org/show_bug.cgi?id=20710">https://bugs.webkit.org/show_bug.cgi?id=20710</a>.
-<div id="console"></div>
-
-<script type="text/javascript">
-document.addEventListener("DOMContentLoaded", function() {
-  debug('DOMContentLoaded');
-}, false);
-</script>
-<script src="http://127.0.0.1:8000/misc/resources/slow-defer-script.cgi" defer="DEFER"></script>
-<script src="http://127.0.0.1:8000/misc/resources/defer-script.js" defer="DEFER"></script>
-<script src="http://127.0.0.1:8000/misc/resources/external-script.js"></script>
-<script>
-debug("inline");
-</script>
-</body>
-</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 3615992..dc0fe31 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,59 @@
+2010-09-02  Sheriff Bot  <webkit.review.bot at gmail.com>
+
+        Unreviewed, rolling out r66649.
+        http://trac.webkit.org/changeset/66649
+        https://bugs.webkit.org/show_bug.cgi?id=45103
+
+        It broke ~2000 tests on Qt bot (Requested by Ossy on #webkit).
+
+        * dom/Document.cpp:
+        (WebCore::Document::open):
+        * dom/DocumentParser.cpp:
+        (WebCore::DocumentParser::DocumentParser):
+        (WebCore::DocumentParser::detach):
+        * dom/DocumentParser.h:
+        (WebCore::DocumentParser::isDetached):
+        (WebCore::DocumentParser::stopParsing):
+        * dom/RawDataDocumentParser.h:
+        (WebCore::RawDataDocumentParser::finish):
+        * dom/XMLDocumentParser.cpp:
+        (WebCore::XMLDocumentParser::append):
+        (WebCore::XMLDocumentParser::exitText):
+        * dom/XMLDocumentParserLibxml2.cpp:
+        (WebCore::XMLDocumentParser::doWrite):
+        (WebCore::XMLDocumentParser::startElementNs):
+        (WebCore::XMLDocumentParser::endElementNs):
+        (WebCore::XMLDocumentParser::characters):
+        (WebCore::XMLDocumentParser::error):
+        (WebCore::XMLDocumentParser::processingInstruction):
+        (WebCore::XMLDocumentParser::cdataBlock):
+        (WebCore::XMLDocumentParser::comment):
+        (WebCore::XMLDocumentParser::internalSubset):
+        (WebCore::XMLDocumentParser::initializeParserContext):
+        (WebCore::XMLDocumentParser::doEnd):
+        * dom/XMLDocumentParserQt.cpp:
+        (WebCore::XMLDocumentParser::initializeParserContext):
+        (WebCore::XMLDocumentParser::doEnd):
+        (WebCore::XMLDocumentParser::parse):
+        * html/parser/HTMLDocumentParser.cpp:
+        (WebCore::HTMLDocumentParser::pumpTokenizerIfPossible):
+        (WebCore::HTMLDocumentParser::pumpTokenizer):
+        (WebCore::HTMLDocumentParser::insert):
+        (WebCore::HTMLDocumentParser::append):
+        (WebCore::HTMLDocumentParser::end):
+        (WebCore::HTMLDocumentParser::attemptToEnd):
+        (WebCore::HTMLDocumentParser::endIfDelayed):
+        (WebCore::HTMLDocumentParser::notifyFinished):
+        * html/parser/HTMLDocumentParser.h:
+        * html/parser/HTMLScriptRunner.cpp:
+        (WebCore::HTMLScriptRunner::~HTMLScriptRunner):
+        (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
+        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
+        (WebCore::HTMLScriptRunner::runScript):
+        * html/parser/HTMLScriptRunner.h:
+        * loader/ImageDocument.cpp:
+        (WebCore::ImageDocumentParser::finish):
+
 2010-09-02  Eric Seidel  <eric at webkit.org>
 
         Reviewed by Dimitri Glazkov.
diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp
index dbf447d..741f98a 100644
--- a/WebCore/dom/Document.cpp
+++ b/WebCore/dom/Document.cpp
@@ -1823,7 +1823,7 @@ void Document::open(Document* ownerDocument)
 
     if (m_frame) {
         ScriptableDocumentParser* parser = scriptableDocumentParser();
-        if (m_frame->loader()->isLoadingMainResource() || (parser && parser->isParsing() && parser->isExecutingScript()))
+        if (m_frame->loader()->isLoadingMainResource() || (parser && parser->isExecutingScript()))
             return;
 
         if (m_frame->loader()->state() == FrameStateProvisional)
diff --git a/WebCore/dom/DocumentParser.cpp b/WebCore/dom/DocumentParser.cpp
index 639860a..cc4c61b 100644
--- a/WebCore/dom/DocumentParser.cpp
+++ b/WebCore/dom/DocumentParser.cpp
@@ -31,7 +31,7 @@
 namespace WebCore {
 
 DocumentParser::DocumentParser(Document* document)
-    : m_state(ParsingState)
+    : m_parserStopped(false)
     , m_document(document)
 {
     ASSERT(document);
@@ -45,25 +45,8 @@ DocumentParser::~DocumentParser()
     ASSERT(!m_document);
 }
 
-void DocumentParser::startParsing()
-{
-    m_state = ParsingState;
-}
-
-void DocumentParser::prepareToStopParsing()
-{
-    if (m_state == ParsingState)
-        m_state = StoppingState;
-}
-
-void DocumentParser::stopParsing()
-{
-    m_state = StoppedState;
-}
-
 void DocumentParser::detach()
 {
-    m_state = DetachedState;
     m_document = 0;
 }
 
diff --git a/WebCore/dom/DocumentParser.h b/WebCore/dom/DocumentParser.h
index 7cc9e7b..3c28856 100644
--- a/WebCore/dom/DocumentParser.h
+++ b/WebCore/dom/DocumentParser.h
@@ -57,29 +57,12 @@ public:
 
     // FIXME: processingData() is only used by DocumentLoader::isLoadingInAPISense
     // and is very unclear as to what it actually means.  The LegacyHTMLDocumentParser
-    // used to implement it.
+    // used to implements it.
     virtual bool processingData() const { return false; }
 
     // document() will return 0 after detach() is called.
     Document* document() const { ASSERT(m_document); return m_document; }
-
-    bool isParsing() const { return m_state == ParsingState; }
-    bool isStopping() const { return m_state == StoppingState; }
-    bool isStopped() const { return m_state >= StoppedState; }
-    bool isDetached() const { return m_state == DetachedState; }
-
-    // FIXME: Is this necessary? Does XMLDocumentParserLibxml2 really need to set this?
-    virtual void startParsing();
-
-    // prepareToStop() is used when the EOF token is encountered and parsing is to be
-    // stopped normally.
-    virtual void prepareToStopParsing();
-
-    // stopParsing() is used when a load is canceled/stopped.
-    // stopParsing() is currently different from detach(), but shouldn't be.
-    // It should NOT be ok to call any methods on DocumentParser after either
-    // detach() or stopParsing() but right now only detach() will ASSERT.
-    virtual void stopParsing();
+    bool isDetached() const { return !m_document; }
 
     // Document is expected to detach the parser before releasing its ref.
     // After detach, m_document is cleared.  The parser will unwind its
@@ -88,18 +71,22 @@ public:
     // detach is called.
     virtual void detach();
 
+    // stopParsing() is used when a load is canceled/stopped.
+    // stopParsing() is currently different from detach(), but shouldn't be.
+    // It should NOT be ok to call any methods on DocumentParser after either
+    // detach() or stopParsing() but right now only detach() will ASSERT.
+    virtual void stopParsing() { m_parserStopped = true; }
+
 protected:
     DocumentParser(Document*);
 
-private:
-    enum ParserState {
-        ParsingState,
-        StoppingState,
-        StoppedState,
-        DetachedState
-    };
-    ParserState m_state;
+    // The parser has buffers, so parsing may continue even after
+    // it stops receiving data. We use m_parserStopped to stop the parser
+    // even when it has buffered data.
+    // FIXME: m_document = 0 could be changed to mean "parser stopped".
+    bool m_parserStopped;
 
+private:
     // Every DocumentParser needs a pointer back to the document.
     // m_document will be 0 after the parser is stopped.
     Document* m_document;
diff --git a/WebCore/dom/RawDataDocumentParser.h b/WebCore/dom/RawDataDocumentParser.h
index 9ca36f4..093ddaf 100644
--- a/WebCore/dom/RawDataDocumentParser.h
+++ b/WebCore/dom/RawDataDocumentParser.h
@@ -39,7 +39,7 @@ protected:
 
     virtual void finish()
     {
-        if (!isStopped())
+        if (!m_parserStopped && !isDetached())
             document()->finishedParsing();
     }
 
diff --git a/WebCore/dom/XMLDocumentParser.cpp b/WebCore/dom/XMLDocumentParser.cpp
index 5fb8b54..4b76472 100644
--- a/WebCore/dom/XMLDocumentParser.cpp
+++ b/WebCore/dom/XMLDocumentParser.cpp
@@ -132,7 +132,7 @@ void XMLDocumentParser::append(const SegmentedString& s)
     if (m_sawXSLTransform || !m_sawFirstElement)
         m_originalSourceForTransform += parseString;
 
-    if (isStopped() || m_sawXSLTransform)
+    if (isDetached() || m_parserStopped || m_sawXSLTransform)
         return;
 
     if (m_parserPaused) {
@@ -190,7 +190,7 @@ static inline String toString(const xmlChar* str, unsigned len)
 
 void XMLDocumentParser::exitText()
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     if (!m_currentNode || !m_currentNode->isTextNode())
diff --git a/WebCore/dom/XMLDocumentParserLibxml2.cpp b/WebCore/dom/XMLDocumentParserLibxml2.cpp
index d99ab4b..db94c50 100644
--- a/WebCore/dom/XMLDocumentParserLibxml2.cpp
+++ b/WebCore/dom/XMLDocumentParserLibxml2.cpp
@@ -660,7 +660,7 @@ void XMLDocumentParser::doWrite(const String& parseString)
 
         // JavaScript (which may be run under the xmlParseChunk callstack) may
         // cause the parser to be stopped or detached.
-        if (isStopped())
+        if (isDetached() || m_parserStopped)
             return;
     }
 
@@ -733,7 +733,7 @@ static inline void handleElementAttributes(Element* newElement, const xmlChar**
 void XMLDocumentParser::startElementNs(const xmlChar* xmlLocalName, const xmlChar* xmlPrefix, const xmlChar* xmlURI, int nb_namespaces,
                                   const xmlChar** libxmlNamespaces, int nb_attributes, int nb_defaulted, const xmlChar** libxmlAttributes)
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     if (m_parserPaused) {
@@ -822,7 +822,7 @@ void XMLDocumentParser::startElementNs(const xmlChar* xmlLocalName, const xmlCha
 
 void XMLDocumentParser::endElementNs()
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     if (m_parserPaused) {
@@ -906,7 +906,7 @@ void XMLDocumentParser::endElementNs()
 
 void XMLDocumentParser::characters(const xmlChar* s, int len)
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     if (m_parserPaused) {
@@ -921,7 +921,7 @@ void XMLDocumentParser::characters(const xmlChar* s, int len)
 
 void XMLDocumentParser::error(ErrorType type, const char* message, va_list args)
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
 #if COMPILER(MSVC) || COMPILER(RVCT)
@@ -945,7 +945,7 @@ void XMLDocumentParser::error(ErrorType type, const char* message, va_list args)
 
 void XMLDocumentParser::processingInstruction(const xmlChar* target, const xmlChar* data)
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     if (m_parserPaused) {
@@ -979,7 +979,7 @@ void XMLDocumentParser::processingInstruction(const xmlChar* target, const xmlCh
 
 void XMLDocumentParser::cdataBlock(const xmlChar* s, int len)
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     if (m_parserPaused) {
@@ -997,7 +997,7 @@ void XMLDocumentParser::cdataBlock(const xmlChar* s, int len)
 
 void XMLDocumentParser::comment(const xmlChar* s)
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     if (m_parserPaused) {
@@ -1034,7 +1034,7 @@ void XMLDocumentParser::endDocument()
 
 void XMLDocumentParser::internalSubset(const xmlChar* name, const xmlChar* externalID, const xmlChar* systemID)
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     if (m_parserPaused) {
@@ -1294,7 +1294,7 @@ void XMLDocumentParser::initializeParserContext(const char* chunk)
     sax.ignorableWhitespace = ignorableWhitespaceHandler;
     sax.entityDecl = xmlSAX2EntityDecl;
     sax.initialized = XML_SAX2_MAGIC;
-    DocumentParser::startParsing();
+    m_parserStopped = false;
     m_sawError = false;
     m_sawXSLTransform = false;
     m_sawFirstElement = false;
@@ -1318,11 +1318,11 @@ void XMLDocumentParser::doEnd()
         document()->setParsing(false); // Make the doc think it's done, so it will apply xsl sheets.
         document()->styleSelectorChanged(RecalcStyleImmediately);
         document()->setParsing(true);
-        DocumentParser::stopParsing();
+        m_parserStopped = true;
     }
 #endif
 
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     if (m_context) {
diff --git a/WebCore/dom/XMLDocumentParserQt.cpp b/WebCore/dom/XMLDocumentParserQt.cpp
index 59bb94c..dfd6fb1 100644
--- a/WebCore/dom/XMLDocumentParserQt.cpp
+++ b/WebCore/dom/XMLDocumentParserQt.cpp
@@ -199,7 +199,7 @@ void XMLDocumentParser::doWrite(const String& parseString)
 
 void XMLDocumentParser::initializeParserContext(const char*)
 {
-    DocumentParser::stopParsing();
+    m_parserStopped = false;
     m_sawError = false;
     m_sawXSLTransform = false;
     m_sawFirstElement = false;
@@ -213,7 +213,7 @@ void XMLDocumentParser::doEnd()
         document()->setParsing(false); // Make the doc think it's done, so it will apply xsl sheets.
         document()->styleSelectorChanged(RecalcStyleImmediately);
         document()->setParsing(true);
-        DocumentParser::startParsing();
+        m_parserStopped = true;
     }
 #endif
 
@@ -350,7 +350,7 @@ static inline void handleElementAttributes(Element* newElement, const QXmlStream
 
 void XMLDocumentParser::parse()
 {
-    while (!isStopped() && !m_parserPaused && !m_stream.atEnd()) {
+    while (!m_parserStopped && !m_parserPaused && !m_stream.atEnd()) {
         m_stream.readNext();
         switch (m_stream.tokenType()) {
         case QXmlStreamReader::StartDocument: {
diff --git a/WebCore/html/parser/HTMLDocumentParser.cpp b/WebCore/html/parser/HTMLDocumentParser.cpp
index 975fcb8..207bd3e 100644
--- a/WebCore/html/parser/HTMLDocumentParser.cpp
+++ b/WebCore/html/parser/HTMLDocumentParser.cpp
@@ -142,28 +142,6 @@ void HTMLDocumentParser::stopParsing()
     m_parserScheduler.clear(); // Deleting the scheduler will clear any timers.
 }
 
-// This kicks off "Once the user agent stops parsing" as described by:
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#the-end
-void HTMLDocumentParser::prepareToStopParsing()
-{
-    ASSERT(!hasInsertionPoint());
-
-    // pumpTokenizer can cause this parser to be detached from the Document,
-    // but we need to ensure it isn't deleted yet.
-    RefPtr<HTMLDocumentParser> protect(this);
-
-    // FIXME: Set the current document readiness to "interactive".
-
-    // NOTE: This pump should only ever emit buffered character tokens,
-    // so ForceSynchronous vs. AllowYield should be meaningless.
-    pumpTokenizerIfPossible(ForceSynchronous);
-
-    DocumentParser::prepareToStopParsing();
-    if (m_scriptRunner && !m_scriptRunner->executeScriptsWaitingForParsing())
-        return;
-    end();
-}
-
 bool HTMLDocumentParser::processingData() const
 {
     return isScheduledForResume() || inWrite();
@@ -171,7 +149,7 @@ bool HTMLDocumentParser::processingData() const
 
 void HTMLDocumentParser::pumpTokenizerIfPossible(SynchronousMode mode)
 {
-    if (isStopped() || m_treeBuilder->isPaused())
+    if (m_parserStopped || m_treeBuilder->isPaused())
         return;
 
     // Once a resume is scheduled, HTMLParserScheduler controls when we next pump.
@@ -215,7 +193,8 @@ bool HTMLDocumentParser::runScriptsForPausedTreeBuilder()
 
 void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode)
 {
-    ASSERT(!isStopped());
+    ASSERT(!isDetached());
+    ASSERT(!m_parserStopped);
     ASSERT(!m_treeBuilder->isPaused());
     ASSERT(!isScheduledForResume());
     // ASSERT that this object is both attached to the Document and protected.
@@ -235,7 +214,7 @@ void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode)
         m_token.clear();
 
         // JavaScript may have stopped or detached the parser.
-        if (isStopped())
+        if (isDetached() || m_parserStopped)
             return;
 
         // The parser will pause itself when waiting on a script to load or run.
@@ -247,7 +226,7 @@ void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode)
         m_treeBuilder->setPaused(!shouldContinueParsing);
 
         // JavaScript may have stopped or detached the parser.
-        if (isStopped())
+        if (isDetached() || m_parserStopped)
             return;
 
         if (!shouldContinueParsing)
@@ -296,7 +275,7 @@ bool HTMLDocumentParser::hasInsertionPoint()
 
 void HTMLDocumentParser::insert(const SegmentedString& source)
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     // pumpTokenizer can cause this parser to be detached from the Document,
@@ -317,7 +296,7 @@ void HTMLDocumentParser::insert(const SegmentedString& source)
 
 void HTMLDocumentParser::append(const SegmentedString& source)
 {
-    if (isStopped())
+    if (m_parserStopped)
         return;
 
     // pumpTokenizer can cause this parser to be detached from the Document,
@@ -349,6 +328,14 @@ void HTMLDocumentParser::end()
     ASSERT(!isDetached());
     ASSERT(!isScheduledForResume());
 
+    // pumpTokenizer can cause this parser to be detached from the Document,
+    // but we need to ensure it isn't deleted yet.
+    RefPtr<HTMLDocumentParser> protect(this);
+
+    // NOTE: This pump should only ever emit buffered character tokens,
+    // so ForceSynchronous vs. AllowYield should be meaningless.
+    pumpTokenizerIfPossible(ForceSynchronous);
+
     // Informs the the rest of WebCore that parsing is really finished (and deletes this).
     m_treeBuilder->finished();
 }
@@ -362,7 +349,7 @@ void HTMLDocumentParser::attemptToEnd()
         m_endWasDelayed = true;
         return;
     }
-    prepareToStopParsing();
+    end();
 }
 
 void HTMLDocumentParser::endIfDelayed()
@@ -375,7 +362,7 @@ void HTMLDocumentParser::endIfDelayed()
         return;
 
     m_endWasDelayed = false;
-    prepareToStopParsing();
+    end();
 }
 
 void HTMLDocumentParser::finish()
@@ -460,11 +447,6 @@ bool HTMLDocumentParser::shouldLoadExternalScriptFromSrc(const AtomicString& src
 
 void HTMLDocumentParser::notifyFinished(CachedResource* cachedResource)
 {
-    if (isStopping()) {
-        prepareToStopParsing();
-        return;
-    }
-
     // pumpTokenizer can cause this parser to be detached from the Document,
     // but we need to ensure it isn't deleted yet.
     RefPtr<HTMLDocumentParser> protect(this);
diff --git a/WebCore/html/parser/HTMLDocumentParser.h b/WebCore/html/parser/HTMLDocumentParser.h
index a32b439..da21a2b 100644
--- a/WebCore/html/parser/HTMLDocumentParser.h
+++ b/WebCore/html/parser/HTMLDocumentParser.h
@@ -81,7 +81,6 @@ private:
     virtual void append(const SegmentedString&);
     virtual bool finishWasCalled();
     virtual bool processingData() const;
-    virtual void prepareToStopParsing();
     virtual void stopParsing();
     virtual bool isWaitingForScripts() const;
     virtual bool isExecutingScript() const;
diff --git a/WebCore/html/parser/HTMLScriptRunner.cpp b/WebCore/html/parser/HTMLScriptRunner.cpp
index 764bf01..6d470a0 100644
--- a/WebCore/html/parser/HTMLScriptRunner.cpp
+++ b/WebCore/html/parser/HTMLScriptRunner.cpp
@@ -75,12 +75,6 @@ HTMLScriptRunner::~HTMLScriptRunner()
     // FIXME: Should we be passed a "done loading/parsing" callback sooner than destruction?
     if (m_parsingBlockingScript.cachedScript() && m_parsingBlockingScript.watchingForLoad())
         stopWatchingForLoad(m_parsingBlockingScript);
-
-    while (!m_scriptsToExecuteAfterParsing.isEmpty()) {
-        PendingScript pendingScript = m_scriptsToExecuteAfterParsing.takeFirst();
-        if (pendingScript.cachedScript() && pendingScript.watchingForLoad())
-            stopWatchingForLoad(pendingScript);
-    }
 }
 
 void HTMLScriptRunner::detach()
@@ -135,6 +129,10 @@ void HTMLScriptRunner::executeParsingBlockingScript()
     ASSERT(m_document->haveStylesheetsLoaded());
     ASSERT(isPendingScriptReady(m_parsingBlockingScript));
 
+    // Stop watching loads before executeScript to prevent recursion if the script reloads itself.
+    if (m_parsingBlockingScript.cachedScript() && m_parsingBlockingScript.watchingForLoad())
+        stopWatchingForLoad(m_parsingBlockingScript);
+
     InsertionPointRecord insertionPointRecord(m_host->inputStream());
     executePendingScriptAndDispatchEvent(m_parsingBlockingScript);
 }
@@ -144,10 +142,6 @@ void HTMLScriptRunner::executePendingScriptAndDispatchEvent(PendingScript& pendi
     bool errorOccurred = false;
     ScriptSourceCode sourceCode = sourceFromPendingScript(pendingScript, errorOccurred);
 
-    // Stop watching loads before executeScript to prevent recursion if the script reloads itself.
-    if (pendingScript.cachedScript() && pendingScript.watchingForLoad())
-        stopWatchingForLoad(pendingScript);
-
     // Clear the pending script before possible rentrancy from executeScript()
     RefPtr<Element> scriptElement = pendingScript.releaseElementAndClear();
     {
@@ -244,24 +238,6 @@ bool HTMLScriptRunner::executeScriptsWaitingForStylesheets()
     return executeParsingBlockingScripts();
 }
 
-bool HTMLScriptRunner::executeScriptsWaitingForParsing()
-{
-    while (!m_scriptsToExecuteAfterParsing.isEmpty()) {
-        ASSERT(!m_scriptNestingLevel);
-        ASSERT(!haveParsingBlockingScript());
-        ASSERT(m_scriptsToExecuteAfterParsing.first().cachedScript());
-        if (!m_scriptsToExecuteAfterParsing.first().cachedScript()->isLoaded()) {
-            watchForLoad(m_scriptsToExecuteAfterParsing.first());
-            return false;
-        }
-        PendingScript first = m_scriptsToExecuteAfterParsing.takeFirst();
-        executePendingScriptAndDispatchEvent(first);
-        if (!m_document)
-            return false;
-    }
-    return true;
-}
-
 void HTMLScriptRunner::requestParsingBlockingScript(Element* element)
 {
     if (!requestPendingScript(m_parsingBlockingScript, element))
@@ -276,16 +252,6 @@ void HTMLScriptRunner::requestParsingBlockingScript(Element* element)
         watchForLoad(m_parsingBlockingScript);
 }
 
-void HTMLScriptRunner::requestDeferredScript(Element* element)
-{
-    PendingScript pendingScript;
-    if (!requestPendingScript(pendingScript, element))
-        return;
-
-    ASSERT(pendingScript.cachedScript());
-    m_scriptsToExecuteAfterParsing.append(pendingScript);
-}
-
 bool HTMLScriptRunner::requestPendingScript(PendingScript& pendingScript, Element* script) const
 {
     ASSERT(!pendingScript.element());
@@ -321,11 +287,8 @@ void HTMLScriptRunner::runScript(Element* script, int startingLineNumber)
         notImplemented(); // event for support
 
         if (script->hasAttribute(srcAttr)) {
-            // FIXME: Handle async.
-            if (script->hasAttribute(deferAttr))
-                requestDeferredScript(script);
-            else
-                requestParsingBlockingScript(script);
+            // FIXME: Handle defer and async
+            requestParsingBlockingScript(script);
         } else {
             // FIXME: We do not block inline <script> tags on stylesheets to match the
             // old parser for now.  When we do, the ASSERT below should be added.
diff --git a/WebCore/html/parser/HTMLScriptRunner.h b/WebCore/html/parser/HTMLScriptRunner.h
index 47c96fd..ead9289 100644
--- a/WebCore/html/parser/HTMLScriptRunner.h
+++ b/WebCore/html/parser/HTMLScriptRunner.h
@@ -27,7 +27,6 @@
 #define HTMLScriptRunner_h
 
 #include "PendingScript.h"
-#include <wtf/Deque.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassRefPtr.h>
 
@@ -57,7 +56,6 @@ public:
     bool executeScriptsWaitingForLoad(CachedResource*);
     bool hasScriptsWaitingForStylesheets() const { return m_hasScriptsWaitingForStylesheets; }
     bool executeScriptsWaitingForStylesheets();
-    bool executeScriptsWaitingForParsing();
 
     bool isExecutingScript() const { return !!m_scriptNestingLevel; }
 
@@ -73,7 +71,6 @@ private:
     bool executeParsingBlockingScripts();
 
     void requestParsingBlockingScript(Element*);
-    void requestDeferredScript(Element*);
     bool requestPendingScript(PendingScript&, Element*) const;
 
     void runScript(Element*, int startingLineNumber);
@@ -87,7 +84,6 @@ private:
     Document* m_document;
     HTMLScriptRunnerHost* m_host;
     PendingScript m_parsingBlockingScript;
-    Deque<PendingScript> m_scriptsToExecuteAfterParsing; // http://www.whatwg.org/specs/web-apps/current-work/#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing
     unsigned m_scriptNestingLevel;
 
     // We only want stylesheet loads to trigger script execution if script
diff --git a/WebCore/loader/ImageDocument.cpp b/WebCore/loader/ImageDocument.cpp
index cc3c85c..702ed9d 100644
--- a/WebCore/loader/ImageDocument.cpp
+++ b/WebCore/loader/ImageDocument.cpp
@@ -138,7 +138,7 @@ void ImageDocumentParser::appendBytes(DocumentWriter*, const char*, int, bool)
 
 void ImageDocumentParser::finish()
 {
-    if (!isStopped() && document()->imageElement()) {
+    if (!m_parserStopped && document()->imageElement()) {
         CachedImage* cachedImage = document()->cachedImage();
         RefPtr<SharedBuffer> data = document()->frame()->loader()->documentLoader()->mainResourceData();
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list