Commit 83ffba1e authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert MediaCapsObserver to new Mojo types

This CL converts MediaCapsObserverPtr to new Mojo types. It
uses Receiver, ReceiverSet, RemoteSet, and PendingRemote or Remote
instead of Binding, BindingSet, InterfacePtrSet and
MediaCapsObserverPtr.

Bug: 955171
Change-Id: I26460b5c0a13f858997c6141d6ca437cb84a674d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1786704
Commit-Queue: Julie Kim <jkim@igalia.com>
Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarLuke Halliwell <halliwell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695540}
parent 058ec810
......@@ -8,6 +8,7 @@
#include "chromecast/browser/media/supported_codec_finder.h"
#include "chromecast/media/base/media_caps.h"
#include "chromecast/public/media/decoder_config.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace chromecast {
namespace media {
......@@ -45,10 +46,8 @@ void MediaCapsImpl::AddReceiver(
void MediaCapsImpl::ScreenResolutionChanged(unsigned width, unsigned height) {
screen_resolution_ = gfx::Size(width, height);
observers_.ForAllPtrs([width, height](mojom::MediaCapsObserver* observer) {
for (auto& observer : observers_)
observer->ScreenResolutionChanged(width, height);
});
}
void MediaCapsImpl::ScreenInfoChanged(int hdcp_version,
......@@ -66,30 +65,28 @@ void MediaCapsImpl::ScreenInfoChanged(int hdcp_version,
current_mode_supports_hdr_ = current_mode_supports_hdr;
current_mode_supports_dv_ = current_mode_supports_dv;
observers_.ForAllPtrs([hdcp_version, supported_eotfs, dolby_vision_flags,
screen_width_mm, screen_height_mm,
current_mode_supports_hdr, current_mode_supports_dv](
mojom::MediaCapsObserver* observer) {
for (auto& observer : observers_) {
observer->ScreenInfoChanged(hdcp_version, supported_eotfs,
dolby_vision_flags, screen_width_mm,
screen_height_mm, current_mode_supports_hdr,
current_mode_supports_dv);
});
}
}
void MediaCapsImpl::AddSupportedCodecProfileLevel(
const CodecProfileLevel& codec_profile_level) {
codec_profile_levels_.push_back(codec_profile_level);
observers_.ForAllPtrs(
[&codec_profile_level](mojom::MediaCapsObserver* observer) {
mojom::CodecProfileLevelPtr mojo_codec_profile_level(
ConvertCodecProfileLevelToMojo(codec_profile_level));
observer->AddSupportedCodecProfileLevel(
std::move(mojo_codec_profile_level));
});
for (auto& observer : observers_) {
mojom::CodecProfileLevelPtr mojo_codec_profile_level(
ConvertCodecProfileLevelToMojo(codec_profile_level));
observer->AddSupportedCodecProfileLevel(
std::move(mojo_codec_profile_level));
}
}
void MediaCapsImpl::AddObserver(mojom::MediaCapsObserverPtr observer) {
void MediaCapsImpl::AddObserver(
mojo::PendingRemote<mojom::MediaCapsObserver> observer_remote) {
mojo::Remote<mojom::MediaCapsObserver> observer(std::move(observer_remote));
observer->ScreenResolutionChanged(screen_resolution_.width(),
screen_resolution_.height());
observer->ScreenInfoChanged(hdcp_version_, supported_eotfs_,
......@@ -102,7 +99,7 @@ void MediaCapsImpl::AddObserver(mojom::MediaCapsObserverPtr observer) {
observer->AddSupportedCodecProfileLevel(
ConvertCodecProfileLevelToMojo(codec_profile_level));
}
observers_.AddPtr(std::move(observer));
observers_.Add(std::move(observer));
}
} // namespace media
......
......@@ -9,8 +9,9 @@
#include "base/macros.h"
#include "chromecast/common/mojom/media_caps.mojom.h"
#include "mojo/public/cpp/bindings/interface_ptr_set.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "mojo/public/cpp/bindings/remote_set.h"
#include "ui/gfx/geometry/size.h"
namespace chromecast {
......@@ -39,7 +40,8 @@ class MediaCapsImpl : public mojom::MediaCaps {
private:
// chromecast::mojom::MediaCaps implementation.
void AddObserver(mojom::MediaCapsObserverPtr observer) override;
void AddObserver(
mojo::PendingRemote<mojom::MediaCapsObserver> observer) override;
int hdcp_version_;
int supported_eotfs_;
......@@ -50,7 +52,7 @@ class MediaCapsImpl : public mojom::MediaCaps {
bool current_mode_supports_dv_;
gfx::Size screen_resolution_;
std::vector<CodecProfileLevel> codec_profile_levels_;
mojo::InterfacePtrSet<mojom::MediaCapsObserver> observers_;
mojo::RemoteSet<mojom::MediaCapsObserver> observers_;
mojo::ReceiverSet<mojom::MediaCaps> receivers_;
DISALLOW_COPY_AND_ASSIGN(MediaCapsImpl);
......
......@@ -12,7 +12,7 @@ struct CodecProfileLevel {
// Media capabilities that apply to all applications.
interface MediaCaps {
AddObserver(MediaCapsObserver observer);
AddObserver(pending_remote<MediaCapsObserver> observer);
};
// Observes changes in media capabilities that apply to all applications.
......
......@@ -101,7 +101,7 @@ void CastContentRendererClient::RenderThreadStarted() {
content::RenderThread* thread = content::RenderThread::Get();
mojo::Remote<media::mojom::MediaCaps> media_caps;
thread->BindHostReceiver(media_caps.BindNewPipeAndPassReceiver());
media::mojom::MediaCapsObserverPtr proxy;
mojo::PendingRemote<media::mojom::MediaCapsObserver> proxy;
media_caps_observer_.reset(
new media::MediaCapsObserverImpl(&proxy, supported_profiles_.get()));
media_caps->AddObserver(std::move(proxy));
......
......@@ -12,10 +12,10 @@ namespace chromecast {
namespace media {
MediaCapsObserverImpl::MediaCapsObserverImpl(
mojom::MediaCapsObserverPtr* proxy,
mojo::PendingRemote<mojom::MediaCapsObserver>* proxy,
SupportedCodecProfileLevelsMemo* supported_profiles)
: supported_profiles_(supported_profiles),
binding_(this, mojo::MakeRequest(proxy)) {}
receiver_(this, proxy->InitWithNewPipeAndPassReceiver()) {}
MediaCapsObserverImpl::~MediaCapsObserverImpl() = default;
......
......@@ -10,7 +10,8 @@
#include "base/macros.h"
#include "chromecast/common/mojom/media_caps.mojom.h"
#include "chromecast/media/base/supported_codec_profile_levels_memo.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "ui/gfx/geometry/size.h"
namespace chromecast {
......@@ -18,7 +19,7 @@ namespace media {
class MediaCapsObserverImpl : public mojom::MediaCapsObserver {
public:
MediaCapsObserverImpl(mojom::MediaCapsObserverPtr* proxy,
MediaCapsObserverImpl(mojo::PendingRemote<mojom::MediaCapsObserver>* proxy,
SupportedCodecProfileLevelsMemo* supported_profiles);
~MediaCapsObserverImpl() override;
......@@ -35,7 +36,7 @@ class MediaCapsObserverImpl : public mojom::MediaCapsObserver {
mojom::CodecProfileLevelPtr codec_profile_level) override;
SupportedCodecProfileLevelsMemo* supported_profiles_;
mojo::Binding<mojom::MediaCapsObserver> binding_;
mojo::Receiver<mojom::MediaCapsObserver> receiver_;
DISALLOW_COPY_AND_ASSIGN(MediaCapsObserverImpl);
};
......
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