Commit c8c189a5 authored by Egor Pasko's avatar Egor Pasko Committed by Commit Bot

Disable prerender by default

While we are still compiling the report from the field trial, disable prerender
to be on the safer side in M61.

Bug: 678332, 735153, 520275
Change-Id: I30a2169533d30cbb85f53291223897caceddeb89
Reviewed-on: https://chromium-review.googlesource.com/584871
Commit-Queue: Egor Pasko <pasko@chromium.org>
Reviewed-by: default avatarDavid Roger <droger@chromium.org>
Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Reviewed-by: default avatarMarc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491691}
parent 8567a59d
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "chrome/browser/prerender/prerender_handle.h" #include "chrome/browser/prerender/prerender_handle.h"
#include "chrome/browser/prerender/prerender_manager.h" #include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/prerender/prerender_manager_factory.h" #include "chrome/browser/prerender/prerender_manager_factory.h"
#include "chrome/browser/prerender/prerender_test_utils.h"
#include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_switches.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h"
...@@ -242,6 +243,9 @@ TEST_F(ActivityLogTest, LogPrerender) { ...@@ -242,6 +243,9 @@ TEST_F(ActivityLogTest, LogPrerender) {
ASSERT_TRUE(GetDatabaseEnabled()); ASSERT_TRUE(GetDatabaseEnabled());
GURL url("http://www.google.com"); GURL url("http://www.google.com");
prerender::test_utils::RestorePrerenderMode restore_prerender_mode;
prerender::PrerenderManager::SetMode(
prerender::PrerenderManager::PRERENDER_MODE_ENABLED);
prerender::PrerenderManager* prerender_manager = prerender::PrerenderManager* prerender_manager =
prerender::PrerenderManagerFactory::GetForBrowserContext(profile()); prerender::PrerenderManagerFactory::GetForBrowserContext(profile());
......
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
#include "base/time/time.h" #include "base/time/time.h"
#include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/history/history_service_factory.h"
#include "chrome/browser/prerender/prerender_field_trial.h" #include "chrome/browser/prerender/prerender_field_trial.h"
#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/prerender/prerender_test_utils.h"
#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_switches.h"
#include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile.h"
#include "components/history/core/browser/history_service.h" #include "components/history/core/browser/history_service.h"
...@@ -348,6 +350,9 @@ TEST_F(AutocompleteActionPredictorTest, RecommendActionURL) { ...@@ -348,6 +350,9 @@ TEST_F(AutocompleteActionPredictorTest, RecommendActionURL) {
AutocompleteMatch match; AutocompleteMatch match;
match.type = AutocompleteMatchType::HISTORY_URL; match.type = AutocompleteMatchType::HISTORY_URL;
prerender::test_utils::RestorePrerenderMode restore_prerender_mode;
prerender::PrerenderManager::SetMode(
prerender::PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH);
for (size_t i = 0; i < arraysize(test_url_db); ++i) { for (size_t i = 0; i < arraysize(test_url_db); ++i) {
match.destination_url = GURL(test_url_db[i].url); match.destination_url = GURL(test_url_db[i].url);
...@@ -362,6 +367,9 @@ TEST_F(AutocompleteActionPredictorTest, RecommendActionSearch) { ...@@ -362,6 +367,9 @@ TEST_F(AutocompleteActionPredictorTest, RecommendActionSearch) {
AutocompleteMatch match; AutocompleteMatch match;
match.type = AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED; match.type = AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED;
prerender::test_utils::RestorePrerenderMode restore_prerender_mode;
prerender::PrerenderManager::SetMode(
prerender::PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH);
for (size_t i = 0; i < arraysize(test_url_db); ++i) { for (size_t i = 0; i < arraysize(test_url_db); ++i) {
match.destination_url = GURL(test_url_db[i].url); match.destination_url = GURL(test_url_db[i].url);
......
...@@ -599,6 +599,10 @@ class PrerenderBrowserTest : public test_utils::PrerenderInProcessBrowserTest { ...@@ -599,6 +599,10 @@ class PrerenderBrowserTest : public test_utils::PrerenderInProcessBrowserTest {
test_utils::PrerenderInProcessBrowserTest::SetUpOnMainThread(); test_utils::PrerenderInProcessBrowserTest::SetUpOnMainThread();
prerender::PrerenderManager::SetMode( prerender::PrerenderManager::SetMode(
prerender::PrerenderManager::PRERENDER_MODE_ENABLED); prerender::PrerenderManager::PRERENDER_MODE_ENABLED);
prerender::PrerenderManager::SetInstantMode(
prerender::PrerenderManager::PRERENDER_MODE_ENABLED);
prerender::PrerenderManager::SetOmniboxMode(
prerender::PrerenderManager::PRERENDER_MODE_ENABLED);
const testing::TestInfo* const test_info = const testing::TestInfo* const test_info =
testing::UnitTest::GetInstance()->current_test_info(); testing::UnitTest::GetInstance()->current_test_info();
// This one test fails with the host resolver redirecting all hosts. // This one test fails with the host resolver redirecting all hosts.
......
...@@ -71,7 +71,7 @@ const base::Feature kNoStatePrefetchFeature{"NoStatePrefetch", ...@@ -71,7 +71,7 @@ const base::Feature kNoStatePrefetchFeature{"NoStatePrefetch",
void ConfigurePrerender() { void ConfigurePrerender() {
PrerenderManager::PrerenderManagerMode overall_mode = PrerenderManager::PrerenderManagerMode overall_mode =
ParsePrerenderMode(kNoStatePrefetchFeatureModeParameterName, ParsePrerenderMode(kNoStatePrefetchFeatureModeParameterName,
PrerenderManager::PRERENDER_MODE_ENABLED); PrerenderManager::PRERENDER_MODE_DISABLED);
PrerenderManager::SetMode(overall_mode); PrerenderManager::SetMode(overall_mode);
PrerenderManager::SetInstantMode(ParsePrerenderMode( PrerenderManager::SetInstantMode(ParsePrerenderMode(
......
...@@ -166,11 +166,11 @@ int PrerenderManager::prerenders_per_session_count_ = 0; ...@@ -166,11 +166,11 @@ int PrerenderManager::prerenders_per_session_count_ = 0;
// static // static
PrerenderManager::PrerenderManagerMode PrerenderManager::mode_ = PrerenderManager::PrerenderManagerMode PrerenderManager::mode_ =
PRERENDER_MODE_ENABLED; PRERENDER_MODE_DISABLED;
PrerenderManager::PrerenderManagerMode PrerenderManager::instant_mode_ = PrerenderManager::PrerenderManagerMode PrerenderManager::instant_mode_ =
PRERENDER_MODE_ENABLED; PRERENDER_MODE_DISABLED;
PrerenderManager::PrerenderManagerMode PrerenderManager::omnibox_mode_ = PrerenderManager::PrerenderManagerMode PrerenderManager::omnibox_mode_ =
PRERENDER_MODE_ENABLED; PRERENDER_MODE_DISABLED;
struct PrerenderManager::NavigationRecord { struct PrerenderManager::NavigationRecord {
NavigationRecord(const GURL& url, base::TimeTicks time, Origin origin) NavigationRecord(const GURL& url, base::TimeTicks time, Origin origin)
......
...@@ -462,22 +462,16 @@ class PrerenderTest : public testing::Test { ...@@ -462,22 +462,16 @@ class PrerenderTest : public testing::Test {
TEST_F(PrerenderTest, PrerenderRespectsDisableFlag) { TEST_F(PrerenderTest, PrerenderRespectsDisableFlag) {
test_utils::RestorePrerenderMode restore_prerender_mode; test_utils::RestorePrerenderMode restore_prerender_mode;
ASSERT_TRUE(PrerenderManager::IsAnyPrerenderingPossible()); base::test::ScopedFeatureList scoped_feature_list;
ASSERT_EQ(PrerenderManager::PRERENDER_MODE_ENABLED, scoped_feature_list.InitAndDisableFeature(kNoStatePrefetchFeature);
prerender::ConfigurePrerender();
EXPECT_FALSE(PrerenderManager::IsAnyPrerenderingPossible());
EXPECT_EQ(PrerenderManager::PRERENDER_MODE_DISABLED,
PrerenderManager::GetMode(ORIGIN_NONE)); PrerenderManager::GetMode(ORIGIN_NONE));
EXPECT_EQ(PrerenderManager::PRERENDER_MODE_DISABLED,
{ PrerenderManager::GetMode(ORIGIN_OMNIBOX));
base::test::ScopedFeatureList scoped_feature_list; EXPECT_EQ(PrerenderManager::PRERENDER_MODE_DISABLED,
scoped_feature_list.InitAndDisableFeature(kNoStatePrefetchFeature); PrerenderManager::GetMode(ORIGIN_INSTANT));
prerender::ConfigurePrerender();
EXPECT_FALSE(PrerenderManager::IsAnyPrerenderingPossible());
EXPECT_EQ(PrerenderManager::PRERENDER_MODE_DISABLED,
PrerenderManager::GetMode(ORIGIN_NONE));
EXPECT_EQ(PrerenderManager::PRERENDER_MODE_DISABLED,
PrerenderManager::GetMode(ORIGIN_OMNIBOX));
EXPECT_EQ(PrerenderManager::PRERENDER_MODE_DISABLED,
PrerenderManager::GetMode(ORIGIN_INSTANT));
}
} }
TEST_F(PrerenderTest, PrerenderRespectsFieldTrialParameters) { TEST_F(PrerenderTest, PrerenderRespectsFieldTrialParameters) {
...@@ -603,6 +597,7 @@ TEST_F(PrerenderTest, PrerenderRespectsFieldTrialParametersDefaultNone) { ...@@ -603,6 +597,7 @@ TEST_F(PrerenderTest, PrerenderRespectsFieldTrialParametersDefaultNone) {
TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) { TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) {
GURL url("http://www.google.com/"); GURL url("http://www.google.com/");
test_utils::RestorePrerenderMode restore_prerender_mode; test_utils::RestorePrerenderMode restore_prerender_mode;
PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_ENABLED);
ASSERT_TRUE(PrerenderManager::IsAnyPrerenderingPossible()); ASSERT_TRUE(PrerenderManager::IsAnyPrerenderingPossible());
profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true); profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
...@@ -614,6 +609,7 @@ TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) { ...@@ -614,6 +609,7 @@ TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) {
TEST_F(PrerenderTest, OfflinePrerenderIgnoresThirdPartyCookiesPref) { TEST_F(PrerenderTest, OfflinePrerenderIgnoresThirdPartyCookiesPref) {
GURL url("http://www.google.com/"); GURL url("http://www.google.com/");
test_utils::RestorePrerenderMode restore_prerender_mode; test_utils::RestorePrerenderMode restore_prerender_mode;
PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_ENABLED);
ASSERT_TRUE(PrerenderManager::IsAnyPrerenderingPossible()); ASSERT_TRUE(PrerenderManager::IsAnyPrerenderingPossible());
profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true); profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
...@@ -715,6 +711,7 @@ TEST_F(PrerenderTest, OfflinePrerenderIgnoresPrerenderMode) { ...@@ -715,6 +711,7 @@ TEST_F(PrerenderTest, OfflinePrerenderIgnoresPrerenderMode) {
TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) { TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) {
GURL url("http://www.google.com/"); GURL url("http://www.google.com/");
prerender_manager()->SetMode(PrerenderManager::PRERENDER_MODE_ENABLED);
ASSERT_TRUE(PrerenderManager::IsAnyPrerenderingPossible()); ASSERT_TRUE(PrerenderManager::IsAnyPrerenderingPossible());
prerender_manager()->SetIsLowEndDevice(true); prerender_manager()->SetIsLowEndDevice(true);
EXPECT_FALSE(AddSimplePrerender(url)); EXPECT_FALSE(AddSimplePrerender(url));
...@@ -724,6 +721,7 @@ TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) { ...@@ -724,6 +721,7 @@ TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) {
TEST_F(PrerenderTest, OfflinePrerenderPossibleOnLowEndDevice) { TEST_F(PrerenderTest, OfflinePrerenderPossibleOnLowEndDevice) {
GURL url("http://www.google.com/"); GURL url("http://www.google.com/");
prerender_manager()->SetMode(PrerenderManager::PRERENDER_MODE_ENABLED);
ASSERT_TRUE(PrerenderManager::IsAnyPrerenderingPossible()); ASSERT_TRUE(PrerenderManager::IsAnyPrerenderingPossible());
prerender_manager()->SetIsLowEndDevice(true); prerender_manager()->SetIsLowEndDevice(true);
...@@ -1393,6 +1391,8 @@ TEST_F(PrerenderTest, CancelAllTest) { ...@@ -1393,6 +1391,8 @@ TEST_F(PrerenderTest, CancelAllTest) {
TEST_F(PrerenderTest, OmniboxNotAllowedWhenDisabled) { TEST_F(PrerenderTest, OmniboxNotAllowedWhenDisabled) {
DisablePrerender(); DisablePrerender();
test_utils::RestorePrerenderMode restore_prerender_mode;
PrerenderManager::SetOmniboxMode(PrerenderManager::PRERENDER_MODE_ENABLED);
EXPECT_FALSE(prerender_manager()->AddPrerenderFromOmnibox( EXPECT_FALSE(prerender_manager()->AddPrerenderFromOmnibox(
GURL("http://www.example.com"), nullptr, gfx::Size())); GURL("http://www.example.com"), nullptr, gfx::Size()));
histogram_tester().ExpectUniqueSample("Prerender.FinalStatus", histogram_tester().ExpectUniqueSample("Prerender.FinalStatus",
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "chrome/browser/prerender/prerender_manager_factory.h" #include "chrome/browser/prerender/prerender_manager_factory.h"
#include "chrome/browser/prerender/prerender_origin.h" #include "chrome/browser/prerender/prerender_origin.h"
#include "chrome/browser/prerender/prerender_tab_helper.h" #include "chrome/browser/prerender/prerender_tab_helper.h"
#include "chrome/browser/prerender/prerender_test_utils.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search/instant_service.h" #include "chrome/browser/search/instant_service.h"
#include "chrome/browser/search/instant_unittest_base.h" #include "chrome/browser/search/instant_unittest_base.h"
...@@ -187,12 +188,25 @@ class InstantSearchPrerendererTest : public InstantUnitTestBase { ...@@ -187,12 +188,25 @@ class InstantSearchPrerendererTest : public InstantUnitTestBase {
InstantSearchPrerendererTest() {} InstantSearchPrerendererTest() {}
protected: protected:
using RestorePrerenderMode = prerender::test_utils::RestorePrerenderMode;
void SetUp() override { void SetUp() override {
ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch", ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch",
"Group1 strk:20")); "Group1 strk:20"));
// Prerender mode is stored in a few static variables. Remember the default
// mode to restore it later in TearDown() to avoid affecting other tests.
restore_prerender_mode_ = base::MakeUnique<RestorePrerenderMode>();
PrerenderManager::SetInstantMode(PrerenderManager::PRERENDER_MODE_ENABLED);
InstantUnitTestBase::SetUp(); InstantUnitTestBase::SetUp();
} }
void TearDown() override {
InstantUnitTestBase::TearDown();
restore_prerender_mode_.reset();
}
void Init(bool prerender_search_results_base_page, void Init(bool prerender_search_results_base_page,
bool call_did_finish_load) { bool call_did_finish_load) {
AddTab(browser(), GURL(url::kAboutBlankURL)); AddTab(browser(), GURL(url::kAboutBlankURL));
...@@ -250,6 +264,7 @@ class InstantSearchPrerendererTest : public InstantUnitTestBase { ...@@ -250,6 +264,7 @@ class InstantSearchPrerendererTest : public InstantUnitTestBase {
private: private:
MockEmbeddedSearchClient mock_embedded_search_client_; MockEmbeddedSearchClient mock_embedded_search_client_;
std::unique_ptr<RestorePrerenderMode> restore_prerender_mode_;
}; };
TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromPrerenderedPage) { TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromPrerenderedPage) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment