Commit ad938f30 authored by Mario Sanchez Prada's avatar Mario Sanchez Prada Committed by Commit Bot

Migrate references of media::mojom::AudioOutputStreamObserver to new Mojo types

Convert both the implementation and clients in the browser and renderer
processes for the media.mojom.AudioOutputStreamObserver interface, and
adapt unit tests.

Bug: 955171
Change-Id: Ic179ae9add69b4d2bf68823af60e52a30a8b16e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803151Reviewed-by: default avatarTommi <tommi@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Commit-Queue: Mario Sanchez Prada <mario@igalia.com>
Cr-Commit-Position: refs/heads/master@{#697941}
parent b0a9a929
...@@ -103,7 +103,8 @@ std::unique_ptr<media::AudioOutputDelegate> AudioOutputDelegateImpl::Create( ...@@ -103,7 +103,8 @@ std::unique_ptr<media::AudioOutputDelegate> AudioOutputDelegateImpl::Create(
int render_frame_id, int render_frame_id,
int render_process_id, int render_process_id,
const media::AudioParameters& params, const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr observer, mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
const std::string& output_device_id) { const std::string& output_device_id) {
auto socket = std::make_unique<base::CancelableSyncSocket>(); auto socket = std::make_unique<base::CancelableSyncSocket>();
auto reader = media::AudioSyncReader::Create( auto reader = media::AudioSyncReader::Create(
...@@ -115,7 +116,7 @@ std::unique_ptr<media::AudioOutputDelegate> AudioOutputDelegateImpl::Create( ...@@ -115,7 +116,7 @@ std::unique_ptr<media::AudioOutputDelegate> AudioOutputDelegateImpl::Create(
return std::make_unique<AudioOutputDelegateImpl>( return std::make_unique<AudioOutputDelegateImpl>(
std::move(reader), std::move(socket), handler, audio_manager, std::move(reader), std::move(socket), handler, audio_manager,
std::move(audio_log), media_observer, stream_id, render_frame_id, std::move(audio_log), media_observer, stream_id, render_frame_id,
render_process_id, params, std::move(observer), output_device_id); render_process_id, params, std::move(pending_observer), output_device_id);
} }
AudioOutputDelegateImpl::AudioOutputDelegateImpl( AudioOutputDelegateImpl::AudioOutputDelegateImpl(
...@@ -129,14 +130,15 @@ AudioOutputDelegateImpl::AudioOutputDelegateImpl( ...@@ -129,14 +130,15 @@ AudioOutputDelegateImpl::AudioOutputDelegateImpl(
int render_frame_id, int render_frame_id,
int render_process_id, int render_process_id,
const media::AudioParameters& params, const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr observer, mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
const std::string& output_device_id) const std::string& output_device_id)
: subscriber_(handler), : subscriber_(handler),
audio_log_(std::move(audio_log)), audio_log_(std::move(audio_log)),
reader_(std::move(reader)), reader_(std::move(reader)),
foreign_socket_(std::move(foreign_socket)), foreign_socket_(std::move(foreign_socket)),
stream_id_(stream_id), stream_id_(stream_id),
observer_(std::move(observer)) { observer_(std::move(pending_observer)) {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(BrowserThread::IO);
DCHECK(subscriber_); DCHECK(subscriber_);
DCHECK(audio_manager); DCHECK(audio_manager);
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
#include "media/audio/audio_output_delegate.h" #include "media/audio/audio_output_delegate.h"
#include "media/mojo/mojom/audio_logging.mojom.h" #include "media/mojo/mojom/audio_logging.mojom.h"
#include "media/mojo/mojom/audio_output_stream.mojom.h" #include "media/mojo/mojom/audio_output_stream.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace content { namespace content {
class MediaObserver; class MediaObserver;
...@@ -43,7 +45,8 @@ class CONTENT_EXPORT AudioOutputDelegateImpl ...@@ -43,7 +45,8 @@ class CONTENT_EXPORT AudioOutputDelegateImpl
int render_frame_id, int render_frame_id,
int render_process_id, int render_process_id,
const media::AudioParameters& params, const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr observer, mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
const std::string& output_device_id); const std::string& output_device_id);
AudioOutputDelegateImpl( AudioOutputDelegateImpl(
...@@ -57,7 +60,8 @@ class CONTENT_EXPORT AudioOutputDelegateImpl ...@@ -57,7 +60,8 @@ class CONTENT_EXPORT AudioOutputDelegateImpl
int render_frame_id, int render_frame_id,
int render_process_id, int render_process_id,
const media::AudioParameters& params, const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr observer, mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
const std::string& output_device_id); const std::string& output_device_id);
~AudioOutputDelegateImpl() override; ~AudioOutputDelegateImpl() override;
...@@ -100,7 +104,7 @@ class CONTENT_EXPORT AudioOutputDelegateImpl ...@@ -100,7 +104,7 @@ class CONTENT_EXPORT AudioOutputDelegateImpl
base::RepeatingTimer poll_timer_; base::RepeatingTimer poll_timer_;
bool is_audible_ = false; bool is_audible_ = false;
// |observer_| is notified about changes in the audible state of the stream. // |observer_| is notified about changes in the audible state of the stream.
media::mojom::AudioOutputStreamObserverPtr observer_; mojo::Remote<media::mojom::AudioOutputStreamObserver> observer_;
base::WeakPtrFactory<AudioOutputDelegateImpl> weak_factory_{this}; base::WeakPtrFactory<AudioOutputDelegateImpl> weak_factory_{this};
......
...@@ -129,7 +129,8 @@ class MockContext : public RendererAudioOutputStreamFactoryContext { ...@@ -129,7 +129,8 @@ class MockContext : public RendererAudioOutputStreamFactoryContext {
int render_frame_id, int render_frame_id,
int stream_id, int stream_id,
const media::AudioParameters& params, const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr stream_observer, mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
stream_observer,
media::AudioOutputDelegate::EventHandler* handler) override { media::AudioOutputDelegate::EventHandler* handler) override {
EXPECT_NE(nullptr, delegate_); EXPECT_NE(nullptr, delegate_);
EXPECT_NE(nullptr, delegate_event_handler_location_); EXPECT_NE(nullptr, delegate_event_handler_location_);
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "content/common/content_export.h" #include "content/common/content_export.h"
#include "media/audio/audio_output_delegate.h" #include "media/audio/audio_output_delegate.h"
#include "media/mojo/mojom/audio_output_stream.mojom.h" #include "media/mojo/mojom/audio_output_stream.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
namespace media { namespace media {
class AudioParameters; class AudioParameters;
...@@ -44,7 +45,8 @@ class CONTENT_EXPORT RendererAudioOutputStreamFactoryContext { ...@@ -44,7 +45,8 @@ class CONTENT_EXPORT RendererAudioOutputStreamFactoryContext {
int render_frame_id, int render_frame_id,
int stream_id, int stream_id,
const media::AudioParameters& params, const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr stream_observer, mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
stream_observer,
media::AudioOutputDelegate::EventHandler* handler) = 0; media::AudioOutputDelegate::EventHandler* handler) = 0;
}; };
......
...@@ -56,7 +56,8 @@ RendererAudioOutputStreamFactoryContextImpl::CreateDelegate( ...@@ -56,7 +56,8 @@ RendererAudioOutputStreamFactoryContextImpl::CreateDelegate(
int render_frame_id, int render_frame_id,
int stream_id, int stream_id,
const media::AudioParameters& params, const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr stream_observer, mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
stream_observer,
media::AudioOutputDelegate::EventHandler* handler) { media::AudioOutputDelegate::EventHandler* handler) {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(BrowserThread::IO);
MediaObserver* const media_observer = MediaObserver* const media_observer =
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "content/browser/renderer_host/media/old_render_frame_audio_output_stream_factory.h" #include "content/browser/renderer_host/media/old_render_frame_audio_output_stream_factory.h"
#include "content/browser/renderer_host/media/renderer_audio_output_stream_factory_context.h" #include "content/browser/renderer_host/media/renderer_audio_output_stream_factory_context.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
namespace media { namespace media {
class AudioManager; class AudioManager;
...@@ -68,7 +69,8 @@ class CONTENT_EXPORT RendererAudioOutputStreamFactoryContextImpl ...@@ -68,7 +69,8 @@ class CONTENT_EXPORT RendererAudioOutputStreamFactoryContextImpl
int render_frame_id, int render_frame_id,
int stream_id, int stream_id,
const media::AudioParameters& params, const media::AudioParameters& params,
media::mojom::AudioOutputStreamObserverPtr stream_observer, mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
stream_observer,
media::AudioOutputDelegate::EventHandler* handler) override; media::AudioOutputDelegate::EventHandler* handler) override;
private: private:
......
...@@ -22,7 +22,7 @@ MojoAudioOutputStreamProvider::MojoAudioOutputStreamProvider( ...@@ -22,7 +22,7 @@ MojoAudioOutputStreamProvider::MojoAudioOutputStreamProvider(
create_delegate_callback_(std::move(create_delegate_callback)), create_delegate_callback_(std::move(create_delegate_callback)),
deleter_callback_(std::move(deleter_callback)), deleter_callback_(std::move(deleter_callback)),
observer_(std::move(observer)), observer_(std::move(observer)),
observer_binding_(observer_.get()) { observer_receiver_(observer_.get()) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
// Unretained is safe since |this| owns |binding_|. // Unretained is safe since |this| owns |binding_|.
binding_.set_connection_error_handler( binding_.set_connection_error_handler(
...@@ -60,12 +60,12 @@ void MojoAudioOutputStreamProvider::Acquire( ...@@ -60,12 +60,12 @@ void MojoAudioOutputStreamProvider::Acquire(
provider_client_ = std::move(provider_client); provider_client_ = std::move(provider_client);
mojom::AudioOutputStreamObserverPtr observer_ptr; mojo::PendingRemote<mojom::AudioOutputStreamObserver> pending_observer;
observer_binding_.Bind(mojo::MakeRequest(&observer_ptr)); observer_receiver_.Bind(pending_observer.InitWithNewPipeAndPassReceiver());
// Unretained is safe since |this| owns |audio_output_|. // Unretained is safe since |this| owns |audio_output_|.
audio_output_.emplace( audio_output_.emplace(
base::BindOnce(std::move(create_delegate_callback_), params, base::BindOnce(std::move(create_delegate_callback_), params,
std::move(observer_ptr)), std::move(pending_observer)),
base::BindOnce(&mojom::AudioOutputStreamProviderClient::Created, base::BindOnce(&mojom::AudioOutputStreamProviderClient::Created,
base::Unretained(provider_client_.get())), base::Unretained(provider_client_.get())),
base::BindOnce(&MojoAudioOutputStreamProvider::CleanUp, base::BindOnce(&MojoAudioOutputStreamProvider::CleanUp,
......
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
#include "media/mojo/services/media_mojo_export.h" #include "media/mojo/services/media_mojo_export.h"
#include "media/mojo/services/mojo_audio_output_stream.h" #include "media/mojo/services/mojo_audio_output_stream.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
namespace media { namespace media {
...@@ -24,7 +26,7 @@ class MEDIA_MOJO_EXPORT MojoAudioOutputStreamProvider ...@@ -24,7 +26,7 @@ class MEDIA_MOJO_EXPORT MojoAudioOutputStreamProvider
using CreateDelegateCallback = using CreateDelegateCallback =
base::OnceCallback<std::unique_ptr<AudioOutputDelegate>( base::OnceCallback<std::unique_ptr<AudioOutputDelegate>(
const AudioParameters& params, const AudioParameters& params,
mojom::AudioOutputStreamObserverPtr observer, mojo::PendingRemote<mojom::AudioOutputStreamObserver>,
AudioOutputDelegate::EventHandler*)>; AudioOutputDelegate::EventHandler*)>;
using DeleterCallback = base::OnceCallback<void(AudioOutputStreamProvider*)>; using DeleterCallback = base::OnceCallback<void(AudioOutputStreamProvider*)>;
...@@ -59,7 +61,7 @@ class MEDIA_MOJO_EXPORT MojoAudioOutputStreamProvider ...@@ -59,7 +61,7 @@ class MEDIA_MOJO_EXPORT MojoAudioOutputStreamProvider
CreateDelegateCallback create_delegate_callback_; CreateDelegateCallback create_delegate_callback_;
DeleterCallback deleter_callback_; DeleterCallback deleter_callback_;
std::unique_ptr<mojom::AudioOutputStreamObserver> observer_; std::unique_ptr<mojom::AudioOutputStreamObserver> observer_;
mojo::Binding<mojom::AudioOutputStreamObserver> observer_binding_; mojo::Receiver<mojom::AudioOutputStreamObserver> observer_receiver_;
base::Optional<MojoAudioOutputStream> audio_output_; base::Optional<MojoAudioOutputStream> audio_output_;
mojom::AudioOutputStreamProviderClientPtr provider_client_; mojom::AudioOutputStreamProviderClientPtr provider_client_;
......
...@@ -44,8 +44,10 @@ class FakeObserver : public mojom::AudioOutputStreamObserver { ...@@ -44,8 +44,10 @@ class FakeObserver : public mojom::AudioOutputStreamObserver {
class FakeDelegate : public AudioOutputDelegate { class FakeDelegate : public AudioOutputDelegate {
public: public:
explicit FakeDelegate(mojom::AudioOutputStreamObserverPtr observer) explicit FakeDelegate(
: observer_(std::move(observer)) {} mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer)
: observer_(std::move(pending_observer)) {}
~FakeDelegate() override = default; ~FakeDelegate() override = default;
int GetStreamId() override { return 0; } int GetStreamId() override { return 0; }
...@@ -55,14 +57,15 @@ class FakeDelegate : public AudioOutputDelegate { ...@@ -55,14 +57,15 @@ class FakeDelegate : public AudioOutputDelegate {
void OnSetVolume(double) override {} void OnSetVolume(double) override {}
private: private:
mojom::AudioOutputStreamObserverPtr observer_; mojo::PendingRemote<media::mojom::AudioOutputStreamObserver> observer_;
}; };
std::unique_ptr<AudioOutputDelegate> CreateFakeDelegate( std::unique_ptr<AudioOutputDelegate> CreateFakeDelegate(
const AudioParameters& params, const AudioParameters& params,
mojom::AudioOutputStreamObserverPtr observer, mojo::PendingRemote<media::mojom::AudioOutputStreamObserver>
pending_observer,
AudioOutputDelegate::EventHandler*) { AudioOutputDelegate::EventHandler*) {
return std::make_unique<FakeDelegate>(std::move(observer)); return std::make_unique<FakeDelegate>(std::move(pending_observer));
} }
} // namespace } // namespace
......
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