| 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
|
|
|