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 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
#include "components/metrics/persistent_system_profile.h"
#include "components/prerender/browser/prerender_field_trial.h"
#include "components/variations/variations_associated_data.h"
#include "content/public/common/content_switches.h"
......@@ -44,7 +43,6 @@ void SetupStunProbeTrial() {
} // namespace
void SetupDesktopFieldTrials() {
prerender::ConfigureNoStatePrefetch();
SetupStunProbeTrial();
}
......
......@@ -4,20 +4,12 @@
#include "chrome/browser/chrome_browser_field_trials_mobile.h"
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#if defined(OS_ANDROID)
#include "components/prerender/browser/prerender_field_trial.h"
#endif
namespace chrome {
void SetupMobileFieldTrials() {
DCHECK(!g_browser_process);
#if defined(OS_ANDROID)
prerender::ConfigureNoStatePrefetch();
#endif
}
} // namespace chrome
......@@ -27,7 +27,6 @@
#include "components/omnibox/browser/autocomplete_result.h"
#include "components/omnibox/browser/omnibox_log.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_manager.h"
#include "content/public/browser/browser_thread.h"
......@@ -204,13 +203,9 @@ AutocompleteActionPredictor::Action
}
}
// Downgrade prerender to preconnect if this is a search match or if
// nostate-prefetch is disabled.
if (action == ACTION_PRERENDER &&
(AutocompleteMatch::IsSearchType(match.type) ||
!prerender::IsNoStatePrefetchEnabled())) {
// Downgrade prerender to preconnect if this is a search match.
if (action == ACTION_PRERENDER && AutocompleteMatch::IsSearchType(match.type))
action = ACTION_PRECONNECT;
}
return action;
}
......
......@@ -483,8 +483,6 @@ class PrerenderTest : public testing::Test {
TEST_F(PrerenderTest, RespectsThirdPartyCookiesPref) {
GURL url("http://www.google.com/");
ASSERT_TRUE(IsNoStatePrefetchEnabled());
profile()->GetPrefs()->SetInteger(
prefs::kCookieControlsMode,
static_cast<int>(content_settings::CookieControlsMode::kBlockThirdParty));
......@@ -651,7 +649,6 @@ TEST_F(PrerenderTest, PredictorPrefetchHoldbackOffPredictorReferrer) {
// Flaky on Android and Mac, crbug.com/1087876.
TEST_F(PrerenderTest, DISABLED_PrerenderDisabledOnLowEndDevice) {
GURL url("http://www.google.com/");
ASSERT_TRUE(IsNoStatePrefetchEnabled());
prerender_manager()->SetIsLowEndDevice(true);
EXPECT_FALSE(AddSimplePrerender(url));
histogram_tester().ExpectUniqueSample("Prerender.FinalStatus",
......@@ -983,7 +980,6 @@ TEST_F(PrerenderTest, MaxConcurrencyTest) {
// Flaky on Android: https://crbug.com/1105908
TEST_F(PrerenderTest, DISABLED_AliasURLTest) {
ASSERT_TRUE(IsNoStatePrefetchEnabled());
SetConcurrency(7);
GURL url("http://www.google.com/");
......
......@@ -51,7 +51,6 @@
#include "components/omnibox/browser/omnibox_controller_emitter.h"
#include "components/omnibox/browser/search_provider.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/sessions/content/session_tab_helper.h"
#include "components/translate/core/browser/translate_manager.h"
......@@ -311,12 +310,6 @@ gfx::Image ChromeOmniboxClient::GetFaviconForKeywordSearchProvider(
std::move(on_favicon_fetched));
}
void ChromeOmniboxClient::OnCurrentMatchChanged(
const AutocompleteMatch& match) {
if (!prerender::IsNoStatePrefetchEnabled())
DoPreconnect(match);
}
void ChromeOmniboxClient::OnTextChanged(const AutocompleteMatch& current_match,
bool user_input_in_progress,
const base::string16& user_text,
......
......@@ -71,7 +71,6 @@ class ChromeOmniboxClient : public OmniboxClient {
gfx::Image GetFaviconForKeywordSearchProvider(
const TemplateURL* template_url,
FaviconFetchedCallback on_favicon_fetched) override;
void OnCurrentMatchChanged(const AutocompleteMatch& match) override;
void OnTextChanged(const AutocompleteMatch& current_match,
bool user_input_in_progress,
const base::string16& user_text,
......
......@@ -137,9 +137,6 @@ class OmniboxClient {
const TemplateURL* template_url,
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.
virtual void OnTextChanged(const AutocompleteMatch& current_match,
bool user_input_in_progress,
......
......@@ -1539,8 +1539,6 @@ void OmniboxEditModel::OnCurrentMatchChanged() {
const AutocompleteMatch& match = omnibox_controller_->current_match();
client_->OnCurrentMatchChanged(match);
// We store |keyword| and |is_keyword_hint| in temporary variables since
// OnPopupDataChanged use their previous state to detect changes.
base::string16 keyword;
......
......@@ -11,25 +11,10 @@
namespace prerender {
const base::Feature kNoStatePrefetchFeature{"NoStatePrefetch",
base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kGWSPrefetchHoldback{"GWSPrefetchHoldback",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kNavigationPredictorPrefetchHoldback{
"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
......@@ -9,20 +9,12 @@
namespace prerender {
// These Finch feature and parameter strings exposed for for testing.
extern const base::Feature kNoStatePrefetchFeature;
// Preconnects instead of prefetching from GWS.
extern const base::Feature kGWSPrefetchHoldback;
// Preconnects instead of prefetching from NavigationPredictor.
extern const base::Feature kNavigationPredictorPrefetchHoldback;
// Configures global state using kNoStatePrefetchFeature.
void ConfigureNoStatePrefetch();
bool IsNoStatePrefetchEnabled();
} // namespace prerender
#endif // COMPONENTS_PRERENDER_BROWSER_PRERENDER_FIELD_TRIAL_H_
......@@ -221,8 +221,6 @@ PrerenderManager::AddPrerenderFromNavigationPredictor(
const GURL& url,
SessionStorageNamespace* session_storage_namespace,
const gfx::Size& size) {
DCHECK(IsNoStatePrefetchEnabled());
return AddPrerenderWithPreconnectFallback(
ORIGIN_NAVIGATION_PREDICTOR, url, content::Referrer(), base::nullopt,
gfx::Rect(size), session_storage_namespace);
......@@ -232,8 +230,6 @@ std::unique_ptr<PrerenderHandle> PrerenderManager::AddIsolatedPrerender(
const GURL& url,
SessionStorageNamespace* session_storage_namespace,
const gfx::Size& size) {
DCHECK(IsNoStatePrefetchEnabled());
// The preconnect fallback won't happen.
return AddPrerenderWithPreconnectFallback(
ORIGIN_ISOLATED_PRERENDER, url, content::Referrer(), base::nullopt,
......@@ -579,7 +575,6 @@ PrerenderManager::AddPrerenderWithPreconnectFallback(
return base::WrapUnique(new PrerenderHandle(preexisting_prerender_data));
}
if (IsNoStatePrefetchEnabled()) {
base::TimeDelta prefetch_age;
GetPrefetchInformation(url, &prefetch_age, nullptr /* final_status*/,
nullptr /* origin */);
......@@ -590,7 +585,6 @@ PrerenderManager::AddPrerenderWithPreconnectFallback(
FINAL_STATUS_DUPLICATE);
return nullptr;
}
}
// Do not prerender if there are too many render processes, and we would
// have to use an existing one. We do not want prerendering to happen in
......@@ -658,10 +652,8 @@ PrerenderManager::AddPrerenderWithPreconnectFallback(
CreatePrerenderContents(url, referrer, initiator_origin, origin);
DCHECK(prerender_contents);
PrerenderContents* prerender_contents_ptr = prerender_contents.get();
if (IsNoStatePrefetchEnabled()) {
prerender_contents_ptr->SetPrerenderMode(
prerender::mojom::PrerenderMode::kPrefetchOnly);
}
active_prerenders_.push_back(
std::make_unique<PrerenderData>(this, std::move(prerender_contents),
GetExpiryTimeForNewPrerender(origin)));
......@@ -992,8 +984,6 @@ void PrerenderManager::SkipPrerenderContentsAndMaybePreconnect(
void PrerenderManager::RecordNetworkBytesConsumed(Origin origin,
int64_t prerender_bytes) {
if (!IsNoStatePrefetchEnabled())
return;
int64_t recent_browser_context_bytes =
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