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

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: Created 5 years, 10 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 403 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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 main_test_rfh()->SendBeforeUnloadACK(true); 536 main_test_rfh()->SendBeforeUnloadACK(true);
544 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 537 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
545 ASSERT_TRUE(request1); 538 ASSERT_TRUE(request1);
546 EXPECT_EQ(kUrl1, request1->common_params().url); 539 EXPECT_EQ(kUrl1, request1->common_params().url);
547 EXPECT_TRUE(request1->browser_initiated()); 540 EXPECT_TRUE(request1->browser_initiated());
548 base::WeakPtr<TestNavigationURLLoader> loader1 = 541 base::WeakPtr<TestNavigationURLLoader> loader1 =
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 ASSERT_TRUE(GetSpeculativeRenderFrameHost(node));
554 ASSERT_TRUE(speculative_rfh);
555 int32 site_instance_id_1 = speculative_rfh->GetSiteInstance()->GetId();
556 547
557 // Now receive a renderer-initiated user-initiated request. It should replace 548 // Now receive a renderer-initiated user-initiated request. It should replace
558 // the current NavigationRequest. 549 // the current NavigationRequest.
559 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, true); 550 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, true);
560 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 551 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
561 ASSERT_TRUE(request2); 552 ASSERT_TRUE(request2);
562 EXPECT_EQ(kUrl2, request2->common_params().url); 553 EXPECT_EQ(kUrl2, request2->common_params().url);
563 EXPECT_FALSE(request2->browser_initiated()); 554 EXPECT_FALSE(request2->browser_initiated());
564 EXPECT_TRUE(request2->begin_params().has_user_gesture); 555 EXPECT_TRUE(request2->begin_params().has_user_gesture);
565 556
566 // Confirm that the first loader got destroyed. 557 // Confirm that the first loader got destroyed.
567 EXPECT_FALSE(loader1); 558 EXPECT_FALSE(loader1);
568 559
569 // Confirm that a new speculative RenderFrameHost was created. 560 // Confirm that a the speculative RenderFrameHost was destroyed.
570 speculative_rfh = GetSpeculativeRenderFrameHost(node); 561 // TODO(carlosk): Once OOPIF adds support for renderer-initiated cross-process
clamy 2015/02/23 10:52:34 I think the TODO is not needed here. The test will
carlosk 2015/03/04 19:42:40 Done.
571 ASSERT_TRUE(speculative_rfh); 562 // navigations, re-add existence and update checks for the speculative RFH.
572 int32 site_instance_id_2 = speculative_rfh->GetSiteInstance()->GetId(); 563 ASSERT_FALSE(GetSpeculativeRenderFrameHost(node));
clamy 2015/02/23 10:52:34 I would use an EXPECT instead of an ASSERT here.
carlosk 2015/03/04 19:42:40 Done here and in 2 other places below.
573 EXPECT_NE(site_instance_id_1, site_instance_id_2);
574 564
575 // Have the RenderFrameHost commit the navigation. 565 // Have the RenderFrameHost commit the navigation.
576 scoped_refptr<ResourceResponse> response(new ResourceResponse); 566 scoped_refptr<ResourceResponse> response(new ResourceResponse);
577 GetLoaderForNavigationRequest(request2) 567 GetLoaderForNavigationRequest(request2)
578 ->CallOnResponseStarted(response, MakeEmptyStream()); 568 ->CallOnResponseStarted(response, MakeEmptyStream());
579 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 569 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
580 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
581 570
582 // Commit the navigation. 571 // Commit the navigation.
583 speculative_rfh->SendNavigate(0, kUrl2); 572 main_test_rfh()->SendNavigate(0, kUrl2);
584 573
585 // Confirm that the commit corresponds to the new request. 574 // Confirm that the commit corresponds to the new request.
586 ASSERT_TRUE(main_test_rfh()); 575 ASSERT_TRUE(main_test_rfh());
587 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL()); 576 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL());
588
589 // Confirm that the committed RenderFrameHost is the latest speculative one.
590 EXPECT_EQ(site_instance_id_2, main_test_rfh()->GetSiteInstance()->GetId());
591 } 577 }
592 578
593 // PlzNavigate: Test that a renderer-initiated user-initiated navigation is NOT 579 // PlzNavigate: Test that a renderer-initiated user-initiated navigation is NOT
594 // canceled if a renderer-initiated non-user-initiated request is issued in the 580 // canceled if a renderer-initiated non-user-initiated request is issued in the
595 // meantime. 581 // meantime.
596 TEST_F(NavigatorTestWithBrowserSideNavigation, 582 TEST_F(NavigatorTestWithBrowserSideNavigation,
597 RendererNonUserInitiatedNavigationDoesntCancelRendererUserInitiated) { 583 RendererNonUserInitiatedNavigationDoesntCancelRendererUserInitiated) {
598 const GURL kUrl0("http://www.wikipedia.org/"); 584 const GURL kUrl0("http://www.wikipedia.org/");
599 const GURL kUrl1("http://www.chromium.org/"); 585 const GURL kUrl1("http://www.chromium.org/");
600 const GURL kUrl2("http://www.google.com/"); 586 const GURL kUrl2("http://www.google.com/");
601 587
602 // Initialization. 588 // Initialization.
603 contents()->NavigateAndCommit(kUrl0); 589 contents()->NavigateAndCommit(kUrl0);
604 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 590 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
605 591
606 // Start a renderer-initiated user-initiated navigation to the 1st URL. 592 // Start a renderer-initiated user-initiated navigation to the 1st URL.
607 process()->sink().ClearMessages(); 593 process()->sink().ClearMessages();
608 main_test_rfh()->SendBeginNavigationWithURL(kUrl1, true); 594 main_test_rfh()->SendBeginNavigationWithURL(kUrl1, true);
609 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 595 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
610 ASSERT_TRUE(request1); 596 ASSERT_TRUE(request1);
611 EXPECT_EQ(kUrl1, request1->common_params().url); 597 EXPECT_EQ(kUrl1, request1->common_params().url);
612 EXPECT_FALSE(request1->browser_initiated()); 598 EXPECT_FALSE(request1->browser_initiated());
613 EXPECT_TRUE(request1->begin_params().has_user_gesture); 599 EXPECT_TRUE(request1->begin_params().has_user_gesture);
614 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node)); 600 // TODO(carlosk): Once OOPIF adds support for renderer-initiated cross-process
601 // navigations, re-add existence and update checks for the speculative RFH.
clamy 2015/02/23 10:52:34 Same here, no need for the TODO here and below.
carlosk 2015/03/04 19:42:40 Done.
602 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
615 603
616 // Now receive a renderer-initiated non-user-initiated request. Nothing should 604 // Now receive a renderer-initiated non-user-initiated request. Nothing should
617 // change. 605 // change.
618 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, false); 606 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, false);
619 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 607 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
620 ASSERT_TRUE(request2); 608 ASSERT_TRUE(request2);
621 EXPECT_EQ(request1, request2); 609 EXPECT_EQ(request1, request2);
622 EXPECT_EQ(kUrl1, request2->common_params().url); 610 EXPECT_EQ(kUrl1, request2->common_params().url);
623 EXPECT_FALSE(request2->browser_initiated()); 611 EXPECT_FALSE(request2->browser_initiated());
624 EXPECT_TRUE(request2->begin_params().has_user_gesture); 612 EXPECT_TRUE(request2->begin_params().has_user_gesture);
625 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 613 ASSERT_FALSE(GetSpeculativeRenderFrameHost(node));
clamy 2015/02/23 10:52:34 I would use an EXPECT here and below.
carlosk 2015/03/04 19:42:40 Done.
626 ASSERT_TRUE(speculative_rfh);
627 614
628 // Have the RenderFrameHost commit the navigation. 615 // Have the RenderFrameHost commit the navigation.
629 scoped_refptr<ResourceResponse> response(new ResourceResponse); 616 scoped_refptr<ResourceResponse> response(new ResourceResponse);
630 GetLoaderForNavigationRequest(request2) 617 GetLoaderForNavigationRequest(request2)
631 ->CallOnResponseStarted(response, MakeEmptyStream()); 618 ->CallOnResponseStarted(response, MakeEmptyStream());
632 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 619 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
633 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
634 620
635 // Commit the navigation. 621 // Commit the navigation.
636 speculative_rfh->SendNavigate(0, kUrl1); 622 main_test_rfh()->SendNavigate(0, kUrl1);
637 EXPECT_EQ(kUrl1, contents()->GetLastCommittedURL()); 623 EXPECT_EQ(kUrl1, contents()->GetLastCommittedURL());
638 } 624 }
639 625
640 // PlzNavigate: Test that a browser-initiated navigation is NOT canceled if a 626 // PlzNavigate: Test that a browser-initiated navigation is NOT canceled if a
641 // renderer-initiated non-user-initiated request is issued in the meantime. 627 // renderer-initiated non-user-initiated request is issued in the meantime.
642 TEST_F(NavigatorTestWithBrowserSideNavigation, 628 TEST_F(NavigatorTestWithBrowserSideNavigation,
643 RendererNonUserInitiatedNavigationDoesntCancelBrowserInitiated) { 629 RendererNonUserInitiatedNavigationDoesntCancelBrowserInitiated) {
644 const GURL kUrl0("http://www.wikipedia.org/"); 630 const GURL kUrl0("http://www.wikipedia.org/");
645 const GURL kUrl1("http://www.chromium.org/"); 631 const GURL kUrl1("http://www.chromium.org/");
646 const GURL kUrl2("http://www.google.com/"); 632 const GURL kUrl2("http://www.google.com/");
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 684 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
699 685
700 // Start a renderer-initiated non-user-initiated navigation to the 1st URL. 686 // Start a renderer-initiated non-user-initiated navigation to the 1st URL.
701 process()->sink().ClearMessages(); 687 process()->sink().ClearMessages();
702 main_test_rfh()->SendBeginNavigationWithURL(kUrl1, false); 688 main_test_rfh()->SendBeginNavigationWithURL(kUrl1, false);
703 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 689 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
704 ASSERT_TRUE(request1); 690 ASSERT_TRUE(request1);
705 EXPECT_EQ(kUrl1, request1->common_params().url); 691 EXPECT_EQ(kUrl1, request1->common_params().url);
706 EXPECT_FALSE(request1->browser_initiated()); 692 EXPECT_FALSE(request1->browser_initiated());
707 EXPECT_FALSE(request1->begin_params().has_user_gesture); 693 EXPECT_FALSE(request1->begin_params().has_user_gesture);
708 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node)); 694 // TODO(carlosk): Once OOPIF adds support for renderer-initiated cross-process
695 // navigations, re-add existence and update checks for the speculative RFH.
696 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
709 base::WeakPtr<TestNavigationURLLoader> loader1 = 697 base::WeakPtr<TestNavigationURLLoader> loader1 =
710 GetLoaderForNavigationRequest(request1)->AsWeakPtr(); 698 GetLoaderForNavigationRequest(request1)->AsWeakPtr();
711 EXPECT_TRUE(loader1); 699 EXPECT_TRUE(loader1);
712 700
713 // Now receive a 2nd similar request that should replace the current one. 701 // Now receive a 2nd similar request that should replace the current one.
714 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, false); 702 main_test_rfh()->SendBeginNavigationWithURL(kUrl2, false);
715 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 703 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
716 EXPECT_EQ(kUrl2, request2->common_params().url); 704 EXPECT_EQ(kUrl2, request2->common_params().url);
717 EXPECT_FALSE(request2->browser_initiated()); 705 EXPECT_FALSE(request2->browser_initiated());
718 EXPECT_FALSE(request2->begin_params().has_user_gesture); 706 EXPECT_FALSE(request2->begin_params().has_user_gesture);
719 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 707 ASSERT_FALSE(GetSpeculativeRenderFrameHost(node));
720 ASSERT_TRUE(speculative_rfh);
721 708
722 // Confirm that the first loader got destroyed. 709 // Confirm that the first loader got destroyed.
723 EXPECT_FALSE(loader1); 710 EXPECT_FALSE(loader1);
724 711
725 // Have the RenderFrameHost commit the navigation. 712 // Have the RenderFrameHost commit the navigation.
726 scoped_refptr<ResourceResponse> response(new ResourceResponse); 713 scoped_refptr<ResourceResponse> response(new ResourceResponse);
727 GetLoaderForNavigationRequest(request2) 714 GetLoaderForNavigationRequest(request2)
728 ->CallOnResponseStarted(response, MakeEmptyStream()); 715 ->CallOnResponseStarted(response, MakeEmptyStream());
729 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 716 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
730 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
731 717
732 // Commit the navigation. 718 // Commit the navigation.
733 speculative_rfh->SendNavigate(0, kUrl2); 719 main_test_rfh()->SendNavigate(0, kUrl2);
734 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL()); 720 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL());
735 } 721 }
736 722
737 // PlzNavigate: Test that a reload navigation is properly signaled to the 723 // PlzNavigate: Test that a reload navigation is properly signaled to the
738 // RenderFrame when the navigation can commit. A speculative RenderFrameHost 724 // RenderFrame when the navigation can commit. A speculative RenderFrameHost
739 // should not be created at any step. 725 // should not be created at any step.
740 TEST_F(NavigatorTestWithBrowserSideNavigation, Reload) { 726 TEST_F(NavigatorTestWithBrowserSideNavigation, Reload) {
741 const GURL kUrl("http://www.google.com/"); 727 const GURL kUrl("http://www.google.com/");
742 contents()->NavigateAndCommit(kUrl); 728 contents()->NavigateAndCommit(kUrl);
743 729
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId()); 822 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId());
837 ASSERT_TRUE(speculative_rfh); 823 ASSERT_TRUE(speculative_rfh);
838 EXPECT_NE(speculative_rfh, main_test_rfh()); 824 EXPECT_NE(speculative_rfh, main_test_rfh());
839 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl), 825 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl),
840 speculative_rfh->GetSiteInstance()->GetSiteURL()); 826 speculative_rfh->GetSiteInstance()->GetSiteURL());
841 827
842 // It then redirects to yet another site. 828 // It then redirects to yet another site.
843 NavigationRequest* main_request = GetNavigationRequestForFrameTreeNode(node); 829 NavigationRequest* main_request = GetNavigationRequestForFrameTreeNode(node);
844 ASSERT_TRUE(main_request); 830 ASSERT_TRUE(main_request);
845 const GURL kUrlRedirect("https://www.google.com/"); 831 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) 832 GetLoaderForNavigationRequest(main_request)
853 ->CallOnRequestRedirected(redirect_info, response); 833 ->SimulateServerRedirect(kUrlRedirect);
854 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId()); 834 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId());
855 speculative_rfh = GetSpeculativeRenderFrameHost(node); 835 speculative_rfh = GetSpeculativeRenderFrameHost(node);
856 ASSERT_TRUE(speculative_rfh); 836 ASSERT_TRUE(speculative_rfh);
857 837
858 // For now, ensure that the speculative RenderFrameHost does not change after 838 // For now, ensure that the speculative RenderFrameHost does not change after
859 // the redirect. 839 // the redirect.
860 // TODO(carlosk): once the speculative RenderFrameHost updates with redirects 840 // TODO(carlosk): once the speculative RenderFrameHost updates with redirects
861 // this next check will be changed to verify that it actually happens. 841 // this next check will be changed to verify that it actually happens.
862 EXPECT_EQ(site_instance_id, speculative_rfh->GetSiteInstance()->GetId()); 842 EXPECT_EQ(site_instance_id, speculative_rfh->GetSiteInstance()->GetId());
863 843
864 // Commit the navigation with Navigator by simulating the call to 844 // Commit the navigation with Navigator by simulating the call to
865 // OnResponseStarted. 845 // OnResponseStarted.
866 response = new ResourceResponse; 846 scoped_refptr<ResourceResponse> response(new ResourceResponse);
867 GetLoaderForNavigationRequest(main_request) 847 GetLoaderForNavigationRequest(main_request)
868 ->CallOnResponseStarted(response, MakeEmptyStream()); 848 ->CallOnResponseStarted(response, MakeEmptyStream());
869 speculative_rfh = GetSpeculativeRenderFrameHost(node); 849 speculative_rfh = GetSpeculativeRenderFrameHost(node);
870 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 850 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh));
871 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId()); 851 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId());
872 852
873 // Once commit happens the speculative RenderFrameHost is updated to match the 853 // Once commit happens the speculative RenderFrameHost is updated to match the
874 // known final SiteInstance. 854 // known final SiteInstance.
875 ASSERT_TRUE(speculative_rfh); 855 ASSERT_TRUE(speculative_rfh);
876 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrlRedirect), 856 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrlRedirect),
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
935 EXPECT_TRUE(DidRenderFrameHostRequestCommit(rfh1)); 915 EXPECT_TRUE(DidRenderFrameHostRequestCommit(rfh1));
936 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh())); 916 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
937 917
938 rfh1->SendNavigate(1, kUrl1); 918 rfh1->SendNavigate(1, kUrl1);
939 EXPECT_EQ(rfh1, main_test_rfh()); 919 EXPECT_EQ(rfh1, main_test_rfh());
940 EXPECT_EQ(RenderFrameHostImpl::STATE_DEFAULT, rfh1->rfh_state()); 920 EXPECT_EQ(RenderFrameHostImpl::STATE_DEFAULT, rfh1->rfh_state());
941 EXPECT_FALSE(rfhm->IsOnSwappedOutList(rfh1)); 921 EXPECT_FALSE(rfhm->IsOnSwappedOutList(rfh1));
942 } 922 }
943 923
944 } // namespace content 924 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698