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