Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(511)

Side by Side Diff: content/browser/frame_host/navigator_impl_unittest.cc

Issue 1785153005: Remove SiteIsolationPolicy::IsSwappedOutStateForbidden(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on ToT. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 #include "content/browser/frame_host/navigation_controller_impl.h" 10 #include "content/browser/frame_host/navigation_controller_impl.h"
(...skipping 957 matching lines...) Expand 10 before | Expand all | Expand 10 after
968 968
969 // Invoke OnDidCommitProvisionalLoad. 969 // Invoke OnDidCommitProvisionalLoad.
970 speculative_rfh->SendNavigate(0, entry_id, true, kUrlRedirect); 970 speculative_rfh->SendNavigate(0, entry_id, true, kUrlRedirect);
971 971
972 // Check that the speculative RenderFrameHost was swapped in. 972 // Check that the speculative RenderFrameHost was swapped in.
973 EXPECT_EQ(redirect_site_instance_id, 973 EXPECT_EQ(redirect_site_instance_id,
974 main_test_rfh()->GetSiteInstance()->GetId()); 974 main_test_rfh()->GetSiteInstance()->GetId());
975 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 975 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
976 } 976 }
977 977
978 // PlzNavigate: Verify that a previously swapped out RenderFrameHost is
979 // correctly reused when spawning a speculative RenderFrameHost in a navigation
980 // using the same SiteInstance.
981 TEST_F(NavigatorTestWithBrowserSideNavigation,
982 SpeculativeRendererReuseSwappedOutRFH) {
983 // This test doesn't make sense in --site-per-process where swapped out
984 // RenderFrameHost is no longer used.
985 if (SiteIsolationPolicy::IsSwappedOutStateForbidden())
986 return;
987
988 // Navigate to an initial site.
989 const GURL kUrl1("http://wikipedia.org/");
990 contents()->NavigateAndCommit(kUrl1);
991 TestRenderFrameHost* rfh1 = main_test_rfh();
992 FrameTreeNode* node = rfh1->frame_tree_node();
993 RenderFrameHostManager* rfhm = node->render_manager();
994
995 // Increment active frame count to cause the RenderFrameHost to be swapped out
996 // (instead of immediately destroyed).
997 rfh1->GetSiteInstance()->IncrementActiveFrameCount();
998
999 // Navigate to another site to swap out the initial RenderFrameHost.
1000 const GURL kUrl2("http://chromium.org/");
1001 contents()->NavigateAndCommit(kUrl2);
1002 ASSERT_NE(rfh1, main_test_rfh());
1003 EXPECT_NE(RenderFrameHostImpl::STATE_DEFAULT, rfh1->rfh_state());
1004 EXPECT_EQ(RenderFrameHostImpl::STATE_DEFAULT, main_test_rfh()->rfh_state());
1005 EXPECT_TRUE(rfhm->IsOnSwappedOutList(rfh1));
1006
1007 // Now go back to the initial site so that the swapped out RenderFrameHost
1008 // should be reused.
1009 process()->sink().ClearMessages();
1010 rfh1->GetProcess()->sink().ClearMessages();
1011 int entry_id = RequestNavigation(node, kUrl1);
1012 EXPECT_EQ(rfh1, GetSpeculativeRenderFrameHost(node));
1013
1014 main_test_rfh()->SendBeforeUnloadACK(true);
1015 EXPECT_EQ(rfh1, GetSpeculativeRenderFrameHost(node));
1016 EXPECT_NE(RenderFrameHostImpl::STATE_DEFAULT,
1017 GetSpeculativeRenderFrameHost(node)->rfh_state());
1018
1019 scoped_refptr<ResourceResponse> response(new ResourceResponse);
1020 GetLoaderForNavigationRequest(node->navigation_request())
1021 ->CallOnResponseStarted(response, MakeEmptyStream());
1022 EXPECT_EQ(rfh1, GetSpeculativeRenderFrameHost(node));
1023 EXPECT_EQ(RenderFrameHostImpl::STATE_DEFAULT,
1024 GetSpeculativeRenderFrameHost(node)->rfh_state());
1025 EXPECT_TRUE(DidRenderFrameHostRequestCommit(rfh1));
1026 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
1027
1028 rfh1->SendNavigate(1, entry_id, true, kUrl1);
1029 EXPECT_EQ(rfh1, main_test_rfh());
1030 EXPECT_EQ(RenderFrameHostImpl::STATE_DEFAULT, rfh1->rfh_state());
1031 EXPECT_FALSE(rfhm->IsOnSwappedOutList(rfh1));
1032 }
1033
1034 // PlzNavigate: Verify that data urls are properly handled. 978 // PlzNavigate: Verify that data urls are properly handled.
1035 TEST_F(NavigatorTestWithBrowserSideNavigation, DataUrls) { 979 TEST_F(NavigatorTestWithBrowserSideNavigation, DataUrls) {
1036 const GURL kUrl1("http://wikipedia.org/"); 980 const GURL kUrl1("http://wikipedia.org/");
1037 const GURL kUrl2("data:text/html,test"); 981 const GURL kUrl2("data:text/html,test");
1038 982
1039 // Navigate to an initial site. 983 // Navigate to an initial site.
1040 contents()->NavigateAndCommit(kUrl1); 984 contents()->NavigateAndCommit(kUrl1);
1041 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 985 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
1042 986
1043 // Navigate to a data url. The request should not have been sent to the IO 987 // Navigate to a data url. The request should not have been sent to the IO
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 main_test_rfh()->PrepareForCommit(); 1160 main_test_rfh()->PrepareForCommit();
1217 1161
1218 // Claim that the navigation was within same page. 1162 // Claim that the navigation was within same page.
1219 int bad_msg_count = process()->bad_msg_count(); 1163 int bad_msg_count = process()->bad_msg_count();
1220 GetSpeculativeRenderFrameHost(node)->SendNavigateWithModificationCallback( 1164 GetSpeculativeRenderFrameHost(node)->SendNavigateWithModificationCallback(
1221 0, entry_id, true, kUrl2, base::Bind(SetWithinPage, kUrl1)); 1165 0, entry_id, true, kUrl2, base::Bind(SetWithinPage, kUrl1));
1222 EXPECT_EQ(process()->bad_msg_count(), bad_msg_count + 1); 1166 EXPECT_EQ(process()->bad_msg_count(), bad_msg_count + 1);
1223 } 1167 }
1224 1168
1225 } // namespace content 1169 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/frame_tree.cc ('k') | content/browser/frame_host/render_frame_host_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698