Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc |
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc |
index 296436b6b09db8516cd305fc1dc034817be0e052..aba1815be2f74d5998e5386c1c8cf26c45923843 100644 |
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc |
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc |
@@ -483,7 +483,7 @@ void DataReductionProxyConfig::OnIPAddressChanged() { |
if (enabled_by_user_) { |
DCHECK(config_values_->allowed()); |
RecordNetworkChangeEvent(IP_CHANGED); |
- if (DisableIfVPN()) |
+ if (MaybeDisableIfVPN()) |
return; |
if (alternative_enabled_by_user_ && |
!config_values_->alternative_fallback_allowed()) { |
@@ -560,12 +560,15 @@ void DataReductionProxyConfig::GetNetworkList( |
net::GetNetworkList(interfaces, policy); |
} |
-bool DataReductionProxyConfig::DisableIfVPN() { |
+bool DataReductionProxyConfig::MaybeDisableIfVPN() { |
+ if (DataReductionProxyParams::IsIncludedInUseDataSaverOnVPNFieldTrial()) { |
+ return false; |
+ } |
net::NetworkInterfaceList network_interfaces; |
GetNetworkList(&network_interfaces, 0); |
// VPNs use a "tun" interface, so the presence of a "tun" interface indicates |
- // a VPN is in use. |
- // TODO(kundaji): Verify this works on Windows. |
+ // a VPN is in use. This logic only works on Android and Linux platforms. |
+ // Data Saver will not be disabled on any other platform on VPN. |
const std::string vpn_interface_name_prefix = "tun"; |
for (size_t i = 0; i < network_interfaces.size(); ++i) { |
std::string interface_name = network_interfaces[i].name; |