Commit d726cb9d authored by Mugdha Lakhani's avatar Mugdha Lakhani Committed by Commit Bot

[Prerender] Remove cellular network checks.

Removes all references to cellular network checks since they're no
longer controlling access to preload/prerender features.

Removes the enum value from NetworkPredictionStatus and
FINAL_STATUS_CELLULAR_NETWORK from prerender final status.

Change-Id: I18d55917579d02f596615743c2736b6173e559c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2368361Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Reviewed-by: default avatarRyan Sturm <ryansturm@chromium.org>
Commit-Queue: Mugdha Lakhani <nator@chromium.org>
Cr-Commit-Position: refs/heads/master@{#801163}
parent bfc35dfa
...@@ -86,7 +86,6 @@ const base::Feature* kFeaturesExposedToJava[] = { ...@@ -86,7 +86,6 @@ const base::Feature* kFeaturesExposedToJava[] = {
&features::kInstallableAmbientBadgeInfoBar, &features::kInstallableAmbientBadgeInfoBar,
&features::kNetworkServiceInProcess, &features::kNetworkServiceInProcess,
&features::kOverscrollHistoryNavigation, &features::kOverscrollHistoryNavigation,
&features::kPredictivePrefetchingAllowedOnAllConnectionTypes,
&features::kPrivacyElevatedAndroid, &features::kPrivacyElevatedAndroid,
&features::kPrivacyReorderedAndroid, &features::kPrivacyReorderedAndroid,
&features::kPrioritizeBootstrapTasks, &features::kPrioritizeBootstrapTasks,
......
...@@ -23,13 +23,7 @@ NetworkPredictionStatus CanPrefetchAndPrerender( ...@@ -23,13 +23,7 @@ NetworkPredictionStatus CanPrefetchAndPrerender(
switch (network_prediction_options) { switch (network_prediction_options) {
case NETWORK_PREDICTION_ALWAYS: case NETWORK_PREDICTION_ALWAYS:
case NETWORK_PREDICTION_WIFI_ONLY: case NETWORK_PREDICTION_WIFI_ONLY:
if (base::FeatureList::IsEnabled(
features::kPredictivePrefetchingAllowedOnAllConnectionTypes) ||
!net::NetworkChangeNotifier::IsConnectionCellular(
net::NetworkChangeNotifier::GetConnectionType())) {
return NetworkPredictionStatus::ENABLED; return NetworkPredictionStatus::ENABLED;
}
return NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK;
default: default:
DCHECK_EQ(NETWORK_PREDICTION_NEVER, network_prediction_options); DCHECK_EQ(NETWORK_PREDICTION_NEVER, network_prediction_options);
return NetworkPredictionStatus::DISABLED_ALWAYS; return NetworkPredictionStatus::DISABLED_ALWAYS;
......
...@@ -28,7 +28,6 @@ enum NetworkPredictionOptions { ...@@ -28,7 +28,6 @@ enum NetworkPredictionOptions {
enum class NetworkPredictionStatus { enum class NetworkPredictionStatus {
ENABLED, ENABLED,
DISABLED_ALWAYS, DISABLED_ALWAYS,
DISABLED_DUE_TO_NETWORK,
}; };
void RegisterPredictionOptionsProfilePrefs( void RegisterPredictionOptionsProfilePrefs(
......
...@@ -58,26 +58,16 @@ bool ChromePrerenderManagerDelegate::IsPredictionEnabled(Origin origin) { ...@@ -58,26 +58,16 @@ bool ChromePrerenderManagerDelegate::IsPredictionEnabled(Origin origin) {
chrome_browser_net::NetworkPredictionStatus::ENABLED; chrome_browser_net::NetworkPredictionStatus::ENABLED;
} }
bool ChromePrerenderManagerDelegate::IsPredictionDisabledDueToNetwork(
Origin origin) {
return GetPredictionStatusForOrigin(origin) ==
chrome_browser_net::NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK;
}
bool ChromePrerenderManagerDelegate::IsPredictionEnabled() { bool ChromePrerenderManagerDelegate::IsPredictionEnabled() {
return GetPredictionStatus() == return GetPredictionStatus() ==
chrome_browser_net::NetworkPredictionStatus::ENABLED; chrome_browser_net::NetworkPredictionStatus::ENABLED;
} }
std::string ChromePrerenderManagerDelegate::GetReasonForDisablingPrediction() { std::string ChromePrerenderManagerDelegate::GetReasonForDisablingPrediction() {
std::string disabled_note; return (GetPredictionStatus() ==
if (GetPredictionStatus() == chrome_browser_net::NetworkPredictionStatus::DISABLED_ALWAYS)
chrome_browser_net::NetworkPredictionStatus::DISABLED_ALWAYS) ? "Disabled by user setting"
disabled_note = "Disabled by user setting"; : "";
if (GetPredictionStatus() ==
chrome_browser_net::NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK)
disabled_note = "Disabled on cellular connection by default";
return disabled_note;
} }
chrome_browser_net::NetworkPredictionStatus chrome_browser_net::NetworkPredictionStatus
...@@ -105,11 +95,6 @@ ChromePrerenderManagerDelegate::GetPredictionStatusForOrigin( ...@@ -105,11 +95,6 @@ ChromePrerenderManagerDelegate::GetPredictionStatusForOrigin(
// the DISABLED_ALWAYS selected via privacy settings. // the DISABLED_ALWAYS selected via privacy settings.
chrome_browser_net::NetworkPredictionStatus prediction_status = chrome_browser_net::NetworkPredictionStatus prediction_status =
chrome_browser_net::CanPrefetchAndPrerenderUI(profile_->GetPrefs()); chrome_browser_net::CanPrefetchAndPrerenderUI(profile_->GetPrefs());
if (origin == ORIGIN_EXTERNAL_REQUEST_FORCED_PRERENDER &&
prediction_status == chrome_browser_net::NetworkPredictionStatus::
DISABLED_DUE_TO_NETWORK) {
return chrome_browser_net::NetworkPredictionStatus::ENABLED;
}
return prediction_status; return prediction_status;
} }
......
...@@ -28,7 +28,6 @@ class ChromePrerenderManagerDelegate : public PrerenderManagerDelegate { ...@@ -28,7 +28,6 @@ class ChromePrerenderManagerDelegate : public PrerenderManagerDelegate {
override; override;
bool IsPredictionEnabled(Origin origin) override; bool IsPredictionEnabled(Origin origin) override;
bool IsPredictionEnabled() override; bool IsPredictionEnabled() override;
bool IsPredictionDisabledDueToNetwork(Origin origin) override;
std::string GetReasonForDisablingPrediction() override; std::string GetReasonForDisablingPrediction() override;
private: private:
......
...@@ -1301,37 +1301,11 @@ TEST_F(PrerenderTest, LinkRelAllowedOnCellular) { ...@@ -1301,37 +1301,11 @@ TEST_F(PrerenderTest, LinkRelAllowedOnCellular) {
ASSERT_EQ(prerender_contents, entry.get()); ASSERT_EQ(prerender_contents, entry.get());
} }
// Verify that the external prerender requests are not allowed on cellular // Verify that the external prerender requests are allowed on cellular networks.
// connection when kPredictivePrefetchingAllowedOnAllConnectionTypes feature is
// not enabled.
TEST_F(PrerenderTest, PrerenderNotAllowedOnCellularWithExternalOrigin) {
EnablePrerender();
std::unique_ptr<net::NetworkChangeNotifier> mock(
new MockNetworkChangeNotifier4G);
EXPECT_TRUE(net::NetworkChangeNotifier::IsConnectionCellular(
net::NetworkChangeNotifier::GetConnectionType()));
GURL url("http://www.google.com/");
DummyPrerenderContents* prerender_contents =
prerender_manager()->CreateNextPrerenderContents(
url, base::nullopt, ORIGIN_EXTERNAL_REQUEST,
FINAL_STATUS_PROFILE_DESTROYED);
std::unique_ptr<PrerenderHandle> prerender_handle(
prerender_manager()->AddPrerenderFromExternalRequest(
url, content::Referrer(), nullptr, gfx::Rect(kDefaultViewSize)));
EXPECT_TRUE(prerender_handle);
EXPECT_TRUE(prerender_contents->prerendering_has_started());
histogram_tester().ExpectTotalCount("Prerender.FinalStatus", 0);
}
// Verify that the external prerender requests are allowed on cellular
// connection when kPredictivePrefetchingAllowedOnAllConnectionTypes feature is
// enabled.
TEST_F( TEST_F(
PrerenderTest, PrerenderTest,
PrerenderAllowedOnCellularWithExternalOrigin_PredictivePrefetchingAllowedOnAllConnectionTypes) { PrerenderAllowedOnCellularWithExternalOrigin_PredictivePrefetchingAllowedOnAllConnectionTypes) {
base::test::ScopedFeatureList scoped_feature_list; base::test::ScopedFeatureList scoped_feature_list;
scoped_feature_list.InitAndEnableFeature(
features::kPredictivePrefetchingAllowedOnAllConnectionTypes);
EnablePrerender(); EnablePrerender();
std::unique_ptr<net::NetworkChangeNotifier> mock( std::unique_ptr<net::NetworkChangeNotifier> mock(
new MockNetworkChangeNotifier4G); new MockNetworkChangeNotifier4G);
......
...@@ -603,11 +603,6 @@ const base::Feature kPerAppTimeLimits{"PerAppTimeLimits", ...@@ -603,11 +603,6 @@ const base::Feature kPerAppTimeLimits{"PerAppTimeLimits",
const base::Feature kPluginVm{"PluginVm", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kPluginVm{"PluginVm", base::FEATURE_DISABLED_BY_DEFAULT};
#endif #endif
// Allows prediction operations (e.g., prefetching) on all connection types.
const base::Feature kPredictivePrefetchingAllowedOnAllConnectionTypes{
"PredictivePrefetchingAllowedOnAllConnectionTypes",
base::FEATURE_ENABLED_BY_DEFAULT};
// Allows Chrome to do preconnect when prerender fails. // Allows Chrome to do preconnect when prerender fails.
const base::Feature kPrerenderFallbackToPreconnect{ const base::Feature kPrerenderFallbackToPreconnect{
"PrerenderFallbackToPreconnect", base::FEATURE_ENABLED_BY_DEFAULT}; "PrerenderFallbackToPreconnect", base::FEATURE_ENABLED_BY_DEFAULT};
......
...@@ -542,11 +542,8 @@ PrerenderManager::AddPrerenderWithPreconnectFallback( ...@@ -542,11 +542,8 @@ PrerenderManager::AddPrerenderWithPreconnectFallback(
} }
if (!delegate_->IsPredictionEnabled(origin)) { if (!delegate_->IsPredictionEnabled(origin)) {
FinalStatus final_status = SkipPrerenderContentsAndMaybePreconnect(url, origin,
delegate_->IsPredictionDisabledDueToNetwork(origin) FINAL_STATUS_PRERENDERING_DISABLED);
? FINAL_STATUS_CELLULAR_NETWORK
: FINAL_STATUS_PRERENDERING_DISABLED;
SkipPrerenderContentsAndMaybePreconnect(url, origin, final_status);
return nullptr; return nullptr;
} }
...@@ -957,7 +954,6 @@ void PrerenderManager::SkipPrerenderContentsAndMaybePreconnect( ...@@ -957,7 +954,6 @@ void PrerenderManager::SkipPrerenderContentsAndMaybePreconnect(
} }
if (final_status == FINAL_STATUS_LOW_END_DEVICE || if (final_status == FINAL_STATUS_LOW_END_DEVICE ||
final_status == FINAL_STATUS_CELLULAR_NETWORK ||
final_status == FINAL_STATUS_DUPLICATE || final_status == FINAL_STATUS_DUPLICATE ||
final_status == FINAL_STATUS_TOO_MANY_PROCESSES) { final_status == FINAL_STATUS_TOO_MANY_PROCESSES) {
MaybePreconnect(origin, url); MaybePreconnect(origin, url);
......
...@@ -18,10 +18,6 @@ bool PrerenderManagerDelegate::IsPredictionEnabled() { ...@@ -18,10 +18,6 @@ bool PrerenderManagerDelegate::IsPredictionEnabled() {
return true; return true;
} }
bool PrerenderManagerDelegate::IsPredictionDisabledDueToNetwork(Origin origin) {
return false;
}
std::string PrerenderManagerDelegate::GetReasonForDisablingPrediction() { std::string PrerenderManagerDelegate::GetReasonForDisablingPrediction() {
return std::string(); return std::string();
} }
......
...@@ -40,9 +40,6 @@ class PrerenderManagerDelegate { ...@@ -40,9 +40,6 @@ class PrerenderManagerDelegate {
// Check whether predictive loading of web pages is enabled. // Check whether predictive loading of web pages is enabled.
virtual bool IsPredictionEnabled(); virtual bool IsPredictionEnabled();
// Check whether predictive loading of web pages is disabled due to network.
virtual bool IsPredictionDisabledDueToNetwork(Origin origin);
// Gets the reason why predictive loading of web pages was disabld. // Gets the reason why predictive loading of web pages was disabld.
virtual std::string GetReasonForDisablingPrediction(); virtual std::string GetReasonForDisablingPrediction();
}; };
......
...@@ -70,7 +70,7 @@ enum FinalStatus { ...@@ -70,7 +70,7 @@ enum FinalStatus {
// Obsolete: FINAL_STATUS_NON_EMPTY_BROWSING_INSTANCE = 50, // Obsolete: FINAL_STATUS_NON_EMPTY_BROWSING_INSTANCE = 50,
FINAL_STATUS_NAVIGATION_INTERCEPTED = 51, FINAL_STATUS_NAVIGATION_INTERCEPTED = 51,
FINAL_STATUS_PRERENDERING_DISABLED = 52, FINAL_STATUS_PRERENDERING_DISABLED = 52,
FINAL_STATUS_CELLULAR_NETWORK = 53, // Obsolete: FINAL_STATUS_CELLULAR_NETWORK = 53,
FINAL_STATUS_BLOCK_THIRD_PARTY_COOKIES = 54, FINAL_STATUS_BLOCK_THIRD_PARTY_COOKIES = 54,
// Obsolete: FINAL_STATUS_CREDENTIAL_MANAGER_API = 55, // Obsolete: FINAL_STATUS_CREDENTIAL_MANAGER_API = 55,
FINAL_STATUS_NOSTATE_PREFETCH_FINISHED = 56, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED = 56,
......
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