Commit 9800b55e authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert media::mojom::RendererClient to new Mojo types

This CL converts media::mojom::RendererClient from
media/mojo/mojom/renderer.mojom to new Mojo types using
AssociatedReceiver, PendingAssociatedReceiver, and
PendingAssociatedRemote.

Bug: 955171
Change-Id: Icc9a50f32b17b2e94ba075844e7da0b99a5f9791
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1903174Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Reviewed-by: default avatarXiaohan Wang <xhwang@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Commit-Queue: Julie Kim <jkim@igalia.com>
Cr-Commit-Position: refs/heads/master@{#714058}
parent 3d86792a
......@@ -17,7 +17,6 @@
#include "media/mojo/clients/mojo_demuxer_stream_impl.h"
#include "media/mojo/common/media_type_converters.h"
#include "media/renderers/video_overlay_factory.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
namespace media {
......@@ -30,7 +29,6 @@ MojoRenderer::MojoRenderer(
video_overlay_factory_(std::move(video_overlay_factory)),
video_renderer_sink_(video_renderer_sink),
remote_renderer_pending_remote_(std::move(remote_renderer)),
client_binding_(this),
media_time_interpolator_(base::DefaultTickClock::GetInstance()) {
DVLOG(1) << __func__;
}
......@@ -96,14 +94,12 @@ void MojoRenderer::InitializeRendererFromStreams(
BindRemoteRendererIfNeeded();
mojom::RendererClientAssociatedPtrInfo client_ptr_info;
client_binding_.Bind(mojo::MakeRequest(&client_ptr_info));
// Using base::Unretained(this) is safe because |this| owns
// |remote_renderer_|, and the callback won't be dispatched if
// |remote_renderer_| is destroyed.
remote_renderer_->Initialize(
std::move(client_ptr_info), std::move(stream_proxies), nullptr,
client_receiver_.BindNewEndpointAndPassRemote(),
std::move(stream_proxies), nullptr,
base::Bind(&MojoRenderer::OnInitialized, base::Unretained(this), client));
}
......@@ -113,9 +109,6 @@ void MojoRenderer::InitializeRendererFromUrl(media::RendererClient* client) {
BindRemoteRendererIfNeeded();
mojom::RendererClientAssociatedPtrInfo client_ptr_info;
client_binding_.Bind(mojo::MakeRequest(&client_ptr_info));
const MediaUrlParams& url_params = media_resource_->GetMediaUrlParams();
// Using base::Unretained(this) is safe because |this| owns
......@@ -126,7 +119,8 @@ void MojoRenderer::InitializeRendererFromUrl(media::RendererClient* client) {
url_params.top_frame_origin, url_params.allow_credentials,
url_params.is_hls);
remote_renderer_->Initialize(
std::move(client_ptr_info), base::nullopt, std::move(media_url_params),
client_receiver_.BindNewEndpointAndPassRemote(), base::nullopt,
std::move(media_url_params),
base::Bind(&MojoRenderer::OnInitialized, base::Unretained(this), client));
}
......
......@@ -18,7 +18,7 @@
#include "media/base/renderer.h"
#include "media/base/time_delta_interpolator.h"
#include "media/mojo/mojom/renderer.mojom.h"
#include "mojo/public/cpp/bindings/associated_binding.h"
#include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
......@@ -142,8 +142,8 @@ class MojoRenderer : public Renderer, public mojom::RendererClient {
// Remote Renderer, bound to |task_runner_| during Initialize().
mojo::Remote<mojom::Renderer> remote_renderer_;
// Binding for RendererClient, bound to the |task_runner_|.
mojo::AssociatedBinding<RendererClient> client_binding_;
// Receiver for RendererClient, bound to the |task_runner_|.
mojo::AssociatedReceiver<RendererClient> client_receiver_{this};
bool encountered_error_ = false;
......
......@@ -26,7 +26,7 @@ interface Renderer {
// via |media_url_params|. Exactly one of |streams| and |media_urls_params|
// should be set.
// TODO(sandersd): These should be separate methods or a union type.
Initialize(associated RendererClient client,
Initialize(pending_associated_remote<RendererClient> client,
array<pending_remote<DemuxerStream>>? streams,
MediaUrlParams? media_url_params) => (bool success);
......
......@@ -66,7 +66,7 @@ MojoRendererService::MojoRendererService(
MojoRendererService::~MojoRendererService() = default;
void MojoRendererService::Initialize(
mojom::RendererClientAssociatedPtrInfo client,
mojo::PendingAssociatedRemote<mojom::RendererClient> client,
base::Optional<std::vector<mojo::PendingRemote<mojom::DemuxerStream>>>
streams,
mojom::MediaUrlParamsPtr media_url_params,
......
......@@ -21,6 +21,8 @@
#include "media/base/renderer_client.h"
#include "media/mojo/mojom/renderer.mojom.h"
#include "media/mojo/services/media_mojo_export.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/pending_associated_remote.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
......@@ -53,7 +55,7 @@ class MEDIA_MOJO_EXPORT MojoRendererService : public mojom::Renderer,
// mojom::Renderer implementation.
void Initialize(
mojom::RendererClientAssociatedPtrInfo client,
mojo::PendingAssociatedRemote<mojom::RendererClient> client,
base::Optional<std::vector<mojo::PendingRemote<mojom::DemuxerStream>>>
streams,
mojom::MediaUrlParamsPtr media_url_params,
......@@ -123,7 +125,7 @@ class MEDIA_MOJO_EXPORT MojoRendererService : public mojom::Renderer,
base::RepeatingTimer time_update_timer_;
base::TimeDelta last_media_time_;
mojom::RendererClientAssociatedPtr client_;
mojo::AssociatedRemote<mojom::RendererClient> client_;
// Holds the CdmContextRef to keep the CdmContext alive for the lifetime of
// the |renderer_|.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment