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 2ba5fb8493ac5b7e58cdca68f655ae18a118858e..630262cc60a2905bf21a63506ac45cc9ca25125d 100644 |
--- a/content/browser/frame_host/render_frame_host_manager_unittest.cc |
+++ b/content/browser/frame_host/render_frame_host_manager_unittest.cc |
@@ -567,17 +567,24 @@ TEST_F(RenderFrameHostManagerTest, Init) { |
scoped_ptr<TestWebContents> web_contents( |
TestWebContents::Create(browser_context(), instance)); |
- RenderFrameHostManager manager(web_contents.get(), web_contents.get(), |
- web_contents.get(), web_contents.get()); |
- |
- manager.Init(browser_context(), instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE); |
- |
- RenderViewHost* host = manager.current_host(); |
- ASSERT_TRUE(host); |
- EXPECT_EQ(instance, host->GetSiteInstance()); |
- EXPECT_EQ(web_contents.get(), host->GetDelegate()); |
- EXPECT_TRUE(manager.GetRenderWidgetHostView()); |
- EXPECT_FALSE(manager.pending_render_view_host()); |
+ FrameTree tree(web_contents->GetFrameTree()->root()->navigator(), |
+ web_contents.get(), web_contents.get(), |
+ web_contents.get(), web_contents.get()); |
+ RenderFrameHostManager* manager = tree.root()->render_manager(); |
+ |
+ manager->Init(browser_context(), instance, MSG_ROUTING_NONE, |
+ MSG_ROUTING_NONE); |
+ |
+ RenderViewHostImpl* rvh = manager->current_host(); |
+ RenderFrameHostImpl* rfh = manager->current_frame_host(); |
+ ASSERT_TRUE(rvh); |
+ ASSERT_TRUE(rfh); |
+ EXPECT_EQ(rvh, rfh->render_view_host()); |
+ EXPECT_EQ(instance, rvh->GetSiteInstance()); |
+ EXPECT_EQ(web_contents.get(), rvh->GetDelegate()); |
+ EXPECT_EQ(web_contents.get(), rfh->delegate()); |
+ EXPECT_TRUE(manager->GetRenderWidgetHostView()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
} |
// Tests the Navigate function. We navigate three sites consecutively and check |
@@ -593,10 +600,13 @@ TEST_F(RenderFrameHostManagerTest, Navigate) { |
Source<WebContents>(web_contents.get())); |
// Create. |
- RenderFrameHostManager manager(web_contents.get(), web_contents.get(), |
- web_contents.get(), web_contents.get()); |
+ FrameTree tree(web_contents->GetFrameTree()->root()->navigator(), |
+ web_contents.get(), web_contents.get(), |
+ web_contents.get(), web_contents.get()); |
+ RenderFrameHostManager* manager = tree.root()->render_manager(); |
- manager.Init(browser_context(), instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE); |
+ manager->Init(browser_context(), instance, MSG_ROUTING_NONE, |
+ MSG_ROUTING_NONE); |
RenderViewHost* host; |
@@ -606,16 +616,16 @@ TEST_F(RenderFrameHostManagerTest, Navigate) { |
NULL /* instance */, -1 /* page_id */, kUrl1, Referrer(), |
base::string16() /* title */, PAGE_TRANSITION_TYPED, |
false /* is_renderer_init */); |
- host = manager.Navigate(entry1); |
+ host = manager->Navigate(entry1); |
// The RenderViewHost created in Init will be reused. |
- EXPECT_TRUE(host == manager.current_host()); |
- EXPECT_FALSE(manager.pending_render_view_host()); |
+ EXPECT_TRUE(host == manager->current_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
// Commit. |
- manager.DidNavigateMainFrame(host); |
+ manager->DidNavigateMainFrame(host); |
// Commit to SiteInstance should be delayed until RenderView commit. |
- EXPECT_TRUE(host == manager.current_host()); |
+ EXPECT_TRUE(host == manager->current_host()); |
ASSERT_TRUE(host); |
EXPECT_FALSE(static_cast<SiteInstanceImpl*>(host->GetSiteInstance())-> |
HasSite()); |
@@ -628,15 +638,15 @@ TEST_F(RenderFrameHostManagerTest, Navigate) { |
Referrer(kUrl1, blink::WebReferrerPolicyDefault), |
base::string16() /* title */, PAGE_TRANSITION_LINK, |
true /* is_renderer_init */); |
- host = manager.Navigate(entry2); |
+ host = manager->Navigate(entry2); |
// The RenderViewHost created in Init will be reused. |
- EXPECT_TRUE(host == manager.current_host()); |
- EXPECT_FALSE(manager.pending_render_view_host()); |
+ EXPECT_TRUE(host == manager->current_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
// Commit. |
- manager.DidNavigateMainFrame(host); |
- EXPECT_TRUE(host == manager.current_host()); |
+ manager->DidNavigateMainFrame(host); |
+ EXPECT_TRUE(host == manager->current_host()); |
ASSERT_TRUE(host); |
EXPECT_TRUE(static_cast<SiteInstanceImpl*>(host->GetSiteInstance())-> |
HasSite()); |
@@ -648,22 +658,22 @@ TEST_F(RenderFrameHostManagerTest, Navigate) { |
Referrer(kUrl2, blink::WebReferrerPolicyDefault), |
base::string16() /* title */, PAGE_TRANSITION_LINK, |
false /* is_renderer_init */); |
- host = manager.Navigate(entry3); |
+ host = manager->Navigate(entry3); |
// A new RenderViewHost should be created. |
- EXPECT_TRUE(manager.pending_render_view_host()); |
- ASSERT_EQ(host, manager.pending_render_view_host()); |
+ EXPECT_TRUE(manager->pending_render_view_host()); |
+ ASSERT_EQ(host, manager->pending_render_view_host()); |
notifications.Reset(); |
// Commit. |
- manager.DidNavigateMainFrame(manager.pending_render_view_host()); |
- EXPECT_TRUE(host == manager.current_host()); |
+ manager->DidNavigateMainFrame(manager->pending_render_view_host()); |
+ EXPECT_TRUE(host == manager->current_host()); |
ASSERT_TRUE(host); |
EXPECT_TRUE(static_cast<SiteInstanceImpl*>(host->GetSiteInstance())-> |
HasSite()); |
// Check the pending RenderViewHost has been committed. |
- EXPECT_FALSE(manager.pending_render_view_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
// We should observe a notification. |
EXPECT_TRUE( |
@@ -685,10 +695,13 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyReNavigation) { |
Source<WebContents>(web_contents.get())); |
// Create. |
- RenderFrameHostManager manager(web_contents.get(), web_contents.get(), |
- web_contents.get(), web_contents.get()); |
+ FrameTree tree(web_contents->GetFrameTree()->root()->navigator(), |
+ web_contents.get(), web_contents.get(), |
+ web_contents.get(), web_contents.get()); |
+ RenderFrameHostManager* manager = tree.root()->render_manager(); |
- manager.Init(browser_context(), instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE); |
+ manager->Init(browser_context(), instance, MSG_ROUTING_NONE, |
+ MSG_ROUTING_NONE); |
// 1) The first navigation. -------------------------- |
const GURL kUrl1("http://www.google.com/"); |
@@ -696,11 +709,11 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyReNavigation) { |
Referrer(), base::string16() /* title */, |
PAGE_TRANSITION_TYPED, |
false /* is_renderer_init */); |
- RenderViewHost* host = manager.Navigate(entry1); |
+ RenderViewHost* host = manager->Navigate(entry1); |
// The RenderViewHost created in Init will be reused. |
- EXPECT_TRUE(host == manager.current_host()); |
- EXPECT_FALSE(manager.pending_render_view_host()); |
+ EXPECT_TRUE(host == manager->current_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
// We should observe a notification. |
EXPECT_TRUE( |
@@ -708,10 +721,10 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyReNavigation) { |
notifications.Reset(); |
// Commit. |
- manager.DidNavigateMainFrame(host); |
+ manager->DidNavigateMainFrame(host); |
// Commit to SiteInstance should be delayed until RenderView commit. |
- EXPECT_TRUE(host == manager.current_host()); |
+ EXPECT_TRUE(host == manager->current_host()); |
ASSERT_TRUE(host); |
EXPECT_FALSE(static_cast<SiteInstanceImpl*>(host->GetSiteInstance())-> |
HasSite()); |
@@ -724,12 +737,12 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyReNavigation) { |
base::string16() /* title */, PAGE_TRANSITION_TYPED, |
false /* is_renderer_init */); |
RenderViewHostImpl* host2 = static_cast<RenderViewHostImpl*>( |
- manager.Navigate(entry2)); |
+ manager->Navigate(entry2)); |
int host2_process_id = host2->GetProcess()->GetID(); |
// A new RenderViewHost should be created. |
- EXPECT_TRUE(manager.pending_render_view_host()); |
- ASSERT_EQ(host2, manager.pending_render_view_host()); |
+ EXPECT_TRUE(manager->pending_render_view_host()); |
+ ASSERT_EQ(host2, manager->pending_render_view_host()); |
EXPECT_NE(host2, host); |
// Check that the navigation is still suspended because the old RVH |
@@ -756,15 +769,15 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyReNavigation) { |
// call of RenderFrameHostManager::SwapOutOldPage before |
// RenderFrameHostManager::DidNavigateMainFrame is called. |
// The RVH is not swapped out until the commit. |
- manager.SwapOutOldPage(); |
+ manager->SwapOutOldPage(); |
EXPECT_TRUE(test_process_host->sink().GetUniqueMessageMatching( |
ViewMsg_SwapOut::ID)); |
test_host->OnSwappedOut(false); |
- EXPECT_EQ(host, manager.current_host()); |
+ EXPECT_EQ(host, manager->current_host()); |
EXPECT_FALSE(static_cast<RenderViewHostImpl*>( |
- manager.current_host())->is_swapped_out()); |
- EXPECT_EQ(host2, manager.pending_render_view_host()); |
+ manager->current_host())->is_swapped_out()); |
+ EXPECT_EQ(host2, manager->pending_render_view_host()); |
// There should be still no navigation messages being sent. |
EXPECT_FALSE(test_process_host2->sink().GetUniqueMessageMatching( |
ViewMsg_Navigate::ID)); |
@@ -776,11 +789,11 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyReNavigation) { |
PAGE_TRANSITION_TYPED, |
false /* is_renderer_init */); |
test_process_host->sink().ClearMessages(); |
- RenderViewHost* host3 = manager.Navigate(entry3); |
+ RenderViewHost* host3 = manager->Navigate(entry3); |
// A new RenderViewHost should be created. host2 is now deleted. |
- EXPECT_TRUE(manager.pending_render_view_host()); |
- ASSERT_EQ(host3, manager.pending_render_view_host()); |
+ EXPECT_TRUE(manager->pending_render_view_host()); |
+ ASSERT_EQ(host3, manager->pending_render_view_host()); |
EXPECT_NE(host3, host); |
EXPECT_NE(host3->GetProcess()->GetID(), host2_process_id); |
@@ -789,9 +802,9 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyReNavigation) { |
// request. |
EXPECT_TRUE(static_cast<RenderViewHostImpl*>( |
host3)->are_navigations_suspended()); |
- EXPECT_EQ(host, manager.current_host()); |
+ EXPECT_EQ(host, manager->current_host()); |
EXPECT_FALSE(static_cast<RenderViewHostImpl*>( |
- manager.current_host())->is_swapped_out()); |
+ manager->current_host())->is_swapped_out()); |
// Simulate a response to the second beforeunload request. |
EXPECT_TRUE(test_process_host->sink().GetUniqueMessageMatching( |
@@ -802,19 +815,19 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyReNavigation) { |
// call of RenderFrameHostManager::SwapOutOldPage before |
// RenderFrameHostManager::DidNavigateMainFrame is called. |
// The RVH is not swapped out until the commit. |
- manager.SwapOutOldPage(); |
+ manager->SwapOutOldPage(); |
EXPECT_TRUE(test_process_host->sink().GetUniqueMessageMatching( |
ViewMsg_SwapOut::ID)); |
test_host->OnSwappedOut(false); |
// Commit. |
- manager.DidNavigateMainFrame(host3); |
- EXPECT_TRUE(host3 == manager.current_host()); |
+ manager->DidNavigateMainFrame(host3); |
+ EXPECT_TRUE(host3 == manager->current_host()); |
ASSERT_TRUE(host3); |
EXPECT_TRUE(static_cast<SiteInstanceImpl*>(host3->GetSiteInstance())-> |
HasSite()); |
// Check the pending RenderViewHost has been committed. |
- EXPECT_FALSE(manager.pending_render_view_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
// We should observe a notification. |
EXPECT_TRUE( |
@@ -828,25 +841,28 @@ TEST_F(RenderFrameHostManagerTest, WebUI) { |
scoped_ptr<TestWebContents> web_contents( |
TestWebContents::Create(browser_context(), instance)); |
- RenderFrameHostManager manager(web_contents.get(), web_contents.get(), |
- web_contents.get(), web_contents.get()); |
+ FrameTree tree(web_contents->GetFrameTree()->root()->navigator(), |
+ web_contents.get(), web_contents.get(), |
+ web_contents.get(), web_contents.get()); |
+ RenderFrameHostManager* manager = tree.root()->render_manager(); |
- manager.Init(browser_context(), instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE); |
- EXPECT_FALSE(manager.current_host()->IsRenderViewLive()); |
+ manager->Init(browser_context(), instance, MSG_ROUTING_NONE, |
+ MSG_ROUTING_NONE); |
+ EXPECT_FALSE(manager->current_host()->IsRenderViewLive()); |
const GURL kUrl("chrome://foo"); |
NavigationEntryImpl entry(NULL /* instance */, -1 /* page_id */, kUrl, |
Referrer(), base::string16() /* title */, |
PAGE_TRANSITION_TYPED, |
false /* is_renderer_init */); |
- RenderViewHost* host = manager.Navigate(entry); |
+ RenderViewHost* host = manager->Navigate(entry); |
// We commit the pending RenderViewHost immediately because the previous |
// RenderViewHost was not live. We test a case where it is live in |
// WebUIInNewTab. |
EXPECT_TRUE(host); |
- EXPECT_EQ(host, manager.current_host()); |
- EXPECT_FALSE(manager.pending_render_view_host()); |
+ EXPECT_EQ(host, manager->current_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
// It's important that the site instance get set on the Web UI page as soon |
// as the navigation starts, rather than lazily after it commits, so we don't |
@@ -858,11 +874,11 @@ TEST_F(RenderFrameHostManagerTest, WebUI) { |
// The Web UI is committed immediately because the RenderViewHost has not been |
// used yet. UpdateRendererStateForNavigate() took the short cut path. |
- EXPECT_FALSE(manager.pending_web_ui()); |
- EXPECT_TRUE(manager.web_ui()); |
+ EXPECT_FALSE(manager->pending_web_ui()); |
+ EXPECT_TRUE(manager->web_ui()); |
// Commit. |
- manager.DidNavigateMainFrame(host); |
+ manager->DidNavigateMainFrame(host); |
EXPECT_TRUE(host->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
} |
@@ -875,12 +891,14 @@ TEST_F(RenderFrameHostManagerTest, WebUIInNewTab) { |
// Create a blank tab. |
scoped_ptr<TestWebContents> web_contents1( |
TestWebContents::Create(browser_context(), blank_instance)); |
- RenderFrameHostManager manager1(web_contents1.get(), web_contents1.get(), |
- web_contents1.get(), web_contents1.get()); |
- manager1.Init( |
+ FrameTree tree1(web_contents1->GetFrameTree()->root()->navigator(), |
+ web_contents1.get(), web_contents1.get(), |
+ web_contents1.get(), web_contents1.get()); |
+ RenderFrameHostManager* manager1 = tree1.root()->render_manager(); |
+ manager1->Init( |
browser_context(), blank_instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE); |
// Test the case that new RVH is considered live. |
- manager1.current_host()->CreateRenderView(base::string16(), -1, -1); |
+ manager1->current_host()->CreateRenderView(base::string16(), -1, -1); |
// Navigate to a WebUI page. |
const GURL kUrl1("chrome://foo"); |
@@ -888,44 +906,46 @@ TEST_F(RenderFrameHostManagerTest, WebUIInNewTab) { |
Referrer(), base::string16() /* title */, |
PAGE_TRANSITION_TYPED, |
false /* is_renderer_init */); |
- RenderViewHost* host1 = manager1.Navigate(entry1); |
+ RenderViewHost* host1 = manager1->Navigate(entry1); |
// We should have a pending navigation to the WebUI RenderViewHost. |
// It should already have bindings. |
- EXPECT_EQ(host1, manager1.pending_render_view_host()); |
- EXPECT_NE(host1, manager1.current_host()); |
+ EXPECT_EQ(host1, manager1->pending_render_view_host()); |
+ EXPECT_NE(host1, manager1->current_host()); |
EXPECT_TRUE(host1->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
// Commit and ensure we still have bindings. |
- manager1.DidNavigateMainFrame(host1); |
+ manager1->DidNavigateMainFrame(host1); |
SiteInstance* webui_instance = host1->GetSiteInstance(); |
- EXPECT_EQ(host1, manager1.current_host()); |
+ EXPECT_EQ(host1, manager1->current_host()); |
EXPECT_TRUE(host1->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
// Now simulate clicking a link that opens in a new tab. |
scoped_ptr<TestWebContents> web_contents2( |
TestWebContents::Create(browser_context(), webui_instance)); |
- RenderFrameHostManager manager2(web_contents2.get(), web_contents2.get(), |
- web_contents2.get(), web_contents2.get()); |
- manager2.Init( |
+ FrameTree tree2(web_contents2->GetFrameTree()->root()->navigator(), |
+ web_contents2.get(), web_contents2.get(), |
+ web_contents2.get(), web_contents2.get()); |
+ RenderFrameHostManager* manager2 = tree2.root()->render_manager(); |
+ manager2->Init( |
browser_context(), webui_instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE); |
// Make sure the new RVH is considered live. This is usually done in |
// RenderWidgetHost::Init when opening a new tab from a link. |
- manager2.current_host()->CreateRenderView(base::string16(), -1, -1); |
+ manager2->current_host()->CreateRenderView(base::string16(), -1, -1); |
const GURL kUrl2("chrome://foo/bar"); |
NavigationEntryImpl entry2(NULL /* instance */, -1 /* page_id */, kUrl2, |
Referrer(), base::string16() /* title */, |
PAGE_TRANSITION_LINK, |
true /* is_renderer_init */); |
- RenderViewHost* host2 = manager2.Navigate(entry2); |
+ RenderViewHost* host2 = manager2->Navigate(entry2); |
// No cross-process transition happens because we are already in the right |
// SiteInstance. We should grant bindings immediately. |
- EXPECT_EQ(host2, manager2.current_host()); |
+ EXPECT_EQ(host2, manager2->current_host()); |
EXPECT_TRUE(host2->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); |
- manager2.DidNavigateMainFrame(host2); |
+ manager2->DidNavigateMainFrame(host2); |
} |
// Tests that we don't end up in an inconsistent state if a page does a back and |
@@ -1058,20 +1078,20 @@ TEST_F(RenderFrameHostManagerTest, CreateSwappedOutOpenerRVHs) { |
rvh2->GetSiteInstance())); |
// Ensure rvh1 is placed on swapped out list of the current tab. |
- EXPECT_TRUE(manager->IsOnSwappedOutList(rvh1)); |
+ EXPECT_TRUE(manager->IsRVHOnSwappedOutList(rvh1)); |
EXPECT_EQ(rvh1, |
manager->GetSwappedOutRenderViewHost(rvh1->GetSiteInstance())); |
// Ensure a swapped out RVH is created in the first opener tab. |
TestRenderViewHost* opener1_rvh = static_cast<TestRenderViewHost*>( |
opener1_manager->GetSwappedOutRenderViewHost(rvh2->GetSiteInstance())); |
- EXPECT_TRUE(opener1_manager->IsOnSwappedOutList(opener1_rvh)); |
+ EXPECT_TRUE(opener1_manager->IsRVHOnSwappedOutList(opener1_rvh)); |
EXPECT_TRUE(opener1_rvh->is_swapped_out()); |
// Ensure a swapped out RVH is created in the second opener tab. |
TestRenderViewHost* opener2_rvh = static_cast<TestRenderViewHost*>( |
opener2_manager->GetSwappedOutRenderViewHost(rvh2->GetSiteInstance())); |
- EXPECT_TRUE(opener2_manager->IsOnSwappedOutList(opener2_rvh)); |
+ EXPECT_TRUE(opener2_manager->IsRVHOnSwappedOutList(opener2_rvh)); |
EXPECT_TRUE(opener2_rvh->is_swapped_out()); |
// Navigate to a cross-BrowsingInstance URL. |
@@ -1173,7 +1193,7 @@ TEST_F(RenderFrameHostManagerTest, EnableWebUIWithSwappedOutOpener) { |
// Ensure a swapped out RVH is created in the first opener tab. |
TestRenderViewHost* opener1_rvh = static_cast<TestRenderViewHost*>( |
opener1_manager->GetSwappedOutRenderViewHost(rvh2->GetSiteInstance())); |
- EXPECT_TRUE(opener1_manager->IsOnSwappedOutList(opener1_rvh)); |
+ EXPECT_TRUE(opener1_manager->IsRVHOnSwappedOutList(opener1_rvh)); |
EXPECT_TRUE(opener1_rvh->is_swapped_out()); |
// Ensure the new RVH has WebUI bindings. |
@@ -1191,10 +1211,13 @@ TEST_F(RenderFrameHostManagerTest, NoSwapOnGuestNavigations) { |
TestWebContents::Create(browser_context(), instance)); |
// Create. |
- RenderFrameHostManager manager(web_contents.get(), web_contents.get(), |
- web_contents.get(), web_contents.get()); |
+ FrameTree tree(web_contents->GetFrameTree()->root()->navigator(), |
+ web_contents.get(), web_contents.get(), |
+ web_contents.get(), web_contents.get()); |
+ RenderFrameHostManager* manager = tree.root()->render_manager(); |
- manager.Init(browser_context(), instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE); |
+ manager->Init(browser_context(), instance, MSG_ROUTING_NONE, |
+ MSG_ROUTING_NONE); |
RenderViewHost* host; |
@@ -1204,17 +1227,17 @@ TEST_F(RenderFrameHostManagerTest, NoSwapOnGuestNavigations) { |
NULL /* instance */, -1 /* page_id */, kUrl1, Referrer(), |
base::string16() /* title */, PAGE_TRANSITION_TYPED, |
false /* is_renderer_init */); |
- host = manager.Navigate(entry1); |
+ host = manager->Navigate(entry1); |
// The RenderViewHost created in Init will be reused. |
- EXPECT_TRUE(host == manager.current_host()); |
- EXPECT_FALSE(manager.pending_render_view_host()); |
- EXPECT_EQ(manager.current_host()->GetSiteInstance(), instance); |
+ EXPECT_TRUE(host == manager->current_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
+ EXPECT_EQ(manager->current_host()->GetSiteInstance(), instance); |
// Commit. |
- manager.DidNavigateMainFrame(host); |
+ manager->DidNavigateMainFrame(host); |
// Commit to SiteInstance should be delayed until RenderView commit. |
- EXPECT_EQ(host, manager.current_host()); |
+ EXPECT_EQ(host, manager->current_host()); |
ASSERT_TRUE(host); |
EXPECT_TRUE(static_cast<SiteInstanceImpl*>(host->GetSiteInstance())-> |
HasSite()); |
@@ -1227,15 +1250,15 @@ TEST_F(RenderFrameHostManagerTest, NoSwapOnGuestNavigations) { |
Referrer(kUrl1, blink::WebReferrerPolicyDefault), |
base::string16() /* title */, PAGE_TRANSITION_LINK, |
true /* is_renderer_init */); |
- host = manager.Navigate(entry2); |
+ host = manager->Navigate(entry2); |
// The RenderViewHost created in Init will be reused. |
- EXPECT_EQ(host, manager.current_host()); |
- EXPECT_FALSE(manager.pending_render_view_host()); |
+ EXPECT_EQ(host, manager->current_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
// Commit. |
- manager.DidNavigateMainFrame(host); |
- EXPECT_EQ(host, manager.current_host()); |
+ manager->DidNavigateMainFrame(host); |
+ EXPECT_EQ(host, manager->current_host()); |
ASSERT_TRUE(host); |
EXPECT_EQ(static_cast<SiteInstanceImpl*>(host->GetSiteInstance()), |
instance); |
@@ -1256,10 +1279,13 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyClose) { |
Source<WebContents>(web_contents.get())); |
// Create. |
- RenderFrameHostManager manager(web_contents.get(), web_contents.get(), |
- web_contents.get(), web_contents.get()); |
+ FrameTree tree(web_contents->GetFrameTree()->root()->navigator(), |
+ web_contents.get(), web_contents.get(), |
+ web_contents.get(), web_contents.get()); |
+ RenderFrameHostManager* manager = tree.root()->render_manager(); |
- manager.Init(browser_context(), instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE); |
+ manager->Init(browser_context(), instance, MSG_ROUTING_NONE, |
+ MSG_ROUTING_NONE); |
// 1) The first navigation. -------------------------- |
const GURL kUrl1("http://www.google.com/"); |
@@ -1267,11 +1293,11 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyClose) { |
Referrer(), base::string16() /* title */, |
PAGE_TRANSITION_TYPED, |
false /* is_renderer_init */); |
- RenderViewHost* host = manager.Navigate(entry1); |
+ RenderViewHost* host = manager->Navigate(entry1); |
// The RenderViewHost created in Init will be reused. |
- EXPECT_EQ(host, manager.current_host()); |
- EXPECT_FALSE(manager.pending_render_view_host()); |
+ EXPECT_EQ(host, manager->current_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
// We should observe a notification. |
EXPECT_TRUE( |
@@ -1279,10 +1305,10 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyClose) { |
notifications.Reset(); |
// Commit. |
- manager.DidNavigateMainFrame(host); |
+ manager->DidNavigateMainFrame(host); |
// Commit to SiteInstance should be delayed until RenderView commit. |
- EXPECT_EQ(host, manager.current_host()); |
+ EXPECT_EQ(host, manager->current_host()); |
EXPECT_FALSE(static_cast<SiteInstanceImpl*>(host->GetSiteInstance())-> |
HasSite()); |
static_cast<SiteInstanceImpl*>(host->GetSiteInstance())->SetSite(kUrl1); |
@@ -1294,26 +1320,26 @@ TEST_F(RenderFrameHostManagerTest, NavigateWithEarlyClose) { |
base::string16() /* title */, PAGE_TRANSITION_TYPED, |
false /* is_renderer_init */); |
RenderViewHostImpl* host2 = static_cast<RenderViewHostImpl*>( |
- manager.Navigate(entry2)); |
+ manager->Navigate(entry2)); |
// A new RenderViewHost should be created. |
- ASSERT_EQ(host2, manager.pending_render_view_host()); |
+ ASSERT_EQ(host2, manager->pending_render_view_host()); |
EXPECT_NE(host2, host); |
- EXPECT_EQ(host, manager.current_host()); |
+ EXPECT_EQ(host, manager->current_host()); |
EXPECT_FALSE(static_cast<RenderViewHostImpl*>( |
- manager.current_host())->is_swapped_out()); |
- EXPECT_EQ(host2, manager.pending_render_view_host()); |
+ manager->current_host())->is_swapped_out()); |
+ EXPECT_EQ(host2, manager->pending_render_view_host()); |
// 3) Close the tab. ------------------------- |
notifications.ListenFor(NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, |
Source<RenderWidgetHost>(host2)); |
- manager.ShouldClosePage(false, true, base::TimeTicks()); |
+ manager->ShouldClosePage(false, true, base::TimeTicks()); |
EXPECT_TRUE( |
notifications.Check1AndReset(NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED)); |
- EXPECT_FALSE(manager.pending_render_view_host()); |
- EXPECT_EQ(host, manager.current_host()); |
+ EXPECT_FALSE(manager->pending_render_view_host()); |
+ EXPECT_EQ(host, manager->current_host()); |
} |
} // namespace content |