| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/utf_string_conversions.h" | 5 #include "base/utf_string_conversions.h" |
| 6 #include "content/browser/browser_thread_impl.h" | 6 #include "content/browser/browser_thread_impl.h" |
| 7 #include "content/browser/renderer_host/test_render_view_host.h" | 7 #include "content/browser/renderer_host/test_render_view_host.h" |
| 8 #include "content/browser/site_instance_impl.h" | 8 #include "content/browser/site_instance_impl.h" |
| 9 #include "content/browser/web_contents/navigation_controller_impl.h" | 9 #include "content/browser/web_contents/navigation_controller_impl.h" |
| 10 #include "content/browser/web_contents/navigation_entry_impl.h" | 10 #include "content/browser/web_contents/navigation_entry_impl.h" |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 dest_rvh2->SendNavigate(101, kDestUrl); | 231 dest_rvh2->SendNavigate(101, kDestUrl); |
| 232 ntp_rvh2->OnSwapOutACK(); | 232 ntp_rvh2->OnSwapOutACK(); |
| 233 | 233 |
| 234 // The two RVH's should be different in every way. | 234 // The two RVH's should be different in every way. |
| 235 EXPECT_NE(active_rvh()->GetProcess(), dest_rvh2->GetProcess()); | 235 EXPECT_NE(active_rvh()->GetProcess(), dest_rvh2->GetProcess()); |
| 236 EXPECT_NE(active_rvh()->GetSiteInstance(), dest_rvh2->GetSiteInstance()); | 236 EXPECT_NE(active_rvh()->GetSiteInstance(), dest_rvh2->GetSiteInstance()); |
| 237 EXPECT_FALSE(active_rvh()->GetSiteInstance()->IsRelatedSiteInstance( | 237 EXPECT_FALSE(active_rvh()->GetSiteInstance()->IsRelatedSiteInstance( |
| 238 dest_rvh2->GetSiteInstance())); | 238 dest_rvh2->GetSiteInstance())); |
| 239 | 239 |
| 240 // Navigate both to the new tab page, and verify that they share a | 240 // Navigate both to the new tab page, and verify that they share a |
| 241 // SiteInstance. | 241 // RenderProcessHost (not a SiteInstance). |
| 242 NavigateActiveAndCommit(kNtpUrl); | 242 NavigateActiveAndCommit(kNtpUrl); |
| 243 | 243 |
| 244 contents2.GetController().LoadURL( | 244 contents2.GetController().LoadURL( |
| 245 kNtpUrl, content::Referrer(), content::PAGE_TRANSITION_LINK, | 245 kNtpUrl, content::Referrer(), content::PAGE_TRANSITION_LINK, |
| 246 std::string()); | 246 std::string()); |
| 247 dest_rvh2->SendShouldCloseACK(true); | 247 dest_rvh2->SendShouldCloseACK(true); |
| 248 static_cast<TestRenderViewHost*>(contents2.GetRenderManagerForTesting()-> | 248 static_cast<TestRenderViewHost*>(contents2.GetRenderManagerForTesting()-> |
| 249 pending_render_view_host())->SendNavigate(102, kNtpUrl); | 249 pending_render_view_host())->SendNavigate(102, kNtpUrl); |
| 250 dest_rvh2->OnSwapOutACK(); | 250 dest_rvh2->OnSwapOutACK(); |
| 251 | 251 |
| 252 EXPECT_EQ(active_rvh()->GetSiteInstance(), | 252 EXPECT_NE(active_rvh()->GetSiteInstance(), |
| 253 contents2.GetRenderViewHost()->GetSiteInstance()); | 253 contents2.GetRenderViewHost()->GetSiteInstance()); |
| 254 EXPECT_EQ(active_rvh()->GetSiteInstance()->GetProcess(), |
| 255 contents2.GetRenderViewHost()->GetSiteInstance()->GetProcess()); |
| 254 } | 256 } |
| 255 | 257 |
| 256 // Ensure that the browser ignores most IPC messages that arrive from a | 258 // Ensure that the browser ignores most IPC messages that arrive from a |
| 257 // RenderViewHost that has been swapped out. We do not want to take | 259 // RenderViewHost that has been swapped out. We do not want to take |
| 258 // action on requests from a non-active renderer. The main exception is | 260 // action on requests from a non-active renderer. The main exception is |
| 259 // for synchronous messages, which cannot be ignored without leaving the | 261 // for synchronous messages, which cannot be ignored without leaving the |
| 260 // renderer in a stuck state. See http://crbug.com/93427. | 262 // renderer in a stuck state. See http://crbug.com/93427. |
| 261 TEST_F(RenderViewHostManagerTest, FilterMessagesWhileSwappedOut) { | 263 TEST_F(RenderViewHostManagerTest, FilterMessagesWhileSwappedOut) { |
| 262 BrowserThreadImpl ui_thread(BrowserThread::UI, MessageLoop::current()); | 264 BrowserThreadImpl ui_thread(BrowserThread::UI, MessageLoop::current()); |
| 263 const GURL kNtpUrl(chrome::kTestNewTabURL); | 265 const GURL kNtpUrl(chrome::kTestNewTabURL); |
| (...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 927 EXPECT_FALSE(manager.pending_render_view_host()); | 929 EXPECT_FALSE(manager.pending_render_view_host()); |
| 928 | 930 |
| 929 // Commit. | 931 // Commit. |
| 930 manager.DidNavigateMainFrame(host); | 932 manager.DidNavigateMainFrame(host); |
| 931 EXPECT_EQ(host, manager.current_host()); | 933 EXPECT_EQ(host, manager.current_host()); |
| 932 ASSERT_TRUE(host); | 934 ASSERT_TRUE(host); |
| 933 EXPECT_EQ(static_cast<SiteInstanceImpl*>(host->GetSiteInstance()), | 935 EXPECT_EQ(static_cast<SiteInstanceImpl*>(host->GetSiteInstance()), |
| 934 instance); | 936 instance); |
| 935 | 937 |
| 936 } | 938 } |
| OLD | NEW |