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/strings/utf_string_conversions.h" | 5 #include "base/strings/utf_string_conversions.h" |
6 #include "content/browser/renderer_host/test_render_view_host.h" | 6 #include "content/browser/renderer_host/test_render_view_host.h" |
7 #include "content/browser/site_instance_impl.h" | 7 #include "content/browser/site_instance_impl.h" |
8 #include "content/browser/web_contents/navigation_controller_impl.h" | 8 #include "content/browser/web_contents/navigation_controller_impl.h" |
9 #include "content/browser/web_contents/navigation_entry_impl.h" | 9 #include "content/browser/web_contents/navigation_entry_impl.h" |
10 #include "content/browser/web_contents/render_view_host_manager.h" | 10 #include "content/browser/web_contents/render_view_host_manager.h" |
(...skipping 927 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
938 EXPECT_FALSE(opener1_manager->GetSwappedOutRenderViewHost( | 938 EXPECT_FALSE(opener1_manager->GetSwappedOutRenderViewHost( |
939 rvh3->GetSiteInstance())); | 939 rvh3->GetSiteInstance())); |
940 EXPECT_FALSE(opener2_manager->GetSwappedOutRenderViewHost( | 940 EXPECT_FALSE(opener2_manager->GetSwappedOutRenderViewHost( |
941 rvh3->GetSiteInstance())); | 941 rvh3->GetSiteInstance())); |
942 } | 942 } |
943 | 943 |
944 // Test that we clean up swapped out RenderViewHosts when a process hosting | 944 // Test that we clean up swapped out RenderViewHosts when a process hosting |
945 // those associated RenderViews crashes. http://crbug.com/258993 | 945 // those associated RenderViews crashes. http://crbug.com/258993 |
946 TEST_F(RenderViewHostManagerTest, CleanUpSwappedOutRVHOnProcessCrash) { | 946 TEST_F(RenderViewHostManagerTest, CleanUpSwappedOutRVHOnProcessCrash) { |
947 const GURL kUrl1("http://www.google.com/"); | 947 const GURL kUrl1("http://www.google.com/"); |
| 948 const GURL kUrl2("http://www.chromium.org/"); |
948 | 949 |
949 // Navigate to an initial URL. | 950 // Navigate to an initial URL. |
950 contents()->NavigateAndCommit(kUrl1); | 951 contents()->NavigateAndCommit(kUrl1); |
951 TestRenderViewHost* rvh1 = test_rvh(); | 952 TestRenderViewHost* rvh1 = test_rvh(); |
952 | 953 |
953 // Create a new tab as an opener for the main tab. | 954 // Create a new tab as an opener for the main tab. |
954 scoped_ptr<TestWebContents> opener1( | 955 scoped_ptr<TestWebContents> opener1( |
955 TestWebContents::Create(browser_context(), rvh1->GetSiteInstance())); | 956 TestWebContents::Create(browser_context(), rvh1->GetSiteInstance())); |
956 RenderViewHostManager* opener1_manager = | 957 RenderViewHostManager* opener1_manager = |
957 opener1->GetRenderManagerForTesting(); | 958 opener1->GetRenderManagerForTesting(); |
958 contents()->SetOpener(opener1.get()); | 959 contents()->SetOpener(opener1.get()); |
959 | 960 |
| 961 // Make sure the new opener RVH is considered live. |
| 962 opener1_manager->current_host()->CreateRenderView(string16(), -1, -1); |
| 963 |
960 EXPECT_FALSE(opener1_manager->GetSwappedOutRenderViewHost( | 964 EXPECT_FALSE(opener1_manager->GetSwappedOutRenderViewHost( |
961 rvh1->GetSiteInstance())); | 965 rvh1->GetSiteInstance())); |
962 opener1->CreateSwappedOutRenderView(rvh1->GetSiteInstance()); | 966 opener1->NavigateAndCommit(kUrl2); |
963 EXPECT_TRUE(opener1_manager->GetSwappedOutRenderViewHost( | 967 EXPECT_TRUE(opener1_manager->GetSwappedOutRenderViewHost( |
964 rvh1->GetSiteInstance())); | 968 rvh1->GetSiteInstance())); |
965 | 969 |
966 // Fake a process crash. | 970 // Fake a process crash. |
967 RenderProcessHost::RendererClosedDetails details( | 971 RenderProcessHost::RendererClosedDetails details( |
968 rvh1->GetProcess()->GetHandle(), | 972 rvh1->GetProcess()->GetHandle(), |
969 base::TERMINATION_STATUS_PROCESS_CRASHED, | 973 base::TERMINATION_STATUS_PROCESS_CRASHED, |
970 0); | 974 0); |
971 NotificationService::current()->Notify( | 975 NotificationService::current()->Notify( |
972 NOTIFICATION_RENDERER_PROCESS_CLOSED, | 976 NOTIFICATION_RENDERER_PROCESS_CLOSED, |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1074 | 1078 |
1075 // Commit. | 1079 // Commit. |
1076 manager.DidNavigateMainFrame(host); | 1080 manager.DidNavigateMainFrame(host); |
1077 EXPECT_EQ(host, manager.current_host()); | 1081 EXPECT_EQ(host, manager.current_host()); |
1078 ASSERT_TRUE(host); | 1082 ASSERT_TRUE(host); |
1079 EXPECT_EQ(static_cast<SiteInstanceImpl*>(host->GetSiteInstance()), | 1083 EXPECT_EQ(static_cast<SiteInstanceImpl*>(host->GetSiteInstance()), |
1080 instance); | 1084 instance); |
1081 } | 1085 } |
1082 | 1086 |
1083 } // namespace content | 1087 } // namespace content |
OLD | NEW |