Commit 4ce66b51 authored by hush's avatar hush Committed by Commit bot

Remove data reduction proxy code.

BUG=622030

Review-Url: https://codereview.chromium.org/2101153003
Cr-Commit-Position: refs/heads/master@{#402658}
parent 82c8d75a
...@@ -558,7 +558,6 @@ source_set("common") { ...@@ -558,7 +558,6 @@ source_set("common") {
"//components/cdm/renderer", "//components/cdm/renderer",
"//components/crash/content/app", "//components/crash/content/app",
"//components/crash/content/browser", "//components/crash/content/browser",
"//components/data_reduction_proxy/core/browser",
"//components/devtools_discovery", "//components/devtools_discovery",
"//components/metrics", "//components/metrics",
"//components/metrics:gpu", "//components/metrics:gpu",
...@@ -623,7 +622,6 @@ android_library("android_webview_java") { ...@@ -623,7 +622,6 @@ android_library("android_webview_java") {
"java/src/org/chromium/android_webview/AwContentsLifecycleNotifier.java", "java/src/org/chromium/android_webview/AwContentsLifecycleNotifier.java",
"java/src/org/chromium/android_webview/AwContentsStatics.java", "java/src/org/chromium/android_webview/AwContentsStatics.java",
"java/src/org/chromium/android_webview/AwCookieManager.java", "java/src/org/chromium/android_webview/AwCookieManager.java",
"java/src/org/chromium/android_webview/AwDataReductionProxyManager.java",
"java/src/org/chromium/android_webview/AwDebug.java", "java/src/org/chromium/android_webview/AwDebug.java",
"java/src/org/chromium/android_webview/AwDevToolsServer.java", "java/src/org/chromium/android_webview/AwDevToolsServer.java",
"java/src/org/chromium/android_webview/AwFormDatabase.java", "java/src/org/chromium/android_webview/AwFormDatabase.java",
......
...@@ -7,7 +7,6 @@ include_rules = [ ...@@ -7,7 +7,6 @@ include_rules = [
# lib is the top-level target, and must remain a leaf in the dependency tree. # lib is the top-level target, and must remain a leaf in the dependency tree.
"-android_webview/lib", "-android_webview/lib",
"+components/data_reduction_proxy",
"+components/devtools_discovery", "+components/devtools_discovery",
"+components/metrics", "+components/metrics",
"+components/prefs", "+components/prefs",
......
...@@ -229,7 +229,6 @@ ...@@ -229,7 +229,6 @@
'../components/components.gyp:cdm_renderer', '../components/components.gyp:cdm_renderer',
'../components/components.gyp:component_metrics_proto', '../components/components.gyp:component_metrics_proto',
'../components/components.gyp:crash_component', '../components/components.gyp:crash_component',
'../components/components.gyp:data_reduction_proxy_core_browser',
'../components/components.gyp:devtools_discovery', '../components/components.gyp:devtools_discovery',
'../components/components.gyp:metrics', '../components/components.gyp:metrics',
'../components/components.gyp:metrics_gpu', '../components/components.gyp:metrics_gpu',
......
...@@ -70,10 +70,6 @@ ...@@ -70,10 +70,6 @@
} }
# Accessed via reflection but not present in all builds # Accessed via reflection but not present in all builds
-keep class com.android.webview.chromium.Drp {
public java.lang.String KEY;
}
-dontnote com.android.webview.chromium.Drp
-keep class com.android.webview.chromium.PlatformServiceBridgeGoogle { -keep class com.android.webview.chromium.PlatformServiceBridgeGoogle {
void setMetricsSettingListener(...); void setMetricsSettingListener(...);
PlatformServiceBridgeGoogle(...); PlatformServiceBridgeGoogle(...);
......
...@@ -14,7 +14,6 @@ include_rules = [ ...@@ -14,7 +14,6 @@ include_rules = [
"+components/autofill/core/common", "+components/autofill/core/common",
"+components/cdm/browser", "+components/cdm/browser",
"+components/crash/content/browser", "+components/crash/content/browser",
"+components/data_reduction_proxy/core/browser",
"+components/navigation_interception", "+components/navigation_interception",
"+components/network_session_configurator/switches.h", "+components/network_session_configurator/switches.h",
"+components/policy/core/browser", "+components/policy/core/browser",
......
...@@ -19,13 +19,6 @@ ...@@ -19,13 +19,6 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/path_service.h" #include "base/path_service.h"
#include "components/autofill/core/common/autofill_pref_names.h" #include "components/autofill/core/common/autofill_pref_names.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_compression_stats.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_prefs.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h"
#include "components/data_reduction_proxy/core/browser/data_store.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
#include "components/metrics/metrics_service.h" #include "components/metrics/metrics_service.h"
#include "components/policy/core/browser/browser_policy_connector_base.h" #include "components/policy/core/browser/browser_policy_connector_base.h"
#include "components/policy/core/browser/configuration_policy_pref_store.h" #include "components/policy/core/browser/configuration_policy_pref_store.h"
...@@ -62,8 +55,6 @@ const char kAuthServerWhitelist[] = "auth.server_whitelist"; ...@@ -62,8 +55,6 @@ const char kAuthServerWhitelist[] = "auth.server_whitelist";
} // namespace prefs } // namespace prefs
namespace { namespace {
// Name of the preference that governs enabling the Data Reduction Proxy.
const char kDataReductionProxyEnabled[] = "data_reduction_proxy.enabled";
// Shows notifications which correspond to PersistentPrefStore's reading errors. // Shows notifications which correspond to PersistentPrefStore's reading errors.
void HandleReadError(PersistentPrefStore::PrefReadError error) { void HandleReadError(PersistentPrefStore::PrefReadError error) {
...@@ -116,9 +107,6 @@ policy::URLBlacklistManager* CreateURLBlackListManager( ...@@ -116,9 +107,6 @@ policy::URLBlacklistManager* CreateURLBlackListManager(
} // namespace } // namespace
// Data reduction proxy is disabled by default.
bool AwBrowserContext::data_reduction_proxy_enabled_ = false;
// Delete the legacy cache dir (in the app data dir) in 10 seconds after init. // Delete the legacy cache dir (in the app data dir) in 10 seconds after init.
int AwBrowserContext::legacy_cache_removal_delay_ms_ = 10000; int AwBrowserContext::legacy_cache_removal_delay_ms_ = 10000;
...@@ -155,26 +143,6 @@ AwBrowserContext* AwBrowserContext::FromWebContents( ...@@ -155,26 +143,6 @@ AwBrowserContext* AwBrowserContext::FromWebContents(
return static_cast<AwBrowserContext*>(web_contents->GetBrowserContext()); return static_cast<AwBrowserContext*>(web_contents->GetBrowserContext());
} }
// static
void AwBrowserContext::SetDataReductionProxyEnabled(bool enabled) {
// Cache the setting value. It is possible that data reduction proxy is
// not created yet.
data_reduction_proxy_enabled_ = enabled;
AwBrowserContext* context = AwBrowserContext::GetDefault();
// Can't enable Data reduction proxy if user pref service is not ready.
if (context == NULL || context->user_pref_service_.get() == NULL)
return;
data_reduction_proxy::DataReductionProxySettings* proxy_settings =
context->GetDataReductionProxySettings();
if (proxy_settings == NULL)
return;
// At this point, context->PreMainMessageLoopRun() has run, so
// context->data_reduction_proxy_io_data() is valid.
DCHECK(context->GetDataReductionProxyIOData());
context->CreateDataReductionProxyStatisticsIfNecessary();
proxy_settings->SetDataReductionProxyEnabled(data_reduction_proxy_enabled_);
}
// static // static
void AwBrowserContext::SetLegacyCacheRemovalDelayForTest(int delay_ms) { void AwBrowserContext::SetLegacyCacheRemovalDelayForTest(int delay_ms) {
legacy_cache_removal_delay_ms_ = delay_ms; legacy_cache_removal_delay_ms_ = delay_ms;
...@@ -205,34 +173,11 @@ void AwBrowserContext::PreMainMessageLoopRun() { ...@@ -205,34 +173,11 @@ void AwBrowserContext::PreMainMessageLoopRun() {
url_request_context_getter_ = new AwURLRequestContextGetter( url_request_context_getter_ = new AwURLRequestContextGetter(
cache_path, CreateProxyConfigService(), user_pref_service_.get()); cache_path, CreateProxyConfigService(), user_pref_service_.get());
data_reduction_proxy_io_data_.reset(
new data_reduction_proxy::DataReductionProxyIOData(
data_reduction_proxy::Client::WEBVIEW_ANDROID,
data_reduction_proxy::DataReductionProxyParams::kAllowed,
url_request_context_getter_->GetNetLog(),
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO),
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
false /* enable */,
GetUserAgent()));
data_reduction_proxy_settings_.reset(
new data_reduction_proxy::DataReductionProxySettings());
std::unique_ptr<data_reduction_proxy::DataStore> store(
new data_reduction_proxy::DataStore());
base::SequencedWorkerPool* pool = BrowserThread::GetBlockingPool(); base::SequencedWorkerPool* pool = BrowserThread::GetBlockingPool();
scoped_refptr<base::SequencedTaskRunner> db_task_runner = scoped_refptr<base::SequencedTaskRunner> db_task_runner =
pool->GetSequencedTaskRunnerWithShutdownBehavior( pool->GetSequencedTaskRunnerWithShutdownBehavior(
pool->GetSequenceToken(), pool->GetSequenceToken(),
base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
data_reduction_proxy_service_.reset(
new data_reduction_proxy::DataReductionProxyService(
data_reduction_proxy_settings_.get(), nullptr,
GetAwURLRequestContext(), std::move(store),
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO),
db_task_runner, base::TimeDelta()));
data_reduction_proxy_io_data_->SetDataReductionProxyService(
data_reduction_proxy_service_->GetWeakPtr());
visitedlink_master_.reset( visitedlink_master_.reset(
new visitedlink::VisitedLinkMaster(this, this, false)); new visitedlink::VisitedLinkMaster(this, this, false));
visitedlink_master_->Init(); visitedlink_master_->Init();
...@@ -240,16 +185,8 @@ void AwBrowserContext::PreMainMessageLoopRun() { ...@@ -240,16 +185,8 @@ void AwBrowserContext::PreMainMessageLoopRun() {
form_database_service_.reset( form_database_service_.reset(
new AwFormDatabaseService(context_storage_path_)); new AwFormDatabaseService(context_storage_path_));
// Ensure the storage partition is initialized in time for DataReductionProxy.
EnsureResourceContextInitialized(this); EnsureResourceContextInitialized(this);
// TODO(dgn) lazy init, see http://crbug.com/521542
data_reduction_proxy_settings_->InitDataReductionProxySettings(
kDataReductionProxyEnabled, user_pref_service_.get(),
data_reduction_proxy_io_data_.get(),
std::move(data_reduction_proxy_service_));
data_reduction_proxy_settings_->MaybeActivateDataReductionProxy(true);
blacklist_manager_.reset(CreateURLBlackListManager(user_pref_service_.get())); blacklist_manager_.reset(CreateURLBlackListManager(user_pref_service_.get()));
// UMA uses randomly-generated GUIDs (globally unique identifiers) to // UMA uses randomly-generated GUIDs (globally unique identifiers) to
...@@ -281,16 +218,6 @@ AwFormDatabaseService* AwBrowserContext::GetFormDatabaseService() { ...@@ -281,16 +218,6 @@ AwFormDatabaseService* AwBrowserContext::GetFormDatabaseService() {
return form_database_service_.get(); return form_database_service_.get();
} }
data_reduction_proxy::DataReductionProxySettings*
AwBrowserContext::GetDataReductionProxySettings() {
return data_reduction_proxy_settings_.get();
}
data_reduction_proxy::DataReductionProxyIOData*
AwBrowserContext::GetDataReductionProxyIOData() {
return data_reduction_proxy_io_data_.get();
}
AwURLRequestContextGetter* AwBrowserContext::GetAwURLRequestContext() { AwURLRequestContextGetter* AwBrowserContext::GetAwURLRequestContext() {
return url_request_context_getter_.get(); return url_request_context_getter_.get();
} }
...@@ -311,8 +238,6 @@ void AwBrowserContext::InitUserPrefService() { ...@@ -311,8 +238,6 @@ void AwBrowserContext::InitUserPrefService() {
// the manager_delegate. We don't use the rest of Autofill, which is why it is // the manager_delegate. We don't use the rest of Autofill, which is why it is
// hardcoded as disabled here. // hardcoded as disabled here.
pref_registry->RegisterBooleanPref(autofill::prefs::kAutofillEnabled, false); pref_registry->RegisterBooleanPref(autofill::prefs::kAutofillEnabled, false);
pref_registry->RegisterBooleanPref(kDataReductionProxyEnabled, false);
data_reduction_proxy::RegisterSimpleProfilePrefs(pref_registry);
policy::URLBlacklistManager::RegisterProfilePrefs(pref_registry); policy::URLBlacklistManager::RegisterProfilePrefs(pref_registry);
pref_registry->RegisterStringPref(prefs::kAuthServerWhitelist, std::string()); pref_registry->RegisterStringPref(prefs::kAuthServerWhitelist, std::string());
...@@ -446,21 +371,4 @@ void AwBrowserContext::RebuildTable( ...@@ -446,21 +371,4 @@ void AwBrowserContext::RebuildTable(
enumerator->OnComplete(true); enumerator->OnComplete(true);
} }
void AwBrowserContext::CreateDataReductionProxyStatisticsIfNecessary() {
DCHECK(user_pref_service_.get());
DCHECK(GetDataReductionProxySettings());
data_reduction_proxy::DataReductionProxyService*
data_reduction_proxy_service =
GetDataReductionProxySettings()->data_reduction_proxy_service();
DCHECK(data_reduction_proxy_service);
if (data_reduction_proxy_service->compression_stats())
return;
// We don't care about commit_delay for now. It is just a dummy value.
base::TimeDelta commit_delay = base::TimeDelta::FromMinutes(60);
data_reduction_proxy_service->EnableCompressionStatisticsLogging(
user_pref_service_.get(),
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
commit_delay);
}
} // namespace android_webview } // namespace android_webview
...@@ -30,13 +30,6 @@ class SSLHostStateDelegate; ...@@ -30,13 +30,6 @@ class SSLHostStateDelegate;
class WebContents; class WebContents;
} }
namespace data_reduction_proxy {
class DataReductionProxyConfigurator;
class DataReductionProxyIOData;
class DataReductionProxyService;
class DataReductionProxySettings;
}
namespace policy { namespace policy {
class URLBlacklistManager; class URLBlacklistManager;
class BrowserPolicyConnectorBase; class BrowserPolicyConnectorBase;
...@@ -77,7 +70,6 @@ class AwBrowserContext : public content::BrowserContext, ...@@ -77,7 +70,6 @@ class AwBrowserContext : public content::BrowserContext,
static AwBrowserContext* FromWebContents( static AwBrowserContext* FromWebContents(
content::WebContents* web_contents); content::WebContents* web_contents);
static void SetDataReductionProxyEnabled(bool enabled);
static void SetLegacyCacheRemovalDelayForTest(int delay_ms); static void SetLegacyCacheRemovalDelayForTest(int delay_ms);
// Maps to BrowserMainParts::PreMainMessageLoopRun. // Maps to BrowserMainParts::PreMainMessageLoopRun.
...@@ -88,10 +80,6 @@ class AwBrowserContext : public content::BrowserContext, ...@@ -88,10 +80,6 @@ class AwBrowserContext : public content::BrowserContext,
AwQuotaManagerBridge* GetQuotaManagerBridge(); AwQuotaManagerBridge* GetQuotaManagerBridge();
AwFormDatabaseService* GetFormDatabaseService(); AwFormDatabaseService* GetFormDatabaseService();
data_reduction_proxy::DataReductionProxySettings*
GetDataReductionProxySettings();
data_reduction_proxy::DataReductionProxyIOData*
GetDataReductionProxyIOData();
AwURLRequestContextGetter* GetAwURLRequestContext(); AwURLRequestContextGetter* GetAwURLRequestContext();
AwMessagePortService* GetMessagePortService(); AwMessagePortService* GetMessagePortService();
...@@ -128,8 +116,6 @@ class AwBrowserContext : public content::BrowserContext, ...@@ -128,8 +116,6 @@ class AwBrowserContext : public content::BrowserContext,
private: private:
void InitUserPrefService(); void InitUserPrefService();
void CreateDataReductionProxyStatisticsIfNecessary();
static bool data_reduction_proxy_enabled_;
// Delay, in milliseconds, before removing the legacy cache dir. // Delay, in milliseconds, before removing the legacy cache dir.
// This is non-const for testing purposes. // This is non-const for testing purposes.
...@@ -153,13 +139,7 @@ class AwBrowserContext : public content::BrowserContext, ...@@ -153,13 +139,7 @@ class AwBrowserContext : public content::BrowserContext,
std::unique_ptr<policy::BrowserPolicyConnectorBase> browser_policy_connector_; std::unique_ptr<policy::BrowserPolicyConnectorBase> browser_policy_connector_;
std::unique_ptr<policy::URLBlacklistManager> blacklist_manager_; std::unique_ptr<policy::URLBlacklistManager> blacklist_manager_;
std::unique_ptr<data_reduction_proxy::DataReductionProxySettings>
data_reduction_proxy_settings_;
std::unique_ptr<AwSSLHostStateDelegate> ssl_host_state_delegate_; std::unique_ptr<AwSSLHostStateDelegate> ssl_host_state_delegate_;
std::unique_ptr<data_reduction_proxy::DataReductionProxyIOData>
data_reduction_proxy_io_data_;
std::unique_ptr<data_reduction_proxy::DataReductionProxyService>
data_reduction_proxy_service_;
std::unique_ptr<content::PermissionManager> permission_manager_; std::unique_ptr<content::PermissionManager> permission_manager_;
DISALLOW_COPY_AND_ASSIGN(AwBrowserContext); DISALLOW_COPY_AND_ASSIGN(AwBrowserContext);
......
...@@ -24,9 +24,6 @@ ...@@ -24,9 +24,6 @@
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/threading/sequenced_worker_pool.h" #include "base/threading/sequenced_worker_pool.h"
#include "base/threading/worker_pool.h" #include "base/threading/worker_pool.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.h"
#include "components/network_session_configurator/switches.h" #include "components/network_session_configurator/switches.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
...@@ -205,16 +202,11 @@ void AwURLRequestContextGetter::InitializeURLRequestContext() { ...@@ -205,16 +202,11 @@ void AwURLRequestContextGetter::InitializeURLRequestContext() {
DCHECK(!url_request_context_); DCHECK(!url_request_context_);
net::URLRequestContextBuilder builder; net::URLRequestContextBuilder builder;
std::unique_ptr<AwNetworkDelegate> aw_network_delegate(
new AwNetworkDelegate());
AwBrowserContext* browser_context = AwBrowserContext::GetDefault(); AwBrowserContext* browser_context = AwBrowserContext::GetDefault();
DCHECK(browser_context); DCHECK(browser_context);
builder.set_network_delegate( builder.set_network_delegate(base::WrapUnique(new AwNetworkDelegate()));
browser_context->GetDataReductionProxyIOData()->CreateNetworkDelegate(
std::move(aw_network_delegate),
false /* No UMA is produced to track bypasses. */));
#if !defined(DISABLE_FTP_SUPPORT) #if !defined(DISABLE_FTP_SUPPORT)
builder.set_ftp_enabled(false); // Android WebView does not support ftp yet. builder.set_ftp_enabled(false); // Android WebView does not support ftp yet.
#endif #endif
...@@ -271,9 +263,6 @@ void AwURLRequestContextGetter::InitializeURLRequestContext() { ...@@ -271,9 +263,6 @@ void AwURLRequestContextGetter::InitializeURLRequestContext() {
job_factory_ = job_factory_ =
CreateJobFactory(&protocol_handlers_, std::move(request_interceptors_)); CreateJobFactory(&protocol_handlers_, std::move(request_interceptors_));
job_factory_.reset(new net::URLRequestInterceptingJobFactory(
std::move(job_factory_),
browser_context->GetDataReductionProxyIOData()->CreateInterceptor()));
url_request_context_->set_job_factory(job_factory_.get()); url_request_context_->set_job_factory(job_factory_.get());
url_request_context_->set_http_user_agent_settings( url_request_context_->set_http_user_agent_settings(
http_user_agent_settings_.get()); http_user_agent_settings_.get());
...@@ -303,12 +292,6 @@ net::NetLog* AwURLRequestContextGetter::GetNetLog() { ...@@ -303,12 +292,6 @@ net::NetLog* AwURLRequestContextGetter::GetNetLog() {
return net_log_.get(); return net_log_.get();
} }
void AwURLRequestContextGetter::SetKeyOnIO(const std::string& key) {
DCHECK(AwBrowserContext::GetDefault()->GetDataReductionProxyIOData());
AwBrowserContext::GetDefault()->GetDataReductionProxyIOData()->
request_options()->SetKeyOnIO(key);
}
std::unique_ptr<net::HttpAuthHandlerFactory> std::unique_ptr<net::HttpAuthHandlerFactory>
AwURLRequestContextGetter::CreateAuthHandlerFactory( AwURLRequestContextGetter::CreateAuthHandlerFactory(
net::HostResolver* resolver) { net::HostResolver* resolver) {
......
...@@ -49,10 +49,6 @@ class AwURLRequestContextGetter : public net::URLRequestContextGetter { ...@@ -49,10 +49,6 @@ class AwURLRequestContextGetter : public net::URLRequestContextGetter {
// threads (UI and IO). // threads (UI and IO).
net::NetLog* GetNetLog(); net::NetLog* GetNetLog();
// This should be called before the network stack is ever used. It can be
// called again afterwards if the key updates.
void SetKeyOnIO(const std::string& key);
private: private:
friend class AwBrowserContext; friend class AwBrowserContext;
~AwURLRequestContextGetter() override; ~AwURLRequestContextGetter() override;
......
...@@ -35,7 +35,6 @@ import org.chromium.android_webview.AwContents; ...@@ -35,7 +35,6 @@ import org.chromium.android_webview.AwContents;
import org.chromium.android_webview.AwContentsClient; import org.chromium.android_webview.AwContentsClient;
import org.chromium.android_webview.AwContentsStatics; import org.chromium.android_webview.AwContentsStatics;
import org.chromium.android_webview.AwCookieManager; import org.chromium.android_webview.AwCookieManager;
import org.chromium.android_webview.AwDataReductionProxyManager;
import org.chromium.android_webview.AwDevToolsServer; import org.chromium.android_webview.AwDevToolsServer;
import org.chromium.android_webview.AwNetworkChangeNotifierRegistrationPolicy; import org.chromium.android_webview.AwNetworkChangeNotifierRegistrationPolicy;
import org.chromium.android_webview.AwQuotaManagerBridge; import org.chromium.android_webview.AwQuotaManagerBridge;
...@@ -93,7 +92,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { ...@@ -93,7 +92,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
// Read/write protected by mLock. // Read/write protected by mLock.
private boolean mStarted; private boolean mStarted;
private AwDataReductionProxyManager mProxyManager;
private SharedPreferences mWebViewPrefs; private SharedPreferences mWebViewPrefs;
private WebViewDelegate mWebViewDelegate; private WebViewDelegate mWebViewDelegate;
...@@ -311,10 +309,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { ...@@ -311,10 +309,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
} }
mWebViewsToStart.clear(); mWebViewsToStart.clear();
mWebViewsToStart = null; mWebViewsToStart = null;
// Start listening for data reduction proxy setting changes.
mProxyManager = new AwDataReductionProxyManager();
mProxyManager.start(ContextUtils.getApplicationContext());
} }
boolean hasStarted() { boolean hasStarted() {
......
...@@ -47,22 +47,6 @@ public class AwContentsStatics { ...@@ -47,22 +47,6 @@ public class AwContentsStatics {
callback.run(); callback.run();
} }
/**
* Set Data Reduction Proxy key for authentication.
*/
public static void setDataReductionProxyKey(String key) {
ThreadUtils.assertOnUiThread();
nativeSetDataReductionProxyKey(key);
}
/*
* Enable or disable data reduction proxy.
*/
public static void setDataReductionProxyEnabled(boolean enabled) {
ThreadUtils.assertOnUiThread();
nativeSetDataReductionProxyEnabled(enabled);
}
public static String getUnreachableWebDataUrl() { public static String getUnreachableWebDataUrl() {
// Note that this method may be called from both IO and UI threads, // Note that this method may be called from both IO and UI threads,
// but as it only retrieves a value of a constant from native, even if // but as it only retrieves a value of a constant from native, even if
...@@ -99,8 +83,6 @@ public class AwContentsStatics { ...@@ -99,8 +83,6 @@ public class AwContentsStatics {
// Native methods // Native methods
//-------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------
private static native void nativeClearClientCertPreferences(Runnable callback); private static native void nativeClearClientCertPreferences(Runnable callback);
private static native void nativeSetDataReductionProxyKey(String key);
private static native void nativeSetDataReductionProxyEnabled(boolean enabled);
private static native String nativeGetUnreachableWebDataUrl(); private static native String nativeGetUnreachableWebDataUrl();
private static native void nativeSetLegacyCacheRemovalDelayForTest(long timeoutMs); private static native void nativeSetLegacyCacheRemovalDelayForTest(long timeoutMs);
private static native String nativeGetProductVersion(); private static native String nativeGetProductVersion();
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.android_webview;
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.database.SQLException;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Handler;
import org.chromium.base.CommandLine;
import org.chromium.base.Log;
import org.chromium.base.ThreadUtils;
import java.lang.reflect.Field;
/**
* Controls data reduction proxy.
*/
public final class AwDataReductionProxyManager {
// The setting Uri. Used when querying GoogleSettings.
// TODO: This GoogleSettings Uri does not exist yet!
private static final Uri CONTENT_URI = Uri.parse("content://com.google.settings/partner");
// Setting name for allowing data reduction proxy. Used when querying GoogleSettings.
// Setting type: int ( 0 = disallow, 1 = allow )
private static final String WEBVIEW_DATA_REDUCTION_PROXY = "use_webview_data_reduction_proxy";
private static final String DRP_CLASS = "com.android.webview.chromium.Drp";
private static final String TAG = "DRP";
// This is the same as Chromium data_reduction_proxy::switches::kEnableDataReductionProxy.
private static final String ENABLE_DATA_REDUCTION_PROXY = "enable-spdy-proxy-auth";
// This is the same as Chromium data_reduction_proxy::switches::kDataReductionProxyKey.
private static final String DATA_REDUCTION_PROXY_KEY = "spdy-proxy-auth-value";
private ContentObserver mProxySettingObserver;
public AwDataReductionProxyManager() {}
public void start(final Context context) {
// This is the DRP key embedded in WebView apk.
final String embeddedKey = readKey();
// Developers could test DRP by passing ENABLE_DATA_REDUCTION_PROXY and (optionally)
// DATA_REDUCTION_PROXY_KEY to the commandline switches. In this case, we will try to
// initialize DRP from commandline. And ignore user's preference. If
// DATA_REDUCTION_PROXY_KEY is specified in commandline, use it. Otherwise, use the key
// embedded in WebView apk.
CommandLine cl = CommandLine.getInstance();
if (cl.hasSwitch(ENABLE_DATA_REDUCTION_PROXY)) {
String key = cl.getSwitchValue(DATA_REDUCTION_PROXY_KEY, embeddedKey);
if (key == null || key.isEmpty()) {
return;
}
// Now we will enable DRP because we've got a commandline switch to enable it.
// We won't listen to Google Settings preference change because commandline switches
// trump that.
AwContentsStatics.setDataReductionProxyKey(key);
AwContentsStatics.setDataReductionProxyEnabled(true);
return;
}
// Now, there is no commandline switches to enable DRP, and reading the
// DRP key from WebView apk failed. Just return and leave DRP disabled.
if (embeddedKey == null || embeddedKey.isEmpty()) {
return;
}
applyDataReductionProxySettingsAsync(context, embeddedKey);
ContentResolver resolver = context.getContentResolver();
mProxySettingObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange, Uri uri) {
applyDataReductionProxySettingsAsync(context, embeddedKey);
}
};
resolver.registerContentObserver(
Uri.withAppendedPath(CONTENT_URI, WEBVIEW_DATA_REDUCTION_PROXY), false,
mProxySettingObserver);
}
private String readKey() {
try {
Class<?> cls = Class.forName(DRP_CLASS);
Field f = cls.getField("KEY");
return (String) f.get(null);
} catch (ClassNotFoundException ex) {
// Class not found is a normal case, simply log.
Log.i(TAG, "No DRP key due to exception:" + ex);
} catch (NoSuchFieldException ex) {
Log.e(TAG, "No DRP key due to exception:" + ex);
} catch (SecurityException ex) {
Log.e(TAG, "No DRP key due to exception:" + ex);
} catch (IllegalArgumentException ex) {
Log.e(TAG, "No DRP key due to exception:" + ex);
} catch (IllegalAccessException ex) {
Log.e(TAG, "No DRP key due to exception:" + ex);
} catch (NullPointerException ex) {
Log.e(TAG, "No DRP key due to exception:" + ex);
}
return null;
}
private static void applyDataReductionProxySettingsAsync(
final Context context, final String key) {
AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
@Override
public void run() {
final boolean enabled = isDataReductionProxyEnabled(context);
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public void run() {
if (enabled) {
// Set the data reduction proxy key.
AwContentsStatics.setDataReductionProxyKey(key);
}
AwContentsStatics.setDataReductionProxyEnabled(enabled);
}
});
}
});
}
private static boolean isDataReductionProxyEnabled(Context context) {
return getProxySetting(context.getContentResolver(), WEBVIEW_DATA_REDUCTION_PROXY) != 0;
}
// Read query setting from GoogleSettings.
private static int getProxySetting(ContentResolver resolver, String name) {
String value = null;
Cursor c = null;
try {
c = resolver.query(
CONTENT_URI, new String[] {"value"}, "name=?", new String[] {name}, null);
if (c != null && c.moveToNext()) value = c.getString(0);
} catch (SQLException e) {
// SQL error: return null, but don't cache it.
Log.e(TAG, "Can't get key " + name + " from " + CONTENT_URI, e);
} finally {
if (c != null) c.close();
}
int enabled = 0;
try {
if (value != null) {
enabled = Integer.parseInt(value);
}
} catch (NumberFormatException e) {
Log.e(TAG, "cannot parse" + value, e);
}
return enabled;
}
}
...@@ -11,7 +11,6 @@ include_rules = [ ...@@ -11,7 +11,6 @@ include_rules = [
"+components/autofill/content/browser", "+components/autofill/content/browser",
"+components/autofill/core/browser", "+components/autofill/core/browser",
"+components/autofill/core/common", "+components/autofill/core/common",
"+components/data_reduction_proxy/core/browser",
"+components/devtools_http_handler", "+components/devtools_http_handler",
"+components/external_video_surface", "+components/external_video_surface",
"+components/navigation_interception", "+components/navigation_interception",
......
...@@ -56,7 +56,6 @@ ...@@ -56,7 +56,6 @@
#include "components/autofill/content/browser/content_autofill_driver_factory.h" #include "components/autofill/content/browser/content_autofill_driver_factory.h"
#include "components/autofill/core/browser/autofill_manager.h" #include "components/autofill/core/browser/autofill_manager.h"
#include "components/autofill/core/browser/webdata/autofill_webdata_service.h" #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h"
#include "components/navigation_interception/intercept_navigation_delegate.h" #include "components/navigation_interception/intercept_navigation_delegate.h"
#include "content/public/browser/android/content_view_core.h" #include "content/public/browser/android/content_view_core.h"
#include "content/public/browser/android/synchronous_compositor.h" #include "content/public/browser/android/synchronous_compositor.h"
...@@ -94,7 +93,6 @@ using base::android::ConvertUTF8ToJavaString; ...@@ -94,7 +93,6 @@ using base::android::ConvertUTF8ToJavaString;
using base::android::JavaRef; using base::android::JavaRef;
using base::android::ScopedJavaGlobalRef; using base::android::ScopedJavaGlobalRef;
using base::android::ScopedJavaLocalRef; using base::android::ScopedJavaLocalRef;
using data_reduction_proxy::DataReductionProxySettings;
using navigation_interception::InterceptNavigationDelegate; using navigation_interception::InterceptNavigationDelegate;
using content::BrowserThread; using content::BrowserThread;
using content::ContentViewCore; using content::ContentViewCore;
......
...@@ -53,37 +53,6 @@ void ClearClientCertPreferences(JNIEnv* env, ...@@ -53,37 +53,6 @@ void ClearClientCertPreferences(JNIEnv* env,
base::Bind(&ClientCertificatesCleared, base::Owned(j_callback))); base::Bind(&ClientCertificatesCleared, base::Owned(j_callback)));
} }
// static
void SetDataReductionProxyKey(JNIEnv* env,
const JavaParamRef<jclass>&,
const JavaParamRef<jstring>& key) {
AwBrowserContext* browser_context = AwBrowserContext::GetDefault();
DCHECK(browser_context);
// The following call to GetRequestContext() could possibly be the first such
// call, which means AwURLRequestContextGetter::InitializeURLRequestContext
// will be called on IO thread as a result.
AwURLRequestContextGetter* aw_url_request_context_getter =
static_cast<AwURLRequestContextGetter*>(
content::BrowserContext::GetDefaultStoragePartition(browser_context)->
GetURLRequestContext());
DCHECK(aw_url_request_context_getter);
// This PostTask has to be called after GetRequestContext, because SetKeyOnIO
// needs a valid DataReductionProxyRequestOptions object.
BrowserThread::PostTask(BrowserThread::IO,
FROM_HERE,
base::Bind(&AwURLRequestContextGetter::SetKeyOnIO,
aw_url_request_context_getter,
ConvertJavaStringToUTF8(env, key)));
}
// static
void SetDataReductionProxyEnabled(JNIEnv* env,
const JavaParamRef<jclass>&,
jboolean enabled) {
AwBrowserContext::SetDataReductionProxyEnabled(enabled);
}
// static // static
ScopedJavaLocalRef<jstring> GetUnreachableWebDataUrl( ScopedJavaLocalRef<jstring> GetUnreachableWebDataUrl(
JNIEnv* env, JNIEnv* env,
......
...@@ -33,7 +33,6 @@ import org.chromium.android_webview.AwBrowserContext; ...@@ -33,7 +33,6 @@ import org.chromium.android_webview.AwBrowserContext;
import org.chromium.android_webview.AwBrowserProcess; import org.chromium.android_webview.AwBrowserProcess;
import org.chromium.android_webview.AwContents; import org.chromium.android_webview.AwContents;
import org.chromium.android_webview.AwContentsClient; import org.chromium.android_webview.AwContentsClient;
import org.chromium.android_webview.AwContentsStatics;
import org.chromium.android_webview.AwDevToolsServer; import org.chromium.android_webview.AwDevToolsServer;
import org.chromium.android_webview.AwSettings; import org.chromium.android_webview.AwSettings;
import org.chromium.android_webview.test.AwTestContainerView; import org.chromium.android_webview.test.AwTestContainerView;
...@@ -66,11 +65,6 @@ public class AwShellActivity extends Activity { ...@@ -66,11 +65,6 @@ public class AwShellActivity extends Activity {
private ImageButton mPrevButton; private ImageButton mPrevButton;
private ImageButton mNextButton; private ImageButton mNextButton;
// This is the same as data_reduction_proxy::switches::kEnableDataReductionProxy.
private static final String ENABLE_DATA_REDUCTION_PROXY = "enable-spdy-proxy-auth";
// This is the same as data_reduction_proxy::switches::kDataReductionProxyKey.
private static final String DATA_REDUCTION_PROXY_KEY = "spdy-proxy-auth-value";
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
...@@ -111,14 +105,6 @@ public class AwShellActivity extends Activity { ...@@ -111,14 +105,6 @@ public class AwShellActivity extends Activity {
mAwTestContainerView.getAwContents().loadUrl(startupUrl); mAwTestContainerView.getAwContents().loadUrl(startupUrl);
AwContents.setShouldDownloadFavicons(); AwContents.setShouldDownloadFavicons();
mUrlTextView.setText(startupUrl); mUrlTextView.setText(startupUrl);
if (CommandLine.getInstance().hasSwitch(ENABLE_DATA_REDUCTION_PROXY)) {
String key = CommandLine.getInstance().getSwitchValue(DATA_REDUCTION_PROXY_KEY);
if (key != null && !key.isEmpty()) {
AwContentsStatics.setDataReductionProxyKey(key);
AwContentsStatics.setDataReductionProxyEnabled(true);
}
}
} }
@Override @Override
......
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