Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Unified Diff: components/cronet/android/url_request_context_adapter.cc

Issue 624443003: Setup ProxyConfigServiceAndroid in Cronet (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/cronet/android/url_request_context_adapter.cc
diff --git a/components/cronet/android/url_request_context_adapter.cc b/components/cronet/android/url_request_context_adapter.cc
index 026e39d0b1524e30d1fb4f8fc5cd31232514cd14..25d72bccd4bed52e63cf8608a1bf4d18c5c11744 100644
--- a/components/cronet/android/url_request_context_adapter.cc
+++ b/components/cronet/android/url_request_context_adapter.cc
@@ -6,6 +6,7 @@
#include "base/bind.h"
#include "base/files/file_util.h"
+#include "base/message_loop/message_loop.h"
#include "base/single_thread_task_runner.h"
#include "components/cronet/url_request_context_config.h"
#include "net/base/net_errors.h"
@@ -14,7 +15,7 @@
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_network_layer.h"
#include "net/http/http_server_properties.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy/proxy_config_service.h"
#include "net/proxy/proxy_service.h"
#include "net/ssl/ssl_config_service_defaults.h"
#include "net/url_request/static_http_user_agent_settings.h"
@@ -108,6 +109,9 @@ class BasicNetworkDelegate : public net::NetworkDelegate {
DISALLOW_COPY_AND_ASSIGN(BasicNetworkDelegate);
};
+// Android specific UI MessageLoop.
+base::MessageLoop* g_main_message_loop = nullptr;
+
} // namespace
namespace cronet {
@@ -125,12 +129,25 @@ void URLRequestContextAdapter::Initialize(
base::Thread::Options options;
options.message_loop_type = base::MessageLoop::TYPE_IO;
network_thread_->StartWithOptions(options);
+ config_ = config.Pass();
+}
+
+void URLRequestContextAdapter::InitRequestContextOnUIThread() {
+ if (!base::MessageLoop::current()) {
+ DCHECK(!g_main_message_loop);
+ g_main_message_loop = new base::MessageLoopForUI;
+ base::MessageLoopForUI::current()->Start();
+ }
+ net::ProxyConfigService* service =
+ net::ProxyService::CreateSystemProxyConfigService(GetNetworkTaskRunner(),
+ NULL);
+ proxy_config_service_.reset(service);
GetNetworkTaskRunner()->PostTask(
FROM_HERE,
base::Bind(&URLRequestContextAdapter::InitializeURLRequestContext,
mef 2014/10/10 21:20:37 I'd rename this InitRequestContextOnNetworkThread
xunjieli 2014/10/14 19:14:48 Done. Good idea! Thanks!
this,
- Passed(&config)));
+ Passed(&config_)));
}
void URLRequestContextAdapter::InitializeURLRequestContext(
@@ -139,8 +156,7 @@ void URLRequestContextAdapter::InitializeURLRequestContext(
// TODO(mmenke): Add method to have the builder enable SPDY.
net::URLRequestContextBuilder context_builder;
context_builder.set_network_delegate(new BasicNetworkDelegate());
- context_builder.set_proxy_config_service(
- new net::ProxyConfigServiceFixed(net::ProxyConfig()));
+ context_builder.set_proxy_config_service(proxy_config_service_.get());
config->ConfigureURLRequestContextBuilder(&context_builder);
context_.reset(context_builder.Build());

Powered by Google App Engine
This is Rietveld 408576698