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

Unified Diff: chromecast/browser/url_request_context_factory.cc

Issue 2656283002: [Chromecast] Enable QUIC for Chromecast. (Closed)
Patch Set: Created 3 years, 11 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: chromecast/browser/url_request_context_factory.cc
diff --git a/chromecast/browser/url_request_context_factory.cc b/chromecast/browser/url_request_context_factory.cc
index ef726e6dd507f6c9f0611c7b02387bd197f94422..1691517d59b453a94c90080607075cce9df7481c 100644
--- a/chromecast/browser/url_request_context_factory.cc
+++ b/chromecast/browser/url_request_context_factory.cc
@@ -165,8 +165,8 @@ URLRequestContextFactory::URLRequestContextFactory()
system_network_delegate_(CastNetworkDelegate::Create()),
system_dependencies_initialized_(false),
main_dependencies_initialized_(false),
- media_dependencies_initialized_(false) {
-}
+ media_dependencies_initialized_(false),
+ enable_quic_(true) {}
URLRequestContextFactory::~URLRequestContextFactory() {
}
@@ -307,6 +307,7 @@ void URLRequestContextFactory::InitializeMediaContextDependencies(
void URLRequestContextFactory::PopulateNetworkSessionParams(
bool ignore_certificate_errors,
net::HttpNetworkSession::Params* params) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
params->host_resolver = host_resolver_.get();
params->cert_verifier = cert_verifier_.get();
params->channel_id_service = channel_id_service_.get();
@@ -318,6 +319,9 @@ void URLRequestContextFactory::PopulateNetworkSessionParams(
params->http_server_properties = http_server_properties_.get();
params->ignore_certificate_errors = ignore_certificate_errors;
params->proxy_service = proxy_service_.get();
+
+ LOG(INFO) << "Set HttpNetworkSessionParams.enable_quic = " << enable_quic_;
halliwell 2017/01/27 04:32:53 how frequently does this get logged? Just want to
mbjorge 2017/01/27 06:22:20 It'll get logged a max of 3 times, once for each o
+ params->enable_quic = enable_quic_;
}
net::URLRequestContext* URLRequestContextFactory::CreateSystemRequestContext() {
@@ -427,5 +431,47 @@ void URLRequestContextFactory::InitializeNetworkDelegates() {
LOG(INFO) << "Initialized system network delegate.";
}
+void URLRequestContextFactory::DisableQuic() {
+ content::BrowserThread::PostTask(
+ content::BrowserThread::IO, FROM_HERE,
+ base::Bind(&URLRequestContextFactory::DisableQuicOnBrowserIOThread,
+ base::Unretained(this)));
halliwell 2017/01/27 04:32:53 Should this be done with weak ptr, or is there a g
mbjorge 2017/01/27 06:22:20 URLRequestContextFactory is owned by CastContentBr
halliwell 2017/01/27 18:35:35 That's fine, looks good.
+}
+
+void URLRequestContextFactory::DisableQuicOnBrowserIOThread() {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+ if (!enable_quic_)
+ return;
+
+ LOG(INFO) << "Disabled QUIC.";
+
+ // Disable QUIC for any new URLContextGetter that gets created.
halliwell 2017/01/27 04:32:53 this and the next 3 comments don't add value (what
mbjorge 2017/01/27 06:22:20 done
+ enable_quic_ = false;
+
+ // Disable QUIC for the main URLContext.
+ if (main_getter_) {
+ main_getter_->GetURLRequestContext()
+ ->http_transaction_factory()
+ ->GetSession()
+ ->DisableQuic();
+ }
+
+ // Disable QUIC for the system URLContext.
+ if (system_getter_) {
+ system_getter_->GetURLRequestContext()
+ ->http_transaction_factory()
+ ->GetSession()
+ ->DisableQuic();
+ }
+
+ // Disable QUIC for the media URLContext.
+ if (media_getter_) {
+ media_getter_->GetURLRequestContext()
+ ->http_transaction_factory()
+ ->GetSession()
+ ->DisableQuic();
+ }
+}
+
} // namespace shell
} // namespace chromecast

Powered by Google App Engine
This is Rietveld 408576698