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

Side by Side Diff: content/renderer/media/media_factory.cc

Issue 2913153004: Fix MediaRemoting MediaObserver (Closed)
Patch Set: Add DCHECK Created 3 years, 6 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "content/renderer/media/media_factory.h" 5 #include "content/renderer/media/media_factory.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/metrics/field_trial_params.h" 9 #include "base/metrics/field_trial_params.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 // a new player id which is used to collate logs on the browser side. 209 // a new player id which is used to collate logs on the browser side.
210 std::unique_ptr<media::MediaLog> media_log( 210 std::unique_ptr<media::MediaLog> media_log(
211 new RenderMediaLog(url::Origin(security_origin).GetURL())); 211 new RenderMediaLog(url::Origin(security_origin).GetURL()));
212 212
213 base::WeakPtr<media::MediaObserver> media_observer; 213 base::WeakPtr<media::MediaObserver> media_observer;
214 214
215 auto factory_selector = 215 auto factory_selector =
216 CreateRendererFactorySelector(media_log.get(), use_media_player_renderer, 216 CreateRendererFactorySelector(media_log.get(), use_media_player_renderer,
217 GetDecoderFactory(), &media_observer); 217 GetDecoderFactory(), &media_observer);
218 218
219 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
220 DCHECK(media_observer);
221 #endif
222
219 if (!url_index_.get() || url_index_->frame() != web_frame) 223 if (!url_index_.get() || url_index_->frame() != web_frame)
220 url_index_.reset(new media::UrlIndex(web_frame)); 224 url_index_.reset(new media::UrlIndex(web_frame));
221 225
222 std::unique_ptr<media::WebMediaPlayerParams> params( 226 std::unique_ptr<media::WebMediaPlayerParams> params(
223 new media::WebMediaPlayerParams( 227 new media::WebMediaPlayerParams(
224 std::move(media_log), 228 std::move(media_log),
225 base::Bind(&ContentRendererClient::DeferMediaLoad, 229 base::Bind(&ContentRendererClient::DeferMediaLoad,
226 base::Unretained(GetContentClient()->renderer()), 230 base::Unretained(GetContentClient()->renderer()),
227 static_cast<RenderFrame*>(render_frame_), 231 static_cast<RenderFrame*>(render_frame_),
228 GetWebMediaPlayerDelegate()->has_played_media()), 232 GetWebMediaPlayerDelegate()->has_played_media()),
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 346 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
343 media::mojom::RemotingSourcePtr remoting_source; 347 media::mojom::RemotingSourcePtr remoting_source;
344 auto remoting_source_request = mojo::MakeRequest(&remoting_source); 348 auto remoting_source_request = mojo::MakeRequest(&remoting_source);
345 media::mojom::RemoterPtr remoter; 349 media::mojom::RemoterPtr remoter;
346 GetRemoterFactory()->Create(std::move(remoting_source), 350 GetRemoterFactory()->Create(std::move(remoting_source),
347 mojo::MakeRequest(&remoter)); 351 mojo::MakeRequest(&remoter));
348 using RemotingController = media::remoting::RendererController; 352 using RemotingController = media::remoting::RendererController;
349 std::unique_ptr<RemotingController> remoting_controller( 353 std::unique_ptr<RemotingController> remoting_controller(
350 new RemotingController(new media::remoting::SharedSession( 354 new RemotingController(new media::remoting::SharedSession(
351 std::move(remoting_source_request), std::move(remoter)))); 355 std::move(remoting_source_request), std::move(remoter))));
352 base::WeakPtr<media::MediaObserver> media_observer = 356 *out_media_observer = remoting_controller->GetWeakPtr();
353 remoting_controller->GetWeakPtr();
354 357
355 auto courier_factory = 358 auto courier_factory =
356 base::MakeUnique<media::remoting::CourierRendererFactory>( 359 base::MakeUnique<media::remoting::CourierRendererFactory>(
357 std::move(remoting_controller)); 360 std::move(remoting_controller));
358 361
359 // base::Unretained is safe here because |factory_selector| owns 362 // base::Unretained is safe here because |factory_selector| owns
360 // |courier_factory|. 363 // |courier_factory|.
361 factory_selector->SetQueryIsRemotingActiveCB( 364 factory_selector->SetQueryIsRemotingActiveCB(
362 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive, 365 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive,
363 base::Unretained(courier_factory.get()))); 366 base::Unretained(courier_factory.get())));
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 DCHECK(remote_interfaces_); 496 DCHECK(remote_interfaces_);
494 media_interface_provider_.reset( 497 media_interface_provider_.reset(
495 new MediaInterfaceProvider(remote_interfaces_)); 498 new MediaInterfaceProvider(remote_interfaces_));
496 } 499 }
497 500
498 return media_interface_provider_.get(); 501 return media_interface_provider_.get();
499 } 502 }
500 #endif // BUILDFLAG(ENABLE_MOJO_MEDIA) 503 #endif // BUILDFLAG(ENABLE_MOJO_MEDIA)
501 504
502 } // namespace content 505 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698