| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/format_macros.h" | 6 #include "base/format_macros.h" |
| 7 #include "base/memory/scoped_vector.h" | 7 #include "base/memory/scoped_vector.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 678 | 678 |
| 679 GURL pending_url("http://news.google.com/"); | 679 GURL pending_url("http://news.google.com/"); |
| 680 | 680 |
| 681 DummyPrerenderContents* pending_prerender_contents = | 681 DummyPrerenderContents* pending_prerender_contents = |
| 682 prerender_manager()->CreateNextPrerenderContents( | 682 prerender_manager()->CreateNextPrerenderContents( |
| 683 pending_url, | 683 pending_url, |
| 684 ORIGIN_GWS_PRERENDER, | 684 ORIGIN_GWS_PRERENDER, |
| 685 FINAL_STATUS_USED); | 685 FINAL_STATUS_USED); |
| 686 scoped_ptr<PrerenderHandle> pending_prerender_handle( | 686 scoped_ptr<PrerenderHandle> pending_prerender_handle( |
| 687 prerender_manager()->AddPrerenderFromLinkRelPrerender( | 687 prerender_manager()->AddPrerenderFromLinkRelPrerender( |
| 688 child_id, route_id, pending_url, | 688 child_id, route_id, pending_url, kDefaultRelTypes, |
| 689 Referrer(url, blink::WebReferrerPolicyDefault), kSize)); | 689 Referrer(url, blink::WebReferrerPolicyDefault), kSize)); |
| 690 CHECK(pending_prerender_handle.get()); | 690 CHECK(pending_prerender_handle.get()); |
| 691 EXPECT_FALSE(pending_prerender_handle->IsPrerendering()); | 691 EXPECT_FALSE(pending_prerender_handle->IsPrerendering()); |
| 692 | 692 |
| 693 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 693 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 694 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 694 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 695 | 695 |
| 696 EXPECT_TRUE(pending_prerender_handle->IsPrerendering()); | 696 EXPECT_TRUE(pending_prerender_handle->IsPrerendering()); |
| 697 ASSERT_EQ(pending_prerender_contents, | 697 ASSERT_EQ(pending_prerender_contents, |
| 698 prerender_manager()->FindAndUseEntry(pending_url)); | 698 prerender_manager()->FindAndUseEntry(pending_url)); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 715 // This pending URL has an unsupported scheme, and won't be able | 715 // This pending URL has an unsupported scheme, and won't be able |
| 716 // to start. | 716 // to start. |
| 717 GURL pending_url("ftp://news.google.com/"); | 717 GURL pending_url("ftp://news.google.com/"); |
| 718 | 718 |
| 719 prerender_manager()->CreateNextPrerenderContents( | 719 prerender_manager()->CreateNextPrerenderContents( |
| 720 pending_url, | 720 pending_url, |
| 721 ORIGIN_GWS_PRERENDER, | 721 ORIGIN_GWS_PRERENDER, |
| 722 FINAL_STATUS_UNSUPPORTED_SCHEME); | 722 FINAL_STATUS_UNSUPPORTED_SCHEME); |
| 723 scoped_ptr<PrerenderHandle> pending_prerender_handle( | 723 scoped_ptr<PrerenderHandle> pending_prerender_handle( |
| 724 prerender_manager()->AddPrerenderFromLinkRelPrerender( | 724 prerender_manager()->AddPrerenderFromLinkRelPrerender( |
| 725 child_id, route_id, pending_url, | 725 child_id, route_id, pending_url, kDefaultRelTypes, |
| 726 Referrer(url, blink::WebReferrerPolicyDefault), kSize)); | 726 Referrer(url, blink::WebReferrerPolicyDefault), kSize)); |
| 727 DCHECK(pending_prerender_handle.get()); | 727 DCHECK(pending_prerender_handle.get()); |
| 728 EXPECT_FALSE(pending_prerender_handle->IsPrerendering()); | 728 EXPECT_FALSE(pending_prerender_handle->IsPrerendering()); |
| 729 | 729 |
| 730 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 730 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 731 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 731 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 732 | 732 |
| 733 EXPECT_FALSE(pending_prerender_handle->IsPrerendering()); | 733 EXPECT_FALSE(pending_prerender_handle->IsPrerendering()); |
| 734 } | 734 } |
| 735 | 735 |
| 736 TEST_F(PrerenderTest, CancelPendingPrerenderTest) { | 736 TEST_F(PrerenderTest, CancelPendingPrerenderTest) { |
| 737 GURL url("http://www.google.com/"); | 737 GURL url("http://www.google.com/"); |
| 738 DummyPrerenderContents* prerender_contents = | 738 DummyPrerenderContents* prerender_contents = |
| 739 prerender_manager()->CreateNextPrerenderContents( | 739 prerender_manager()->CreateNextPrerenderContents( |
| 740 url, | 740 url, |
| 741 FINAL_STATUS_USED); | 741 FINAL_STATUS_USED); |
| 742 EXPECT_TRUE(AddSimplePrerender(url)); | 742 EXPECT_TRUE(AddSimplePrerender(url)); |
| 743 | 743 |
| 744 int child_id; | 744 int child_id; |
| 745 int route_id; | 745 int route_id; |
| 746 ASSERT_TRUE(prerender_contents->GetChildId(&child_id)); | 746 ASSERT_TRUE(prerender_contents->GetChildId(&child_id)); |
| 747 ASSERT_TRUE(prerender_contents->GetRouteId(&route_id)); | 747 ASSERT_TRUE(prerender_contents->GetRouteId(&route_id)); |
| 748 | 748 |
| 749 GURL pending_url("http://news.google.com/"); | 749 GURL pending_url("http://news.google.com/"); |
| 750 | 750 |
| 751 scoped_ptr<PrerenderHandle> pending_prerender_handle( | 751 scoped_ptr<PrerenderHandle> pending_prerender_handle( |
| 752 prerender_manager()->AddPrerenderFromLinkRelPrerender( | 752 prerender_manager()->AddPrerenderFromLinkRelPrerender( |
| 753 child_id, route_id, pending_url, | 753 child_id, route_id, pending_url, kDefaultRelTypes, |
| 754 Referrer(url, blink::WebReferrerPolicyDefault), kSize)); | 754 Referrer(url, blink::WebReferrerPolicyDefault), kSize)); |
| 755 CHECK(pending_prerender_handle.get()); | 755 CHECK(pending_prerender_handle.get()); |
| 756 EXPECT_FALSE(pending_prerender_handle->IsPrerendering()); | 756 EXPECT_FALSE(pending_prerender_handle->IsPrerendering()); |
| 757 | 757 |
| 758 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 758 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 759 | 759 |
| 760 pending_prerender_handle.reset(); | 760 pending_prerender_handle.reset(); |
| 761 | 761 |
| 762 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 762 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 763 } | 763 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 804 EXPECT_EQ(null, prerender_manager()->FindEntry(url)); | 804 EXPECT_EQ(null, prerender_manager()->FindEntry(url)); |
| 805 } | 805 } |
| 806 | 806 |
| 807 // Tests that prerendering does launch rel=next prerenders with the field trial. | 807 // Tests that prerendering does launch rel=next prerenders with the field trial. |
| 808 TEST_F(PrerenderTest, RelNextByFieldTrial) { | 808 TEST_F(PrerenderTest, RelNextByFieldTrial) { |
| 809 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("PrerenderRelNextTrial", | 809 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("PrerenderRelNextTrial", |
| 810 "Yes")); | 810 "Yes")); |
| 811 GURL url("http://www.google.com/"); | 811 GURL url("http://www.google.com/"); |
| 812 DummyPrerenderContents* prerender_contents = | 812 DummyPrerenderContents* prerender_contents = |
| 813 prerender_manager()->CreateNextPrerenderContents( | 813 prerender_manager()->CreateNextPrerenderContents( |
| 814 url, FINAL_STATUS_MANAGER_SHUTDOWN); | 814 url, ORIGIN_LINK_REL_NEXT, FINAL_STATUS_MANAGER_SHUTDOWN); |
| 815 | 815 |
| 816 prerender_link_manager()->OnAddPrerender( | 816 prerender_link_manager()->OnAddPrerender( |
| 817 kDefaultChildId, GetNextPrerenderID(), url, PrerenderRelTypeNext, | 817 kDefaultChildId, GetNextPrerenderID(), url, PrerenderRelTypeNext, |
| 818 Referrer(), kSize, kDefaultRenderViewRouteId); | 818 Referrer(), kSize, kDefaultRenderViewRouteId); |
| 819 EXPECT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 819 EXPECT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 820 } | 820 } |
| 821 | 821 |
| 822 // Tests that prerendering is cancelled when we launch a second prerender of | 822 // Tests that prerendering is cancelled when we launch a second prerender of |
| 823 // the same target within a short time interval. | 823 // the same target within a short time interval. |
| 824 TEST_F(PrerenderTest, RecentlyVisited) { | 824 TEST_F(PrerenderTest, RecentlyVisited) { |
| (...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1506 CHECK(prerender_handle.get()); | 1506 CHECK(prerender_handle.get()); |
| 1507 EXPECT_TRUE(prerender_handle->IsPrerendering()); | 1507 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
| 1508 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 1508 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 1509 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 1509 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
| 1510 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); | 1510 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); |
| 1511 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 1511 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 1512 EXPECT_FALSE(prerender_handle->IsPrerendering()); | 1512 EXPECT_FALSE(prerender_handle->IsPrerendering()); |
| 1513 } | 1513 } |
| 1514 | 1514 |
| 1515 } // namespace prerender | 1515 } // namespace prerender |
| OLD | NEW |