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 2b3981852947388b746d3423e97bcd77bef5e042..b79232b5152bae73f491087b367a95fc740b896f 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager_unittest.cc |
| +++ b/content/browser/frame_host/render_frame_host_manager_unittest.cc |
| @@ -318,7 +318,7 @@ class RenderFrameHostManagerTest : public RenderViewHostImplTestHarness { |
| void set_webui_type(int type) { factory_.set_webui_type(type); } |
| - void NavigateActiveAndCommit(const GURL& url) { |
| + void NavigateActiveAndCommit(const GURL& url, bool dont_swap_out = false) { |
|
dcheng
2017/06/06 20:01:30
defaulted bool parameters are a little sad. I gues
Łukasz Anforowicz
2017/06/06 20:55:00
Acknowledged.
|
| // Note: we navigate the active RenderFrameHost because previous navigations |
| // won't have committed yet, so NavigateAndCommit does the wrong thing |
| // for us. |
| @@ -357,6 +357,8 @@ class RenderFrameHostManagerTest : public RenderViewHostImplTestHarness { |
| // Simulate the swap out ACK coming from the pending renderer. This should |
| // either shut down the old RFH or leave it in a swapped out state. |
| if (old_rfh != active_rfh) { |
| + if (dont_swap_out) |
| + return; |
| old_rfh->OnSwappedOut(); |
| EXPECT_TRUE(rfh_observer.deleted()); |
| } |
| @@ -574,14 +576,12 @@ TEST_F(RenderFrameHostManagerTest, FilterMessagesWhileSwappedOut) { |
| // Navigate our first tab to a chrome url and then to the destination. |
| NavigateActiveAndCommit(kChromeURL); |
| TestRenderFrameHost* ntp_rfh = contents()->GetMainFrame(); |
| - TestRenderViewHost* ntp_rvh = ntp_rfh->GetRenderViewHost(); |
| // Send an update favicon message and make sure it works. |
| { |
| PluginFaviconMessageObserver observer(contents()); |
| - EXPECT_TRUE(ntp_rfh->GetRenderViewHost()->GetWidget()->OnMessageReceived( |
| - ViewHostMsg_UpdateFaviconURL( |
| - ntp_rfh->GetRenderViewHost()->GetRoutingID(), icons))); |
| + EXPECT_TRUE(ntp_rfh->OnMessageReceived( |
| + FrameHostMsg_UpdateFaviconURL(ntp_rfh->GetRoutingID(), icons))); |
| EXPECT_TRUE(observer.favicon_received()); |
| } |
| // Create one more frame in the same SiteInstance where ntp_rfh |
| @@ -589,8 +589,8 @@ TEST_F(RenderFrameHostManagerTest, FilterMessagesWhileSwappedOut) { |
| // site. |
| ntp_rfh->GetSiteInstance()->IncrementActiveFrameCount(); |
| - // Navigate to a cross-site URL. |
| - NavigateActiveAndCommit(kDestUrl); |
| + // Navigate to a cross-site URL (don't swap out to keep |ntp_rfh| alive). |
| + NavigateActiveAndCommit(kDestUrl, true /* dont_swap_out */); |
| TestRenderFrameHost* dest_rfh = contents()->GetMainFrame(); |
| ASSERT_TRUE(dest_rfh); |
| EXPECT_NE(ntp_rfh, dest_rfh); |
| @@ -598,9 +598,8 @@ TEST_F(RenderFrameHostManagerTest, FilterMessagesWhileSwappedOut) { |
| // The new RVH should be able to update its favicon. |
| { |
| PluginFaviconMessageObserver observer(contents()); |
| - EXPECT_TRUE(dest_rfh->GetRenderViewHost()->GetWidget()->OnMessageReceived( |
| - ViewHostMsg_UpdateFaviconURL( |
| - dest_rfh->GetRenderViewHost()->GetRoutingID(), icons))); |
| + EXPECT_TRUE(dest_rfh->OnMessageReceived( |
| + FrameHostMsg_UpdateFaviconURL(dest_rfh->GetRoutingID(), icons))); |
| EXPECT_TRUE(observer.favicon_received()); |
| } |
| @@ -608,17 +607,16 @@ TEST_F(RenderFrameHostManagerTest, FilterMessagesWhileSwappedOut) { |
| // filtered out and not take effect. |
| { |
| PluginFaviconMessageObserver observer(contents()); |
| - EXPECT_TRUE( |
| - ntp_rvh->GetWidget()->OnMessageReceived(ViewHostMsg_UpdateFaviconURL( |
| - dest_rfh->GetRenderViewHost()->GetRoutingID(), icons))); |
| + EXPECT_TRUE(ntp_rfh->OnMessageReceived( |
| + FrameHostMsg_UpdateFaviconURL(ntp_rfh->GetRoutingID(), icons))); |
| EXPECT_FALSE(observer.favicon_received()); |
| } |
| } |
| -// Test that the ViewHostMsg_UpdateFaviconURL IPC message is ignored if the |
| +// Test that the FrameHostMsg_UpdateFaviconURL IPC message is ignored if the |
| // renderer is in the STATE_PENDING_SWAP_OUT_STATE. The favicon code assumes |
| -// that it only gets ViewHostMsg_UpdateFaviconURL messages for the most recently |
| -// committed navigation for each WebContentsImpl. |
| +// that it only gets FrameHostMsg_UpdateFaviconURL messages for the most |
| +// recently committed navigation for each WebContentsImpl. |
| TEST_F(RenderFrameHostManagerTest, UpdateFaviconURLWhilePendingSwapOut) { |
| const GURL kChromeURL("chrome://foo"); |
| const GURL kDestUrl("http://www.google.com/"); |
| @@ -631,9 +629,8 @@ TEST_F(RenderFrameHostManagerTest, UpdateFaviconURLWhilePendingSwapOut) { |
| // Send an update favicon message and make sure it works. |
| { |
| PluginFaviconMessageObserver observer(contents()); |
| - EXPECT_TRUE(rfh1->GetRenderViewHost()->GetWidget()->OnMessageReceived( |
| - ViewHostMsg_UpdateFaviconURL(rfh1->GetRenderViewHost()->GetRoutingID(), |
| - icons))); |
| + EXPECT_TRUE(rfh1->OnMessageReceived( |
| + FrameHostMsg_UpdateFaviconURL(rfh1->GetRoutingID(), icons))); |
| EXPECT_TRUE(observer.favicon_received()); |
| } |
| @@ -655,9 +652,8 @@ TEST_F(RenderFrameHostManagerTest, UpdateFaviconURLWhilePendingSwapOut) { |
| // The new RVH should be able to update its favicons. |
| { |
| PluginFaviconMessageObserver observer(contents()); |
| - EXPECT_TRUE(rfh2->GetRenderViewHost()->GetWidget()->OnMessageReceived( |
| - ViewHostMsg_UpdateFaviconURL(rfh2->GetRenderViewHost()->GetRoutingID(), |
| - icons))); |
| + EXPECT_TRUE(rfh2->OnMessageReceived( |
| + FrameHostMsg_UpdateFaviconURL(rfh2->GetRoutingID(), icons))); |
| EXPECT_TRUE(observer.favicon_received()); |
| } |
| @@ -665,9 +661,8 @@ TEST_F(RenderFrameHostManagerTest, UpdateFaviconURLWhilePendingSwapOut) { |
| // be ignored. |
| { |
| PluginFaviconMessageObserver observer(contents()); |
| - EXPECT_TRUE(rfh1->GetRenderViewHost()->GetWidget()->OnMessageReceived( |
| - ViewHostMsg_UpdateFaviconURL(rfh1->GetRenderViewHost()->GetRoutingID(), |
| - icons))); |
| + EXPECT_TRUE(rfh1->OnMessageReceived( |
| + FrameHostMsg_UpdateFaviconURL(rfh1->GetRoutingID(), icons))); |
| EXPECT_FALSE(observer.favicon_received()); |
| } |
| } |