Index: content/browser/frame_host/navigation_controller_impl_browsertest.cc |
diff --git a/content/browser/frame_host/navigation_controller_impl_browsertest.cc b/content/browser/frame_host/navigation_controller_impl_browsertest.cc |
index f566e71e8c5c94a1ae2cf6e55aa140e49720015a..d4286c172b45604a98b76d96c668dcd2bf37ad79 100644 |
--- a/content/browser/frame_host/navigation_controller_impl_browsertest.cc |
+++ b/content/browser/frame_host/navigation_controller_impl_browsertest.cc |
@@ -180,6 +180,12 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
NavigationController& controller = |
shell()->web_contents()->GetController(); |
+ // Before any navigation begins, we have one entry in the NavigationController |
+ // for the initial about:blank, but the renderer thinks the history is empty. |
+ // TODO(creis): Fix https://crbug.com/521729 and verify RendererHistoryLength |
+ // is 0 before the first navigation. (Or check in a popup.) |
+ EXPECT_EQ(1, controller.GetEntryCount()); |
+ |
EXPECT_TRUE(NavigateToURL(shell(), GURL("data:text/html,page1"))); |
EXPECT_EQ(1, controller.GetEntryCount()); |
EXPECT_EQ(1, RendererHistoryLength(shell())); |
@@ -261,10 +267,9 @@ class NoNavigationsObserver : public WebContentsObserver { |
} // namespace |
// Some pages create a popup, then write an iframe into it. This causes a |
-// subframe navigation without having any committed entry. Such navigations |
-// just get thrown on the ground, but we shouldn't crash. |
+// subframe navigation on the initial blank committed entry. |
// |
-// This test actually hits NAVIGATION_TYPE_NAV_IGNORE three times. Two of them, |
+// This test actually hits RendererDidNavigate three times. Two of them, |
// the initial window.open() and the iframe creation, don't try to create |
// navigation entries, and the third, the new navigation, tries to. |
IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, SubframeOnEmptyPage) { |
@@ -286,13 +291,15 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, SubframeOnEmptyPage) { |
GetFrameTree()->root(); |
// Make a new iframe in it. |
+ // TODO(creis): This should actually navigate. |
NoNavigationsObserver observer(new_shell->web_contents()); |
script = "var iframe = document.createElement('iframe');" |
"iframe.src = 'data:text/html,<p>some page</p>';" |
"document.body.appendChild(iframe);"; |
EXPECT_TRUE(content::ExecuteScript(new_root->current_frame_host(), script)); |
// The success check is of the last-committed entry, and there is none. |
- WaitForLoadStopWithoutSuccessCheck(new_shell->web_contents()); |
+ //WaitForLoadStopWithoutSuccessCheck(new_shell->web_contents()); |
+ WaitForLoadStop(new_shell->web_contents()); |
ASSERT_EQ(1U, new_root->child_count()); |
ASSERT_NE(nullptr, new_root->child_at(0)); |
@@ -304,9 +311,9 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, SubframeOnEmptyPage) { |
EXPECT_TRUE(content::ExecuteScript( |
new_root->child_at(0)->current_frame_host(), script)); |
- // Success is not crashing, and not navigating. |
- EXPECT_EQ(nullptr, |
- new_shell->web_contents()->GetController().GetLastCommittedEntry()); |
+ // TODO(creis): Should be able to go back. |
+ // TODO(creis): This currently only works in --site-per-process. I think it's |
+ // because PageState might not get sent if page ID is -1? |
} |
namespace { |