REGRESSION: Assertion failure in FrameLoader::continueLoadAfterWillSubmitForm() when
navigating back to an unreachable URL
https://bugs.webkit.org/show_bug.cgi?id=52388
Reviewed by Anders Carlsson.
Source/WebCore:
Test: http/tests/navigation/go-back-to-error-page.html
* history/PageCache.cpp:
(WebCore::PageCache::canCachePageContainingThisFrame):
Do not cache any error pages (which we can recognize as having substitute data and/or an
unreachableURL).
Tools:
Add a third parameter (unreachableURL) to queueLoadHTMLString.
* DumpRenderTree/LayoutTestController.cpp:
(queueLoadHTMLStringCallback):
(LayoutTestController::queueLoadHTMLString):
(LayoutTestController::queueLoadAlternateHTMLString):
* DumpRenderTree/LayoutTestController.h:
* DumpRenderTree/WorkQueueItem.h:
(LoadHTMLStringItem::LoadHTMLStringItem):
* DumpRenderTree/chromium/LayoutTestController.cpp:
(WorkItemLoadHTMLString::WorkItemLoadHTMLString):
(WorkItemLoadHTMLString::run):
(LayoutTestController::queueLoadHTMLString):
* DumpRenderTree/gtk/WorkQueueItemGtk.cpp:
(LoadHTMLStringItem::invoke):
* DumpRenderTree/mac/WorkQueueItemMac.mm:
(LoadHTMLStringItem::invoke):
* DumpRenderTree/win/WorkQueueItemWin.cpp:
(LoadHTMLStringItem::invoke):
LayoutTests:
Add a test that loads an alternate HTML String for an "unreachable" URL, loads another
page, and then goes back to the "unreachable" URL, which is now reachable.
This tests two things:
1) No assertion failure when going back to an unreachable URL.
2) There is no page cached for the unreachable URL.
* http/tests/navigation/go-back-to-error-page-expected.txt: Added.
* http/tests/navigation/go-back-to-error-page.html: Added.
* http/tests/navigation/resources/page-to-go-back-from.html: Added.
* http/tests/navigation/resources/page-treated-as-unreachable.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75966
268f45cc-cd09-0410-ab3c-
d52691b4dbfc