OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chromecast/browser/cast_content_browser_client.h" | 5 #include "chromecast/browser/cast_content_browser_client.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/base_switches.h" | 9 #include "base/base_switches.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 21 matching lines...) Expand all Loading... | |
32 #include "content/public/browser/certificate_request_result_type.h" | 32 #include "content/public/browser/certificate_request_result_type.h" |
33 #include "content/public/browser/client_certificate_delegate.h" | 33 #include "content/public/browser/client_certificate_delegate.h" |
34 #include "content/public/browser/render_process_host.h" | 34 #include "content/public/browser/render_process_host.h" |
35 #include "content/public/browser/resource_dispatcher_host.h" | 35 #include "content/public/browser/resource_dispatcher_host.h" |
36 #include "content/public/browser/web_contents.h" | 36 #include "content/public/browser/web_contents.h" |
37 #include "content/public/common/content_descriptors.h" | 37 #include "content/public/common/content_descriptors.h" |
38 #include "content/public/common/content_switches.h" | 38 #include "content/public/common/content_switches.h" |
39 #include "content/public/common/url_constants.h" | 39 #include "content/public/common/url_constants.h" |
40 #include "content/public/common/web_preferences.h" | 40 #include "content/public/common/web_preferences.h" |
41 #include "gin/v8_initializer.h" | 41 #include "gin/v8_initializer.h" |
42 #include "media/base/bind_to_current_loop.h" | |
42 #include "net/ssl/ssl_cert_request_info.h" | 43 #include "net/ssl/ssl_cert_request_info.h" |
43 #include "ui/gl/gl_switches.h" | 44 #include "ui/gl/gl_switches.h" |
44 | 45 |
45 #if defined(OS_ANDROID) | 46 #if defined(OS_ANDROID) |
46 #include "chromecast/browser/android/external_video_surface_container_impl.h" | 47 #include "chromecast/browser/android/external_video_surface_container_impl.h" |
47 #endif // defined(OS_ANDROID) | 48 #endif // defined(OS_ANDROID) |
48 | 49 |
49 #if defined(OS_ANDROID) | 50 #if defined(OS_ANDROID) |
50 #include "components/crash/browser/crash_dump_manager_android.h" | 51 #include "components/crash/browser/crash_dump_manager_android.h" |
51 #endif // defined(OS_ANDROID) | 52 #endif // defined(OS_ANDROID) |
(...skipping 15 matching lines...) Expand all Loading... | |
67 } | 68 } |
68 | 69 |
69 content::BrowserMainParts* CastContentBrowserClient::CreateBrowserMainParts( | 70 content::BrowserMainParts* CastContentBrowserClient::CreateBrowserMainParts( |
70 const content::MainFunctionParams& parameters) { | 71 const content::MainFunctionParams& parameters) { |
71 return new CastBrowserMainParts(parameters, | 72 return new CastBrowserMainParts(parameters, |
72 url_request_context_factory_.get()); | 73 url_request_context_factory_.get()); |
73 } | 74 } |
74 | 75 |
75 void CastContentBrowserClient::RenderProcessWillLaunch( | 76 void CastContentBrowserClient::RenderProcessWillLaunch( |
76 content::RenderProcessHost* host) { | 77 content::RenderProcessHost* host) { |
77 scoped_refptr<content::BrowserMessageFilter> network_hints_message_filter( | |
78 new network_hints::NetworkHintsMessageFilter( | |
79 url_request_context_factory_->host_resolver())); | |
80 host->AddFilter(network_hints_message_filter.get()); | |
81 #if !defined(OS_ANDROID) | 78 #if !defined(OS_ANDROID) |
82 scoped_refptr<media::CmaMessageFilterHost> cma_message_filter( | 79 scoped_refptr<media::CmaMessageFilterHost> cma_message_filter( |
83 new media::CmaMessageFilterHost(host->GetID())); | 80 new media::CmaMessageFilterHost(host->GetID())); |
84 host->AddFilter(cma_message_filter.get()); | 81 host->AddFilter(cma_message_filter.get()); |
85 #endif // !defined(OS_ANDROID) | 82 #endif // !defined(OS_ANDROID) |
86 | 83 |
84 content::BrowserThread::PostTaskAndReplyWithResult( | |
85 content::BrowserThread::IO, FROM_HERE, | |
86 base::Bind(&URLRequestContextFactory::host_resolver, | |
87 base::Unretained(url_request_context_factory_.get())), | |
88 base::Bind(&CastContentBrowserClient::AddExtraFilter, | |
89 base::Unretained(this), host->GetID())); | |
byungchul
2015/04/17 00:22:20
It changes the order of message filter. Is it okay
gunsch
2015/04/17 01:06:27
Changing order is okay. Order was not so important
| |
90 | |
87 auto extra_filters = PlatformGetBrowserMessageFilters(); | 91 auto extra_filters = PlatformGetBrowserMessageFilters(); |
88 for (auto const& filter : extra_filters) { | 92 for (auto const& filter : extra_filters) { |
89 host->AddFilter(filter.get()); | 93 host->AddFilter(filter.get()); |
90 } | 94 } |
91 } | 95 } |
92 | 96 |
97 void CastContentBrowserClient::AddExtraFilter( | |
98 int render_process_id, net::HostResolver* host_resolver) { | |
99 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | |
100 | |
101 content::RenderProcessHost* host = | |
102 content::RenderProcessHost::FromID(render_process_id); | |
103 if (!host) | |
104 return; | |
105 | |
106 scoped_refptr<content::BrowserMessageFilter> network_hints_message_filter( | |
107 new network_hints::NetworkHintsMessageFilter(host_resolver)); | |
108 host->AddFilter(network_hints_message_filter.get()); | |
109 } | |
110 | |
93 net::URLRequestContextGetter* CastContentBrowserClient::CreateRequestContext( | 111 net::URLRequestContextGetter* CastContentBrowserClient::CreateRequestContext( |
94 content::BrowserContext* browser_context, | 112 content::BrowserContext* browser_context, |
95 content::ProtocolHandlerMap* protocol_handlers, | 113 content::ProtocolHandlerMap* protocol_handlers, |
96 content::URLRequestInterceptorScopedVector request_interceptors) { | 114 content::URLRequestInterceptorScopedVector request_interceptors) { |
97 return url_request_context_factory_->CreateMainGetter( | 115 return url_request_context_factory_->CreateMainGetter( |
98 browser_context, | 116 browser_context, |
99 protocol_handlers, | 117 protocol_handlers, |
100 request_interceptors.Pass()); | 118 request_interceptors.Pass()); |
101 } | 119 } |
102 | 120 |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
398 process_type, dumps_path, false /* upload */); | 416 process_type, dumps_path, false /* upload */); |
399 // StartUploaderThread() even though upload is diferred. | 417 // StartUploaderThread() even though upload is diferred. |
400 // Breakpad-related memory is freed in the uploader thread. | 418 // Breakpad-related memory is freed in the uploader thread. |
401 crash_handler->StartUploaderThread(); | 419 crash_handler->StartUploaderThread(); |
402 return crash_handler; | 420 return crash_handler; |
403 } | 421 } |
404 #endif // !defined(OS_ANDROID) | 422 #endif // !defined(OS_ANDROID) |
405 | 423 |
406 } // namespace shell | 424 } // namespace shell |
407 } // namespace chromecast | 425 } // namespace chromecast |
OLD | NEW |