Commit b7171ed7 authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert ApplicationMediaCapabilitiesObserver to new Mojo types

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

Bug: 955171
Change-Id: I95a366faed461a5108f1abea78a4ee8ebf973aec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1787673
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@{#695550}
parent 858333f6
......@@ -24,17 +24,18 @@ void ApplicationMediaCapabilities::AddBinding(
void ApplicationMediaCapabilities::SetSupportedBitstreamAudioCodecs(
int codecs) {
supported_bitstream_audio_codecs_ = codecs;
observers_.ForAllPtrs(
[codecs](mojom::ApplicationMediaCapabilitiesObserver* observer) {
observer->OnSupportedBitstreamAudioCodecsChanged(codecs);
});
for (auto& observer : observers_)
observer->OnSupportedBitstreamAudioCodecsChanged(codecs);
}
void ApplicationMediaCapabilities::AddObserver(
mojom::ApplicationMediaCapabilitiesObserverPtr observer) {
mojo::PendingRemote<mojom::ApplicationMediaCapabilitiesObserver>
observer_remote) {
mojo::Remote<mojom::ApplicationMediaCapabilitiesObserver> observer(
std::move(observer_remote));
observer->OnSupportedBitstreamAudioCodecsChanged(
supported_bitstream_audio_codecs_);
observers_.AddPtr(std::move(observer));
observers_.Add(std::move(observer));
}
} // namespace shell
......
......@@ -8,7 +8,8 @@
#include "base/macros.h"
#include "chromecast/common/mojom/application_media_capabilities.mojom.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/interface_ptr_set.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote_set.h"
namespace content {
class RenderFrameHost;
......@@ -30,10 +31,11 @@ class ApplicationMediaCapabilities
private:
// mojom::ApplicationMediaCapabilities implementation:
void AddObserver(
mojom::ApplicationMediaCapabilitiesObserverPtr observer) override;
mojo::PendingRemote<mojom::ApplicationMediaCapabilitiesObserver>
observer_remote) override;
mojo::BindingSet<mojom::ApplicationMediaCapabilities> bindings_;
mojo::InterfacePtrSet<mojom::ApplicationMediaCapabilitiesObserver> observers_;
mojo::RemoteSet<mojom::ApplicationMediaCapabilitiesObserver> observers_;
int supported_bitstream_audio_codecs_;
DISALLOW_COPY_AND_ASSIGN(ApplicationMediaCapabilities);
......
......@@ -12,5 +12,5 @@ interface ApplicationMediaCapabilitiesObserver {
// Media capabilities for an individual application.
interface ApplicationMediaCapabilities {
AddObserver(ApplicationMediaCapabilitiesObserver observer);
AddObserver(pending_remote<ApplicationMediaCapabilitiesObserver> observer);
};
......@@ -77,7 +77,6 @@ constexpr base::TimeDelta kAudioRendererStartingCapacityEncrypted =
CastContentRendererClient::CastContentRendererClient()
: supported_profiles_(
std::make_unique<media::SupportedCodecProfileLevelsMemo>()),
app_media_capabilities_observer_binding_(this),
supported_bitstream_audio_codecs_(kBitstreamAudioCodecNone) {
#if defined(OS_ANDROID)
DCHECK(::media::MediaCodecUtil::IsMediaCodecAvailable())
......@@ -176,13 +175,12 @@ void CastContentRendererClient::RenderFrameCreated(
// APIs. The objects' lifetimes are bound to the RenderFrame's lifetime.
new OnLoadScriptInjector(render_frame);
if (!app_media_capabilities_observer_binding_.is_bound()) {
mojom::ApplicationMediaCapabilitiesObserverPtr observer;
app_media_capabilities_observer_binding_.Bind(mojo::MakeRequest(&observer));
if (!app_media_capabilities_observer_receiver_.is_bound()) {
mojom::ApplicationMediaCapabilitiesPtr app_media_capabilities;
render_frame->GetRemoteInterfaces()->GetInterface(
mojo::MakeRequest(&app_media_capabilities));
app_media_capabilities->AddObserver(std::move(observer));
app_media_capabilities->AddObserver(
app_media_capabilities_observer_receiver_.BindNewPipeAndPassRemote());
}
#if BUILDFLAG(ENABLE_CHROMECAST_EXTENSIONS)
......
......@@ -15,7 +15,7 @@
#include "content/public/renderer/content_renderer_client.h"
#include "media/base/audio_codecs.h"
#include "media/base/audio_parameters.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/receiver.h"
namespace extensions {
class ExtensionsClient;
......@@ -96,8 +96,8 @@ class CastContentRendererClient
prescient_networking_dispatcher_;
std::unique_ptr<media::MediaCapsObserverImpl> media_caps_observer_;
std::unique_ptr<media::SupportedCodecProfileLevelsMemo> supported_profiles_;
mojo::Binding<mojom::ApplicationMediaCapabilitiesObserver>
app_media_capabilities_observer_binding_;
mojo::Receiver<mojom::ApplicationMediaCapabilitiesObserver>
app_media_capabilities_observer_receiver_{this};
#if !defined(OS_ANDROID)
std::unique_ptr<MemoryPressureObserverImpl> memory_pressure_observer_;
#endif
......
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