Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(357)

Unified Diff: content/browser/frame_host/navigation_controller_impl_unittest.cc

Issue 1777903003: Ensure the NavigationHandle's nav entry ID is updated during transfers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix else branch Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
+ 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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
// 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(&params);
// 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(&params);
// 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(&params);
// 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(&params);
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(&params);
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(&params);
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(&params);
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(&params);
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());
}

Powered by Google App Engine
This is Rietveld 408576698