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

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

Issue 946543003: PlzNavigate: have renderer-initiated navigations be same-process (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed SiteInstance direct URL check from tests. Created 5 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/macros.h" 6 #include "base/macros.h"
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "content/browser/frame_host/navigation_controller_impl.h" 8 #include "content/browser/frame_host/navigation_controller_impl.h"
9 #include "content/browser/frame_host/navigation_entry_impl.h" 9 #include "content/browser/frame_host/navigation_entry_impl.h"
10 #include "content/browser/frame_host/navigation_request.h" 10 #include "content/browser/frame_host/navigation_request.h"
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 // After a navigation is finished no speculative RenderFrameHost should 147 // After a navigation is finished no speculative RenderFrameHost should
148 // exist. 148 // exist.
149 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 149 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
150 150
151 // With PlzNavigate enabled a pending RenderFrameHost should never exist. 151 // With PlzNavigate enabled a pending RenderFrameHost should never exist.
152 EXPECT_FALSE(node->render_manager()->pending_frame_host()); 152 EXPECT_FALSE(node->render_manager()->pending_frame_host());
153 } 153 }
154 154
155 // PlzNavigate: Test a complete renderer-initiated same-site navigation. 155 // PlzNavigate: Test a complete renderer-initiated same-site navigation.
156 TEST_F(NavigatorTestWithBrowserSideNavigation, 156 TEST_F(NavigatorTestWithBrowserSideNavigation,
157 SimpleRendererInitiatedNavigation) { 157 SimpleRendererInitiatedSameSiteNavigation) {
158 const GURL kUrl1("http://www.chromium.org/"); 158 const GURL kUrl1("http://www.chromium.org/");
159 const GURL kUrl2("http://www.chromium.org/Home"); 159 const GURL kUrl2("http://www.chromium.org/Home");
160 160
161 contents()->NavigateAndCommit(kUrl1); 161 contents()->NavigateAndCommit(kUrl1);
162 EXPECT_TRUE(main_test_rfh()->IsRenderFrameLive()); 162 EXPECT_TRUE(main_test_rfh()->IsRenderFrameLive());
163 163
164 // Start a renderer-initiated non-user-initiated navigation. 164 // Start a renderer-initiated non-user-initiated navigation.
165 process()->sink().ClearMessages(); 165 process()->sink().ClearMessages();
166 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false); 166 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
167 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 167 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
(...skipping 19 matching lines...) Expand all
187 main_test_rfh()->SendNavigate(0, kUrl2); 187 main_test_rfh()->SendNavigate(0, kUrl2);
188 EXPECT_EQ(RenderFrameHostImpl::STATE_DEFAULT, main_test_rfh()->rfh_state()); 188 EXPECT_EQ(RenderFrameHostImpl::STATE_DEFAULT, main_test_rfh()->rfh_state());
189 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl2), 189 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl2),
190 main_test_rfh()->GetSiteInstance()->GetSiteURL()); 190 main_test_rfh()->GetSiteInstance()->GetSiteURL());
191 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL()); 191 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL());
192 EXPECT_FALSE(GetNavigationRequestForFrameTreeNode(node)); 192 EXPECT_FALSE(GetNavigationRequestForFrameTreeNode(node));
193 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 193 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
194 EXPECT_FALSE(node->render_manager()->pending_frame_host()); 194 EXPECT_FALSE(node->render_manager()->pending_frame_host());
195 } 195 }
196 196
197 // PlzNavigate: Test a complete renderer-initiated navigation that should be
198 // cross-site but does not result in a SiteInstance swap because its
199 // renderer-initiated.
200 TEST_F(NavigatorTestWithBrowserSideNavigation,
201 SimpleRendererInitiatedCrossSiteNavigation) {
202 const GURL kUrl1("http://www.chromium.org/");
203 const GURL kUrl2("http://www.google.com");
204
205 contents()->NavigateAndCommit(kUrl1);
206 EXPECT_TRUE(main_test_rfh()->IsRenderFrameLive());
207 int32 site_instance_id_1 = main_test_rfh()->GetSiteInstance()->GetId();
208
209 // Start a renderer-initiated non-user-initiated navigation.
210 process()->sink().ClearMessages();
211 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
212 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
213 NavigationRequest* request = GetNavigationRequestForFrameTreeNode(node);
214 ASSERT_TRUE(request);
215
216 // The navigation is immediately started as there's no need to wait for
217 // beforeUnload to be executed.
218 EXPECT_EQ(NavigationRequest::STARTED, request->state());
219 EXPECT_FALSE(request->begin_params().has_user_gesture);
220 EXPECT_EQ(kUrl2, request->common_params().url);
221 EXPECT_FALSE(request->browser_initiated());
222 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
223
224 // Have the current RenderFrameHost commit the navigation.
225 scoped_refptr<ResourceResponse> response(new ResourceResponse);
226 GetLoaderForNavigationRequest(request)
227 ->CallOnResponseStarted(response, MakeEmptyStream());
228 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
229 EXPECT_EQ(NavigationRequest::RESPONSE_STARTED, request->state());
230
231 // Commit the navigation.
232 main_test_rfh()->SendNavigate(0, kUrl2);
233 EXPECT_EQ(RenderFrameHostImpl::STATE_DEFAULT, main_test_rfh()->rfh_state());
234 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL());
235 EXPECT_FALSE(GetNavigationRequestForFrameTreeNode(node));
236 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
237 EXPECT_FALSE(node->render_manager()->pending_frame_host());
238 // The SiteInstance did not change.
nasko 2015/03/16 16:22:42 nit: Empty line before the comment.
carlosk 2015/03/16 17:25:00 Done.
239 EXPECT_EQ(site_instance_id_1, main_test_rfh()->GetSiteInstance()->GetId());
240 }
241
197 // PlzNavigate: Test that a beforeUnload denial cancels the navigation. 242 // PlzNavigate: Test that a beforeUnload denial cancels the navigation.
198 TEST_F(NavigatorTestWithBrowserSideNavigation, 243 TEST_F(NavigatorTestWithBrowserSideNavigation,
199 BeforeUnloadDenialCancelNavigation) { 244 BeforeUnloadDenialCancelNavigation) {
200 const GURL kUrl1("http://www.google.com/"); 245 const GURL kUrl1("http://www.google.com/");
201 const GURL kUrl2("http://www.chromium.org/"); 246 const GURL kUrl2("http://www.chromium.org/");
202 247
203 contents()->NavigateAndCommit(kUrl1); 248 contents()->NavigateAndCommit(kUrl1);
204 249
205 // Start a new navigation. 250 // Start a new navigation.
206 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 251 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 RequestNavigation(node, kUrl1); 580 RequestNavigation(node, kUrl1);
536 main_test_rfh()->SendBeforeUnloadACK(true); 581 main_test_rfh()->SendBeforeUnloadACK(true);
537 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 582 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
538 ASSERT_TRUE(request1); 583 ASSERT_TRUE(request1);
539 EXPECT_EQ(kUrl1, request1->common_params().url); 584 EXPECT_EQ(kUrl1, request1->common_params().url);
540 EXPECT_TRUE(request1->browser_initiated()); 585 EXPECT_TRUE(request1->browser_initiated());
541 base::WeakPtr<TestNavigationURLLoader> loader1 = 586 base::WeakPtr<TestNavigationURLLoader> loader1 =
542 GetLoaderForNavigationRequest(request1)->AsWeakPtr(); 587 GetLoaderForNavigationRequest(request1)->AsWeakPtr();
543 EXPECT_TRUE(loader1); 588 EXPECT_TRUE(loader1);
544 589
545 // Confirm a speculative RenderFrameHost was created. 590 // Confirm that a speculative RenderFrameHost was created.
546 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 591 ASSERT_TRUE(GetSpeculativeRenderFrameHost(node));
547 ASSERT_TRUE(speculative_rfh);
548 int32 site_instance_id_1 = speculative_rfh->GetSiteInstance()->GetId();
549 592
550 // Now receive a renderer-initiated user-initiated request. It should replace 593 // Now receive a renderer-initiated user-initiated request. It should replace
551 // the current NavigationRequest. 594 // the current NavigationRequest.
552 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, true); 595 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, true);
553 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 596 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
554 ASSERT_TRUE(request2); 597 ASSERT_TRUE(request2);
555 EXPECT_EQ(kUrl2, request2->common_params().url); 598 EXPECT_EQ(kUrl2, request2->common_params().url);
556 EXPECT_FALSE(request2->browser_initiated()); 599 EXPECT_FALSE(request2->browser_initiated());
557 EXPECT_TRUE(request2->begin_params().has_user_gesture); 600 EXPECT_TRUE(request2->begin_params().has_user_gesture);
558 601
559 // Confirm that the first loader got destroyed. 602 // Confirm that the first loader got destroyed.
560 EXPECT_FALSE(loader1); 603 EXPECT_FALSE(loader1);
561 604
562 // Confirm that a new speculative RenderFrameHost was created. 605 // Confirm that the speculative RenderFrameHost was destroyed.
563 speculative_rfh = GetSpeculativeRenderFrameHost(node); 606 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
564 ASSERT_TRUE(speculative_rfh);
565 int32 site_instance_id_2 = speculative_rfh->GetSiteInstance()->GetId();
566 EXPECT_NE(site_instance_id_1, site_instance_id_2);
567 607
568 // Have the RenderFrameHost commit the navigation. 608 // Have the RenderFrameHost commit the navigation.
569 scoped_refptr<ResourceResponse> response(new ResourceResponse); 609 scoped_refptr<ResourceResponse> response(new ResourceResponse);
570 GetLoaderForNavigationRequest(request2) 610 GetLoaderForNavigationRequest(request2)
571 ->CallOnResponseStarted(response, MakeEmptyStream()); 611 ->CallOnResponseStarted(response, MakeEmptyStream());
572 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 612 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
573 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
574 613
575 // Commit the navigation. 614 // Commit the navigation.
576 speculative_rfh->SendNavigate(0, kUrl2); 615 main_test_rfh()->SendNavigate(0, kUrl2);
577 616
578 // Confirm that the commit corresponds to the new request. 617 // Confirm that the commit corresponds to the new request.
579 ASSERT_TRUE(main_test_rfh()); 618 ASSERT_TRUE(main_test_rfh());
580 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL()); 619 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL());
581
582 // Confirm that the committed RenderFrameHost is the latest speculative one.
583 EXPECT_EQ(site_instance_id_2, main_test_rfh()->GetSiteInstance()->GetId());
nasko 2015/03/16 16:22:42 Why did you remove this SiteInstance check? If we
carlosk 2015/03/16 17:25:00 This check was added to confirm that the RenderFra
584 } 620 }
585 621
586 // PlzNavigate: Test that a renderer-initiated user-initiated navigation is NOT 622 // PlzNavigate: Test that a renderer-initiated user-initiated navigation is NOT
587 // canceled if a renderer-initiated non-user-initiated request is issued in the 623 // canceled if a renderer-initiated non-user-initiated request is issued in the
588 // meantime. 624 // meantime.
589 TEST_F(NavigatorTestWithBrowserSideNavigation, 625 TEST_F(NavigatorTestWithBrowserSideNavigation,
590 RendererNonUserInitiatedNavigationDoesntCancelRendererUserInitiated) { 626 RendererNonUserInitiatedNavigationDoesntCancelRendererUserInitiated) {
591 const GURL kUrl0("http://www.wikipedia.org/"); 627 const GURL kUrl0("http://www.wikipedia.org/");
592 const GURL kUrl1("http://www.chromium.org/"); 628 const GURL kUrl1("http://www.chromium.org/");
593 const GURL kUrl2("http://www.google.com/"); 629 const GURL kUrl2("http://www.google.com/");
594 630
595 // Initialization. 631 // Initialization.
596 contents()->NavigateAndCommit(kUrl0); 632 contents()->NavigateAndCommit(kUrl0);
597 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 633 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
598 634
599 // Start a renderer-initiated user-initiated navigation to the 1st URL. 635 // Start a renderer-initiated user-initiated navigation to the 1st URL.
600 process()->sink().ClearMessages(); 636 process()->sink().ClearMessages();
601 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, true); 637 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, true);
602 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 638 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
603 ASSERT_TRUE(request1); 639 ASSERT_TRUE(request1);
604 EXPECT_EQ(kUrl1, request1->common_params().url); 640 EXPECT_EQ(kUrl1, request1->common_params().url);
605 EXPECT_FALSE(request1->browser_initiated()); 641 EXPECT_FALSE(request1->browser_initiated());
606 EXPECT_TRUE(request1->begin_params().has_user_gesture); 642 EXPECT_TRUE(request1->begin_params().has_user_gesture);
607 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node)); 643 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
608 644
609 // Now receive a renderer-initiated non-user-initiated request. Nothing should 645 // Now receive a renderer-initiated non-user-initiated request. Nothing should
610 // change. 646 // change.
611 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false); 647 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
612 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 648 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
613 ASSERT_TRUE(request2); 649 ASSERT_TRUE(request2);
614 EXPECT_EQ(request1, request2); 650 EXPECT_EQ(request1, request2);
615 EXPECT_EQ(kUrl1, request2->common_params().url); 651 EXPECT_EQ(kUrl1, request2->common_params().url);
616 EXPECT_FALSE(request2->browser_initiated()); 652 EXPECT_FALSE(request2->browser_initiated());
617 EXPECT_TRUE(request2->begin_params().has_user_gesture); 653 EXPECT_TRUE(request2->begin_params().has_user_gesture);
618 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 654 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
619 ASSERT_TRUE(speculative_rfh);
620 655
621 // Have the RenderFrameHost commit the navigation. 656 // Have the RenderFrameHost commit the navigation.
622 scoped_refptr<ResourceResponse> response(new ResourceResponse); 657 scoped_refptr<ResourceResponse> response(new ResourceResponse);
623 GetLoaderForNavigationRequest(request2) 658 GetLoaderForNavigationRequest(request2)
624 ->CallOnResponseStarted(response, MakeEmptyStream()); 659 ->CallOnResponseStarted(response, MakeEmptyStream());
625 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 660 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
626 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
627 661
628 // Commit the navigation. 662 // Commit the navigation.
629 speculative_rfh->SendNavigate(0, kUrl1); 663 main_test_rfh()->SendNavigate(0, kUrl1);
630 EXPECT_EQ(kUrl1, contents()->GetLastCommittedURL()); 664 EXPECT_EQ(kUrl1, contents()->GetLastCommittedURL());
631 } 665 }
632 666
633 // PlzNavigate: Test that a browser-initiated navigation is NOT canceled if a 667 // PlzNavigate: Test that a browser-initiated navigation is NOT canceled if a
634 // renderer-initiated non-user-initiated request is issued in the meantime. 668 // renderer-initiated non-user-initiated request is issued in the meantime.
635 TEST_F(NavigatorTestWithBrowserSideNavigation, 669 TEST_F(NavigatorTestWithBrowserSideNavigation,
636 RendererNonUserInitiatedNavigationDoesntCancelBrowserInitiated) { 670 RendererNonUserInitiatedNavigationDoesntCancelBrowserInitiated) {
637 const GURL kUrl0("http://www.wikipedia.org/"); 671 const GURL kUrl0("http://www.wikipedia.org/");
638 const GURL kUrl1("http://www.chromium.org/"); 672 const GURL kUrl1("http://www.chromium.org/");
639 const GURL kUrl2("http://www.google.com/"); 673 const GURL kUrl2("http://www.google.com/");
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 // canceled if a another similar request is issued in the meantime. 716 // canceled if a another similar request is issued in the meantime.
683 TEST_F(NavigatorTestWithBrowserSideNavigation, 717 TEST_F(NavigatorTestWithBrowserSideNavigation,
684 RendererNonUserInitiatedNavigationCancelSimilarNavigation) { 718 RendererNonUserInitiatedNavigationCancelSimilarNavigation) {
685 const GURL kUrl0("http://www.wikipedia.org/"); 719 const GURL kUrl0("http://www.wikipedia.org/");
686 const GURL kUrl1("http://www.chromium.org/"); 720 const GURL kUrl1("http://www.chromium.org/");
687 const GURL kUrl2("http://www.google.com/"); 721 const GURL kUrl2("http://www.google.com/");
688 722
689 // Initialization. 723 // Initialization.
690 contents()->NavigateAndCommit(kUrl0); 724 contents()->NavigateAndCommit(kUrl0);
691 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 725 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
726 int32 site_instance_id_0 = main_test_rfh()->GetSiteInstance()->GetId();
692 727
693 // Start a renderer-initiated non-user-initiated navigation to the 1st URL. 728 // Start a renderer-initiated non-user-initiated navigation to the 1st URL.
694 process()->sink().ClearMessages(); 729 process()->sink().ClearMessages();
695 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, false); 730 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, false);
696 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 731 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
697 ASSERT_TRUE(request1); 732 ASSERT_TRUE(request1);
698 EXPECT_EQ(kUrl1, request1->common_params().url); 733 EXPECT_EQ(kUrl1, request1->common_params().url);
699 EXPECT_FALSE(request1->browser_initiated()); 734 EXPECT_FALSE(request1->browser_initiated());
700 EXPECT_FALSE(request1->begin_params().has_user_gesture); 735 EXPECT_FALSE(request1->begin_params().has_user_gesture);
701 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node)); 736 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
702 base::WeakPtr<TestNavigationURLLoader> loader1 = 737 base::WeakPtr<TestNavigationURLLoader> loader1 =
703 GetLoaderForNavigationRequest(request1)->AsWeakPtr(); 738 GetLoaderForNavigationRequest(request1)->AsWeakPtr();
704 EXPECT_TRUE(loader1); 739 EXPECT_TRUE(loader1);
705 740
706 // Now receive a 2nd similar request that should replace the current one. 741 // Now receive a 2nd similar request that should replace the current one.
707 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false); 742 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
708 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 743 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
709 EXPECT_EQ(kUrl2, request2->common_params().url); 744 EXPECT_EQ(kUrl2, request2->common_params().url);
710 EXPECT_FALSE(request2->browser_initiated()); 745 EXPECT_FALSE(request2->browser_initiated());
711 EXPECT_FALSE(request2->begin_params().has_user_gesture); 746 EXPECT_FALSE(request2->begin_params().has_user_gesture);
712 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 747 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
713 ASSERT_TRUE(speculative_rfh);
714 748
715 // Confirm that the first loader got destroyed. 749 // Confirm that the first loader got destroyed.
716 EXPECT_FALSE(loader1); 750 EXPECT_FALSE(loader1);
717 751
718 // Have the RenderFrameHost commit the navigation. 752 // Have the RenderFrameHost commit the navigation.
719 scoped_refptr<ResourceResponse> response(new ResourceResponse); 753 scoped_refptr<ResourceResponse> response(new ResourceResponse);
720 GetLoaderForNavigationRequest(request2) 754 GetLoaderForNavigationRequest(request2)
721 ->CallOnResponseStarted(response, MakeEmptyStream()); 755 ->CallOnResponseStarted(response, MakeEmptyStream());
722 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 756 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
723 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
724 757
725 // Commit the navigation. 758 // Commit the navigation.
726 speculative_rfh->SendNavigate(0, kUrl2); 759 main_test_rfh()->SendNavigate(0, kUrl2);
727 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL()); 760 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL());
761 // The SiteInstance did not change.
nasko 2015/03/16 16:22:42 nit: Empty line before comment.
carlosk 2015/03/16 17:25:00 Done.
762 EXPECT_EQ(site_instance_id_0, main_test_rfh()->GetSiteInstance()->GetId());
728 } 763 }
729 764
730 // PlzNavigate: Test that a reload navigation is properly signaled to the 765 // PlzNavigate: Test that a reload navigation is properly signaled to the
731 // RenderFrame when the navigation can commit. A speculative RenderFrameHost 766 // RenderFrame when the navigation can commit. A speculative RenderFrameHost
732 // should not be created at any step. 767 // should not be created at any step.
733 TEST_F(NavigatorTestWithBrowserSideNavigation, Reload) { 768 TEST_F(NavigatorTestWithBrowserSideNavigation, Reload) {
734 const GURL kUrl("http://www.google.com/"); 769 const GURL kUrl("http://www.google.com/");
735 contents()->NavigateAndCommit(kUrl); 770 contents()->NavigateAndCommit(kUrl);
736 771
737 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 772 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
961 996
962 // Do a renderer-initiated navigation to a data url. The request should not be 997 // Do a renderer-initiated navigation to a data url. The request should not be
963 // sent to the IO thread, nor committed. 998 // sent to the IO thread, nor committed.
964 TestRenderFrameHost* main_rfh = main_test_rfh(); 999 TestRenderFrameHost* main_rfh = main_test_rfh();
965 main_rfh->SendRendererInitiatedNavigationRequest(kUrl2, true); 1000 main_rfh->SendRendererInitiatedNavigationRequest(kUrl2, true);
966 navigation_request = GetNavigationRequestForFrameTreeNode(node); 1001 navigation_request = GetNavigationRequestForFrameTreeNode(node);
967 ASSERT_TRUE(navigation_request); 1002 ASSERT_TRUE(navigation_request);
968 EXPECT_EQ(NavigationRequest::RESPONSE_STARTED, 1003 EXPECT_EQ(NavigationRequest::RESPONSE_STARTED,
969 navigation_request->state()); 1004 navigation_request->state());
970 EXPECT_FALSE(navigation_request->loader_for_testing()); 1005 EXPECT_FALSE(navigation_request->loader_for_testing());
971 speculative_rfh = GetSpeculativeRenderFrameHost(node); 1006 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
972 ASSERT_TRUE(speculative_rfh);
973 speculative_rfh->SendNavigate(0, kUrl2);
974 EXPECT_EQ(main_test_rfh(), speculative_rfh);
975 } 1007 }
976 1008
977 } // namespace content 1009 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698