Commit c84aa745 authored by Hiroki Nakagawa's avatar Hiroki Nakagawa Committed by Commit Bot

NoStatePrefetch: Remove kNoStatePrefetchFeature flag

This flag is now enabled by default and no longer necessary, so this CL
removes it.

We could remove more code (e.g., PrerenderManager::SetMode()), but this
CL focuses on the flag to minimize changes. Subsequent CLs will remove
them.

Bug: 632361
Change-Id: Ib4a0edfbfb4c62c6e98a112ecf7fdfa604063454
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2485412
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: default avatarRobert Ogden <robertogden@chromium.org>
Reviewed-by: default avatarRyan Sturm <ryansturm@chromium.org>
Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Reviewed-by: default avatarAngela Yoeurng <yoangela@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#818823}
parent 775557ae
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_switches.h"
#include "components/metrics/persistent_system_profile.h" #include "components/metrics/persistent_system_profile.h"
#include "components/prerender/browser/prerender_field_trial.h"
#include "components/variations/variations_associated_data.h" #include "components/variations/variations_associated_data.h"
#include "content/public/common/content_switches.h" #include "content/public/common/content_switches.h"
...@@ -44,7 +43,6 @@ void SetupStunProbeTrial() { ...@@ -44,7 +43,6 @@ void SetupStunProbeTrial() {
} // namespace } // namespace
void SetupDesktopFieldTrials() { void SetupDesktopFieldTrials() {
prerender::ConfigureNoStatePrefetch();
SetupStunProbeTrial(); SetupStunProbeTrial();
} }
......
...@@ -4,20 +4,12 @@ ...@@ -4,20 +4,12 @@
#include "chrome/browser/chrome_browser_field_trials_mobile.h" #include "chrome/browser/chrome_browser_field_trials_mobile.h"
#include "build/build_config.h"
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#if defined(OS_ANDROID)
#include "components/prerender/browser/prerender_field_trial.h"
#endif
namespace chrome { namespace chrome {
void SetupMobileFieldTrials() { void SetupMobileFieldTrials() {
DCHECK(!g_browser_process); DCHECK(!g_browser_process);
#if defined(OS_ANDROID)
prerender::ConfigureNoStatePrefetch();
#endif
} }
} // namespace chrome } // namespace chrome
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include "components/omnibox/browser/autocomplete_result.h" #include "components/omnibox/browser/autocomplete_result.h"
#include "components/omnibox/browser/omnibox_log.h" #include "components/omnibox/browser/omnibox_log.h"
#include "components/omnibox/browser/omnibox_popup_model.h" #include "components/omnibox/browser/omnibox_popup_model.h"
#include "components/prerender/browser/prerender_field_trial.h"
#include "components/prerender/browser/prerender_handle.h" #include "components/prerender/browser/prerender_handle.h"
#include "components/prerender/browser/prerender_manager.h" #include "components/prerender/browser/prerender_manager.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
...@@ -204,13 +203,9 @@ AutocompleteActionPredictor::Action ...@@ -204,13 +203,9 @@ AutocompleteActionPredictor::Action
} }
} }
// Downgrade prerender to preconnect if this is a search match or if // Downgrade prerender to preconnect if this is a search match.
// nostate-prefetch is disabled. if (action == ACTION_PRERENDER && AutocompleteMatch::IsSearchType(match.type))
if (action == ACTION_PRERENDER &&
(AutocompleteMatch::IsSearchType(match.type) ||
!prerender::IsNoStatePrefetchEnabled())) {
action = ACTION_PRECONNECT; action = ACTION_PRECONNECT;
}
return action; return action;
} }
......
...@@ -483,8 +483,6 @@ class PrerenderTest : public testing::Test { ...@@ -483,8 +483,6 @@ class PrerenderTest : public testing::Test {
TEST_F(PrerenderTest, RespectsThirdPartyCookiesPref) { TEST_F(PrerenderTest, RespectsThirdPartyCookiesPref) {
GURL url("http://www.google.com/"); GURL url("http://www.google.com/");
ASSERT_TRUE(IsNoStatePrefetchEnabled());
profile()->GetPrefs()->SetInteger( profile()->GetPrefs()->SetInteger(
prefs::kCookieControlsMode, prefs::kCookieControlsMode,
static_cast<int>(content_settings::CookieControlsMode::kBlockThirdParty)); static_cast<int>(content_settings::CookieControlsMode::kBlockThirdParty));
...@@ -651,7 +649,6 @@ TEST_F(PrerenderTest, PredictorPrefetchHoldbackOffPredictorReferrer) { ...@@ -651,7 +649,6 @@ TEST_F(PrerenderTest, PredictorPrefetchHoldbackOffPredictorReferrer) {
// Flaky on Android and Mac, crbug.com/1087876. // Flaky on Android and Mac, crbug.com/1087876.
TEST_F(PrerenderTest, DISABLED_PrerenderDisabledOnLowEndDevice) { TEST_F(PrerenderTest, DISABLED_PrerenderDisabledOnLowEndDevice) {
GURL url("http://www.google.com/"); GURL url("http://www.google.com/");
ASSERT_TRUE(IsNoStatePrefetchEnabled());
prerender_manager()->SetIsLowEndDevice(true); prerender_manager()->SetIsLowEndDevice(true);
EXPECT_FALSE(AddSimplePrerender(url)); EXPECT_FALSE(AddSimplePrerender(url));
histogram_tester().ExpectUniqueSample("Prerender.FinalStatus", histogram_tester().ExpectUniqueSample("Prerender.FinalStatus",
...@@ -983,7 +980,6 @@ TEST_F(PrerenderTest, MaxConcurrencyTest) { ...@@ -983,7 +980,6 @@ TEST_F(PrerenderTest, MaxConcurrencyTest) {
// Flaky on Android: https://crbug.com/1105908 // Flaky on Android: https://crbug.com/1105908
TEST_F(PrerenderTest, DISABLED_AliasURLTest) { TEST_F(PrerenderTest, DISABLED_AliasURLTest) {
ASSERT_TRUE(IsNoStatePrefetchEnabled());
SetConcurrency(7); SetConcurrency(7);
GURL url("http://www.google.com/"); GURL url("http://www.google.com/");
......
...@@ -51,7 +51,6 @@ ...@@ -51,7 +51,6 @@
#include "components/omnibox/browser/omnibox_controller_emitter.h" #include "components/omnibox/browser/omnibox_controller_emitter.h"
#include "components/omnibox/browser/search_provider.h" #include "components/omnibox/browser/search_provider.h"
#include "components/omnibox/common/omnibox_features.h" #include "components/omnibox/common/omnibox_features.h"
#include "components/prerender/browser/prerender_field_trial.h"
#include "components/search_engines/template_url_service.h" #include "components/search_engines/template_url_service.h"
#include "components/sessions/content/session_tab_helper.h" #include "components/sessions/content/session_tab_helper.h"
#include "components/translate/core/browser/translate_manager.h" #include "components/translate/core/browser/translate_manager.h"
...@@ -311,12 +310,6 @@ gfx::Image ChromeOmniboxClient::GetFaviconForKeywordSearchProvider( ...@@ -311,12 +310,6 @@ gfx::Image ChromeOmniboxClient::GetFaviconForKeywordSearchProvider(
std::move(on_favicon_fetched)); std::move(on_favicon_fetched));
} }
void ChromeOmniboxClient::OnCurrentMatchChanged(
const AutocompleteMatch& match) {
if (!prerender::IsNoStatePrefetchEnabled())
DoPreconnect(match);
}
void ChromeOmniboxClient::OnTextChanged(const AutocompleteMatch& current_match, void ChromeOmniboxClient::OnTextChanged(const AutocompleteMatch& current_match,
bool user_input_in_progress, bool user_input_in_progress,
const base::string16& user_text, const base::string16& user_text,
......
...@@ -71,7 +71,6 @@ class ChromeOmniboxClient : public OmniboxClient { ...@@ -71,7 +71,6 @@ class ChromeOmniboxClient : public OmniboxClient {
gfx::Image GetFaviconForKeywordSearchProvider( gfx::Image GetFaviconForKeywordSearchProvider(
const TemplateURL* template_url, const TemplateURL* template_url,
FaviconFetchedCallback on_favicon_fetched) override; FaviconFetchedCallback on_favicon_fetched) override;
void OnCurrentMatchChanged(const AutocompleteMatch& match) override;
void OnTextChanged(const AutocompleteMatch& current_match, void OnTextChanged(const AutocompleteMatch& current_match,
bool user_input_in_progress, bool user_input_in_progress,
const base::string16& user_text, const base::string16& user_text,
......
...@@ -137,9 +137,6 @@ class OmniboxClient { ...@@ -137,9 +137,6 @@ class OmniboxClient {
const TemplateURL* template_url, const TemplateURL* template_url,
FaviconFetchedCallback on_favicon_fetched); FaviconFetchedCallback on_favicon_fetched);
// Called when the current autocomplete match has changed.
virtual void OnCurrentMatchChanged(const AutocompleteMatch& match) {}
// Called when the text may have changed in the edit. // Called when the text may have changed in the edit.
virtual void OnTextChanged(const AutocompleteMatch& current_match, virtual void OnTextChanged(const AutocompleteMatch& current_match,
bool user_input_in_progress, bool user_input_in_progress,
......
...@@ -1539,8 +1539,6 @@ void OmniboxEditModel::OnCurrentMatchChanged() { ...@@ -1539,8 +1539,6 @@ void OmniboxEditModel::OnCurrentMatchChanged() {
const AutocompleteMatch& match = omnibox_controller_->current_match(); const AutocompleteMatch& match = omnibox_controller_->current_match();
client_->OnCurrentMatchChanged(match);
// We store |keyword| and |is_keyword_hint| in temporary variables since // We store |keyword| and |is_keyword_hint| in temporary variables since
// OnPopupDataChanged use their previous state to detect changes. // OnPopupDataChanged use their previous state to detect changes.
base::string16 keyword; base::string16 keyword;
......
...@@ -11,25 +11,10 @@ ...@@ -11,25 +11,10 @@
namespace prerender { namespace prerender {
const base::Feature kNoStatePrefetchFeature{"NoStatePrefetch",
base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kGWSPrefetchHoldback{"GWSPrefetchHoldback", const base::Feature kGWSPrefetchHoldback{"GWSPrefetchHoldback",
base::FEATURE_DISABLED_BY_DEFAULT}; base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kNavigationPredictorPrefetchHoldback{ const base::Feature kNavigationPredictorPrefetchHoldback{
"NavigationPredictorPrefetchHoldback", base::FEATURE_DISABLED_BY_DEFAULT}; "NavigationPredictorPrefetchHoldback", base::FEATURE_DISABLED_BY_DEFAULT};
void ConfigureNoStatePrefetch() {
auto mode = PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH;
if (!base::FeatureList::IsEnabled(kNoStatePrefetchFeature))
mode = PrerenderManager::PRERENDER_MODE_SIMPLE_LOAD_EXPERIMENT;
PrerenderManager::SetMode(mode);
}
bool IsNoStatePrefetchEnabled() {
return PrerenderManager::GetMode() ==
PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH;
}
} // namespace prerender } // namespace prerender
...@@ -9,20 +9,12 @@ ...@@ -9,20 +9,12 @@
namespace prerender { namespace prerender {
// These Finch feature and parameter strings exposed for for testing.
extern const base::Feature kNoStatePrefetchFeature;
// Preconnects instead of prefetching from GWS. // Preconnects instead of prefetching from GWS.
extern const base::Feature kGWSPrefetchHoldback; extern const base::Feature kGWSPrefetchHoldback;
// Preconnects instead of prefetching from NavigationPredictor. // Preconnects instead of prefetching from NavigationPredictor.
extern const base::Feature kNavigationPredictorPrefetchHoldback; extern const base::Feature kNavigationPredictorPrefetchHoldback;
// Configures global state using kNoStatePrefetchFeature.
void ConfigureNoStatePrefetch();
bool IsNoStatePrefetchEnabled();
} // namespace prerender } // namespace prerender
#endif // COMPONENTS_PRERENDER_BROWSER_PRERENDER_FIELD_TRIAL_H_ #endif // COMPONENTS_PRERENDER_BROWSER_PRERENDER_FIELD_TRIAL_H_
...@@ -221,8 +221,6 @@ PrerenderManager::AddPrerenderFromNavigationPredictor( ...@@ -221,8 +221,6 @@ PrerenderManager::AddPrerenderFromNavigationPredictor(
const GURL& url, const GURL& url,
SessionStorageNamespace* session_storage_namespace, SessionStorageNamespace* session_storage_namespace,
const gfx::Size& size) { const gfx::Size& size) {
DCHECK(IsNoStatePrefetchEnabled());
return AddPrerenderWithPreconnectFallback( return AddPrerenderWithPreconnectFallback(
ORIGIN_NAVIGATION_PREDICTOR, url, content::Referrer(), base::nullopt, ORIGIN_NAVIGATION_PREDICTOR, url, content::Referrer(), base::nullopt,
gfx::Rect(size), session_storage_namespace); gfx::Rect(size), session_storage_namespace);
...@@ -232,8 +230,6 @@ std::unique_ptr<PrerenderHandle> PrerenderManager::AddIsolatedPrerender( ...@@ -232,8 +230,6 @@ std::unique_ptr<PrerenderHandle> PrerenderManager::AddIsolatedPrerender(
const GURL& url, const GURL& url,
SessionStorageNamespace* session_storage_namespace, SessionStorageNamespace* session_storage_namespace,
const gfx::Size& size) { const gfx::Size& size) {
DCHECK(IsNoStatePrefetchEnabled());
// The preconnect fallback won't happen. // The preconnect fallback won't happen.
return AddPrerenderWithPreconnectFallback( return AddPrerenderWithPreconnectFallback(
ORIGIN_ISOLATED_PRERENDER, url, content::Referrer(), base::nullopt, ORIGIN_ISOLATED_PRERENDER, url, content::Referrer(), base::nullopt,
...@@ -579,17 +575,15 @@ PrerenderManager::AddPrerenderWithPreconnectFallback( ...@@ -579,17 +575,15 @@ PrerenderManager::AddPrerenderWithPreconnectFallback(
return base::WrapUnique(new PrerenderHandle(preexisting_prerender_data)); return base::WrapUnique(new PrerenderHandle(preexisting_prerender_data));
} }
if (IsNoStatePrefetchEnabled()) { base::TimeDelta prefetch_age;
base::TimeDelta prefetch_age; GetPrefetchInformation(url, &prefetch_age, nullptr /* final_status*/,
GetPrefetchInformation(url, &prefetch_age, nullptr /* final_status*/, nullptr /* origin */);
nullptr /* origin */); if (!prefetch_age.is_zero() &&
if (!prefetch_age.is_zero() && prefetch_age <
prefetch_age < base::TimeDelta::FromMinutes(net::HttpCache::kPrefetchReuseMins)) {
base::TimeDelta::FromMinutes(net::HttpCache::kPrefetchReuseMins)) { SkipPrerenderContentsAndMaybePreconnect(url, origin,
SkipPrerenderContentsAndMaybePreconnect(url, origin, FINAL_STATUS_DUPLICATE);
FINAL_STATUS_DUPLICATE); return nullptr;
return nullptr;
}
} }
// Do not prerender if there are too many render processes, and we would // Do not prerender if there are too many render processes, and we would
...@@ -658,10 +652,8 @@ PrerenderManager::AddPrerenderWithPreconnectFallback( ...@@ -658,10 +652,8 @@ PrerenderManager::AddPrerenderWithPreconnectFallback(
CreatePrerenderContents(url, referrer, initiator_origin, origin); CreatePrerenderContents(url, referrer, initiator_origin, origin);
DCHECK(prerender_contents); DCHECK(prerender_contents);
PrerenderContents* prerender_contents_ptr = prerender_contents.get(); PrerenderContents* prerender_contents_ptr = prerender_contents.get();
if (IsNoStatePrefetchEnabled()) { prerender_contents_ptr->SetPrerenderMode(
prerender_contents_ptr->SetPrerenderMode( prerender::mojom::PrerenderMode::kPrefetchOnly);
prerender::mojom::PrerenderMode::kPrefetchOnly);
}
active_prerenders_.push_back( active_prerenders_.push_back(
std::make_unique<PrerenderData>(this, std::move(prerender_contents), std::make_unique<PrerenderData>(this, std::move(prerender_contents),
GetExpiryTimeForNewPrerender(origin))); GetExpiryTimeForNewPrerender(origin)));
...@@ -992,8 +984,6 @@ void PrerenderManager::SkipPrerenderContentsAndMaybePreconnect( ...@@ -992,8 +984,6 @@ void PrerenderManager::SkipPrerenderContentsAndMaybePreconnect(
void PrerenderManager::RecordNetworkBytesConsumed(Origin origin, void PrerenderManager::RecordNetworkBytesConsumed(Origin origin,
int64_t prerender_bytes) { int64_t prerender_bytes) {
if (!IsNoStatePrefetchEnabled())
return;
int64_t recent_browser_context_bytes = int64_t recent_browser_context_bytes =
browser_context_network_bytes_ - browser_context_network_bytes_ -
last_recorded_browser_context_network_bytes_; last_recorded_browser_context_network_bytes_;
......
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