| Index: chromecast/browser/cast_content_browser_client.cc
|
| diff --git a/chromecast/browser/cast_content_browser_client.cc b/chromecast/browser/cast_content_browser_client.cc
|
| index 3234a597e1b5f7780aa1ac1b484feabeadba41ab..beae0d379a78ab6c1200ce629caba324ea8991dc 100644
|
| --- a/chromecast/browser/cast_content_browser_client.cc
|
| +++ b/chromecast/browser/cast_content_browser_client.cc
|
| @@ -40,6 +40,7 @@
|
| #include "content/public/common/web_preferences.h"
|
| #include "gin/v8_initializer.h"
|
| #include "net/ssl/ssl_cert_request_info.h"
|
| +#include "net/url_request/url_request_context_getter.h"
|
| #include "ui/gl/gl_switches.h"
|
|
|
| #if defined(OS_ANDROID)
|
| @@ -74,22 +75,43 @@ content::BrowserMainParts* CastContentBrowserClient::CreateBrowserMainParts(
|
|
|
| void CastContentBrowserClient::RenderProcessWillLaunch(
|
| content::RenderProcessHost* host) {
|
| - scoped_refptr<content::BrowserMessageFilter> network_hints_message_filter(
|
| - new network_hints::NetworkHintsMessageFilter(
|
| - url_request_context_factory_->host_resolver()));
|
| - host->AddFilter(network_hints_message_filter.get());
|
| #if !defined(OS_ANDROID)
|
| scoped_refptr<media::CmaMessageFilterHost> cma_message_filter(
|
| new media::CmaMessageFilterHost(host->GetID()));
|
| host->AddFilter(cma_message_filter.get());
|
| #endif // !defined(OS_ANDROID)
|
|
|
| + // Forcibly trigger I/O-thread URLRequestContext initialization before
|
| + // getting HostResolver.
|
| + content::BrowserThread::PostTaskAndReplyWithResult(
|
| + content::BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&net::URLRequestContextGetter::GetURLRequestContext,
|
| + base::Unretained(
|
| + url_request_context_factory_->GetSystemGetter())),
|
| + base::Bind(&CastContentBrowserClient::AddNetworkHintsMessageFilter,
|
| + base::Unretained(this), host->GetID()));
|
| +
|
| auto extra_filters = PlatformGetBrowserMessageFilters();
|
| for (auto const& filter : extra_filters) {
|
| host->AddFilter(filter.get());
|
| }
|
| }
|
|
|
| +void CastContentBrowserClient::AddNetworkHintsMessageFilter(
|
| + int render_process_id, net::URLRequestContext* context) {
|
| + DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| +
|
| + content::RenderProcessHost* host =
|
| + content::RenderProcessHost::FromID(render_process_id);
|
| + if (!host)
|
| + return;
|
| +
|
| + scoped_refptr<content::BrowserMessageFilter> network_hints_message_filter(
|
| + new network_hints::NetworkHintsMessageFilter(
|
| + url_request_context_factory_->host_resolver()));
|
| + host->AddFilter(network_hints_message_filter.get());
|
| +}
|
| +
|
| net::URLRequestContextGetter* CastContentBrowserClient::CreateRequestContext(
|
| content::BrowserContext* browser_context,
|
| content::ProtocolHandlerMap* protocol_handlers,
|
|
|