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..9b33239d13765ea5424bf889f54956c2bb3d9af6 100644 |
--- a/content/browser/frame_host/navigation_controller_impl_unittest.cc |
+++ b/content/browser/frame_host/navigation_controller_impl_unittest.cc |
@@ -21,6 +21,7 @@ |
#include "content/browser/frame_host/frame_navigation_entry.h" |
#include "content/browser/frame_host/navigation_entry_impl.h" |
#include "content/browser/frame_host/navigation_entry_screenshot_manager.h" |
+#include "content/browser/frame_host/navigation_handle_impl.h" |
#include "content/browser/frame_host/navigation_request.h" |
#include "content/browser/frame_host/navigator.h" |
#include "content/browser/frame_host/navigator_impl.h" |
@@ -295,6 +296,25 @@ class TestWebContentsDelegate : public WebContentsDelegate { |
int repost_form_warning_count_; |
}; |
+// Observer that records the LoadCommittedDetails from the most recent commit. |
+class LoadCommittedDetailsObserver : public WebContentsObserver { |
nasko
2016/03/11 17:10:06
Can't we use FrameNavigateParamsCapturer which is
Charlie Reis
2016/03/11 20:12:48
That one is defined for a browsertest and spins a
nasko
2016/03/11 20:21:56
Acknowledged.
|
+ 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) { |
@@ -1864,10 +1884,10 @@ TEST_F(NavigationControllerTest, Redirect) { |
params.is_post = false; |
params.page_state = PageState::CreateFromURL(url2); |
- LoadCommittedDetails details; |
+ LoadCommittedDetailsObserver observer(contents()); |
nasko
2016/03/11 17:10:06
nit: I'd move this closer to the commit it is obse
Charlie Reis
2016/03/11 20:12:48
Done.
|
- 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 +1904,12 @@ TEST_F(NavigationControllerTest, Redirect) { |
params.did_create_new_entry = false; |
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_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 +1953,10 @@ TEST_F(NavigationControllerTest, PostThenRedirect) { |
params.is_post = true; |
params.page_state = PageState::CreateFromURL(url2); |
- LoadCommittedDetails details; |
+ LoadCommittedDetailsObserver observer(contents()); |
nasko
2016/03/11 17:10:06
nit: Same nit as above, closer to the commit it ob
Charlie Reis
2016/03/11 20:12:48
Done.
|
- 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 +1974,12 @@ TEST_F(NavigationControllerTest, PostThenRedirect) { |
params.is_post = false; |
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_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 +2023,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 +2088,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 +2112,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 +2128,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 +2146,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 +2194,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 +2210,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 +2240,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 +2256,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 +2286,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 +2307,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 +2352,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 +2368,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 +2387,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 +2412,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 +2438,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 +2456,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 +2518,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 +2543,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 +2559,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 +2575,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 +2590,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 +2605,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 +2640,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 +2694,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 +2721,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 +2905,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 +2988,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 +3796,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 +3809,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 +3963,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 +3976,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 +5038,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 +5055,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 +5082,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 +5095,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 +5171,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 +5186,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()); |
} |