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 af3a4999865428e40593d9cde1d99fc5b55f3435..da69e056661105beb9cf68aa0fd25dbfc7e63657 100644 |
--- a/content/browser/frame_host/navigation_controller_impl_browsertest.cc |
+++ b/content/browser/frame_host/navigation_controller_impl_browsertest.cc |
@@ -6166,17 +6166,37 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
EXPECT_EQ(cross_origin_url, web_contents->GetLastCommittedURL()); |
EXPECT_EQ(2, web_contents->GetController().GetLastCommittedEntryIndex()); |
- // Wait for the back navigation to commit as well. |
- history_commit_observer.Wait(); |
- EXPECT_EQ(start_url, web_contents->GetLastCommittedURL()); |
- EXPECT_EQ(0, web_contents->GetController().GetLastCommittedEntryIndex()); |
- |
- // Verify the expected origin through JavaScript. It also has the additional |
- // verification of the process also being still alive. |
- std::string origin; |
- EXPECT_TRUE(ExecuteScriptAndExtractString( |
- web_contents, "domAutomationController.send(document.origin)", &origin)); |
- EXPECT_EQ(start_url.GetOrigin().spec(), origin + "/"); |
+ if (IsBrowserSideNavigationEnabled()) { |
+ // With browser-side-navigation, the history navigation is dropped. |
+ // Navigate to another URL to give the back navigation the opportunity to |
+ // commit if it was not dropped. |
+ GURL another_url(embedded_test_server()->GetURL("b.com", "/title1.html")); |
+ EXPECT_TRUE(NavigateToURL(shell(), another_url)); |
+ EXPECT_EQ(3, web_contents->GetController().GetLastCommittedEntryIndex()); |
+ EXPECT_EQ(4, web_contents->GetController().GetEntryCount()); |
+ |
+ // Verify the expected origin through JavaScript. It also has the additional |
+ // verification of the process also being still alive. |
+ std::string origin; |
+ EXPECT_TRUE(ExecuteScriptAndExtractString( |
+ web_contents, "domAutomationController.send(document.origin)", |
+ &origin)); |
+ EXPECT_EQ(another_url.GetOrigin().spec(), origin + "/"); |
+ } else { |
+ // Wait for the back navigation to commit as well. |
+ history_commit_observer.Wait(); |
+ EXPECT_EQ(start_url, web_contents->GetLastCommittedURL()); |
+ EXPECT_EQ(0, web_contents->GetController().GetLastCommittedEntryIndex()); |
+ EXPECT_EQ(3, web_contents->GetController().GetEntryCount()); |
+ |
+ // Verify the expected origin through JavaScript. It also has the additional |
+ // verification of the process also being still alive. |
+ std::string origin; |
+ EXPECT_TRUE(ExecuteScriptAndExtractString( |
+ web_contents, "domAutomationController.send(document.origin)", |
+ &origin)); |
+ EXPECT_EQ(start_url.GetOrigin().spec(), origin + "/"); |
+ } |
} |
// Test that verifies that Referer and Origin http headers are correctly sent |