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

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: New test, moved out change and other minor changes. 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 cross-site navigation.
clamy 2015/03/06 13:43:09 I think you cannot call it a cross-site navigation
carlosk 2015/03/06 15:44:15 Done.
198 TEST_F(NavigatorTestWithBrowserSideNavigation,
199 SimpleRendererInitiatedCrossSiteNavigation) {
200 const GURL kUrl1("http://www.chromium.org/");
201 const GURL kUrl2("http://www.google.com");
202
203 contents()->NavigateAndCommit(kUrl1);
204 EXPECT_TRUE(main_test_rfh()->IsRenderFrameLive());
205
206 // Start a renderer-initiated non-user-initiated navigation.
207 process()->sink().ClearMessages();
208 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
209 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
210 NavigationRequest* request = GetNavigationRequestForFrameTreeNode(node);
211 ASSERT_TRUE(request);
212
213 // The navigation is immediately started as there's no need to wait for
214 // beforeUnload to be executed.
215 EXPECT_EQ(NavigationRequest::STARTED, request->state());
216 EXPECT_FALSE(request->begin_params().has_user_gesture);
217 EXPECT_EQ(kUrl2, request->common_params().url);
218 EXPECT_FALSE(request->browser_initiated());
219 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
220
221 // Have the current RenderFrameHost commit the navigation.
222 scoped_refptr<ResourceResponse> response(new ResourceResponse);
223 GetLoaderForNavigationRequest(request)
224 ->CallOnResponseStarted(response, MakeEmptyStream());
225 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
226 EXPECT_EQ(NavigationRequest::RESPONSE_STARTED, request->state());
227
228 // Commit the navigation.
229 main_test_rfh()->SendNavigate(0, kUrl2);
230 EXPECT_EQ(RenderFrameHostImpl::STATE_DEFAULT, main_test_rfh()->rfh_state());
231 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL());
232 EXPECT_FALSE(GetNavigationRequestForFrameTreeNode(node));
233 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
234 EXPECT_FALSE(node->render_manager()->pending_frame_host());
235 // As the RenderFrameHost didn't change, the SiteInstance is still the same.
clamy 2015/03/06 13:43:09 Technically this is more the reverse: the SiteInst
carlosk 2015/03/06 15:44:15 Acknowledged; I updated the comment here and the s
236 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl1),
237 main_test_rfh()->GetSiteInstance()->GetSiteURL());
238 }
239
197 // PlzNavigate: Test that a beforeUnload denial cancels the navigation. 240 // PlzNavigate: Test that a beforeUnload denial cancels the navigation.
198 TEST_F(NavigatorTestWithBrowserSideNavigation, 241 TEST_F(NavigatorTestWithBrowserSideNavigation,
199 BeforeUnloadDenialCancelNavigation) { 242 BeforeUnloadDenialCancelNavigation) {
200 const GURL kUrl1("http://www.google.com/"); 243 const GURL kUrl1("http://www.google.com/");
201 const GURL kUrl2("http://www.chromium.org/"); 244 const GURL kUrl2("http://www.chromium.org/");
202 245
203 contents()->NavigateAndCommit(kUrl1); 246 contents()->NavigateAndCommit(kUrl1);
204 247
205 // Start a new navigation. 248 // Start a new navigation.
206 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 249 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 RequestNavigation(node, kUrl1); 578 RequestNavigation(node, kUrl1);
536 main_test_rfh()->SendBeforeUnloadACK(true); 579 main_test_rfh()->SendBeforeUnloadACK(true);
537 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 580 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
538 ASSERT_TRUE(request1); 581 ASSERT_TRUE(request1);
539 EXPECT_EQ(kUrl1, request1->common_params().url); 582 EXPECT_EQ(kUrl1, request1->common_params().url);
540 EXPECT_TRUE(request1->browser_initiated()); 583 EXPECT_TRUE(request1->browser_initiated());
541 base::WeakPtr<TestNavigationURLLoader> loader1 = 584 base::WeakPtr<TestNavigationURLLoader> loader1 =
542 GetLoaderForNavigationRequest(request1)->AsWeakPtr(); 585 GetLoaderForNavigationRequest(request1)->AsWeakPtr();
543 EXPECT_TRUE(loader1); 586 EXPECT_TRUE(loader1);
544 587
545 // Confirm a speculative RenderFrameHost was created. 588 // Confirm that a speculative RenderFrameHost was created.
546 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 589 ASSERT_TRUE(GetSpeculativeRenderFrameHost(node));
547 ASSERT_TRUE(speculative_rfh);
548 int32 site_instance_id_1 = speculative_rfh->GetSiteInstance()->GetId();
549 590
550 // Now receive a renderer-initiated user-initiated request. It should replace 591 // Now receive a renderer-initiated user-initiated request. It should replace
551 // the current NavigationRequest. 592 // the current NavigationRequest.
552 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, true); 593 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, true);
553 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 594 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
554 ASSERT_TRUE(request2); 595 ASSERT_TRUE(request2);
555 EXPECT_EQ(kUrl2, request2->common_params().url); 596 EXPECT_EQ(kUrl2, request2->common_params().url);
556 EXPECT_FALSE(request2->browser_initiated()); 597 EXPECT_FALSE(request2->browser_initiated());
557 EXPECT_TRUE(request2->begin_params().has_user_gesture); 598 EXPECT_TRUE(request2->begin_params().has_user_gesture);
558 599
559 // Confirm that the first loader got destroyed. 600 // Confirm that the first loader got destroyed.
560 EXPECT_FALSE(loader1); 601 EXPECT_FALSE(loader1);
561 602
562 // Confirm that a new speculative RenderFrameHost was created. 603 // Confirm that the speculative RenderFrameHost was destroyed.
563 speculative_rfh = GetSpeculativeRenderFrameHost(node); 604 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 605
568 // Have the RenderFrameHost commit the navigation. 606 // Have the RenderFrameHost commit the navigation.
569 scoped_refptr<ResourceResponse> response(new ResourceResponse); 607 scoped_refptr<ResourceResponse> response(new ResourceResponse);
570 GetLoaderForNavigationRequest(request2) 608 GetLoaderForNavigationRequest(request2)
571 ->CallOnResponseStarted(response, MakeEmptyStream()); 609 ->CallOnResponseStarted(response, MakeEmptyStream());
572 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 610 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
573 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
574 611
575 // Commit the navigation. 612 // Commit the navigation.
576 speculative_rfh->SendNavigate(0, kUrl2); 613 main_test_rfh()->SendNavigate(0, kUrl2);
577 614
578 // Confirm that the commit corresponds to the new request. 615 // Confirm that the commit corresponds to the new request.
579 ASSERT_TRUE(main_test_rfh()); 616 ASSERT_TRUE(main_test_rfh());
580 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL()); 617 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());
584 } 618 }
585 619
586 // PlzNavigate: Test that a renderer-initiated user-initiated navigation is NOT 620 // 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 621 // canceled if a renderer-initiated non-user-initiated request is issued in the
588 // meantime. 622 // meantime.
589 TEST_F(NavigatorTestWithBrowserSideNavigation, 623 TEST_F(NavigatorTestWithBrowserSideNavigation,
590 RendererNonUserInitiatedNavigationDoesntCancelRendererUserInitiated) { 624 RendererNonUserInitiatedNavigationDoesntCancelRendererUserInitiated) {
591 const GURL kUrl0("http://www.wikipedia.org/"); 625 const GURL kUrl0("http://www.wikipedia.org/");
592 const GURL kUrl1("http://www.chromium.org/"); 626 const GURL kUrl1("http://www.chromium.org/");
593 const GURL kUrl2("http://www.google.com/"); 627 const GURL kUrl2("http://www.google.com/");
594 628
595 // Initialization. 629 // Initialization.
596 contents()->NavigateAndCommit(kUrl0); 630 contents()->NavigateAndCommit(kUrl0);
597 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 631 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
598 632
599 // Start a renderer-initiated user-initiated navigation to the 1st URL. 633 // Start a renderer-initiated user-initiated navigation to the 1st URL.
600 process()->sink().ClearMessages(); 634 process()->sink().ClearMessages();
601 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, true); 635 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, true);
602 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 636 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
603 ASSERT_TRUE(request1); 637 ASSERT_TRUE(request1);
604 EXPECT_EQ(kUrl1, request1->common_params().url); 638 EXPECT_EQ(kUrl1, request1->common_params().url);
605 EXPECT_FALSE(request1->browser_initiated()); 639 EXPECT_FALSE(request1->browser_initiated());
606 EXPECT_TRUE(request1->begin_params().has_user_gesture); 640 EXPECT_TRUE(request1->begin_params().has_user_gesture);
607 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node)); 641 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
608 642
609 // Now receive a renderer-initiated non-user-initiated request. Nothing should 643 // Now receive a renderer-initiated non-user-initiated request. Nothing should
610 // change. 644 // change.
611 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false); 645 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
612 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 646 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
613 ASSERT_TRUE(request2); 647 ASSERT_TRUE(request2);
614 EXPECT_EQ(request1, request2); 648 EXPECT_EQ(request1, request2);
615 EXPECT_EQ(kUrl1, request2->common_params().url); 649 EXPECT_EQ(kUrl1, request2->common_params().url);
616 EXPECT_FALSE(request2->browser_initiated()); 650 EXPECT_FALSE(request2->browser_initiated());
617 EXPECT_TRUE(request2->begin_params().has_user_gesture); 651 EXPECT_TRUE(request2->begin_params().has_user_gesture);
618 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 652 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
619 ASSERT_TRUE(speculative_rfh);
620 653
621 // Have the RenderFrameHost commit the navigation. 654 // Have the RenderFrameHost commit the navigation.
622 scoped_refptr<ResourceResponse> response(new ResourceResponse); 655 scoped_refptr<ResourceResponse> response(new ResourceResponse);
623 GetLoaderForNavigationRequest(request2) 656 GetLoaderForNavigationRequest(request2)
624 ->CallOnResponseStarted(response, MakeEmptyStream()); 657 ->CallOnResponseStarted(response, MakeEmptyStream());
625 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 658 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
626 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
627 659
628 // Commit the navigation. 660 // Commit the navigation.
629 speculative_rfh->SendNavigate(0, kUrl1); 661 main_test_rfh()->SendNavigate(0, kUrl1);
630 EXPECT_EQ(kUrl1, contents()->GetLastCommittedURL()); 662 EXPECT_EQ(kUrl1, contents()->GetLastCommittedURL());
631 } 663 }
632 664
633 // PlzNavigate: Test that a browser-initiated navigation is NOT canceled if a 665 // PlzNavigate: Test that a browser-initiated navigation is NOT canceled if a
634 // renderer-initiated non-user-initiated request is issued in the meantime. 666 // renderer-initiated non-user-initiated request is issued in the meantime.
635 TEST_F(NavigatorTestWithBrowserSideNavigation, 667 TEST_F(NavigatorTestWithBrowserSideNavigation,
636 RendererNonUserInitiatedNavigationDoesntCancelBrowserInitiated) { 668 RendererNonUserInitiatedNavigationDoesntCancelBrowserInitiated) {
637 const GURL kUrl0("http://www.wikipedia.org/"); 669 const GURL kUrl0("http://www.wikipedia.org/");
638 const GURL kUrl1("http://www.chromium.org/"); 670 const GURL kUrl1("http://www.chromium.org/");
639 const GURL kUrl2("http://www.google.com/"); 671 const GURL kUrl2("http://www.google.com/");
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 723 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
692 724
693 // Start a renderer-initiated non-user-initiated navigation to the 1st URL. 725 // Start a renderer-initiated non-user-initiated navigation to the 1st URL.
694 process()->sink().ClearMessages(); 726 process()->sink().ClearMessages();
695 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, false); 727 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, false);
696 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node); 728 NavigationRequest* request1 = GetNavigationRequestForFrameTreeNode(node);
697 ASSERT_TRUE(request1); 729 ASSERT_TRUE(request1);
698 EXPECT_EQ(kUrl1, request1->common_params().url); 730 EXPECT_EQ(kUrl1, request1->common_params().url);
699 EXPECT_FALSE(request1->browser_initiated()); 731 EXPECT_FALSE(request1->browser_initiated());
700 EXPECT_FALSE(request1->begin_params().has_user_gesture); 732 EXPECT_FALSE(request1->begin_params().has_user_gesture);
701 EXPECT_TRUE(GetSpeculativeRenderFrameHost(node)); 733 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
702 base::WeakPtr<TestNavigationURLLoader> loader1 = 734 base::WeakPtr<TestNavigationURLLoader> loader1 =
703 GetLoaderForNavigationRequest(request1)->AsWeakPtr(); 735 GetLoaderForNavigationRequest(request1)->AsWeakPtr();
704 EXPECT_TRUE(loader1); 736 EXPECT_TRUE(loader1);
705 737
706 // Now receive a 2nd similar request that should replace the current one. 738 // Now receive a 2nd similar request that should replace the current one.
707 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false); 739 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
708 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node); 740 NavigationRequest* request2 = GetNavigationRequestForFrameTreeNode(node);
709 EXPECT_EQ(kUrl2, request2->common_params().url); 741 EXPECT_EQ(kUrl2, request2->common_params().url);
710 EXPECT_FALSE(request2->browser_initiated()); 742 EXPECT_FALSE(request2->browser_initiated());
711 EXPECT_FALSE(request2->begin_params().has_user_gesture); 743 EXPECT_FALSE(request2->begin_params().has_user_gesture);
712 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 744 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
713 ASSERT_TRUE(speculative_rfh);
714 745
715 // Confirm that the first loader got destroyed. 746 // Confirm that the first loader got destroyed.
716 EXPECT_FALSE(loader1); 747 EXPECT_FALSE(loader1);
717 748
718 // Have the RenderFrameHost commit the navigation. 749 // Have the RenderFrameHost commit the navigation.
719 scoped_refptr<ResourceResponse> response(new ResourceResponse); 750 scoped_refptr<ResourceResponse> response(new ResourceResponse);
720 GetLoaderForNavigationRequest(request2) 751 GetLoaderForNavigationRequest(request2)
721 ->CallOnResponseStarted(response, MakeEmptyStream()); 752 ->CallOnResponseStarted(response, MakeEmptyStream());
722 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 753 EXPECT_TRUE(DidRenderFrameHostRequestCommit(main_test_rfh()));
723 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
724 754
725 // Commit the navigation. 755 // Commit the navigation.
726 speculative_rfh->SendNavigate(0, kUrl2); 756 main_test_rfh()->SendNavigate(0, kUrl2);
727 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL()); 757 EXPECT_EQ(kUrl2, contents()->GetLastCommittedURL());
758 // As the RenderFrameHost didn't change, the SiteInstance is still the same.
759 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl0),
760 main_test_rfh()->GetSiteInstance()->GetSiteURL());
728 } 761 }
729 762
730 // PlzNavigate: Test that a reload navigation is properly signaled to the 763 // PlzNavigate: Test that a reload navigation is properly signaled to the
731 // RenderFrame when the navigation can commit. A speculative RenderFrameHost 764 // RenderFrame when the navigation can commit. A speculative RenderFrameHost
732 // should not be created at any step. 765 // should not be created at any step.
733 TEST_F(NavigatorTestWithBrowserSideNavigation, Reload) { 766 TEST_F(NavigatorTestWithBrowserSideNavigation, Reload) {
734 const GURL kUrl("http://www.google.com/"); 767 const GURL kUrl("http://www.google.com/");
735 contents()->NavigateAndCommit(kUrl); 768 contents()->NavigateAndCommit(kUrl);
736 769
737 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 770 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
961 994
962 // Do a renderer-initiated navigation to a data url. The request should not be 995 // Do a renderer-initiated navigation to a data url. The request should not be
963 // sent to the IO thread, nor committed. 996 // sent to the IO thread, nor committed.
964 TestRenderFrameHost* main_rfh = main_test_rfh(); 997 TestRenderFrameHost* main_rfh = main_test_rfh();
965 main_rfh->SendRendererInitiatedNavigationRequest(kUrl2, true); 998 main_rfh->SendRendererInitiatedNavigationRequest(kUrl2, true);
966 navigation_request = GetNavigationRequestForFrameTreeNode(node); 999 navigation_request = GetNavigationRequestForFrameTreeNode(node);
967 ASSERT_TRUE(navigation_request); 1000 ASSERT_TRUE(navigation_request);
968 EXPECT_EQ(NavigationRequest::RESPONSE_STARTED, 1001 EXPECT_EQ(NavigationRequest::RESPONSE_STARTED,
969 navigation_request->state()); 1002 navigation_request->state());
970 EXPECT_FALSE(navigation_request->loader_for_testing()); 1003 EXPECT_FALSE(navigation_request->loader_for_testing());
971 speculative_rfh = GetSpeculativeRenderFrameHost(node); 1004 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
972 ASSERT_TRUE(speculative_rfh);
973 speculative_rfh->SendNavigate(0, kUrl2);
974 EXPECT_EQ(main_test_rfh(), speculative_rfh);
975 } 1005 }
976 1006
977 } // namespace content 1007 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698