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

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

Issue 953503002: PlzNavigate: test updates post beforeUnload IPC refactor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor comment updates. 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 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 TEST_F(NavigatorTestWithBrowserSideNavigation, 156 TEST_F(NavigatorTestWithBrowserSideNavigation,
157 SimpleRendererInitiatedNavigation) { 157 SimpleRendererInitiatedNavigation) {
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()->SendBeginNavigationWithURL(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();
168 NavigationRequest* request = GetNavigationRequestForFrameTreeNode(node); 168 NavigationRequest* request = GetNavigationRequestForFrameTreeNode(node);
169 ASSERT_TRUE(request); 169 ASSERT_TRUE(request);
170 170
171 // The navigation is immediately started as there's no need to wait for 171 // The navigation is immediately started as there's no need to wait for
172 // beforeUnload to be executed. 172 // beforeUnload to be executed.
173 EXPECT_EQ(NavigationRequest::STARTED, request->state()); 173 EXPECT_EQ(NavigationRequest::STARTED, request->state());
174 EXPECT_FALSE(request->begin_params().has_user_gesture); 174 EXPECT_FALSE(request->begin_params().has_user_gesture);
175 EXPECT_EQ(kUrl2, request->common_params().url); 175 EXPECT_EQ(kUrl2, request->common_params().url);
176 EXPECT_FALSE(request->browser_initiated()); 176 EXPECT_FALSE(request->browser_initiated());
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 414
415 // Navigate to a URL on the same site. 415 // Navigate to a URL on the same site.
416 process()->sink().ClearMessages(); 416 process()->sink().ClearMessages();
417 RequestNavigation(node, kUrl1); 417 RequestNavigation(node, kUrl1);
418 main_test_rfh()->SendBeforeUnloadACK(true); 418 main_test_rfh()->SendBeforeUnloadACK(true);
419 NavigationRequest* main_request = GetNavigationRequestForFrameTreeNode(node); 419 NavigationRequest* main_request = GetNavigationRequestForFrameTreeNode(node);
420 ASSERT_TRUE(main_request); 420 ASSERT_TRUE(main_request);
421 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 421 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
422 422
423 // It then redirects to another site. 423 // It then redirects to another site.
424 net::RedirectInfo redirect_info; 424 GetLoaderForNavigationRequest(main_request)->SimulateServerRedirect(kUrl2);
425 redirect_info.status_code = 302;
426 redirect_info.new_method = "GET";
427 redirect_info.new_url = kUrl2;
428 redirect_info.new_first_party_for_cookies = kUrl2;
429 scoped_refptr<ResourceResponse> response(new ResourceResponse);
430 GetLoaderForNavigationRequest(main_request)->CallOnRequestRedirected(
431 redirect_info, response);
432 425
433 // The redirect should have been followed. 426 // The redirect should have been followed.
434 EXPECT_EQ(1, GetLoaderForNavigationRequest(main_request)->redirect_count()); 427 EXPECT_EQ(1, GetLoaderForNavigationRequest(main_request)->redirect_count());
435 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 428 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
436 429
437 // Have the RenderFrameHost commit the navigation. 430 // Have the RenderFrameHost commit the navigation.
438 response = new ResourceResponse; 431 scoped_refptr<ResourceResponse> response(new ResourceResponse);
439 GetLoaderForNavigationRequest(main_request)->CallOnResponseStarted( 432 GetLoaderForNavigationRequest(main_request)->CallOnResponseStarted(
440 response, MakeEmptyStream()); 433 response, MakeEmptyStream());
441 TestRenderFrameHost* final_speculative_rfh = 434 TestRenderFrameHost* final_speculative_rfh =
442 GetSpeculativeRenderFrameHost(node); 435 GetSpeculativeRenderFrameHost(node);
443 EXPECT_TRUE(final_speculative_rfh); 436 EXPECT_TRUE(final_speculative_rfh);
444 EXPECT_TRUE(DidRenderFrameHostRequestCommit(final_speculative_rfh)); 437 EXPECT_TRUE(DidRenderFrameHostRequestCommit(final_speculative_rfh));
445 438
446 // Commit the navigation. 439 // Commit the navigation.
447 final_speculative_rfh->SendNavigate(0, kUrl2); 440 final_speculative_rfh->SendNavigate(0, kUrl2);
448 RenderFrameHostImpl* final_rfh = main_test_rfh(); 441 RenderFrameHostImpl* final_rfh = main_test_rfh();
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 GetLoaderForNavigationRequest(request1)->AsWeakPtr(); 542 GetLoaderForNavigationRequest(request1)->AsWeakPtr();
550 EXPECT_TRUE(loader1); 543 EXPECT_TRUE(loader1);
551 544
552 // Confirm a speculative RenderFrameHost was created. 545 // Confirm a speculative RenderFrameHost was created.
553 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 546 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node);
554 ASSERT_TRUE(speculative_rfh); 547 ASSERT_TRUE(speculative_rfh);
555 int32 site_instance_id_1 = speculative_rfh->GetSiteInstance()->GetId(); 548 int32 site_instance_id_1 = speculative_rfh->GetSiteInstance()->GetId();
556 549
557 // Now receive a renderer-initiated user-initiated request. It should replace 550 // Now receive a renderer-initiated user-initiated request. It should replace
558 // the current NavigationRequest. 551 // the current NavigationRequest.
559 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, true); 552 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, true);
560 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 553 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
561 ASSERT_TRUE(request2); 554 ASSERT_TRUE(request2);
562 EXPECT_EQ(kUrl2, request2->common_params().url); 555 EXPECT_EQ(kUrl2, request2->common_params().url);
563 EXPECT_FALSE(request2->browser_initiated()); 556 EXPECT_FALSE(request2->browser_initiated());
564 EXPECT_TRUE(request2->begin_params().has_user_gesture); 557 EXPECT_TRUE(request2->begin_params().has_user_gesture);
565 558
566 // Confirm that the first loader got destroyed. 559 // Confirm that the first loader got destroyed.
567 EXPECT_FALSE(loader1); 560 EXPECT_FALSE(loader1);
568 561
569 // Confirm that a new speculative RenderFrameHost was created. 562 // Confirm that a new speculative RenderFrameHost was created.
(...skipping 28 matching lines...) Expand all
598 const GURL kUrl0("http://www.wikipedia.org/"); 591 const GURL kUrl0("http://www.wikipedia.org/");
599 const GURL kUrl1("http://www.chromium.org/"); 592 const GURL kUrl1("http://www.chromium.org/");
600 const GURL kUrl2("http://www.google.com/"); 593 const GURL kUrl2("http://www.google.com/");
601 594
602 // Initialization. 595 // Initialization.
603 contents()->NavigateAndCommit(kUrl0); 596 contents()->NavigateAndCommit(kUrl0);
604 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 597 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
605 598
606 // Start a renderer-initiated user-initiated navigation to the 1st URL. 599 // Start a renderer-initiated user-initiated navigation to the 1st URL.
607 process()->sink().ClearMessages(); 600 process()->sink().ClearMessages();
608 main_test_rfh()->SendBeginNavigationWithURL(kUrl1, true); 601 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, true);
609 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 602 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
610 ASSERT_TRUE(request1); 603 ASSERT_TRUE(request1);
611 EXPECT_EQ(kUrl1, request1->common_params().url); 604 EXPECT_EQ(kUrl1, request1->common_params().url);
612 EXPECT_FALSE(request1->browser_initiated()); 605 EXPECT_FALSE(request1->browser_initiated());
613 EXPECT_TRUE(request1->begin_params().has_user_gesture); 606 EXPECT_TRUE(request1->begin_params().has_user_gesture);
614 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node)); 607 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node));
615 608
616 // Now receive a renderer-initiated non-user-initiated request. Nothing should 609 // Now receive a renderer-initiated non-user-initiated request. Nothing should
617 // change. 610 // change.
618 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, false); 611 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
619 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 612 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
620 ASSERT_TRUE(request2); 613 ASSERT_TRUE(request2);
621 EXPECT_EQ(request1, request2); 614 EXPECT_EQ(request1, request2);
622 EXPECT_EQ(kUrl1, request2->common_params().url); 615 EXPECT_EQ(kUrl1, request2->common_params().url);
623 EXPECT_FALSE(request2->browser_initiated()); 616 EXPECT_FALSE(request2->browser_initiated());
624 EXPECT_TRUE(request2->begin_params().has_user_gesture); 617 EXPECT_TRUE(request2->begin_params().has_user_gesture);
625 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 618 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node);
626 ASSERT_TRUE(speculative_rfh); 619 ASSERT_TRUE(speculative_rfh);
627 620
628 // Have the RenderFrameHost commit the navigation. 621 // Have the RenderFrameHost commit the navigation.
(...skipping 24 matching lines...) Expand all
653 process()->sink().ClearMessages(); 646 process()->sink().ClearMessages();
654 RequestNavigation(node, kUrl1); 647 RequestNavigation(node, kUrl1);
655 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 648 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
656 ASSERT_TRUE(request1); 649 ASSERT_TRUE(request1);
657 EXPECT_EQ(kUrl1, request1->common_params().url); 650 EXPECT_EQ(kUrl1, request1->common_params().url);
658 EXPECT_TRUE(request1->browser_initiated()); 651 EXPECT_TRUE(request1->browser_initiated());
659 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 652 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
660 653
661 // Now receive a renderer-initiated non-user-initiated request. Nothing should 654 // Now receive a renderer-initiated non-user-initiated request. Nothing should
662 // change. 655 // change.
663 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, false); 656 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
664 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 657 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
665 ASSERT_TRUE(request2); 658 ASSERT_TRUE(request2);
666 EXPECT_EQ(request1, request2); 659 EXPECT_EQ(request1, request2);
667 EXPECT_EQ(kUrl1, request2->common_params().url); 660 EXPECT_EQ(kUrl1, request2->common_params().url);
668 EXPECT_TRUE(request2->browser_initiated()); 661 EXPECT_TRUE(request2->browser_initiated());
669 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 662 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
670 663
671 // Now receive the beforeUnload ACK from the still ongoing navigation. 664 // Now receive the beforeUnload ACK from the still ongoing navigation.
672 main_test_rfh()->SendBeforeUnloadACK(true); 665 main_test_rfh()->SendBeforeUnloadACK(true);
673 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 666 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node);
(...skipping 18 matching lines...) Expand all
692 const GURL kUrl0("http://www.wikipedia.org/"); 685 const GURL kUrl0("http://www.wikipedia.org/");
693 const GURL kUrl1("http://www.chromium.org/"); 686 const GURL kUrl1("http://www.chromium.org/");
694 const GURL kUrl2("http://www.google.com/"); 687 const GURL kUrl2("http://www.google.com/");
695 688
696 // Initialization. 689 // Initialization.
697 contents()->NavigateAndCommit(kUrl0); 690 contents()->NavigateAndCommit(kUrl0);
698 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 691 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
699 692
700 // Start a renderer-initiated non-user-initiated navigation to the 1st URL. 693 // Start a renderer-initiated non-user-initiated navigation to the 1st URL.
701 process()->sink().ClearMessages(); 694 process()->sink().ClearMessages();
702 main_test_rfh()->SendBeginNavigationWithURL(kUrl1, false); 695 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, false);
703 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 696 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
704 ASSERT_TRUE(request1); 697 ASSERT_TRUE(request1);
705 EXPECT_EQ(kUrl1, request1->common_params().url); 698 EXPECT_EQ(kUrl1, request1->common_params().url);
706 EXPECT_FALSE(request1->browser_initiated()); 699 EXPECT_FALSE(request1->browser_initiated());
707 EXPECT_FALSE(request1->begin_params().has_user_gesture); 700 EXPECT_FALSE(request1->begin_params().has_user_gesture);
708 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node)); 701 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node));
709 base::WeakPtr<TestNavigationURLLoader> loader1 = 702 base::WeakPtr<TestNavigationURLLoader> loader1 =
710 GetLoaderForNavigationRequest(request1)->AsWeakPtr(); 703 GetLoaderForNavigationRequest(request1)->AsWeakPtr();
711 EXPECT_TRUE(loader1); 704 EXPECT_TRUE(loader1);
712 705
713 // Now receive a 2nd similar request that should replace the current one. 706 // Now receive a 2nd similar request that should replace the current one.
714 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, false); 707 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
715 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 708 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
716 EXPECT_EQ(kUrl2, request2->common_params().url); 709 EXPECT_EQ(kUrl2, request2->common_params().url);
717 EXPECT_FALSE(request2->browser_initiated()); 710 EXPECT_FALSE(request2->browser_initiated());
718 EXPECT_FALSE(request2->begin_params().has_user_gesture); 711 EXPECT_FALSE(request2->begin_params().has_user_gesture);
719 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 712 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node);
720 ASSERT_TRUE(speculative_rfh); 713 ASSERT_TRUE(speculative_rfh);
721 714
722 // Confirm that the first loader got destroyed. 715 // Confirm that the first loader got destroyed.
723 EXPECT_FALSE(loader1); 716 EXPECT_FALSE(loader1);
724 717
(...skipping 18 matching lines...) Expand all
743 736
744 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 737 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
745 RequestNavigationWithParameters(node, kUrl, Referrer(), 738 RequestNavigationWithParameters(node, kUrl, Referrer(),
746 ui::PAGE_TRANSITION_LINK, 739 ui::PAGE_TRANSITION_LINK,
747 NavigationController::RELOAD); 740 NavigationController::RELOAD);
748 // A NavigationRequest should have been generated. 741 // A NavigationRequest should have been generated.
749 NavigationRequest* main_request = GetNavigationRequestForFrameTreeNode(node); 742 NavigationRequest* main_request = GetNavigationRequestForFrameTreeNode(node);
750 ASSERT_TRUE(main_request != NULL); 743 ASSERT_TRUE(main_request != NULL);
751 EXPECT_EQ(FrameMsg_Navigate_Type::RELOAD, 744 EXPECT_EQ(FrameMsg_Navigate_Type::RELOAD,
752 main_request->common_params().navigation_type); 745 main_request->common_params().navigation_type);
753 main_test_rfh()->PrepareForCommit(kUrl); 746 main_test_rfh()->PrepareForCommit();
754 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 747 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
755 748
756 main_test_rfh()->SendNavigate(0, kUrl); 749 main_test_rfh()->SendNavigate(0, kUrl);
757 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 750 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
758 751
759 // Now do a shift+reload. 752 // Now do a shift+reload.
760 RequestNavigationWithParameters(node, kUrl, Referrer(), 753 RequestNavigationWithParameters(node, kUrl, Referrer(),
761 ui::PAGE_TRANSITION_LINK, 754 ui::PAGE_TRANSITION_LINK,
762 NavigationController::RELOAD_IGNORING_CACHE); 755 NavigationController::RELOAD_IGNORING_CACHE);
763 // A NavigationRequest should have been generated. 756 // A NavigationRequest should have been generated.
764 main_request = GetNavigationRequestForFrameTreeNode(node); 757 main_request = GetNavigationRequestForFrameTreeNode(node);
765 ASSERT_TRUE(main_request != NULL); 758 ASSERT_TRUE(main_request != NULL);
766 EXPECT_EQ(FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE, 759 EXPECT_EQ(FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE,
767 main_request->common_params().navigation_type); 760 main_request->common_params().navigation_type);
768 main_test_rfh()->PrepareForCommit(kUrl); 761 main_test_rfh()->PrepareForCommit();
769 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 762 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
770 } 763 }
771 764
772 // PlzNavigate: Confirm that a speculative RenderFrameHost is used when 765 // PlzNavigate: Confirm that a speculative RenderFrameHost is used when
773 // navigating from one site to another. 766 // navigating from one site to another.
774 TEST_F(NavigatorTestWithBrowserSideNavigation, 767 TEST_F(NavigatorTestWithBrowserSideNavigation,
775 SpeculativeRendererWorksBaseCase) { 768 SpeculativeRendererWorksBaseCase) {
776 // Navigate to an initial site. 769 // Navigate to an initial site.
777 const GURL kUrlInit("http://wikipedia.org/"); 770 const GURL kUrlInit("http://wikipedia.org/");
778 contents()->NavigateAndCommit(kUrlInit); 771 contents()->NavigateAndCommit(kUrlInit);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId()); 829 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId());
837 ASSERT_TRUE(speculative_rfh); 830 ASSERT_TRUE(speculative_rfh);
838 EXPECT_NE(speculative_rfh, main_test_rfh()); 831 EXPECT_NE(speculative_rfh, main_test_rfh());
839 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl), 832 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl),
840 speculative_rfh->GetSiteInstance()->GetSiteURL()); 833 speculative_rfh->GetSiteInstance()->GetSiteURL());
841 834
842 // It then redirects to yet another site. 835 // It then redirects to yet another site.
843 NavigationRequest* main_request = GetNavigationRequestForFrameTreeNode(node); 836 NavigationRequest* main_request = GetNavigationRequestForFrameTreeNode(node);
844 ASSERT_TRUE(main_request); 837 ASSERT_TRUE(main_request);
845 const GURL kUrlRedirect("https://www.google.com/"); 838 const GURL kUrlRedirect("https://www.google.com/");
846 net::RedirectInfo redirect_info;
847 redirect_info.status_code = 302;
848 redirect_info.new_method = "GET";
849 redirect_info.new_url = kUrlRedirect;
850 redirect_info.new_first_party_for_cookies = kUrlRedirect;
851 scoped_refptr<ResourceResponse> response(new ResourceResponse);
852 GetLoaderForNavigationRequest(main_request) 839 GetLoaderForNavigationRequest(main_request)
853 ->CallOnRequestRedirected(redirect_info, response); 840 ->SimulateServerRedirect(kUrlRedirect);
854 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId()); 841 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId());
855 speculative_rfh = GetSpeculativeRenderFrameHost(node); 842 speculative_rfh = GetSpeculativeRenderFrameHost(node);
856 ASSERT_TRUE(speculative_rfh); 843 ASSERT_TRUE(speculative_rfh);
857 844
858 // For now, ensure that the speculative RenderFrameHost does not change after 845 // For now, ensure that the speculative RenderFrameHost does not change after
859 // the redirect. 846 // the redirect.
860 // TODO(carlosk): once the speculative RenderFrameHost updates with redirects 847 // TODO(carlosk): once the speculative RenderFrameHost updates with redirects
861 // this next check will be changed to verify that it actually happens. 848 // this next check will be changed to verify that it actually happens.
862 EXPECT_EQ(site_instance_id, speculative_rfh->GetSiteInstance()->GetId()); 849 EXPECT_EQ(site_instance_id, speculative_rfh->GetSiteInstance()->GetId());
863 850
864 // Commit the navigation with Navigator by simulating the call to 851 // Commit the navigation with Navigator by simulating the call to
865 // OnResponseStarted. 852 // OnResponseStarted.
866 response = new ResourceResponse; 853 scoped_refptr<ResourceResponse> response(new ResourceResponse);
867 GetLoaderForNavigationRequest(main_request) 854 GetLoaderForNavigationRequest(main_request)
868 ->CallOnResponseStarted(response, MakeEmptyStream()); 855 ->CallOnResponseStarted(response, MakeEmptyStream());
869 speculative_rfh = GetSpeculativeRenderFrameHost(node); 856 speculative_rfh = GetSpeculativeRenderFrameHost(node);
870 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 857 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh));
871 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId()); 858 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId());
872 859
873 // Once commit happens the speculative RenderFrameHost is updated to match the 860 // Once commit happens the speculative RenderFrameHost is updated to match the
874 // known final SiteInstance. 861 // known final SiteInstance.
875 ASSERT_TRUE(speculative_rfh); 862 ASSERT_TRUE(speculative_rfh);
876 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrlRedirect), 863 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrlRedirect),
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
968 ASSERT_TRUE(speculative_rfh); 955 ASSERT_TRUE(speculative_rfh);
969 speculative_rfh->SendNavigate(0, kUrl2); 956 speculative_rfh->SendNavigate(0, kUrl2);
970 EXPECT_EQ(main_test_rfh(), speculative_rfh); 957 EXPECT_EQ(main_test_rfh(), speculative_rfh);
971 958
972 // Go back to the initial site. 959 // Go back to the initial site.
973 contents()->NavigateAndCommit(kUrl1); 960 contents()->NavigateAndCommit(kUrl1);
974 961
975 // Do a renderer-initiated navigation to a data url. The request should not be 962 // Do a renderer-initiated navigation to a data url. The request should not be
976 // sent to the IO thread, nor committed. 963 // sent to the IO thread, nor committed.
977 TestRenderFrameHost* main_rfh = main_test_rfh(); 964 TestRenderFrameHost* main_rfh = main_test_rfh();
978 main_rfh->SendBeginNavigationWithURL(kUrl2, true); 965 main_rfh->SendRendererInitiatedNavigationRequest(kUrl2, true);
979 navigation_request = GetNavigationRequestForFrameTreeNode(node); 966 navigation_request = GetNavigationRequestForFrameTreeNode(node);
980 ASSERT_TRUE(navigation_request); 967 ASSERT_TRUE(navigation_request);
981 EXPECT_EQ(NavigationRequest::RESPONSE_STARTED, 968 EXPECT_EQ(NavigationRequest::RESPONSE_STARTED,
982 navigation_request->state()); 969 navigation_request->state());
983 EXPECT_FALSE(navigation_request->loader_for_testing()); 970 EXPECT_FALSE(navigation_request->loader_for_testing());
984 speculative_rfh = GetSpeculativeRenderFrameHost(node); 971 speculative_rfh = GetSpeculativeRenderFrameHost(node);
985 ASSERT_TRUE(speculative_rfh); 972 ASSERT_TRUE(speculative_rfh);
986 speculative_rfh->SendNavigate(0, kUrl2); 973 speculative_rfh->SendNavigate(0, kUrl2);
987 EXPECT_EQ(main_test_rfh(), speculative_rfh); 974 EXPECT_EQ(main_test_rfh(), speculative_rfh);
988 } 975 }
989 976
990 } // namespace content 977 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698