Title: [140842] trunk/Source/WebCore
- Revision
- 140842
- Author
- to...@chromium.org
- Date
- 2013-01-25 10:04:37 -0800 (Fri, 25 Jan 2013)
Log Message
Abort parsing when pending location change for threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=107876
Reviewed by Eric Seidel.
The main thread parser does this in canTakeNextToken. Adding this check to the threaded parser causes us to pass
fast/loader/location-change-aborts-parsing.html.
No new tests because covered by existing tests.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (140841 => 140842)
--- trunk/Source/WebCore/ChangeLog 2013-01-25 18:02:38 UTC (rev 140841)
+++ trunk/Source/WebCore/ChangeLog 2013-01-25 18:04:37 UTC (rev 140842)
@@ -1,3 +1,18 @@
+2013-01-25 Tony Gentilcore <to...@chromium.org>
+
+ Abort parsing when pending location change for threaded HTML parser
+ https://bugs.webkit.org/show_bug.cgi?id=107876
+
+ Reviewed by Eric Seidel.
+
+ The main thread parser does this in canTakeNextToken. Adding this check to the threaded parser causes us to pass
+ fast/loader/location-change-aborts-parsing.html.
+
+ No new tests because covered by existing tests.
+
+ * html/parser/HTMLDocumentParser.cpp:
+ (WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
+
2013-01-25 Mike West <mk...@chromium.org>
ScriptController::executeIfJavaScriptURL incorrectly checks viewsource mode.
Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (140841 => 140842)
--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp 2013-01-25 18:02:38 UTC (rev 140841)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp 2013-01-25 18:04:37 UTC (rev 140842)
@@ -303,8 +303,9 @@
if (isStopped())
break;
- // FIXME: We'll probably need to check document()->frame()->navigationScheduler()->locationChangePending())
- // as we do in canTakeNextToken;
+ if (!isParsingFragment()
+ && document()->frame() && document()->frame()->navigationScheduler()->locationChangePending())
+ break;
if (isWaitingForScripts()) {
ASSERT(it + 1 == tokens->end()); // The </script> is assumed to be the last token of this bunch.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes