Chromium Code Reviews| Index: content/browser/frame_host/render_frame_host_manager_unittest.cc |
| diff --git a/content/browser/frame_host/render_frame_host_manager_unittest.cc b/content/browser/frame_host/render_frame_host_manager_unittest.cc |
| index 11c3c8a27041ecb08bc3e54363a4f5ecc5b2f8ed..1c270934e0af745f71253a21a7acae52aa50b330 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager_unittest.cc |
| +++ b/content/browser/frame_host/render_frame_host_manager_unittest.cc |
| @@ -901,7 +901,7 @@ TEST_F(RenderFrameHostManagerTest, Navigate) { |
| EXPECT_FALSE(manager->pending_frame_host()); |
| // Commit. |
| - manager->DidNavigateFrame(host); |
| + manager->DidNavigateFrame(host, true); |
| // Commit to SiteInstance should be delayed until RenderView commit. |
| EXPECT_TRUE(host == manager->current_frame_host()); |
| ASSERT_TRUE(host); |
| @@ -922,7 +922,7 @@ TEST_F(RenderFrameHostManagerTest, Navigate) { |
| EXPECT_FALSE(manager->pending_frame_host()); |
| // Commit. |
| - manager->DidNavigateFrame(host); |
| + manager->DidNavigateFrame(host, true); |
| EXPECT_TRUE(host == manager->current_frame_host()); |
| ASSERT_TRUE(host); |
| EXPECT_TRUE(host->GetSiteInstance()->HasSite()); |
| @@ -943,7 +943,7 @@ TEST_F(RenderFrameHostManagerTest, Navigate) { |
| notifications.Reset(); |
| // Commit. |
| - manager->DidNavigateFrame(manager->pending_frame_host()); |
| + manager->DidNavigateFrame(manager->pending_frame_host(), true); |
| EXPECT_TRUE(host == manager->current_frame_host()); |
| ASSERT_TRUE(host); |
| EXPECT_TRUE(host->GetSiteInstance()->HasSite()); |
| @@ -993,7 +993,7 @@ TEST_F(RenderFrameHostManagerTest, WebUI) { |
| EXPECT_TRUE(manager->web_ui()); |
| // Commit. |
| - manager->DidNavigateFrame(host); |
| + manager->DidNavigateFrame(host, true); |
| EXPECT_TRUE( |
| host->render_view_host()->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
| } |
| @@ -1031,7 +1031,7 @@ TEST_F(RenderFrameHostManagerTest, WebUIInNewTab) { |
| host1->render_view_host()->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
| // Commit and ensure we still have bindings. |
| - manager1->DidNavigateFrame(host1); |
| + manager1->DidNavigateFrame(host1, true); |
| SiteInstance* webui_instance = host1->GetSiteInstance(); |
| EXPECT_EQ(host1, manager1->current_frame_host()); |
| EXPECT_TRUE( |
| @@ -1060,7 +1060,7 @@ TEST_F(RenderFrameHostManagerTest, WebUIInNewTab) { |
| EXPECT_TRUE( |
| host2->render_view_host()->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
| - manager2->DidNavigateFrame(host2); |
| + manager2->DidNavigateFrame(host2, true); |
| } |
| // Tests that we don't end up in an inconsistent state if a page does a back and |
| @@ -1100,8 +1100,28 @@ TEST_F(RenderFrameHostManagerTest, PageDoesBackAndReload) { |
| contents()->GetFrameTree()->root()->navigator()->DidNavigate(evil_rfh, |
| params); |
| - // That should have cancelled the pending RFH, and the evil RFH should be the |
| - // current one. |
| + // That should NOT have cancelled the pending RFH. |
|
Charlie Reis
2014/12/05 19:37:42
Please add: ", because the reload did not have a u
|
| + EXPECT_TRUE(contents()->GetRenderManagerForTesting()-> |
| + pending_render_view_host() != NULL); |
|
Charlie Reis
2014/12/05 19:37:43
Style nit: 4 space indent on an unfinished line.
|
| + EXPECT_TRUE(contents()->GetRenderManagerForTesting()->pending_frame_host() != |
| + NULL); |
| + EXPECT_EQ(evil_rfh, |
| + contents()->GetRenderManagerForTesting()->current_frame_host()); |
| + EXPECT_EQ(evil_rfh->GetRenderViewHost(), |
| + contents()->GetRenderManagerForTesting()->current_host()); |
| + |
| + // Also we should not have a pending navigation entry. |
| + EXPECT_TRUE(contents()->GetController().GetPendingEntry() == NULL); |
| + NavigationEntry* entry = contents()->GetController().GetVisibleEntry(); |
| + ASSERT_TRUE(entry != NULL); |
| + EXPECT_EQ(kUrl2, entry->GetURL()); |
| + |
| + // Now do the same but as a user gesture. |
| + params.gesture = NavigationGestureUser; |
| + contents()->GetFrameTree()->root()->navigator()->DidNavigate(evil_rfh, |
| + params); |
| + |
| + // User navigation should have cancelled the pending RFH. |
| EXPECT_TRUE(contents()->GetRenderManagerForTesting()-> |
| pending_render_view_host() == NULL); |
| EXPECT_TRUE(contents()->GetRenderManagerForTesting()->pending_frame_host() == |
| @@ -1113,7 +1133,7 @@ TEST_F(RenderFrameHostManagerTest, PageDoesBackAndReload) { |
| // Also we should not have a pending navigation entry. |
| EXPECT_TRUE(contents()->GetController().GetPendingEntry() == NULL); |
| - NavigationEntry* entry = contents()->GetController().GetVisibleEntry(); |
| + entry = contents()->GetController().GetVisibleEntry(); |
| ASSERT_TRUE(entry != NULL); |
| EXPECT_EQ(kUrl2, entry->GetURL()); |
| } |
| @@ -1500,7 +1520,7 @@ TEST_F(RenderFrameHostManagerTest, NoSwapOnGuestNavigations) { |
| EXPECT_EQ(manager->current_frame_host()->GetSiteInstance(), instance); |
| // Commit. |
| - manager->DidNavigateFrame(host); |
| + manager->DidNavigateFrame(host, true); |
| // Commit to SiteInstance should be delayed until RenderView commit. |
| EXPECT_EQ(host, manager->current_frame_host()); |
| ASSERT_TRUE(host); |
| @@ -1521,7 +1541,7 @@ TEST_F(RenderFrameHostManagerTest, NoSwapOnGuestNavigations) { |
| EXPECT_FALSE(manager->pending_frame_host()); |
| // Commit. |
| - manager->DidNavigateFrame(host); |
| + manager->DidNavigateFrame(host, true); |
| EXPECT_EQ(host, manager->current_frame_host()); |
| ASSERT_TRUE(host); |
| EXPECT_EQ(host->GetSiteInstance(), instance); |
| @@ -1561,7 +1581,7 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyClose) { |
| notifications.Reset(); |
| // Commit. |
| - manager->DidNavigateFrame(host); |
| + manager->DidNavigateFrame(host, true); |
| // Commit to SiteInstance should be delayed until RenderFrame commits. |
| EXPECT_EQ(host, manager->current_frame_host()); |