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 c9fa5bdc0db9d7ed2c65fe6bed4fbb383cfe99c2..b3f5fa830151fab9f205141c99cfb29f418e4bc9 100644 |
--- a/content/browser/frame_host/navigation_controller_impl_browsertest.cc |
+++ b/content/browser/frame_host/navigation_controller_impl_browsertest.cc |
@@ -209,6 +209,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, UniqueIDsOnFrames) { |
// The main frame's nav_entry_id should match the last committed entry. |
int unique_id = controller.GetLastCommittedEntry()->GetUniqueID(); |
EXPECT_EQ(unique_id, root->current_frame_host()->nav_entry_id()); |
+ EXPECT_EQ(1, controller.GetEntryCount()); |
// The about:blank iframe should have inherited the same nav_entry_id. |
EXPECT_EQ(unique_id, root->child_at(0)->current_frame_host()->nav_entry_id()); |
@@ -218,25 +219,29 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, UniqueIDsOnFrames) { |
"foo.com", "/navigation_controller/simple_page_1.html")); |
NavigateFrameToURL(root->child_at(0), foo_url); |
EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); |
+ EXPECT_EQ(1, controller.GetEntryCount()); |
- // The unique ID should have stayed the same for the auto-subframe navigation, |
- // since the new page replaces the initial about:blank page in the subframe. |
- EXPECT_EQ(unique_id, controller.GetLastCommittedEntry()->GetUniqueID()); |
- EXPECT_EQ(unique_id, root->current_frame_host()->nav_entry_id()); |
- EXPECT_EQ(unique_id, root->child_at(0)->current_frame_host()->nav_entry_id()); |
+ // The unique ID should have updated for the new subframe navigation, even |
+ // though new page replaces the initial about:blank page in the subframe. |
+ int unique_id2 = controller.GetLastCommittedEntry()->GetUniqueID(); |
+ EXPECT_NE(unique_id, unique_id2); |
+ EXPECT_EQ(unique_id2, root->current_frame_host()->nav_entry_id()); |
+ EXPECT_EQ(unique_id2, |
+ root->child_at(0)->current_frame_host()->nav_entry_id()); |
// Navigating in the subframe again should create a new entry. |
GURL foo_url2(embedded_test_server()->GetURL( |
"foo.com", "/navigation_controller/simple_page_2.html")); |
NavigateFrameToURL(root->child_at(0), foo_url2); |
EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); |
- int unique_id2 = controller.GetLastCommittedEntry()->GetUniqueID(); |
- EXPECT_NE(unique_id, unique_id2); |
+ EXPECT_EQ(2, controller.GetEntryCount()); |
+ int unique_id3 = controller.GetLastCommittedEntry()->GetUniqueID(); |
+ EXPECT_NE(unique_id2, unique_id3); |
// The unique ID should have updated for the current RenderFrameHost in both |
// frames, not just the subframe. |
- EXPECT_EQ(unique_id2, root->current_frame_host()->nav_entry_id()); |
- EXPECT_EQ(unique_id2, |
+ EXPECT_EQ(unique_id3, root->current_frame_host()->nav_entry_id()); |
+ EXPECT_EQ(unique_id3, |
root->child_at(0)->current_frame_host()->nav_entry_id()); |
} |
@@ -634,15 +639,16 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
} |
// Navigate again to the page that fails to load. It must result in an error |
- // page, the EXISTING_PAGE navigation type, and no addition to the history |
- // list. We do not use SAME_PAGE here; that case only differs in that it |
- // clears the pending entry, and there is no pending entry after a load |
- // failure. |
+ // page, the NEW_PAGE navigation type with did_replace_entry, and no addition |
+ // to the history list. We do not use SAME_PAGE here; that case differs in |
+ // that it clears the pending entry, and there is no pending entry after a |
+ // load failure. |
{ |
FrameNavigateParamsCapturer capturer(root); |
NavigateFrameToURL(root, error_url); |
capturer.Wait(); |
- EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type); |
+ EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type); |
+ EXPECT_TRUE(capturer.details().did_replace_entry); |
NavigationEntry* entry = controller.GetLastCommittedEntry(); |
EXPECT_EQ(PAGE_TYPE_ERROR, entry->GetPageType()); |
EXPECT_EQ(2, controller.GetEntryCount()); |
@@ -652,15 +658,15 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
EXPECT_EQ(3, controller.GetEntryCount()); |
- // ... and replace it with a failed load. (Note that when you set the |
- // should_replace_current_entry flag, the navigation is classified as NEW_PAGE |
- // because that is a classification of the renderer's behavior, and the flag |
- // is a browser-side flag.) |
+ // ... and replace it with a failed load. (Note that NavigateToURLAndReplace |
+ // sets the should_replace_current_entry flag, which propagates from the |
+ // browser to the renderer and back.) |
{ |
FrameNavigateParamsCapturer capturer(root); |
NavigateToURLAndReplace(shell(), error_url); |
capturer.Wait(); |
EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type); |
+ EXPECT_TRUE(capturer.details().did_replace_entry); |
NavigationEntry* entry = controller.GetLastCommittedEntry(); |
EXPECT_EQ(PAGE_TYPE_ERROR, entry->GetPageType()); |
EXPECT_EQ(3, controller.GetEntryCount()); |
@@ -672,13 +678,13 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
NavigateToURL(shell(), web_ui_page); |
EXPECT_EQ(4, controller.GetEntryCount()); |
- // ... and replace it with a failed load. (It is NEW_PAGE for the reason noted |
- // above.) |
+ // ... and replace it with a failed load. |
{ |
FrameNavigateParamsCapturer capturer(root); |
NavigateToURLAndReplace(shell(), error_url); |
capturer.Wait(); |
EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type); |
+ EXPECT_TRUE(capturer.details().did_replace_entry); |
NavigationEntry* entry = controller.GetLastCommittedEntry(); |
EXPECT_EQ(PAGE_TYPE_ERROR, entry->GetPageType()); |
EXPECT_EQ(4, controller.GetEntryCount()); |
@@ -760,6 +766,53 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type); |
EXPECT_TRUE(capturer.details().is_in_page); |
} |
+ |
+ // Now test NEW_PAGE with replacement. First, go back so that we can ensure |
+ // location.replace leaves the forward history. |
+ { |
+ FrameNavigateParamsCapturer capturer(root); |
+ shell()->web_contents()->GetController().GoBack(); |
+ capturer.Wait(); |
+ EXPECT_TRUE(shell()->web_contents()->GetController().CanGoForward()); |
+ } |
+ |
+ { |
+ // location.replace(). |
+ FrameNavigateParamsCapturer capturer(root); |
+ GURL frame_url(embedded_test_server()->GetURL( |
+ "/navigation_controller/simple_page_1.html")); |
+ std::string script = "location.replace('" + frame_url.spec() + "')"; |
+ EXPECT_TRUE(content::ExecuteScript(root->current_frame_host(), script)); |
+ capturer.Wait(); |
+ EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT, |
+ capturer.params().transition); |
+ // Unlike replaceState, this replaces the existing entry with a new one. |
+ EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type); |
+ EXPECT_TRUE(capturer.details().did_replace_entry); |
+ EXPECT_FALSE(capturer.details().is_in_page); |
+ |
+ // Make sure the forward history did not get pruned. |
+ EXPECT_TRUE(shell()->web_contents()->GetController().CanGoForward()); |
+ } |
+ |
+ { |
+ // Cross-site location.replace(). |
+ FrameNavigateParamsCapturer capturer(root); |
+ GURL frame_url(embedded_test_server()->GetURL( |
+ "foo.com", "/navigation_controller/simple_page_1.html")); |
+ std::string script = "location.replace('" + frame_url.spec() + "')"; |
+ EXPECT_TRUE(content::ExecuteScript(root->current_frame_host(), script)); |
+ capturer.Wait(); |
+ EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT, |
+ capturer.params().transition); |
+ // Unlike replaceState, this replaces the existing entry with a new one. |
+ EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type); |
+ EXPECT_TRUE(capturer.details().did_replace_entry); |
+ EXPECT_FALSE(capturer.details().is_in_page); |
+ |
+ // Make sure the forward history did not get pruned. |
+ EXPECT_TRUE(shell()->web_contents()->GetController().CanGoForward()); |
+ } |
} |
// Verify that navigations for NAVIGATION_TYPE_EXISTING_PAGE are correctly |
@@ -881,20 +934,6 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
EXPECT_FALSE(capturer.details().is_in_page); |
} |
- { |
- // location.replace(). |
- FrameNavigateParamsCapturer capturer(root); |
- GURL frame_url(embedded_test_server()->GetURL( |
- "/navigation_controller/simple_page_1.html")); |
- std::string script = "location.replace('" + frame_url.spec() + "')"; |
- EXPECT_TRUE(content::ExecuteScript(root->current_frame_host(), script)); |
- capturer.Wait(); |
- EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT, |
- capturer.params().transition); |
- EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type); |
- EXPECT_FALSE(capturer.details().is_in_page); |
- } |
- |
// Now, various in-page navigations. |
{ |
@@ -906,7 +945,9 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
capturer.Wait(); |
EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT, |
capturer.params().transition); |
+ // Unlike location.replace, this updates the existing entry. |
EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type); |
+ EXPECT_TRUE(capturer.details().did_replace_entry); |
EXPECT_TRUE(capturer.details().is_in_page); |
} |
@@ -1045,7 +1086,8 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
"/navigation_controller/simple_page_1.html")); |
NavigateFrameToURL(root->child_at(0), frame_url); |
capturer.Wait(); |
- EXPECT_EQ(ui::PAGE_TRANSITION_AUTO_SUBFRAME, capturer.transition_type()); |
+ // TODO(creis): This doesn't seem right. |
+ EXPECT_EQ(ui::PAGE_TRANSITION_MANUAL_SUBFRAME, capturer.transition_type()); |
} |
{ |
@@ -1116,16 +1158,50 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
EXPECT_EQ(NAVIGATION_TYPE_NEW_SUBFRAME, capturer.details().type); |
} |
+ // Go back so that we can ensure location.replace leaves the forward history. |
+ { |
+ FrameNavigateParamsCapturer capturer(root->child_at(0)); |
+ shell()->web_contents()->GetController().GoBack(); |
+ capturer.Wait(); |
+ EXPECT_TRUE(shell()->web_contents()->GetController().CanGoForward()); |
+ } |
+ |
{ |
// location.replace(). |
- LoadCommittedCapturer capturer(root->child_at(0)); |
+ FrameNavigateParamsCapturer capturer(root->child_at(0)); |
GURL frame_url(embedded_test_server()->GetURL( |
"/navigation_controller/simple_page_2.html")); |
std::string script = "location.replace('" + frame_url.spec() + "')"; |
EXPECT_TRUE(content::ExecuteScript(root->child_at(0)->current_frame_host(), |
script)); |
capturer.Wait(); |
- EXPECT_EQ(ui::PAGE_TRANSITION_AUTO_SUBFRAME, capturer.transition_type()); |
+ // Unlike replaceState, this replaces the existing entry with a new one. |
+ EXPECT_EQ(ui::PAGE_TRANSITION_MANUAL_SUBFRAME, |
+ capturer.params().transition); |
+ EXPECT_EQ(NAVIGATION_TYPE_NEW_SUBFRAME, capturer.details().type); |
+ EXPECT_TRUE(capturer.details().did_replace_entry); |
+ |
+ // Make sure the forward history did not get pruned. |
+ EXPECT_TRUE(shell()->web_contents()->GetController().CanGoForward()); |
+ } |
+ |
+ { |
+ // Cross-site location.replace(). |
+ FrameNavigateParamsCapturer capturer(root->child_at(0)); |
+ GURL frame_url(embedded_test_server()->GetURL( |
+ "foo.com", "/navigation_controller/simple_page_2.html")); |
+ std::string script = "location.replace('" + frame_url.spec() + "')"; |
+ EXPECT_TRUE(content::ExecuteScript(root->child_at(0)->current_frame_host(), |
+ script)); |
+ capturer.Wait(); |
+ // Unlike replaceState, this replaces the existing entry with a new one. |
+ EXPECT_EQ(ui::PAGE_TRANSITION_MANUAL_SUBFRAME, |
+ capturer.params().transition); |
+ EXPECT_EQ(NAVIGATION_TYPE_NEW_SUBFRAME, capturer.details().type); |
+ EXPECT_TRUE(capturer.details().did_replace_entry); |
+ |
+ // Make sure the forward history did not get pruned. |
+ EXPECT_TRUE(shell()->web_contents()->GetController().CanGoForward()); |
} |
{ |
@@ -1149,6 +1225,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
EXPECT_TRUE(content::ExecuteScript(root->child_at(0)->current_frame_host(), |
script)); |
capturer.Wait(); |
+ // Unlike location.replace, this updates the existing entry. |
EXPECT_EQ(ui::PAGE_TRANSITION_AUTO_SUBFRAME, capturer.transition_type()); |
} |
@@ -1203,7 +1280,8 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, details[0].type); |
EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT, |
params[1].transition); |
- EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, details[1].type); |
+ EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, details[1].type); |
+ EXPECT_TRUE(details[1].did_replace_entry); |
} |
} |
@@ -1386,7 +1464,8 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
} |
EXPECT_FALSE(root->child_at(1)->has_committed_real_load()); |
- // 3. A real same-site navigation in the nested iframe should be AUTO. |
+ // 3. A real same-site navigation in the nested iframe should be MANUAL with |
+ // replacement. |
GURL frame_url(embedded_test_server()->GetURL( |
"/navigation_controller/simple_page_1.html")); |
{ |
@@ -1396,30 +1475,32 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
EXPECT_TRUE(content::ExecuteScript(root->child_at(0)->current_frame_host(), |
script)); |
capturer.Wait(); |
- EXPECT_EQ(ui::PAGE_TRANSITION_AUTO_SUBFRAME, capturer.transition_type()); |
+ EXPECT_EQ(ui::PAGE_TRANSITION_MANUAL_SUBFRAME, capturer.transition_type()); |
} |
// Check last committed NavigationEntry. It should have replaced the previous |
- // frame entry in the original NavigationEntry. |
+ // NavigationEntry. |
EXPECT_EQ(1, controller.GetEntryCount()); |
- EXPECT_EQ(entry, controller.GetLastCommittedEntry()); |
+ NavigationEntryImpl* entry2 = controller.GetLastCommittedEntry(); |
+ EXPECT_NE(entry, entry2); |
// Verify subframe entries if they're enabled (e.g. in --site-per-process). |
if (SiteIsolationPolicy::UseSubframeNavigationEntries()) { |
// The entry should still have one nested subframe FrameNavigationEntry. |
- ASSERT_EQ(1U, entry->root_node()->children[0]->children.size()); |
+ ASSERT_EQ(1U, entry2->root_node()->children[0]->children.size()); |
FrameNavigationEntry* frame_entry = |
- entry->root_node()->children[0]->children[0]->frame_entry.get(); |
+ entry2->root_node()->children[0]->children[0]->frame_entry.get(); |
EXPECT_EQ(frame_url, frame_entry->url()); |
} else { |
// There are no subframe FrameNavigationEntries by default. |
- EXPECT_EQ(0U, entry->root_node()->children.size()); |
+ EXPECT_EQ(0U, entry2->root_node()->children.size()); |
} |
EXPECT_FALSE(root->child_at(0)->has_committed_real_load()); |
EXPECT_TRUE(root->child_at(0)->child_at(0)->has_committed_real_load()); |
EXPECT_FALSE(root->child_at(1)->has_committed_real_load()); |
- // 4. A real cross-site navigation in the second iframe should be AUTO. |
+ // 4. A real cross-site navigation in the second iframe should be MANUAL with |
+ // replacement. |
GURL foo_url(embedded_test_server()->GetURL( |
"foo.com", "/navigation_controller/simple_page_2.html")); |
{ |
@@ -1428,23 +1509,24 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
"frames[1].src = '" + foo_url.spec() + "';"; |
EXPECT_TRUE(content::ExecuteScript(root->current_frame_host(), script)); |
capturer.Wait(); |
- EXPECT_EQ(ui::PAGE_TRANSITION_AUTO_SUBFRAME, capturer.transition_type()); |
+ EXPECT_EQ(ui::PAGE_TRANSITION_MANUAL_SUBFRAME, capturer.transition_type()); |
} |
// Check last committed NavigationEntry. |
EXPECT_EQ(1, controller.GetEntryCount()); |
- EXPECT_EQ(entry, controller.GetLastCommittedEntry()); |
+ NavigationEntryImpl* entry3 = controller.GetLastCommittedEntry(); |
+ EXPECT_NE(entry2, entry3); |
// Verify subframe entries if they're enabled (e.g. in --site-per-process). |
if (SiteIsolationPolicy::UseSubframeNavigationEntries()) { |
// The entry should still have two subframe FrameNavigationEntries. |
- ASSERT_EQ(2U, entry->root_node()->children.size()); |
+ ASSERT_EQ(2U, entry3->root_node()->children.size()); |
FrameNavigationEntry* frame_entry = |
- entry->root_node()->children[1]->frame_entry.get(); |
+ entry3->root_node()->children[1]->frame_entry.get(); |
EXPECT_EQ(foo_url, frame_entry->url()); |
} else { |
// There are no subframe FrameNavigationEntries by default. |
- EXPECT_EQ(0U, entry->root_node()->children.size()); |
+ EXPECT_EQ(0U, entry3->root_node()->children.size()); |
} |
EXPECT_FALSE(root->child_at(0)->has_committed_real_load()); |
EXPECT_TRUE(root->child_at(0)->child_at(0)->has_committed_real_load()); |
@@ -1465,18 +1547,18 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
// This should have created a new NavigationEntry. |
EXPECT_EQ(2, controller.GetEntryCount()); |
- EXPECT_NE(entry, controller.GetLastCommittedEntry()); |
- NavigationEntryImpl* entry2 = controller.GetLastCommittedEntry(); |
+ NavigationEntryImpl* entry4 = controller.GetLastCommittedEntry(); |
+ EXPECT_NE(entry3, entry4); |
// Verify subframe entries if they're enabled (e.g. in --site-per-process). |
if (SiteIsolationPolicy::UseSubframeNavigationEntries()) { |
- ASSERT_EQ(2U, entry->root_node()->children.size()); |
+ ASSERT_EQ(2U, entry4->root_node()->children.size()); |
FrameNavigationEntry* frame_entry = |
- entry2->root_node()->children[0]->children[0]->frame_entry.get(); |
+ entry4->root_node()->children[0]->children[0]->frame_entry.get(); |
EXPECT_EQ(about_blank_url, frame_entry->url()); |
} else { |
// There are no subframe FrameNavigationEntries by default. |
- EXPECT_EQ(0U, entry->root_node()->children.size()); |
+ EXPECT_EQ(0U, entry4->root_node()->children.size()); |
} |
EXPECT_FALSE(root->child_at(0)->has_committed_real_load()); |
EXPECT_TRUE(root->child_at(0)->child_at(0)->has_committed_real_load()); |
@@ -1805,7 +1887,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
EXPECT_EQ(0U, entry3->root_node()->children.size()); |
} |
- // 6. Navigate the second subframe cross-site, clearing its existing subtree. |
+ // 5. Navigate the second subframe cross-site, clearing its existing subtree. |
GURL baz_url(embedded_test_server()->GetURL( |
"baz.com", "/navigation_controller/simple_page_1.html")); |
{ |
@@ -1876,7 +1958,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, |
LoadCommittedCapturer capturer(root->child_at(0)); |
NavigateFrameToURL(root->child_at(0), subframe_url); |
capturer.Wait(); |
- EXPECT_EQ(ui::PAGE_TRANSITION_AUTO_SUBFRAME, capturer.transition_type()); |
+ EXPECT_EQ(ui::PAGE_TRANSITION_MANUAL_SUBFRAME, capturer.transition_type()); |
} |
// 2. In-page navigation in the main frame. |
@@ -3146,6 +3228,16 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, ReloadOriginalRequest) { |
RenderProcessKilledObserver kill_observer(shell()->web_contents()); |
// Redirect so that we can use ReloadOriginalRequest. |
+ // TODO(creis): The test is failing because this replacement isn't preserving |
+ // the redirect chain or original_request_url for a cross process transfer. |
+ // I think it worked before because those values stuck around when we just |
+ // updated the old NavEntry, but that's not a safe thing to do on a |
+ // SiteInstance change. Instead, we should propagate them during the transfer |
+ // so that they show up in the new commit. |
+ // We appear to be trying to propagate the redirect chain, but the request in |
+ // the network stack doesn't have the earlier items in the chain. Is this a |
+ // bug or expected? Does it apply to all client redirects, or just this test? |
+ // Does it apply to server redirects? |
GURL redirect_url(embedded_test_server()->GetURL( |
"foo.com", "/navigation_controller/simple_page_1.html")); |
{ |
@@ -3155,7 +3247,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, ReloadOriginalRequest) { |
capturer.Wait(); |
EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT, |
capturer.params().transition); |
- EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type); |
+ EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type); |
} |
// Modify an entry in the session history and reload the original request. |
@@ -3183,6 +3275,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, ReloadOriginalRequest) { |
capturer.set_navigations_remaining(2); |
capturer.Wait(); |
EXPECT_EQ(2U, capturer.all_details().size()); |
+ // TODO(creis): This is failing in --site-per-process. |
EXPECT_EQ(modified_url, capturer.all_params()[0].url); |
EXPECT_EQ(original_url, capturer.all_params()[1].url); |
EXPECT_EQ(original_url, shell()->web_contents()->GetLastCommittedURL()); |