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

Side by Side Diff: chromecast/browser/cast_content_browser_client.cc

Issue 1824723003: [chromecast] Pass media task runner to VideoPlaneController. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: fixed android build Created 4 years, 9 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 unified diff | Download patch
OLDNEW
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 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 13 matching lines...) Expand all
24 #include "chromecast/browser/cast_browser_process.h" 24 #include "chromecast/browser/cast_browser_process.h"
25 #include "chromecast/browser/cast_network_delegate.h" 25 #include "chromecast/browser/cast_network_delegate.h"
26 #include "chromecast/browser/cast_quota_permission_context.h" 26 #include "chromecast/browser/cast_quota_permission_context.h"
27 #include "chromecast/browser/cast_resource_dispatcher_host_delegate.h" 27 #include "chromecast/browser/cast_resource_dispatcher_host_delegate.h"
28 #include "chromecast/browser/geolocation/cast_access_token_store.h" 28 #include "chromecast/browser/geolocation/cast_access_token_store.h"
29 #include "chromecast/browser/media/cma_media_pipeline_client.h" 29 #include "chromecast/browser/media/cma_media_pipeline_client.h"
30 #include "chromecast/browser/media/cma_message_filter_host.h" 30 #include "chromecast/browser/media/cma_message_filter_host.h"
31 #include "chromecast/browser/service/cast_service_simple.h" 31 #include "chromecast/browser/service/cast_service_simple.h"
32 #include "chromecast/browser/url_request_context_factory.h" 32 #include "chromecast/browser/url_request_context_factory.h"
33 #include "chromecast/common/global_descriptors.h" 33 #include "chromecast/common/global_descriptors.h"
34 #include "chromecast/media/base/media_message_loop.h"
35 #include "chromecast/public/cast_media_shlib.h"
36 #include "chromecast/public/media/media_pipeline_backend.h" 34 #include "chromecast/public/media/media_pipeline_backend.h"
37 #include "components/crash/content/app/breakpad_linux.h" 35 #include "components/crash/content/app/breakpad_linux.h"
38 #include "components/crash/content/browser/crash_handler_host_linux.h" 36 #include "components/crash/content/browser/crash_handler_host_linux.h"
39 #include "components/network_hints/browser/network_hints_message_filter.h" 37 #include "components/network_hints/browser/network_hints_message_filter.h"
40 #include "content/public/browser/browser_thread.h" 38 #include "content/public/browser/browser_thread.h"
41 #include "content/public/browser/certificate_request_result_type.h" 39 #include "content/public/browser/certificate_request_result_type.h"
42 #include "content/public/browser/client_certificate_delegate.h" 40 #include "content/public/browser/client_certificate_delegate.h"
43 #include "content/public/browser/render_process_host.h" 41 #include "content/public/browser/render_process_host.h"
44 #include "content/public/browser/resource_dispatcher_host.h" 42 #include "content/public/browser/resource_dispatcher_host.h"
45 #include "content/public/browser/web_contents.h" 43 #include "content/public/browser/web_contents.h"
(...skipping 28 matching lines...) Expand all
74 scoped_ptr<::media::MojoMediaClient> mojo_media_client( 72 scoped_ptr<::media::MojoMediaClient> mojo_media_client(
75 new media::CastMojoMediaClient( 73 new media::CastMojoMediaClient(
76 browser_client->GetCmaMediaPipelineClient())); 74 browser_client->GetCmaMediaPipelineClient()));
77 return scoped_ptr<mojo::ShellClient>( 75 return scoped_ptr<mojo::ShellClient>(
78 new ::media::MojoMediaApplication(std::move(mojo_media_client))); 76 new ::media::MojoMediaApplication(std::move(mojo_media_client)));
79 } 77 }
80 #endif // ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS 78 #endif // ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS
81 } // namespace 79 } // namespace
82 80
83 CastContentBrowserClient::CastContentBrowserClient() 81 CastContentBrowserClient::CastContentBrowserClient()
84 : url_request_context_factory_(new URLRequestContextFactory()) { 82 : cast_browser_main_parts_(nullptr),
85 } 83 url_request_context_factory_(new URLRequestContextFactory()) {}
86 84
87 CastContentBrowserClient::~CastContentBrowserClient() { 85 CastContentBrowserClient::~CastContentBrowserClient() {
88 content::BrowserThread::DeleteSoon( 86 content::BrowserThread::DeleteSoon(
89 content::BrowserThread::IO, 87 content::BrowserThread::IO,
90 FROM_HERE, 88 FROM_HERE,
91 url_request_context_factory_.release()); 89 url_request_context_factory_.release());
92 } 90 }
93 91
94 void CastContentBrowserClient::AppendExtraCommandLineSwitches( 92 void CastContentBrowserClient::AppendExtraCommandLineSwitches(
95 base::CommandLine* command_line) { 93 base::CommandLine* command_line) {
96 } 94 }
97 95
98 void CastContentBrowserClient::PreCreateThreads() { 96 void CastContentBrowserClient::PreCreateThreads() {
99 } 97 }
100 98
101 scoped_ptr<CastService> CastContentBrowserClient::CreateCastService( 99 scoped_ptr<CastService> CastContentBrowserClient::CreateCastService(
102 content::BrowserContext* browser_context, 100 content::BrowserContext* browser_context,
103 PrefService* pref_service, 101 PrefService* pref_service,
104 net::URLRequestContextGetter* request_context_getter) { 102 net::URLRequestContextGetter* request_context_getter,
103 media::VideoPlaneController* video_plane_controller) {
105 return make_scoped_ptr(new CastServiceSimple(browser_context, pref_service)); 104 return make_scoped_ptr(new CastServiceSimple(browser_context, pref_service));
106 } 105 }
107 106
108 #if !defined(OS_ANDROID) 107 #if !defined(OS_ANDROID)
109 scoped_refptr<media::CmaMediaPipelineClient> 108 scoped_refptr<media::CmaMediaPipelineClient>
110 CastContentBrowserClient::GetCmaMediaPipelineClient() { 109 CastContentBrowserClient::GetCmaMediaPipelineClient() {
111 if (!cma_media_pipeline_client_.get()) 110 if (!cma_media_pipeline_client_.get())
112 cma_media_pipeline_client_ = CreateCmaMediaPipelineClient(); 111 cma_media_pipeline_client_ = CreateCmaMediaPipelineClient();
113 return cma_media_pipeline_client_; 112 return cma_media_pipeline_client_;
114 } 113 }
115 #endif // OS_ANDROID 114 #endif // OS_ANDROID
116 115
117 void CastContentBrowserClient::ProcessExiting() {
118 // Finalize CastMediaShlib on media thread to ensure it's not accessed
119 // after Finalize.
120 GetMediaTaskRunner()->PostTask(FROM_HERE,
121 base::Bind(&media::CastMediaShlib::Finalize));
122 }
123
124 void CastContentBrowserClient::SetMetricsClientId( 116 void CastContentBrowserClient::SetMetricsClientId(
125 const std::string& client_id) { 117 const std::string& client_id) {
126 } 118 }
127 119
128 void CastContentBrowserClient::RegisterMetricsProviders( 120 void CastContentBrowserClient::RegisterMetricsProviders(
129 ::metrics::MetricsService* metrics_service) { 121 ::metrics::MetricsService* metrics_service) {
130 } 122 }
131 123
132 bool CastContentBrowserClient::EnableRemoteDebuggingImmediately() { 124 bool CastContentBrowserClient::EnableRemoteDebuggingImmediately() {
133 return true; 125 return true;
134 } 126 }
135 127
136 content::BrowserMainParts* CastContentBrowserClient::CreateBrowserMainParts( 128 content::BrowserMainParts* CastContentBrowserClient::CreateBrowserMainParts(
137 const content::MainFunctionParams& parameters) { 129 const content::MainFunctionParams& parameters) {
138 content::BrowserMainParts* parts = 130 DCHECK(!cast_browser_main_parts_);
131 cast_browser_main_parts_ =
139 new CastBrowserMainParts(parameters, url_request_context_factory_.get()); 132 new CastBrowserMainParts(parameters, url_request_context_factory_.get());
140 CastBrowserProcess::GetInstance()->SetCastContentBrowserClient(this); 133 CastBrowserProcess::GetInstance()->SetCastContentBrowserClient(this);
141 return parts; 134 return cast_browser_main_parts_;
142 } 135 }
143 136
144 void CastContentBrowserClient::RenderProcessWillLaunch( 137 void CastContentBrowserClient::RenderProcessWillLaunch(
145 content::RenderProcessHost* host) { 138 content::RenderProcessHost* host) {
146 #if !defined(OS_ANDROID) 139 #if !defined(OS_ANDROID)
147 scoped_refptr<media::CmaMessageFilterHost> cma_message_filter( 140 scoped_refptr<media::CmaMessageFilterHost> cma_message_filter(
148 new media::CmaMessageFilterHost( 141 new media::CmaMessageFilterHost(
149 host->GetID(), GetCmaMediaPipelineClient(), GetMediaTaskRunner())); 142 host->GetID(), GetCmaMediaPipelineClient(), GetMediaTaskRunner()));
150 host->AddFilter(cma_message_filter.get()); 143 host->AddFilter(cma_message_filter.get());
151 #endif // !defined(OS_ANDROID) 144 #endif // !defined(OS_ANDROID)
152 145
153 // Forcibly trigger I/O-thread URLRequestContext initialization before 146 // Forcibly trigger I/O-thread URLRequestContext initialization before
154 // getting HostResolver. 147 // getting HostResolver.
155 content::BrowserThread::PostTaskAndReplyWithResult( 148 content::BrowserThread::PostTaskAndReplyWithResult(
156 content::BrowserThread::IO, FROM_HERE, 149 content::BrowserThread::IO, FROM_HERE,
157 base::Bind(&net::URLRequestContextGetter::GetURLRequestContext, 150 base::Bind(&net::URLRequestContextGetter::GetURLRequestContext,
158 base::Unretained( 151 base::Unretained(
159 url_request_context_factory_->GetSystemGetter())), 152 url_request_context_factory_->GetSystemGetter())),
160 base::Bind(&CastContentBrowserClient::AddNetworkHintsMessageFilter, 153 base::Bind(&CastContentBrowserClient::AddNetworkHintsMessageFilter,
161 base::Unretained(this), host->GetID())); 154 base::Unretained(this), host->GetID()));
162 } 155 }
163 156
164 scoped_refptr<base::SingleThreadTaskRunner> 157 scoped_refptr<base::SingleThreadTaskRunner>
165 CastContentBrowserClient::GetMediaTaskRunner() { 158 CastContentBrowserClient::GetMediaTaskRunner() {
166 // TODO(alokp): Obtain task runner from a local thread or mojo media app. 159 DCHECK(cast_browser_main_parts_);
167 return media::MediaMessageLoop::GetTaskRunner(); 160 return cast_browser_main_parts_->GetMediaTaskRunner();
168 } 161 }
169 162
170 #if !defined(OS_ANDROID) 163 #if !defined(OS_ANDROID)
171 scoped_refptr<media::CmaMediaPipelineClient> 164 scoped_refptr<media::CmaMediaPipelineClient>
172 CastContentBrowserClient::CreateCmaMediaPipelineClient() { 165 CastContentBrowserClient::CreateCmaMediaPipelineClient() {
173 return make_scoped_refptr(new media::CmaMediaPipelineClient()); 166 return make_scoped_refptr(new media::CmaMediaPipelineClient());
174 } 167 }
175 #endif // OS_ANDROID 168 #endif // OS_ANDROID
176 169
177 void CastContentBrowserClient::AddNetworkHintsMessageFilter( 170 void CastContentBrowserClient::AddNetworkHintsMessageFilter(
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 process_type, dumps_path, false /* upload */); 489 process_type, dumps_path, false /* upload */);
497 // StartUploaderThread() even though upload is diferred. 490 // StartUploaderThread() even though upload is diferred.
498 // Breakpad-related memory is freed in the uploader thread. 491 // Breakpad-related memory is freed in the uploader thread.
499 crash_handler->StartUploaderThread(); 492 crash_handler->StartUploaderThread();
500 return crash_handler; 493 return crash_handler;
501 } 494 }
502 #endif // !defined(OS_ANDROID) 495 #endif // !defined(OS_ANDROID)
503 496
504 } // namespace shell 497 } // namespace shell
505 } // namespace chromecast 498 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/cast_content_browser_client.h ('k') | chromecast/browser/cast_content_window.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698