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 <stddef.h> | 7 #include <stddef.h> |
| 8 |
8 #include <string> | 9 #include <string> |
9 #include <utility> | 10 #include <utility> |
10 | 11 |
11 #include "base/base_switches.h" | 12 #include "base/base_switches.h" |
12 #include "base/command_line.h" | 13 #include "base/command_line.h" |
13 #include "base/files/scoped_file.h" | 14 #include "base/files/scoped_file.h" |
14 #include "base/i18n/rtl.h" | 15 #include "base/i18n/rtl.h" |
15 #include "base/macros.h" | 16 #include "base/macros.h" |
| 17 #include "base/memory/ptr_util.h" |
16 #include "base/path_service.h" | 18 #include "base/path_service.h" |
17 #include "base/strings/utf_string_conversions.h" | 19 #include "base/strings/utf_string_conversions.h" |
18 #include "build/build_config.h" | 20 #include "build/build_config.h" |
19 #include "chromecast/base/cast_constants.h" | 21 #include "chromecast/base/cast_constants.h" |
20 #include "chromecast/base/cast_paths.h" | 22 #include "chromecast/base/cast_paths.h" |
21 #include "chromecast/base/chromecast_switches.h" | 23 #include "chromecast/base/chromecast_switches.h" |
22 #include "chromecast/browser/cast_browser_context.h" | 24 #include "chromecast/browser/cast_browser_context.h" |
23 #include "chromecast/browser/cast_browser_main_parts.h" | 25 #include "chromecast/browser/cast_browser_main_parts.h" |
24 #include "chromecast/browser/cast_browser_process.h" | 26 #include "chromecast/browser/cast_browser_process.h" |
25 #include "chromecast/browser/cast_network_delegate.h" | 27 #include "chromecast/browser/cast_network_delegate.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 #include "components/external_video_surface/browser/android/external_video_surfa
ce_container_impl.h" | 61 #include "components/external_video_surface/browser/android/external_video_surfa
ce_container_impl.h" |
60 #else | 62 #else |
61 #include "chromecast/browser/media/cast_browser_cdm_factory.h" | 63 #include "chromecast/browser/media/cast_browser_cdm_factory.h" |
62 #endif // defined(OS_ANDROID) | 64 #endif // defined(OS_ANDROID) |
63 | 65 |
64 namespace chromecast { | 66 namespace chromecast { |
65 namespace shell { | 67 namespace shell { |
66 | 68 |
67 namespace { | 69 namespace { |
68 #if defined(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS) | 70 #if defined(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS) |
69 static scoped_ptr<mojo::ShellClient> CreateCastMojoMediaApplication( | 71 static std::unique_ptr<mojo::ShellClient> CreateCastMojoMediaApplication( |
70 CastContentBrowserClient* browser_client) { | 72 CastContentBrowserClient* browser_client) { |
71 scoped_ptr<media::CastMojoMediaClient> mojo_media_client( | 73 std::unique_ptr<media::CastMojoMediaClient> mojo_media_client( |
72 new media::CastMojoMediaClient( | 74 new media::CastMojoMediaClient( |
73 base::Bind(&CastContentBrowserClient::CreateMediaPipelineBackend, | 75 base::Bind(&CastContentBrowserClient::CreateMediaPipelineBackend, |
74 base::Unretained(browser_client)))); | 76 base::Unretained(browser_client)))); |
75 return scoped_ptr<mojo::ShellClient>(new media::CastMojoMediaApplication( | 77 return std::unique_ptr<mojo::ShellClient>(new media::CastMojoMediaApplication( |
76 std::move(mojo_media_client), browser_client->GetMediaTaskRunner())); | 78 std::move(mojo_media_client), browser_client->GetMediaTaskRunner())); |
77 } | 79 } |
78 #endif // ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS | 80 #endif // ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS |
79 } // namespace | 81 } // namespace |
80 | 82 |
81 CastContentBrowserClient::CastContentBrowserClient() | 83 CastContentBrowserClient::CastContentBrowserClient() |
82 : cast_browser_main_parts_(nullptr), | 84 : cast_browser_main_parts_(nullptr), |
83 url_request_context_factory_(new URLRequestContextFactory()) {} | 85 url_request_context_factory_(new URLRequestContextFactory()) {} |
84 | 86 |
85 CastContentBrowserClient::~CastContentBrowserClient() { | 87 CastContentBrowserClient::~CastContentBrowserClient() { |
86 content::BrowserThread::DeleteSoon( | 88 content::BrowserThread::DeleteSoon( |
87 content::BrowserThread::IO, | 89 content::BrowserThread::IO, |
88 FROM_HERE, | 90 FROM_HERE, |
89 url_request_context_factory_.release()); | 91 url_request_context_factory_.release()); |
90 } | 92 } |
91 | 93 |
92 void CastContentBrowserClient::AppendExtraCommandLineSwitches( | 94 void CastContentBrowserClient::AppendExtraCommandLineSwitches( |
93 base::CommandLine* command_line) { | 95 base::CommandLine* command_line) { |
94 } | 96 } |
95 | 97 |
96 void CastContentBrowserClient::PreCreateThreads() { | 98 void CastContentBrowserClient::PreCreateThreads() { |
97 } | 99 } |
98 | 100 |
99 scoped_ptr<CastService> CastContentBrowserClient::CreateCastService( | 101 std::unique_ptr<CastService> CastContentBrowserClient::CreateCastService( |
100 content::BrowserContext* browser_context, | 102 content::BrowserContext* browser_context, |
101 PrefService* pref_service, | 103 PrefService* pref_service, |
102 net::URLRequestContextGetter* request_context_getter, | 104 net::URLRequestContextGetter* request_context_getter, |
103 media::VideoPlaneController* video_plane_controller) { | 105 media::VideoPlaneController* video_plane_controller) { |
104 return make_scoped_ptr(new CastServiceSimple(browser_context, pref_service)); | 106 return base::WrapUnique(new CastServiceSimple(browser_context, pref_service)); |
105 } | 107 } |
106 | 108 |
107 #if !defined(OS_ANDROID) | 109 #if !defined(OS_ANDROID) |
108 scoped_refptr<base::SingleThreadTaskRunner> | 110 scoped_refptr<base::SingleThreadTaskRunner> |
109 CastContentBrowserClient::GetMediaTaskRunner() { | 111 CastContentBrowserClient::GetMediaTaskRunner() { |
110 DCHECK(cast_browser_main_parts_); | 112 DCHECK(cast_browser_main_parts_); |
111 return cast_browser_main_parts_->GetMediaTaskRunner(); | 113 return cast_browser_main_parts_->GetMediaTaskRunner(); |
112 } | 114 } |
113 | 115 |
114 scoped_ptr<media::MediaPipelineBackend> | 116 std::unique_ptr<media::MediaPipelineBackend> |
115 CastContentBrowserClient::CreateMediaPipelineBackend( | 117 CastContentBrowserClient::CreateMediaPipelineBackend( |
116 const media::MediaPipelineDeviceParams& params) { | 118 const media::MediaPipelineDeviceParams& params) { |
117 return media_pipeline_backend_manager()->CreateMediaPipelineBackend(params); | 119 return media_pipeline_backend_manager()->CreateMediaPipelineBackend(params); |
118 } | 120 } |
119 | 121 |
120 media::MediaResourceTracker* | 122 media::MediaResourceTracker* |
121 CastContentBrowserClient::media_resource_tracker() { | 123 CastContentBrowserClient::media_resource_tracker() { |
122 return cast_browser_main_parts_->media_resource_tracker(); | 124 return cast_browser_main_parts_->media_resource_tracker(); |
123 } | 125 } |
124 | 126 |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 // to retrieve media data chunks while running in a https page. This pref | 269 // to retrieve media data chunks while running in a https page. This pref |
268 // should be disabled once all the content providers are no longer doing that. | 270 // should be disabled once all the content providers are no longer doing that. |
269 prefs->allow_running_insecure_content = true; | 271 prefs->allow_running_insecure_content = true; |
270 | 272 |
271 // Enable 5% margins for WebVTT cues to keep within title-safe area | 273 // Enable 5% margins for WebVTT cues to keep within title-safe area |
272 prefs->text_track_margin_percentage = 5; | 274 prefs->text_track_margin_percentage = 5; |
273 } | 275 } |
274 | 276 |
275 void CastContentBrowserClient::ResourceDispatcherHostCreated() { | 277 void CastContentBrowserClient::ResourceDispatcherHostCreated() { |
276 CastBrowserProcess::GetInstance()->SetResourceDispatcherHostDelegate( | 278 CastBrowserProcess::GetInstance()->SetResourceDispatcherHostDelegate( |
277 make_scoped_ptr(new CastResourceDispatcherHostDelegate)); | 279 base::WrapUnique(new CastResourceDispatcherHostDelegate)); |
278 content::ResourceDispatcherHost::Get()->SetDelegate( | 280 content::ResourceDispatcherHost::Get()->SetDelegate( |
279 CastBrowserProcess::GetInstance()->resource_dispatcher_host_delegate()); | 281 CastBrowserProcess::GetInstance()->resource_dispatcher_host_delegate()); |
280 } | 282 } |
281 | 283 |
282 std::string CastContentBrowserClient::GetApplicationLocale() { | 284 std::string CastContentBrowserClient::GetApplicationLocale() { |
283 const std::string locale(base::i18n::GetConfiguredLocale()); | 285 const std::string locale(base::i18n::GetConfiguredLocale()); |
284 return locale.empty() ? "en-US" : locale; | 286 return locale.empty() ? "en-US" : locale; |
285 } | 287 } |
286 | 288 |
287 content::QuotaPermissionContext* | 289 content::QuotaPermissionContext* |
(...skipping 14 matching lines...) Expand all Loading... |
302 content::CertificateRequestResultType* result) { | 304 content::CertificateRequestResultType* result) { |
303 // Allow developers to override certificate errors. | 305 // Allow developers to override certificate errors. |
304 // Otherwise, any fatal certificate errors will cause an abort. | 306 // Otherwise, any fatal certificate errors will cause an abort. |
305 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL; | 307 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL; |
306 return; | 308 return; |
307 } | 309 } |
308 | 310 |
309 void CastContentBrowserClient::SelectClientCertificate( | 311 void CastContentBrowserClient::SelectClientCertificate( |
310 content::WebContents* web_contents, | 312 content::WebContents* web_contents, |
311 net::SSLCertRequestInfo* cert_request_info, | 313 net::SSLCertRequestInfo* cert_request_info, |
312 scoped_ptr<content::ClientCertificateDelegate> delegate) { | 314 std::unique_ptr<content::ClientCertificateDelegate> delegate) { |
313 GURL requesting_url("https://" + cert_request_info->host_and_port.ToString()); | 315 GURL requesting_url("https://" + cert_request_info->host_and_port.ToString()); |
314 | 316 |
315 if (!requesting_url.is_valid()) { | 317 if (!requesting_url.is_valid()) { |
316 LOG(ERROR) << "Invalid URL string: " | 318 LOG(ERROR) << "Invalid URL string: " |
317 << requesting_url.possibly_invalid_spec(); | 319 << requesting_url.possibly_invalid_spec(); |
318 delegate->ContinueWithCertificate(nullptr); | 320 delegate->ContinueWithCertificate(nullptr); |
319 return; | 321 return; |
320 } | 322 } |
321 | 323 |
322 // In our case there are no relevant certs in the cert_request_info. The cert | 324 // In our case there are no relevant certs in the cert_request_info. The cert |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 << "be disabled for this process."; | 411 << "be disabled for this process."; |
410 } else { | 412 } else { |
411 mappings->Transfer(kAndroidMinidumpDescriptor, | 413 mappings->Transfer(kAndroidMinidumpDescriptor, |
412 base::ScopedFD(minidump_file.TakePlatformFile())); | 414 base::ScopedFD(minidump_file.TakePlatformFile())); |
413 } | 415 } |
414 } | 416 } |
415 } | 417 } |
416 | 418 |
417 #else | 419 #else |
418 | 420 |
419 scoped_ptr<::media::CdmFactory> CastContentBrowserClient::CreateCdmFactory() { | 421 std::unique_ptr<::media::CdmFactory> |
| 422 CastContentBrowserClient::CreateCdmFactory() { |
420 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 423 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
421 switches::kEnableCmaMediaPipeline)) { | 424 switches::kEnableCmaMediaPipeline)) { |
422 return make_scoped_ptr(new media::CastBrowserCdmFactory( | 425 return base::WrapUnique(new media::CastBrowserCdmFactory( |
423 GetMediaTaskRunner(), media_resource_tracker())); | 426 GetMediaTaskRunner(), media_resource_tracker())); |
424 } | 427 } |
425 | 428 |
426 return nullptr; | 429 return nullptr; |
427 } | 430 } |
428 | 431 |
429 void CastContentBrowserClient::GetAdditionalMappedFilesForChildProcess( | 432 void CastContentBrowserClient::GetAdditionalMappedFilesForChildProcess( |
430 const base::CommandLine& command_line, | 433 const base::CommandLine& command_line, |
431 int child_process_id, | 434 int child_process_id, |
432 content::FileDescriptorInfo* mappings) { | 435 content::FileDescriptorInfo* mappings) { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 process_type, dumps_path, false /* upload */); | 490 process_type, dumps_path, false /* upload */); |
488 // StartUploaderThread() even though upload is diferred. | 491 // StartUploaderThread() even though upload is diferred. |
489 // Breakpad-related memory is freed in the uploader thread. | 492 // Breakpad-related memory is freed in the uploader thread. |
490 crash_handler->StartUploaderThread(); | 493 crash_handler->StartUploaderThread(); |
491 return crash_handler; | 494 return crash_handler; |
492 } | 495 } |
493 #endif // !defined(OS_ANDROID) | 496 #endif // !defined(OS_ANDROID) |
494 | 497 |
495 } // namespace shell | 498 } // namespace shell |
496 } // namespace chromecast | 499 } // namespace chromecast |
OLD | NEW |