Index: content/browser/frame_host/navigation_controller_impl_unittest.cc |
diff --git a/content/browser/frame_host/navigation_controller_impl_unittest.cc b/content/browser/frame_host/navigation_controller_impl_unittest.cc |
index 05694a8249c3f0c2ecc54994cf615ad04bab70cd..3692b4b08284ede88f56f33bcbd833465065c958 100644 |
--- a/content/browser/frame_host/navigation_controller_impl_unittest.cc |
+++ b/content/browser/frame_host/navigation_controller_impl_unittest.cc |
@@ -295,6 +295,25 @@ class TestWebContentsDelegate : public WebContentsDelegate { |
int repost_form_warning_count_; |
}; |
+// Observer that records the LoadCommittedDetails from the most recent commit. |
+class LoadCommittedDetailsObserver : public WebContentsObserver { |
+ public: |
+ // Observes navigation for the specified |web_contents|. |
+ explicit LoadCommittedDetailsObserver(WebContents* web_contents) |
+ : WebContentsObserver(web_contents) {} |
+ |
+ const LoadCommittedDetails& details() { return details_; } |
+ |
+ private: |
+ void DidNavigateAnyFrame(RenderFrameHost* render_frame_host, |
+ const LoadCommittedDetails& details, |
+ const FrameNavigateParams& params) override { |
+ details_ = details; |
+ } |
+ |
+ LoadCommittedDetails details_; |
+}; |
+ |
// ----------------------------------------------------------------------------- |
TEST_F(NavigationControllerTest, Defaults) { |
@@ -408,23 +427,23 @@ TEST_F(NavigationControllerTest, DontDiscardWrongPendingEntry) { |
// message, creating the NavigationHandle. |
controller.LoadURL(url_1, Referrer(), ui::PAGE_TRANSITION_TYPED, |
std::string()); |
- EXPECT_EQ(controller.GetVisibleEntry()->GetURL(), url_1); |
+ EXPECT_EQ(url_1, controller.GetVisibleEntry()->GetURL()); |
Charlie Reis
2016/03/14 18:48:50
I also included changes to this test to list the e
|
main_test_rfh()->SimulateNavigationStart(url_1); |
- EXPECT_EQ(controller.GetVisibleEntry()->GetURL(), url_1); |
+ EXPECT_EQ(url_1, controller.GetVisibleEntry()->GetURL()); |
// Navigate to url_2, aborting url_1 before the DidStartProvisionalLoad |
// message is received for url_2. Do not discard the pending entry for url_2 |
// here. |
controller.LoadURL(url_2, Referrer(), ui::PAGE_TRANSITION_TYPED, |
std::string()); |
- EXPECT_EQ(controller.GetVisibleEntry()->GetURL(), url_2); |
+ EXPECT_EQ(url_2, controller.GetVisibleEntry()->GetURL()); |
main_test_rfh()->SimulateNavigationError(url_1, net::ERR_ABORTED); |
- EXPECT_EQ(controller.GetVisibleEntry()->GetURL(), url_2); |
+ EXPECT_EQ(url_2, controller.GetVisibleEntry()->GetURL()); |
// Get the DidStartProvisionalLoad message for url_2. |
main_test_rfh()->SimulateNavigationStart(url_2); |
- EXPECT_EQ(controller.GetVisibleEntry()->GetURL(), url_2); |
+ EXPECT_EQ(url_2, controller.GetVisibleEntry()->GetURL()); |
} |
TEST_F(NavigationControllerTest, LoadURL) { |
@@ -1864,10 +1883,8 @@ TEST_F(NavigationControllerTest, Redirect) { |
params.is_post = false; |
params.page_state = PageState::CreateFromURL(url2); |
- LoadCommittedDetails details; |
- |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
@@ -1884,12 +1901,13 @@ TEST_F(NavigationControllerTest, Redirect) { |
params.did_create_new_entry = false; |
EXPECT_EQ(0U, notifications.size()); |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(details.type == NAVIGATION_TYPE_SAME_PAGE); |
+ EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, observer.details().type); |
EXPECT_EQ(controller.GetEntryCount(), 1); |
EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); |
EXPECT_TRUE(controller.GetLastCommittedEntry()); |
@@ -1933,10 +1951,8 @@ TEST_F(NavigationControllerTest, PostThenRedirect) { |
params.is_post = true; |
params.page_state = PageState::CreateFromURL(url2); |
- LoadCommittedDetails details; |
- |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
@@ -1954,12 +1970,13 @@ TEST_F(NavigationControllerTest, PostThenRedirect) { |
params.is_post = false; |
EXPECT_EQ(0U, notifications.size()); |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(details.type == NAVIGATION_TYPE_SAME_PAGE); |
+ EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, observer.details().type); |
EXPECT_EQ(controller.GetEntryCount(), 1); |
EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); |
EXPECT_TRUE(controller.GetLastCommittedEntry()); |
@@ -2003,15 +2020,15 @@ TEST_F(NavigationControllerTest, ImmediateRedirect) { |
params.is_post = false; |
params.page_state = PageState::CreateFromURL(url2); |
- LoadCommittedDetails details; |
+ LoadCommittedDetailsObserver observer(contents()); |
EXPECT_EQ(0U, notifications.size()); |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(details.type == NAVIGATION_TYPE_NEW_PAGE); |
+ EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, observer.details().type); |
EXPECT_EQ(controller.GetEntryCount(), 1); |
EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); |
EXPECT_TRUE(controller.GetLastCommittedEntry()); |
@@ -2068,12 +2085,11 @@ TEST_F(NavigationControllerTest, |
params.transition = ui::PAGE_TRANSITION_TYPED; |
params.page_state = PageState::CreateFromURL(url1); |
- LoadCommittedDetails details; |
+ LoadCommittedDetailsObserver observer(contents()); |
main_test_rfh()->PrepareForCommit(); |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
- EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, details.type); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
+ EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, observer.details().type); |
} |
// Tests navigation via link click within a subframe. A new navigation entry |
@@ -2093,8 +2109,8 @@ TEST_F(NavigationControllerTest, NewSubframe) { |
process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, |
std::string(), "uniqueName0", blink::WebSandboxFlags::None, |
blink::WebFrameOwnerProperties()); |
- RenderFrameHostImpl* subframe = |
- contents()->GetFrameTree()->root()->child_at(0)->current_frame_host(); |
+ TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( |
+ contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); |
const GURL subframe_url("http://foo1/subframe"); |
{ |
FrameHostMsg_DidCommitProvisionalLoad_Params params; |
@@ -2109,8 +2125,8 @@ TEST_F(NavigationControllerTest, NewSubframe) { |
params.page_state = PageState::CreateFromURL(subframe_url); |
// Navigating should do nothing. |
- LoadCommittedDetails details; |
- EXPECT_FALSE(controller.RendererDidNavigate(subframe, params, &details)); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
EXPECT_EQ(0U, notifications.size()); |
} |
@@ -2127,18 +2143,19 @@ TEST_F(NavigationControllerTest, NewSubframe) { |
params.is_post = false; |
params.page_state = PageState::CreateFromURL(url2); |
- LoadCommittedDetails details; |
- EXPECT_TRUE(controller.RendererDidNavigate(subframe, params, &details)); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_EQ(url1, details.previous_url); |
- EXPECT_FALSE(details.is_in_page); |
- EXPECT_FALSE(details.is_main_frame); |
+ EXPECT_EQ(url1, observer.details().previous_url); |
+ EXPECT_FALSE(observer.details().is_in_page); |
+ EXPECT_FALSE(observer.details().is_main_frame); |
// The new entry should be appended. |
NavigationEntryImpl* entry = controller.GetLastCommittedEntry(); |
EXPECT_EQ(2, controller.GetEntryCount()); |
- EXPECT_EQ(entry, details.entry); |
+ EXPECT_EQ(entry, observer.details().entry); |
// New entry should refer to the new page, but the old URL (entries only |
// reflect the toplevel URL). |
@@ -2174,8 +2191,8 @@ TEST_F(NavigationControllerTest, AutoSubframe) { |
process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, |
std::string(), "uniqueName0", blink::WebSandboxFlags::None, |
blink::WebFrameOwnerProperties()); |
- RenderFrameHostImpl* subframe = |
- contents()->GetFrameTree()->root()->child_at(0)->current_frame_host(); |
+ TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( |
+ contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); |
const GURL url2("http://foo/2"); |
{ |
FrameHostMsg_DidCommitProvisionalLoad_Params params; |
@@ -2190,8 +2207,8 @@ TEST_F(NavigationControllerTest, AutoSubframe) { |
params.page_state = PageState::CreateFromURL(url2); |
// Navigating should do nothing. |
- LoadCommittedDetails details; |
- EXPECT_FALSE(controller.RendererDidNavigate(subframe, params, &details)); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
EXPECT_EQ(0U, notifications.size()); |
} |
@@ -2220,8 +2237,8 @@ TEST_F(NavigationControllerTest, AutoSubframe) { |
process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, |
std::string(), "uniqueName1", blink::WebSandboxFlags::None, |
blink::WebFrameOwnerProperties()); |
- RenderFrameHostImpl* subframe2 = |
- contents()->GetFrameTree()->root()->child_at(1)->current_frame_host(); |
+ TestRenderFrameHost* subframe2 = static_cast<TestRenderFrameHost*>( |
+ contents()->GetFrameTree()->root()->child_at(1)->current_frame_host()); |
const GURL url3("http://foo/3"); |
{ |
FrameHostMsg_DidCommitProvisionalLoad_Params params; |
@@ -2236,8 +2253,8 @@ TEST_F(NavigationControllerTest, AutoSubframe) { |
params.page_state = PageState::CreateFromURL(url3); |
// Navigating should do nothing. |
- LoadCommittedDetails details; |
- EXPECT_FALSE(controller.RendererDidNavigate(subframe2, params, &details)); |
+ subframe2->PrepareForCommit(); |
+ subframe2->SendNavigateWithParams(¶ms); |
EXPECT_EQ(0U, notifications.size()); |
} |
@@ -2266,12 +2283,13 @@ TEST_F(NavigationControllerTest, AutoSubframe) { |
blink::WebTreeScopeType::Document, std::string(), |
"uniqueName2", blink::WebSandboxFlags::None, |
blink::WebFrameOwnerProperties()); |
- RenderFrameHostImpl* subframe3 = contents() |
- ->GetFrameTree() |
- ->root() |
- ->child_at(0) |
- ->child_at(0) |
- ->current_frame_host(); |
+ TestRenderFrameHost* subframe3 = |
+ static_cast<TestRenderFrameHost*>(contents() |
+ ->GetFrameTree() |
+ ->root() |
+ ->child_at(0) |
+ ->child_at(0) |
+ ->current_frame_host()); |
const GURL url4("http://foo/4"); |
{ |
FrameHostMsg_DidCommitProvisionalLoad_Params params; |
@@ -2286,8 +2304,8 @@ TEST_F(NavigationControllerTest, AutoSubframe) { |
params.page_state = PageState::CreateFromURL(url4); |
// Navigating should do nothing. |
- LoadCommittedDetails details; |
- EXPECT_FALSE(controller.RendererDidNavigate(subframe3, params, &details)); |
+ subframe3->PrepareForCommit(); |
+ subframe3->SendNavigateWithParams(¶ms); |
EXPECT_EQ(0U, notifications.size()); |
} |
@@ -2331,8 +2349,8 @@ TEST_F(NavigationControllerTest, BackSubframe) { |
process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, |
std::string(), "uniqueName0", blink::WebSandboxFlags::None, |
blink::WebFrameOwnerProperties()); |
- RenderFrameHostImpl* subframe = |
- contents()->GetFrameTree()->root()->child_at(0)->current_frame_host(); |
+ TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( |
+ contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); |
const GURL subframe_url("http://foo1/subframe"); |
{ |
FrameHostMsg_DidCommitProvisionalLoad_Params params; |
@@ -2347,8 +2365,8 @@ TEST_F(NavigationControllerTest, BackSubframe) { |
params.page_state = PageState::CreateFromURL(subframe_url); |
// Navigating should do nothing. |
- LoadCommittedDetails details; |
- EXPECT_FALSE(controller.RendererDidNavigate(subframe, params, &details)); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
EXPECT_EQ(0U, notifications.size()); |
} |
@@ -2366,8 +2384,8 @@ TEST_F(NavigationControllerTest, BackSubframe) { |
params.page_state = PageState::CreateFromURL(url2); |
// This should generate a new entry. |
- LoadCommittedDetails details; |
- EXPECT_TRUE(controller.RendererDidNavigate(subframe, params, &details)); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
NavigationEntryImpl* entry2 = controller.GetLastCommittedEntry(); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
@@ -2391,7 +2409,8 @@ TEST_F(NavigationControllerTest, BackSubframe) { |
params.url = url3; |
params.transition = ui::PAGE_TRANSITION_MANUAL_SUBFRAME; |
params.page_state = PageState::CreateFromURL(url3); |
- EXPECT_TRUE(controller.RendererDidNavigate(subframe, params, &details)); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
NavigationEntryImpl* entry3 = controller.GetLastCommittedEntry(); |
@@ -2416,7 +2435,8 @@ TEST_F(NavigationControllerTest, BackSubframe) { |
params.url = url2; |
params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; |
params.page_state = PageState::CreateFromURL(url2); |
- EXPECT_TRUE(controller.RendererDidNavigate(subframe, params, &details)); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
EXPECT_EQ(entry2, controller.GetLastCommittedEntry()); |
@@ -2433,7 +2453,8 @@ TEST_F(NavigationControllerTest, BackSubframe) { |
params.url = subframe_url; |
params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; |
params.page_state = PageState::CreateFromURL(subframe_url); |
- EXPECT_TRUE(controller.RendererDidNavigate(subframe, params, &details)); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
EXPECT_EQ(entry1, controller.GetLastCommittedEntry()); |
@@ -2494,14 +2515,14 @@ TEST_F(NavigationControllerTest, InPage) { |
self_params.page_state = PageState::CreateFromURL(url1); |
self_params.was_within_same_page = true; |
- LoadCommittedDetails details; |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), self_params, |
- &details)); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(&self_params); |
NavigationEntry* entry1 = controller.GetLastCommittedEntry(); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(details.is_in_page); |
- EXPECT_TRUE(details.did_replace_entry); |
+ EXPECT_TRUE(observer.details().is_in_page); |
+ EXPECT_TRUE(observer.details().did_replace_entry); |
EXPECT_EQ(1, controller.GetEntryCount()); |
// Fragment navigation to a new page_id. |
@@ -2519,13 +2540,13 @@ TEST_F(NavigationControllerTest, InPage) { |
params.was_within_same_page = true; |
// This should generate a new entry. |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
NavigationEntry* entry2 = controller.GetLastCommittedEntry(); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(details.is_in_page); |
- EXPECT_FALSE(details.did_replace_entry); |
+ EXPECT_TRUE(observer.details().is_in_page); |
+ EXPECT_FALSE(observer.details().did_replace_entry); |
EXPECT_EQ(2, controller.GetEntryCount()); |
// Go back one. |
@@ -2535,11 +2556,11 @@ TEST_F(NavigationControllerTest, InPage) { |
back_params.page_id = 0; |
back_params.nav_entry_id = entry1->GetUniqueID(); |
back_params.did_create_new_entry = false; |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), back_params, |
- &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(&back_params); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(details.is_in_page); |
+ EXPECT_TRUE(observer.details().is_in_page); |
EXPECT_EQ(2, controller.GetEntryCount()); |
EXPECT_EQ(0, controller.GetCurrentEntryIndex()); |
EXPECT_EQ(back_params.url, controller.GetVisibleEntry()->GetURL()); |
@@ -2551,11 +2572,11 @@ TEST_F(NavigationControllerTest, InPage) { |
forward_params.page_id = 1; |
forward_params.nav_entry_id = entry2->GetUniqueID(); |
forward_params.did_create_new_entry = false; |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), forward_params, |
- &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(&forward_params); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(details.is_in_page); |
+ EXPECT_TRUE(observer.details().is_in_page); |
EXPECT_EQ(2, controller.GetEntryCount()); |
EXPECT_EQ(1, controller.GetCurrentEntryIndex()); |
EXPECT_EQ(forward_params.url, |
@@ -2566,11 +2587,11 @@ TEST_F(NavigationControllerTest, InPage) { |
// one identified by an existing page ID. This would result in the second URL |
// losing the reference fragment when you navigate away from it and then back. |
controller.GoBack(); |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), back_params, |
- &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(&back_params); |
controller.GoForward(); |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), forward_params, |
- &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(&forward_params); |
EXPECT_EQ(forward_params.url, |
controller.GetVisibleEntry()->GetURL()); |
@@ -2581,11 +2602,11 @@ TEST_F(NavigationControllerTest, InPage) { |
params.did_create_new_entry = true; |
params.url = url3; |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_FALSE(details.is_in_page); |
+ EXPECT_FALSE(observer.details().is_in_page); |
EXPECT_EQ(3, controller.GetEntryCount()); |
EXPECT_EQ(2, controller.GetCurrentEntryIndex()); |
} |
@@ -2616,13 +2637,13 @@ TEST_F(NavigationControllerTest, InPage_Replace) { |
params.was_within_same_page = true; |
// This should NOT generate a new entry, nor prune the list. |
- LoadCommittedDetails details; |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(details.is_in_page); |
- EXPECT_TRUE(details.did_replace_entry); |
+ EXPECT_TRUE(observer.details().is_in_page); |
+ EXPECT_TRUE(observer.details().did_replace_entry); |
EXPECT_EQ(1, controller.GetEntryCount()); |
} |
@@ -2670,13 +2691,13 @@ TEST_F(NavigationControllerTest, ClientRedirectAfterInPageNavigation) { |
params.was_within_same_page = true; |
// This should NOT generate a new entry, nor prune the list. |
- LoadCommittedDetails details; |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_TRUE(details.is_in_page); |
- EXPECT_TRUE(details.did_replace_entry); |
+ EXPECT_TRUE(observer.details().is_in_page); |
+ EXPECT_TRUE(observer.details().did_replace_entry); |
EXPECT_EQ(2, controller.GetEntryCount()); |
} |
@@ -2697,12 +2718,12 @@ TEST_F(NavigationControllerTest, ClientRedirectAfterInPageNavigation) { |
params.page_state = PageState::CreateFromURL(url); |
// This SHOULD generate a new entry. |
- LoadCommittedDetails details; |
- EXPECT_TRUE(controller.RendererDidNavigate(main_test_rfh(), params, |
- &details)); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(1U, navigation_entry_committed_counter_); |
navigation_entry_committed_counter_ = 0; |
- EXPECT_FALSE(details.is_in_page); |
+ EXPECT_FALSE(observer.details().is_in_page); |
EXPECT_EQ(3, controller.GetEntryCount()); |
} |
@@ -2881,9 +2902,10 @@ TEST_F(NavigationControllerTest, RestoreNavigate) { |
params.gesture = NavigationGestureUser; |
params.is_post = false; |
params.page_state = PageState::CreateFromURL(url); |
- LoadCommittedDetails details; |
- our_controller.RendererDidNavigate(our_contents->GetMainFrame(), params, |
- &details); |
+ TestRenderFrameHost* main_rfh = |
+ static_cast<TestRenderFrameHost*>(our_contents->GetMainFrame()); |
+ main_rfh->PrepareForCommit(); |
+ main_rfh->SendNavigateWithParams(¶ms); |
// There should be no longer any pending entry and one committed one. This |
// means that we were able to locate the entry, assign its site instance, and |
@@ -2963,9 +2985,10 @@ TEST_F(NavigationControllerTest, RestoreNavigateAfterFailure) { |
params.gesture = NavigationGestureUser; |
params.is_post = false; |
params.page_state = PageState::CreateFromURL(url); |
- LoadCommittedDetails details; |
- our_controller.RendererDidNavigate(our_contents->GetMainFrame(), params, |
- &details); |
+ TestRenderFrameHost* main_rfh = |
+ static_cast<TestRenderFrameHost*>(our_contents->GetMainFrame()); |
+ main_rfh->PrepareForCommit(); |
+ main_rfh->SendNavigateWithParams(¶ms); |
// There should be no pending entry and one committed one. |
EXPECT_EQ(1, our_controller.GetEntryCount()); |
@@ -3770,8 +3793,8 @@ TEST_F(NavigationControllerTest, SameSubframe) { |
process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, |
std::string(), "uniqueName0", blink::WebSandboxFlags::None, |
blink::WebFrameOwnerProperties()); |
- RenderFrameHostImpl* subframe = |
- contents()->GetFrameTree()->root()->child_at(0)->current_frame_host(); |
+ TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( |
+ contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); |
const GURL subframe_url("http://www.google.com/#"); |
FrameHostMsg_DidCommitProvisionalLoad_Params params; |
params.page_id = 0; |
@@ -3783,8 +3806,8 @@ TEST_F(NavigationControllerTest, SameSubframe) { |
params.gesture = NavigationGestureAuto; |
params.is_post = false; |
params.page_state = PageState::CreateFromURL(subframe_url); |
- LoadCommittedDetails details; |
- EXPECT_FALSE(controller.RendererDidNavigate(subframe, params, &details)); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
// Nothing should have changed. |
EXPECT_EQ(controller.GetEntryCount(), 1); |
@@ -3937,8 +3960,8 @@ TEST_F(NavigationControllerTest, SubframeWhilePending) { |
process()->GetNextRoutingID(), blink::WebTreeScopeType::Document, |
std::string(), "uniqueName0", blink::WebSandboxFlags::None, |
blink::WebFrameOwnerProperties()); |
- RenderFrameHostImpl* subframe = |
- contents()->GetFrameTree()->root()->child_at(0)->current_frame_host(); |
+ TestRenderFrameHost* subframe = static_cast<TestRenderFrameHost*>( |
+ contents()->GetFrameTree()->root()->child_at(0)->current_frame_host()); |
const GURL url1_sub("http://foo/subframe"); |
FrameHostMsg_DidCommitProvisionalLoad_Params params; |
params.page_id = controller.GetLastCommittedEntry()->GetPageID(); |
@@ -3950,10 +3973,10 @@ TEST_F(NavigationControllerTest, SubframeWhilePending) { |
params.gesture = NavigationGestureAuto; |
params.is_post = false; |
params.page_state = PageState::CreateFromURL(url1_sub); |
- LoadCommittedDetails details; |
// This should return false meaning that nothing was actually updated. |
- EXPECT_FALSE(controller.RendererDidNavigate(subframe, params, &details)); |
+ subframe->PrepareForCommit(); |
+ subframe->SendNavigateWithParams(¶ms); |
// The notification should have updated the last committed one, and not |
// the pending load. |
@@ -5012,6 +5035,8 @@ TEST_F(NavigationControllerTest, PostThenReplaceStateThenReload) { |
TEST_F(NavigationControllerTest, UnreachableURLGivesErrorPage) { |
GURL url("http://foo"); |
+ controller().LoadURL(url, Referrer(), ui::PAGE_TRANSITION_TYPED, |
+ std::string()); |
FrameHostMsg_DidCommitProvisionalLoad_Params params; |
params.page_id = 1; |
params.nav_entry_id = 0; |
@@ -5027,21 +5052,23 @@ TEST_F(NavigationControllerTest, UnreachableURLGivesErrorPage) { |
// Navigate to new page. |
{ |
- LoadCommittedDetails details; |
- controller_impl().RendererDidNavigate(main_test_rfh(), params, &details); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(PAGE_TYPE_ERROR, |
controller_impl().GetLastCommittedEntry()->GetPageType()); |
- EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, details.type); |
+ EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, observer.details().type); |
} |
// Navigate to existing page. |
{ |
params.did_create_new_entry = false; |
- LoadCommittedDetails details; |
- controller_impl().RendererDidNavigate(main_test_rfh(), params, &details); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(PAGE_TYPE_ERROR, |
controller_impl().GetLastCommittedEntry()->GetPageType()); |
- EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, details.type); |
+ EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, observer.details().type); |
} |
// Navigate to same page. |
@@ -5052,11 +5079,12 @@ TEST_F(NavigationControllerTest, UnreachableURLGivesErrorPage) { |
params.nav_entry_id = controller_impl().GetPendingEntry()->GetUniqueID(); |
params.transition = ui::PAGE_TRANSITION_TYPED; |
{ |
- LoadCommittedDetails details; |
- controller_impl().RendererDidNavigate(main_test_rfh(), params, &details); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(PAGE_TYPE_ERROR, |
controller_impl().GetLastCommittedEntry()->GetPageType()); |
- EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, details.type); |
+ EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, observer.details().type); |
} |
// Navigate in page. |
@@ -5064,11 +5092,12 @@ TEST_F(NavigationControllerTest, UnreachableURLGivesErrorPage) { |
params.transition = ui::PAGE_TRANSITION_LINK; |
params.was_within_same_page = true; |
{ |
- LoadCommittedDetails details; |
- controller_impl().RendererDidNavigate(main_test_rfh(), params, &details); |
+ LoadCommittedDetailsObserver observer(contents()); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
EXPECT_EQ(PAGE_TYPE_ERROR, |
controller_impl().GetLastCommittedEntry()->GetPageType()); |
- EXPECT_TRUE(details.is_in_page); |
+ EXPECT_TRUE(observer.details().is_in_page); |
} |
} |
@@ -5139,6 +5168,8 @@ TEST_F(NavigationControllerTest, StaleNavigationsResurrected) { |
// killed. |
TEST_F(NavigationControllerTest, RendererNavigateBogusSecurityInfo) { |
GURL url("http://foo.test"); |
+ controller().LoadURL(url, Referrer(), ui::PAGE_TRANSITION_TYPED, |
+ std::string()); |
FrameHostMsg_DidCommitProvisionalLoad_Params params; |
params.page_id = 0; |
params.nav_entry_id = 0; |
@@ -5152,22 +5183,26 @@ TEST_F(NavigationControllerTest, RendererNavigateBogusSecurityInfo) { |
params.was_within_same_page = false; |
params.security_info = "bogus security info!"; |
- LoadCommittedDetails details; |
+ LoadCommittedDetailsObserver observer(contents()); |
EXPECT_EQ(0, main_test_rfh()->GetProcess()->bad_msg_count()); |
- EXPECT_TRUE( |
- controller_impl().RendererDidNavigate(main_test_rfh(), params, &details)); |
+ main_test_rfh()->PrepareForCommit(); |
+ main_test_rfh()->SendNavigateWithParams(¶ms); |
SSLStatus default_ssl_status; |
EXPECT_EQ(default_ssl_status.security_style, |
- details.ssl_status.security_style); |
- EXPECT_EQ(default_ssl_status.cert_id, details.ssl_status.cert_id); |
- EXPECT_EQ(default_ssl_status.cert_status, details.ssl_status.cert_status); |
- EXPECT_EQ(default_ssl_status.security_bits, details.ssl_status.security_bits); |
+ observer.details().ssl_status.security_style); |
+ EXPECT_EQ(default_ssl_status.cert_id, observer.details().ssl_status.cert_id); |
+ EXPECT_EQ(default_ssl_status.cert_status, |
+ observer.details().ssl_status.cert_status); |
+ EXPECT_EQ(default_ssl_status.security_bits, |
+ observer.details().ssl_status.security_bits); |
EXPECT_EQ(default_ssl_status.connection_status, |
- details.ssl_status.connection_status); |
+ observer.details().ssl_status.connection_status); |
EXPECT_EQ(default_ssl_status.content_status, |
- details.ssl_status.content_status); |
- EXPECT_EQ(0u, details.ssl_status.signed_certificate_timestamp_ids.size()); |
+ observer.details().ssl_status.content_status); |
+ EXPECT_EQ( |
+ 0u, |
+ observer.details().ssl_status.signed_certificate_timestamp_ids.size()); |
EXPECT_EQ(1, main_test_rfh()->GetProcess()->bad_msg_count()); |
} |