diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-03-11 11:32:04 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-03-18 13:40:17 +0000 |
commit | 31ccca0778db85c159634478b4ec7997f6704860 (patch) | |
tree | 3d33fc3afd9d5ec95541e1bbe074a9cf8da12a0e /chromium/components/mirroring | |
parent | 248b70b82a40964d5594eb04feca0fa36716185d (diff) | |
download | qtwebengine-chromium-31ccca0778db85c159634478b4ec7997f6704860.tar.gz |
BASELINE: Update Chromium to 80.0.3987.136
Change-Id: I98e1649aafae85ba3a83e67af00bb27ef301db7b
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Diffstat (limited to 'chromium/components/mirroring')
28 files changed, 146 insertions, 134 deletions
diff --git a/chromium/components/mirroring/OWNERS b/chromium/components/mirroring/OWNERS index b44d282f535..c0d2923cc1b 100644 --- a/chromium/components/mirroring/OWNERS +++ b/chromium/components/mirroring/OWNERS @@ -1,3 +1,4 @@ miu@chromium.org +mfoltz@chromium.org # COMPONENT: Internals>Cast>Streaming diff --git a/chromium/components/mirroring/browser/cast_remoting_sender.cc b/chromium/components/mirroring/browser/cast_remoting_sender.cc index 310f83eacc6..e069a9ca5eb 100644 --- a/chromium/components/mirroring/browser/cast_remoting_sender.cc +++ b/chromium/components/mirroring/browser/cast_remoting_sender.cc @@ -30,8 +30,8 @@ namespace { // Global map for looking-up CastRemotingSender instances by their // |rtp_stream_id|. -// TODO(xjz): Remove this global look-up map when mirror service -// refactoring is done. http://crbug.com/734672 +// TODO(crbug.com/1015477): Remove this global look-up map when mirror service +// refactoring is done. using CastRemotingSenderMap = std::map<int32_t, mirroring::CastRemotingSender*>; base::LazyInstance<CastRemotingSenderMap>::Leaky g_sender_map = LAZY_INSTANCE_INITIALIZER; @@ -91,7 +91,6 @@ CastRemotingSender::CastRemotingSender( logging_flush_interval_(logging_flush_interval), frame_event_cb_(cb), clock_(base::DefaultTickClock::GetInstance()), - binding_(this), max_ack_delay_(kMaxAckDelay), last_sent_frame_id_(media::cast::FrameId::first() - 1), latest_acked_frame_id_(media::cast::FrameId::first() - 1), @@ -130,7 +129,7 @@ CastRemotingSender::~CastRemotingSender() { void CastRemotingSender::FindAndBind( int32_t rtp_stream_id, mojo::ScopedDataPipeConsumerHandle pipe, - media::mojom::RemotingDataStreamSenderRequest request, + mojo::PendingReceiver<media::mojom::RemotingDataStreamSender> stream_sender, base::OnceClosure error_callback) { // CastRemotingSender lives entirely on the IO thread, so trampoline if // necessary. @@ -139,7 +138,7 @@ void CastRemotingSender::FindAndBind( FROM_HERE, {BrowserThread::IO}, base::BindOnce( &CastRemotingSender::FindAndBind, rtp_stream_id, std::move(pipe), - std::move(request), + std::move(stream_sender), // Using media::BindToCurrentLoop() so the |error_callback| // is trampolined back to the original thread. media::BindToCurrentLoop(std::move(error_callback)))); @@ -159,7 +158,7 @@ void CastRemotingSender::FindAndBind( CastRemotingSender* const sender = it->second; // Confirm that the CastRemotingSender isn't already bound to a message pipe. - if (sender->binding_.is_bound()) { + if (sender->receiver_.is_bound()) { DLOG(ERROR) << "Attempt to bind to CastRemotingSender a second time (id=" << rtp_stream_id << ")!"; std::move(error_callback).Run(); @@ -171,8 +170,8 @@ void CastRemotingSender::FindAndBind( sender->data_pipe_reader_ = std::make_unique<media::MojoDataPipeReader>(std::move(pipe)); - sender->binding_.Bind(std::move(request)); - sender->binding_.set_connection_error_handler(base::BindOnce( + sender->receiver_.Bind(std::move(stream_sender)); + sender->receiver_.set_disconnect_handler(base::BindOnce( [](CastRemotingSender* sender) { if (!sender->error_callback_.is_null()) std::move(sender->error_callback_).Run(); @@ -230,7 +229,7 @@ void CastRemotingSender::ResendForKickstart() { transport_->ResendFrameForKickstart(ssrc_, last_sent_frame_id_); } -// TODO(xjz): We may need to count in the frames acknowledged in +// TODO(crbug.com/1015477): We may need to count in the frames acknowledged in // RtcpCastMessage::received_later_frames for more accurate calculation on // available bandwidth. Same logic should apply on // media::cast::FrameSender::GetUnacknowledgedFrameCount(). @@ -277,7 +276,8 @@ void CastRemotingSender::OnReceivedCastMessage( } else { duplicate_ack_counter_ = 0; } - // TODO(miu): The values "2" and "3" should be derived from configuration. + // TODO(crbug.com/1015477): The values "2" and "3" should be derived from + // configuration. if (duplicate_ack_counter_ >= 2 && duplicate_ack_counter_ % 3 == 2) { ResendForKickstart(); } @@ -402,7 +402,7 @@ void CastRemotingSender::OnFrameRead(bool success) { void CastRemotingSender::OnPipeError() { data_pipe_reader_.reset(); - binding_.Close(); + receiver_.reset(); if (!error_callback_.is_null()) std::move(error_callback_).Run(); } @@ -475,7 +475,7 @@ void CastRemotingSender::TrySendFrame() { if (!frame_event_cb_.is_null()) { media::cast::FrameEvent remoting_event; remoting_event.timestamp = remoting_frame.reference_time; - // TODO(xjz): Use a new event type for remoting. + // TODO(crbug.com/1015477): Use a new event type for remoting. remoting_event.type = media::cast::FRAME_ENCODED; remoting_event.media_type = is_audio_ ? media::cast::AUDIO_EVENT : media::cast::VIDEO_EVENT; @@ -502,11 +502,11 @@ void CastRemotingSender::TrySendFrame() { void CastRemotingSender::CancelInFlightData() { DCHECK_CURRENTLY_ON(BrowserThread::IO); -// TODO(miu): The following code is something we want to do as an +// TODO(crbug.com/647423): The following code is something we want to do as an // optimization. However, as-is, it's not quite correct. We can only cancel // frames where no packets have actually hit the network yet. Said another // way, we can only cancel frames the receiver has definitely not seen any -// part of (including kickstarting!). http://crbug.com/647423 +// part of (including kickstarting!). #if 0 if (latest_acked_frame_id_ < last_sent_frame_id_) { std::vector<media::cast::FrameId> frames_to_cancel; diff --git a/chromium/components/mirroring/browser/cast_remoting_sender.h b/chromium/components/mirroring/browser/cast_remoting_sender.h index fecef9e42b8..35790279d86 100644 --- a/chromium/components/mirroring/browser/cast_remoting_sender.h +++ b/chromium/components/mirroring/browser/cast_remoting_sender.h @@ -13,7 +13,8 @@ #include "media/cast/net/cast_transport.h" #include "media/cast/net/rtcp/rtcp_defines.h" #include "media/mojo/mojom/remoting.mojom.h" -#include "mojo/public/cpp/bindings/binding.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/receiver.h" namespace media { class MojoDataPipeReader; @@ -53,19 +54,21 @@ class CastRemotingSender : public media::mojom::RemotingDataStreamSender { ~CastRemotingSender() final; // Look-up a CastRemotingSender instance by its |rtp_stream_id| and then bind - // to the given |request|. The client of the RemotingDataStreamSender will - // then instruct this CastRemotingSender when to read from the data |pipe| and - // send the data to the Cast Receiver. If the bind fails, or an error occurs - // reading from the data pipe during later operation, the |error_callback| is - // run. + // to the given |stream_sender|. The client of the RemotingDataStreamSender + // will then instruct this CastRemotingSender when to read from the data + // |pipe| and send the data to the Cast Receiver. If the bind fails, or an + // error occurs reading from the data pipe during later operation, the + // |error_callback| is run. // // Threading note: This function is thread-safe, but its internal // implementation runs on the IO BrowserThread. If |error_callback| is run, it // will execute on the thread that called this function. - static void FindAndBind(int32_t rtp_stream_id, - mojo::ScopedDataPipeConsumerHandle pipe, - media::mojom::RemotingDataStreamSenderRequest request, - base::OnceClosure error_callback); + static void FindAndBind( + int32_t rtp_stream_id, + mojo::ScopedDataPipeConsumerHandle pipe, + mojo::PendingReceiver<media::mojom::RemotingDataStreamSender> + stream_sender, + base::OnceClosure error_callback); private: // Friend class for unit tests. @@ -159,10 +162,10 @@ class CastRemotingSender : public media::mojom::RemotingDataStreamSender { std::unique_ptr<media::MojoDataPipeReader> data_pipe_reader_; - // Mojo binding for this instance. Implementation at the other end of the - // message pipe uses the RemotingDataStreamSender interface to control when + // Mojo receiver for this instance. Implementation at the other end of the + // message pipe uses the RemotingDataStreamSender remote to control when // this CastRemotingSender consumes from |pipe_|. - mojo::Binding<RemotingDataStreamSender> binding_; + mojo::Receiver<RemotingDataStreamSender> receiver_{this}; // This is the maximum delay that the sender should get ack from receiver. // Otherwise, sender will call ResendForKickstart(). diff --git a/chromium/components/mirroring/browser/cast_remoting_sender_unittest.cc b/chromium/components/mirroring/browser/cast_remoting_sender_unittest.cc index bc0995ca9b5..99c237f3f20 100644 --- a/chromium/components/mirroring/browser/cast_remoting_sender_unittest.cc +++ b/chromium/components/mirroring/browser/cast_remoting_sender_unittest.cc @@ -15,6 +15,7 @@ #include "media/cast/net/cast_transport.h" #include "media/cast/test/utility/default_config.h" #include "media/mojo/mojom/remoting.mojom.h" +#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/system/data_pipe.h" #include "testing/gtest/include/gtest/gtest.h" @@ -132,7 +133,7 @@ class CastRemotingSenderTest : public ::testing::Test { CastRemotingSender::FindAndBind( transport_config_.rtp_stream_id, std::move(consumer_end), - MakeRequest(&sender_), + sender_.BindNewPipeAndPassReceiver(), base::BindOnce(&CastRemotingSenderTest::OnError, base::Unretained(this))); @@ -262,7 +263,7 @@ class CastRemotingSenderTest : public ::testing::Test { media::cast::CastTransportRtpConfig transport_config_; FakeTransport transport_; std::unique_ptr<CastRemotingSender> remoting_sender_; - media::mojom::RemotingDataStreamSenderPtr sender_; + mojo::Remote<media::mojom::RemotingDataStreamSender> sender_; mojo::ScopedDataPipeProducerHandle producer_end_; bool expecting_error_callback_run_; diff --git a/chromium/components/mirroring/mojom/mirroring_service_host.mojom b/chromium/components/mirroring/mojom/mirroring_service_host.mojom index 279aa2f978d..1cc2001d0ce 100644 --- a/chromium/components/mirroring/mojom/mirroring_service_host.mojom +++ b/chromium/components/mirroring/mojom/mirroring_service_host.mojom @@ -21,6 +21,6 @@ interface MirroringServiceHost { pending_remote<CastMessageChannel> outbound_channel, pending_receiver<CastMessageChannel> inbound_channel); - // TODO(xjz): Add interfaces to get the streaming events/stats and mirroring - // logs. + // TODO(crbug.com/1015461): Add interfaces to get the streaming events/stats + // and mirroring logs. }; diff --git a/chromium/components/mirroring/mojom/resource_provider.mojom b/chromium/components/mirroring/mojom/resource_provider.mojom index 2bfb17f6156..3bd86487c74 100644 --- a/chromium/components/mirroring/mojom/resource_provider.mojom +++ b/chromium/components/mirroring/mojom/resource_provider.mojom @@ -17,8 +17,8 @@ import "services/viz/public/mojom/gpu.mojom"; // lifetime of this client. interface AudioStreamCreatorClient { StreamCreated( - media.mojom.AudioInputStream stream, - media.mojom.AudioInputStreamClient& client_request, + pending_remote<media.mojom.AudioInputStream> stream, + pending_receiver<media.mojom.AudioInputStreamClient> client_receiver, media.mojom.ReadOnlyAudioDataPipe data_pipe, bool initially_muted); }; diff --git a/chromium/components/mirroring/service/captured_audio_input.cc b/chromium/components/mirroring/service/captured_audio_input.cc index a8be7a44d20..e1df1801913 100644 --- a/chromium/components/mirroring/service/captured_audio_input.cc +++ b/chromium/components/mirroring/service/captured_audio_input.cc @@ -11,8 +11,7 @@ namespace mirroring { CapturedAudioInput::CapturedAudioInput(StreamCreatorCallback callback) - : stream_creator_callback_(std::move(callback)), - stream_client_binding_(this) { + : stream_creator_callback_(std::move(callback)) { DETACH_FROM_SEQUENCE(sequence_checker_); DCHECK(!stream_creator_callback_.is_null()); } @@ -48,8 +47,7 @@ void CapturedAudioInput::SetVolume(double volume) { void CapturedAudioInput::CloseStream() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); delegate_ = nullptr; - if (stream_client_binding_.is_bound()) - stream_client_binding_.Unbind(); + stream_client_receiver_.reset(); stream_.reset(); } @@ -59,17 +57,17 @@ void CapturedAudioInput::SetOutputDeviceForAec( } void CapturedAudioInput::StreamCreated( - media::mojom::AudioInputStreamPtr stream, - media::mojom::AudioInputStreamClientRequest client_request, + mojo::PendingRemote<media::mojom::AudioInputStream> stream, + mojo::PendingReceiver<media::mojom::AudioInputStreamClient> client_receiver, media::mojom::ReadOnlyAudioDataPipePtr data_pipe, bool initially_muted) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(delegate_); DCHECK(!stream_); - DCHECK(!stream_client_binding_.is_bound()); + DCHECK(!stream_client_receiver_.is_bound()); - stream_ = std::move(stream); - stream_client_binding_.Bind(std::move(client_request)); + stream_.Bind(std::move(stream)); + stream_client_receiver_.Bind(std::move(client_receiver)); base::PlatformFile socket_handle; auto result = diff --git a/chromium/components/mirroring/service/captured_audio_input.h b/chromium/components/mirroring/service/captured_audio_input.h index 11fe9e7e504..951b298271f 100644 --- a/chromium/components/mirroring/service/captured_audio_input.h +++ b/chromium/components/mirroring/service/captured_audio_input.h @@ -12,8 +12,10 @@ #include "components/mirroring/mojom/resource_provider.mojom.h" #include "media/audio/audio_input_ipc.h" #include "media/mojo/mojom/audio_input_stream.mojom.h" -#include "mojo/public/cpp/bindings/binding.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" +#include "mojo/public/cpp/bindings/remote.h" namespace mirroring { @@ -43,8 +45,9 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) CapturedAudioInput final void SetOutputDeviceForAec(const std::string& output_device_id) override; // mojom::AudioStreamCreatorClient implementation - void StreamCreated(media::mojom::AudioInputStreamPtr stream, - media::mojom::AudioInputStreamClientRequest client_request, + void StreamCreated(mojo::PendingRemote<media::mojom::AudioInputStream> stream, + mojo::PendingReceiver<media::mojom::AudioInputStreamClient> + client_receiver, media::mojom::ReadOnlyAudioDataPipePtr data_pipe, bool initially_muted) override; @@ -55,11 +58,12 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) CapturedAudioInput final SEQUENCE_CHECKER(sequence_checker_); const StreamCreatorCallback stream_creator_callback_; - mojo::Binding<media::mojom::AudioInputStreamClient> stream_client_binding_; + mojo::Receiver<media::mojom::AudioInputStreamClient> stream_client_receiver_{ + this}; mojo::Receiver<mojom::AudioStreamCreatorClient> stream_creator_client_receiver_{this}; media::AudioInputIPCDelegate* delegate_ = nullptr; - media::mojom::AudioInputStreamPtr stream_; + mojo::Remote<media::mojom::AudioInputStream> stream_; DISALLOW_COPY_AND_ASSIGN(CapturedAudioInput); }; diff --git a/chromium/components/mirroring/service/captured_audio_input_unittest.cc b/chromium/components/mirroring/service/captured_audio_input_unittest.cc index 1b4bb30a205..d5f61c3d32e 100644 --- a/chromium/components/mirroring/service/captured_audio_input_unittest.cc +++ b/chromium/components/mirroring/service/captured_audio_input_unittest.cc @@ -10,8 +10,9 @@ #include "base/test/task_environment.h" #include "media/base/audio_parameters.h" #include "media/mojo/mojom/audio_data_pipe.mojom.h" +#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote.h" -#include "mojo/public/cpp/bindings/strong_binding.h" +#include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "mojo/public/cpp/system/buffer.h" #include "mojo/public/cpp/system/platform_handle.h" #include "testing/gmock/include/gmock/gmock.h" @@ -61,18 +62,20 @@ class CapturedAudioInputTest : public ::testing::Test { uint32_t total_segments) { EXPECT_EQ(base::SyncSocket::kInvalidHandle, socket_.handle()); EXPECT_FALSE(stream_); - media::mojom::AudioInputStreamPtr stream_ptr; + mojo::PendingRemote<media::mojom::AudioInputStream> pending_stream; auto input_stream = std::make_unique<MockStream>(); stream_ = input_stream.get(); - mojo::MakeStrongBinding(std::move(input_stream), - mojo::MakeRequest(&stream_ptr)); + mojo::MakeSelfOwnedReceiver( + std::move(input_stream), + pending_stream.InitWithNewPipeAndPassReceiver()); base::CancelableSyncSocket foreign_socket; EXPECT_TRUE( base::CancelableSyncSocket::CreatePair(&socket_, &foreign_socket)); mojo::Remote<mojom::AudioStreamCreatorClient> audio_client( std::move(client)); + stream_client_.reset(); audio_client->StreamCreated( - std::move(stream_ptr), mojo::MakeRequest(&stream_client_), + std::move(pending_stream), stream_client_.BindNewPipeAndPassReceiver(), {base::in_place, base::ReadOnlySharedMemoryRegion::Create(1024).region, mojo::WrapPlatformFile(foreign_socket.Release())}, initially_muted); @@ -140,7 +143,7 @@ class CapturedAudioInputTest : public ::testing::Test { std::unique_ptr<media::AudioInputIPC> audio_input_; MockDelegate delegate_; MockStream* stream_ = nullptr; - media::mojom::AudioInputStreamClientPtr stream_client_; + mojo::Remote<media::mojom::AudioInputStreamClient> stream_client_; base::CancelableSyncSocket socket_; DISALLOW_COPY_AND_ASSIGN(CapturedAudioInputTest); diff --git a/chromium/components/mirroring/service/media_remoter.cc b/chromium/components/mirroring/service/media_remoter.cc index e53d9e62de5..ee280580100 100644 --- a/chromium/components/mirroring/service/media_remoter.cc +++ b/chromium/components/mirroring/service/media_remoter.cc @@ -91,9 +91,8 @@ void MediaRemoter::OnMirroringResumed() { void MediaRemoter::OnRemotingFailed() { DCHECK(state_ == STARTING_REMOTING || state_ == REMOTING_STARTED); if (state_ == STARTING_REMOTING) { - // TODO(xjz): Rename SERVICE_NOT_CONNECTED to INVALID_ANSWER_MESSAGE. remoting_source_->OnStartFailed( - media::mojom::RemotingStartFailReason::SERVICE_NOT_CONNECTED); + media::mojom::RemotingStartFailReason::INVALID_ANSWER_MESSAGE); } state_ = REMOTING_DISABLED; remoting_source_->OnSinkGone(); diff --git a/chromium/components/mirroring/service/media_remoter.h b/chromium/components/mirroring/service/media_remoter.h index d60e937bdb1..583456ef6b8 100644 --- a/chromium/components/mirroring/service/media_remoter.h +++ b/chromium/components/mirroring/service/media_remoter.h @@ -10,7 +10,6 @@ #include "media/cast/cast_config.h" #include "media/mojo/mojom/remoting.mojom.h" #include "media/mojo/mojom/remoting_common.mojom.h" -#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" diff --git a/chromium/components/mirroring/service/media_remoter_unittest.cc b/chromium/components/mirroring/service/media_remoter_unittest.cc index e306fc85670..0022d7add28 100644 --- a/chromium/components/mirroring/service/media_remoter_unittest.cc +++ b/chromium/components/mirroring/service/media_remoter_unittest.cc @@ -12,9 +12,8 @@ #include "components/mirroring/service/message_dispatcher.h" #include "components/mirroring/service/mirror_settings.h" #include "media/cast/cast_environment.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" -#include "mojo/public/cpp/bindings/receiver.h" -#include "mojo/public/cpp/bindings/remote.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -32,11 +31,11 @@ namespace { class MockRemotingSource final : public media::mojom::RemotingSource { public: - MockRemotingSource() : binding_(this) {} - ~MockRemotingSource() override {} + MockRemotingSource() = default; + ~MockRemotingSource() override = default; - void Bind(media::mojom::RemotingSourceRequest request) { - binding_.Bind(std::move(request)); + void Bind(mojo::PendingReceiver<media::mojom::RemotingSource> receiver) { + receiver_.Bind(std::move(receiver)); } MOCK_METHOD0(OnSinkGone, void()); @@ -51,7 +50,7 @@ class MockRemotingSource final : public media::mojom::RemotingSource { } private: - mojo::Binding<media::mojom::RemotingSource> binding_; + mojo::Receiver<media::mojom::RemotingSource> receiver_{this}; }; RemotingSinkMetadata DefaultSinkMetadata() { diff --git a/chromium/components/mirroring/service/mirror_settings.cc b/chromium/components/mirroring/service/mirror_settings.cc index b0392f8901f..8d94f4a66d0 100644 --- a/chromium/components/mirroring/service/mirror_settings.cc +++ b/chromium/components/mirroring/service/mirror_settings.cc @@ -28,7 +28,7 @@ constexpr base::TimeDelta kMinPlayoutDelay = // Maximum end-to-end latency. Currently, this is kMinPlayoutDelay, effectively // disabling adaptive latency control, because of audio playout regressions // (b/32876644). -// TODO(https://crbug.com/openscreen/44): Re-enable in port to Open Screen. +// TODO(openscreen/44): Re-enable in port to Open Screen. constexpr base::TimeDelta kMaxPlayoutDelay = base::TimeDelta::FromMilliseconds(400); diff --git a/chromium/components/mirroring/service/mirror_settings.h b/chromium/components/mirroring/service/mirror_settings.h index ea19ec79f32..598a6b0115f 100644 --- a/chromium/components/mirroring/service/mirror_settings.h +++ b/chromium/components/mirroring/service/mirror_settings.h @@ -20,9 +20,10 @@ namespace mirroring { // Holds the default settings for a mirroring session. This class provides the // audio/video configs that this sender supports. And also provides the // audio/video constraints used for capturing. -// TODO(xjz): Add the function to generate the audio capture contraints. -// TODO(xjz): Add setters to the settings that might be overriden by integration -// tests. +// TODO(crbug.com/1015458): Add the function to generate the audio capture +// contraints. +// TODO(crbug.com/1015458): Add setters to the settings that might be overriden +// by integration tests. class COMPONENT_EXPORT(MIRRORING_SERVICE) MirrorSettings { public: MirrorSettings(); diff --git a/chromium/components/mirroring/service/remoting_sender.cc b/chromium/components/mirroring/service/remoting_sender.cc index a3e96262ec0..66765368548 100644 --- a/chromium/components/mirroring/service/remoting_sender.cc +++ b/chromium/components/mirroring/service/remoting_sender.cc @@ -21,7 +21,7 @@ RemotingSender::RemotingSender( media::cast::CastTransport* transport, const media::cast::FrameSenderConfig& config, mojo::ScopedDataPipeConsumerHandle pipe, - media::mojom::RemotingDataStreamSenderRequest request, + mojo::PendingReceiver<media::mojom::RemotingDataStreamSender> stream_sender, base::OnceClosure error_callback) : FrameSender(cast_environment, transport, @@ -30,11 +30,11 @@ RemotingSender::RemotingSender( clock_(cast_environment->Clock()), error_callback_(std::move(error_callback)), data_pipe_reader_(new media::MojoDataPipeReader(std::move(pipe))), - binding_(this, std::move(request)), + stream_sender_(this, std::move(stream_sender)), input_queue_discards_remaining_(0), is_reading_(false), flow_restart_pending_(true) { - binding_.set_connection_error_handler(base::BindOnce( + stream_sender_.set_disconnect_handler(base::BindOnce( &RemotingSender::OnRemotingDataStreamError, base::Unretained(this))); } @@ -54,11 +54,11 @@ void RemotingSender::SendFrame(uint32_t frame_size) { void RemotingSender::CancelInFlightData() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -// TODO(miu): The following code is something we want to do as an +// TODO(crbug.com/647423): The following code is something we want to do as an // optimization. However, as-is, it's not quite correct. We can only cancel // frames where no packets have actually hit the network yet. Said another // way, we can only cancel frames the receiver has definitely not seen any -// part of (including kickstarting!). http://crbug.com/647423 +// part of (including kickstarting!). #if 0 if (latest_acked_frame_id_ < last_sent_frame_id_) { std::vector<media::cast::FrameId> frames_to_cancel; @@ -207,7 +207,7 @@ void RemotingSender::OnInputTaskComplete() { void RemotingSender::OnRemotingDataStreamError() { data_pipe_reader_.reset(); - binding_.Close(); + stream_sender_.reset(); if (!error_callback_.is_null()) std::move(error_callback_).Run(); } diff --git a/chromium/components/mirroring/service/remoting_sender.h b/chromium/components/mirroring/service/remoting_sender.h index ec027ed01d4..51c7c4d097c 100644 --- a/chromium/components/mirroring/service/remoting_sender.h +++ b/chromium/components/mirroring/service/remoting_sender.h @@ -15,7 +15,8 @@ #include "base/sequence_checker.h" #include "media/cast/sender/frame_sender.h" #include "media/mojo/mojom/remoting.mojom.h" -#include "mojo/public/cpp/bindings/binding.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/receiver.h" namespace base { class TickClock; @@ -39,7 +40,8 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) RemotingSender final media::cast::CastTransport* transport, const media::cast::FrameSenderConfig& config, mojo::ScopedDataPipeConsumerHandle pipe, - media::mojom::RemotingDataStreamSenderRequest request, + mojo::PendingReceiver<media::mojom::RemotingDataStreamSender> + stream_sender, base::OnceClosure error_callback); ~RemotingSender() override; @@ -88,10 +90,10 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) RemotingSender final std::unique_ptr<media::MojoDataPipeReader> data_pipe_reader_; - // Mojo binding for this instance. Implementation at the other end of the - // message pipe uses the RemotingDataStreamSender interface to control when + // Mojo receiver for this instance. Implementation at the other end of the + // message pipe uses the RemotingDataStreamSender remote to control when // this RemotingSender consumes from |pipe_|. - mojo::Binding<media::mojom::RemotingDataStreamSender> binding_; + mojo::Receiver<media::mojom::RemotingDataStreamSender> stream_sender_; // The next frame's payload data. Populated by call to OnFrameRead() when // reading succeeded. diff --git a/chromium/components/mirroring/service/remoting_sender_unittest.cc b/chromium/components/mirroring/service/remoting_sender_unittest.cc index 2c0ab3a678f..0ce5ba55111 100644 --- a/chromium/components/mirroring/service/remoting_sender_unittest.cc +++ b/chromium/components/mirroring/service/remoting_sender_unittest.cc @@ -17,6 +17,7 @@ #include "media/cast/net/cast_transport.h" #include "media/cast/test/utility/default_config.h" #include "media/mojo/mojom/remoting.mojom.h" +#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/system/data_pipe.h" #include "testing/gtest/include/gtest/gtest.h" @@ -127,7 +128,7 @@ class RemotingSenderTest : public ::testing::Test { receiver_ssrc_ = video_config.receiver_ssrc; remoting_sender_ = std::make_unique<RemotingSender>( cast_environment_, &transport_, video_config, std::move(consumer_end), - mojo::MakeRequest(&sender_), + sender_.BindNewPipeAndPassReceiver(), base::BindOnce( [](bool expecting_error_callback_run) { CHECK(expecting_error_callback_run); @@ -254,7 +255,7 @@ class RemotingSenderTest : public ::testing::Test { const scoped_refptr<media::cast::CastEnvironment> cast_environment_; FakeTransport transport_; std::unique_ptr<RemotingSender> remoting_sender_; - media::mojom::RemotingDataStreamSenderPtr sender_; + mojo::Remote<media::mojom::RemotingDataStreamSender> sender_; mojo::ScopedDataPipeProducerHandle producer_end_; bool expecting_error_callback_run_; uint32_t receiver_ssrc_; diff --git a/chromium/components/mirroring/service/rtp_stream.h b/chromium/components/mirroring/service/rtp_stream.h index d2a908c3e84..35ef727ca0f 100644 --- a/chromium/components/mirroring/service/rtp_stream.h +++ b/chromium/components/mirroring/service/rtp_stream.h @@ -48,8 +48,8 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) RtpStreamClient { virtual void CreateVideoEncodeAccelerator( const media::cast::ReceiveVideoEncodeAcceleratorCallback& callback) = 0; - // TODO(xjz): Remove this interface. Instead, create the shared memory in - // external video encoder through mojo::ScopedSharedBufferHandle. + // TODO(crbug.com/1015472): Remove this interface. Instead, create the shared + // memory in external video encoder through mojo::ScopedSharedBufferHandle. virtual void CreateVideoEncodeMemory( size_t size, const media::cast::ReceiveVideoEncodeMemoryCallback& callback) = 0; diff --git a/chromium/components/mirroring/service/session.cc b/chromium/components/mirroring/service/session.cc index 892a5965aa5..b8745fa0ee6 100644 --- a/chromium/components/mirroring/service/session.cc +++ b/chromium/components/mirroring/service/session.cc @@ -41,7 +41,6 @@ #include "media/mojo/clients/mojo_video_encode_accelerator.h" #include "media/video/video_encode_accelerator.h" #include "mojo/public/cpp/base/shared_memory_utils.h" -#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/system/platform_handle.h" #include "net/base/ip_endpoint.h" #include "services/viz/public/cpp/gpu/gpu.h" @@ -153,10 +152,9 @@ bool IsHardwareVP8EncodingSupported( bool IsHardwareH264EncodingSupported( const std::vector<media::VideoEncodeAccelerator::SupportedProfile>& profiles) { -// TODO(miu): Look into why H.264 hardware encoder on MacOS is broken. -// http://crbug.com/596674 -// TODO(emircan): Look into HW encoder initialization issues on Win. -// https://crbug.com/636064 +// TODO(crbug.com/1015482): Look into why H.264 hardware encoder on MacOS is +// broken. +// TODO(crbug.com/1015482): Look into HW encoder initialization issues on Win. #if !defined(OS_MACOSX) && !defined(OS_WIN) for (const auto& vea_profile : profiles) { if (vea_profile.profile >= media::H264PROFILE_MIN && @@ -317,7 +315,7 @@ media::mojom::RemotingSinkMetadata ToRemotingSinkMetadata( // Enable remoting 1080p 30fps or higher resolution/fps content for Chromecast // Ultra receivers only. - // TODO(xjz): Receiver should report this capability. + // TODO(crbug.com/1015467): Receiver should report this capability. if (params.receiver_model_name == "Chromecast Ultra") { sink_metadata.video_capabilities.push_back( RemotingSinkVideoCapability::SUPPORT_4K); @@ -352,8 +350,8 @@ class Session::AudioCapturingCallback final base::TimeTicks audio_capture_time, double volume, bool key_pressed) override { - // TODO(xjz): Don't copy the audio data. Instead, send |audio_bus| directly - // to the encoder. + // TODO(crbug.com/1015467): Don't copy the audio data. Instead, send + // |audio_bus| directly to the encoder. std::unique_ptr<media::AudioBus> captured_audio = media::AudioBus::Create(audio_bus->channels(), audio_bus->frames()); audio_bus->CopyTo(captured_audio.get()); @@ -407,9 +405,9 @@ Session::Session( network::mojom::URLLoaderFactoryParams::New(); params->process_id = network::mojom::kBrowserProcessId; params->is_corb_enabled = false; - network::mojom::URLLoaderFactoryPtr url_loader_factory; + mojo::PendingRemote<network::mojom::URLLoaderFactory> url_loader_factory; network_context_->CreateURLLoaderFactory( - mojo::MakeRequest(&url_loader_factory), std::move(params)); + url_loader_factory.InitWithNewPipeAndPassReceiver(), std::move(params)); // Generate session level tags. base::Value session_tags(base::Value::Type::DICTIONARY); @@ -520,8 +518,8 @@ void Session::OnEncoderStatusChange(OperationalStatus status) { case OperationalStatus::STATUS_UNINITIALIZED: case OperationalStatus::STATUS_CODEC_REINIT_PENDING: // Not an error. - // TODO(miu): As an optimization, signal the client to pause sending more - // frames until the state becomes STATUS_INITIALIZED again. + // TODO(crbug.com/1015467): As an optimization, signal the client to pause + // sending more frames until the state becomes STATUS_INITIALIZED again. case OperationalStatus::STATUS_INITIALIZED: break; case OperationalStatus::STATUS_INVALID_CONFIGURATION: @@ -547,10 +545,11 @@ void Session::CreateVideoEncodeAccelerator( if (gpu_ && gpu_channel_host_ && !supported_profiles_.empty()) { if (!vea_provider_) { gpu_->CreateVideoEncodeAcceleratorProvider( - mojo::MakeRequest(&vea_provider_)); + vea_provider_.BindNewPipeAndPassReceiver()); } - media::mojom::VideoEncodeAcceleratorPtr vea; - vea_provider_->CreateVideoEncodeAccelerator(mojo::MakeRequest(&vea)); + mojo::PendingRemote<media::mojom::VideoEncodeAccelerator> vea; + vea_provider_->CreateVideoEncodeAccelerator( + vea.InitWithNewPipeAndPassReceiver()); // std::make_unique doesn't work to create a unique pointer of the subclass. mojo_vea.reset(new media::MojoVideoEncodeAccelerator(std::move(vea), supported_profiles_)); @@ -707,9 +706,9 @@ void Session::OnAnswer(const std::vector<FrameSenderConfig>& audio_configs, audio_stream_ = std::make_unique<AudioRtpStream>( std::move(audio_sender), weak_factory_.GetWeakPtr()); DCHECK(!audio_capturing_callback_); - // TODO(xjz): Elliminate the thread hops. The audio data is thread-hopped - // from the audio thread, and later thread-hopped again to the encoding - // thread. + // TODO(crbug.com/1015467): Eliminate the thread hops. The audio data is + // thread-hopped from the audio thread, and later thread-hopped again to + // the encoding thread. audio_capturing_callback_ = std::make_unique<AudioCapturingCallback>( media::BindToCurrentLoop(base::BindRepeating( &AudioRtpStream::InsertAudio, audio_stream_->AsWeakPtr())), @@ -787,7 +786,7 @@ void Session::OnAnswer(const std::vector<FrameSenderConfig>& audio_configs, } void Session::OnResponseParsingError(const std::string& error_message) { - // TODO(xjz): Log the |error_message| in the mirroring logs. + // TODO(crbug.com/1015467): Log the |error_message| in the mirroring logs. } void Session::CreateAudioStream( diff --git a/chromium/components/mirroring/service/session.h b/chromium/components/mirroring/service/session.h index b97a401138d..2f10d1ca2bb 100644 --- a/chromium/components/mirroring/service/session.h +++ b/chromium/components/mirroring/service/session.h @@ -181,7 +181,7 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) Session final std::unique_ptr<viz::Gpu> gpu_; scoped_refptr<gpu::GpuChannelHost> gpu_channel_host_; gpu::VideoEncodeAcceleratorSupportedProfiles supported_profiles_; - media::mojom::VideoEncodeAcceleratorProviderPtr vea_provider_; + mojo::Remote<media::mojom::VideoEncodeAcceleratorProvider> vea_provider_; base::WeakPtrFactory<Session> weak_factory_{this}; }; diff --git a/chromium/components/mirroring/service/session_monitor.cc b/chromium/components/mirroring/service/session_monitor.cc index 1286bdde477..844a48b0f45 100644 --- a/chromium/components/mirroring/service/session_monitor.cc +++ b/chromium/components/mirroring/service/session_monitor.cc @@ -112,7 +112,7 @@ SessionMonitor::SessionMonitor( int max_retention_bytes, const net::IPAddress& receiver_address, base::Value session_tags, - network::mojom::URLLoaderFactoryPtr loader_factory) + mojo::PendingRemote<network::mojom::URLLoaderFactory> loader_factory) : max_retention_bytes_(max_retention_bytes), receiver_address_(receiver_address), session_tags_(std::move(session_tags)), @@ -348,8 +348,8 @@ std::string SessionMonitor::GetEventLogsAndReset( result.resize(media::cast::kMaxSerializedBytes); int output_bytes; - // TODO(xjz): media::cast::SerializeEvents() shouldn't require the caller to - // pre-allocate the memory. It should return a string result. + // TODO(crbug.com/1015471): media::cast::SerializeEvents() shouldn't require + // the caller to pre-allocate the memory. It should return a string result. if (media::cast::SerializeEvents(metadata, frame_events, packet_events, true /* compress */, media::cast::kMaxSerializedBytes, diff --git a/chromium/components/mirroring/service/session_monitor.h b/chromium/components/mirroring/service/session_monitor.h index 1963a007c93..d3b77250cbf 100644 --- a/chromium/components/mirroring/service/session_monitor.h +++ b/chromium/components/mirroring/service/session_monitor.h @@ -16,6 +16,8 @@ #include "base/timer/timer.h" #include "base/values.h" #include "components/mirroring/mojom/session_observer.mojom.h" +#include "mojo/public/cpp/bindings/pending_remote.h" +#include "mojo/public/cpp/bindings/remote.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" namespace media { @@ -52,10 +54,11 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) SessionMonitor { public: using EventsAndStats = std::pair<std::string /* events */, std::string /* stats */>; - SessionMonitor(int max_retention_bytes, - const net::IPAddress& receiver_address, - base::Value session_tags, - network::mojom::URLLoaderFactoryPtr loader_factory); + SessionMonitor( + int max_retention_bytes, + const net::IPAddress& receiver_address, + base::Value session_tags, + mojo::PendingRemote<network::mojom::URLLoaderFactory> loader_factory); ~SessionMonitor(); @@ -116,7 +119,7 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) SessionMonitor { std::string receiver_name_; - network::mojom::URLLoaderFactoryPtr url_loader_factory_; + mojo::Remote<network::mojom::URLLoaderFactory> url_loader_factory_; // Monitors the WiFi status if not null. std::unique_ptr<WifiStatusMonitor> wifi_status_monitor_; diff --git a/chromium/components/mirroring/service/session_monitor_unittest.cc b/chromium/components/mirroring/service/session_monitor_unittest.cc index 826839cff0f..02e6f420dd8 100644 --- a/chromium/components/mirroring/service/session_monitor_unittest.cc +++ b/chromium/components/mirroring/service/session_monitor_unittest.cc @@ -18,10 +18,8 @@ #include "components/mirroring/service/wifi_status_monitor.h" #include "media/cast/cast_environment.h" #include "media/cast/test/utility/net_utility.h" -#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" -#include "mojo/public/cpp/bindings/remote.h" -#include "mojo/public/cpp/bindings/strong_binding.h" +#include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "net/base/ip_endpoint.h" #include "services/network/test/test_url_loader_factory.h" #include "testing/gmock/include/gmock/gmock.h" @@ -69,7 +67,7 @@ void VerifyWifiStatus(const base::Value& raw_value, EXPECT_TRUE(found && found->is_dict()); auto* wifi_status = found->FindKey("receiverWifiStatus"); EXPECT_TRUE(wifi_status && wifi_status->is_list()); - base::span<const base::Value> status_list = wifi_status->GetList(); + base::Value::ConstListView status_list = wifi_status->GetList(); EXPECT_EQ(num_of_status, static_cast<int>(status_list.size())); for (int i = 0; i < num_of_status; ++i) { double snr = -1; @@ -101,12 +99,13 @@ class SessionMonitorTest : public mojom::CastMessageChannel, void CreateSessionMonitor(int max_bytes, std::string* expected_settings) { EXPECT_CALL(*this, Send(::testing::_)).Times(::testing::AtLeast(1)); - network::mojom::URLLoaderFactoryPtr url_loader_factory; + mojo::PendingRemote<network::mojom::URLLoaderFactory> url_loader_factory; auto test_url_loader_factory = std::make_unique<network::TestURLLoaderFactory>(); url_loader_factory_ = test_url_loader_factory.get(); - mojo::MakeStrongBinding(std::move(test_url_loader_factory), - mojo::MakeRequest(&url_loader_factory)); + mojo::MakeSelfOwnedReceiver( + std::move(test_url_loader_factory), + url_loader_factory.InitWithNewPipeAndPassReceiver()); MirrorSettings mirror_settings; base::Value session_tags(base::Value::Type::DICTIONARY); base::Value settings = mirror_settings.ToDictionaryValue(); @@ -238,7 +237,7 @@ TEST_F(SessionMonitorTest, ProvidesExpectedTags) { AssembleBundleAndVerify(bundle_sizes); base::Value stats = ReadStats(bundles[0].second); - base::span<const base::Value> stats_list = stats.GetList(); + base::Value::ConstListView stats_list = stats.GetList(); ASSERT_EQ(1u, stats_list.size()); // Verify tags. EXPECT_TRUE(stats_list[0].is_dict()); @@ -273,7 +272,7 @@ TEST_F(SessionMonitorTest, MultipleSessions) { std::vector<SessionMonitor::EventsAndStats> bundles = AssembleBundleAndVerify(bundle_sizes); base::Value stats = ReadStats(bundles[0].second); - base::span<const base::Value> stats_list = stats.GetList(); + base::Value::ConstListView stats_list = stats.GetList(); // There should be two sessions in the recorded stats. EXPECT_EQ(2u, stats_list.size()); } @@ -292,7 +291,7 @@ TEST_F(SessionMonitorTest, ConfigureMaxRetentionBytes) { std::vector<SessionMonitor::EventsAndStats> bundles = AssembleBundleAndVerify(bundle_sizes); base::Value stats = ReadStats(bundles[0].second); - base::span<const base::Value> stats_list = stats.GetList(); + base::Value::ConstListView stats_list = stats.GetList(); // Expect to only record the second session. ASSERT_EQ(1u, stats_list.size()); VerifyWifiStatus(stats_list[0], 54, 3000, 5); @@ -312,14 +311,14 @@ TEST_F(SessionMonitorTest, AssembleBundlesWithVaryingSizes) { // Expect the first bundle has only one session. base::Value stats = ReadStats(bundles[0].second); - base::span<const base::Value> stats_list = stats.GetList(); + base::Value::ConstListView stats_list = stats.GetList(); // Expect to only record the second session. ASSERT_EQ(1u, stats_list.size()); VerifyWifiStatus(stats_list[0], 54, 3000, 5); // Expect the second bundle has both sessions. stats = ReadStats(bundles[1].second); - base::span<const base::Value> stats_list2 = stats.GetList(); + base::Value::ConstListView stats_list2 = stats.GetList(); ASSERT_EQ(2u, stats_list2.size()); VerifyWifiStatus(stats_list2[0], 34, 2000, 5); VerifyWifiStatus(stats_list2[1], 54, 3000, 5); @@ -338,7 +337,7 @@ TEST_F(SessionMonitorTest, ErrorTags) { std::vector<SessionMonitor::EventsAndStats> bundles = AssembleBundleAndVerify(bundle_sizes); base::Value stats = ReadStats(bundles[0].second); - base::span<const base::Value> stats_list = stats.GetList(); + base::Value::ConstListView stats_list = stats.GetList(); // There should be three snapshots in the bundle. ASSERT_EQ(3u, stats_list.size()); @@ -382,7 +381,7 @@ TEST_F(SessionMonitorTest, ReceiverSetupInfo) { std::vector<SessionMonitor::EventsAndStats> bundles = AssembleBundleAndVerify(bundle_sizes); base::Value stats = ReadStats(bundles[0].second); - base::span<const base::Value> stats_list = stats.GetList(); + base::Value::ConstListView stats_list = stats.GetList(); // There should be two snapshots in the bundle. EXPECT_EQ(2u, stats_list.size()); diff --git a/chromium/components/mirroring/service/session_unittest.cc b/chromium/components/mirroring/service/session_unittest.cc index ccf88236306..a55c5ba1388 100644 --- a/chromium/components/mirroring/service/session_unittest.cc +++ b/chromium/components/mirroring/service/session_unittest.cc @@ -272,7 +272,7 @@ class SessionTest : public mojom::ResourceProvider, EXPECT_CALL(*this, OnOutboundMessage("OFFER")).Times(1); // The start of remoting is expected to fail. EXPECT_CALL(remoting_source_, - OnStartFailed(RemotingStartFailReason::SERVICE_NOT_CONNECTED)) + OnStartFailed(RemotingStartFailReason::INVALID_ANSWER_MESSAGE)) .Times(1); EXPECT_CALL(remoting_source_, OnSinkGone()).Times(AtLeast(1)); } diff --git a/chromium/components/mirroring/service/udp_socket_client.h b/chromium/components/mirroring/service/udp_socket_client.h index 7618cac4077..75d5764b8c4 100644 --- a/chromium/components/mirroring/service/udp_socket_client.h +++ b/chromium/components/mirroring/service/udp_socket_client.h @@ -70,8 +70,8 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) UdpSocketClient final // Set by SendPacket() when the sending is not allowed. Once set, SendPacket() // can only be called again when a previous sending completes successfully. - // TODO(xjz): Change the callback to a base::OnceClosure as well as in the - // cast::PacketTransport SendPacket(). + // TODO(crbug.com/1015479): Change the callback to a base::OnceClosure as well + // as in the cast::PacketTransport SendPacket(). base::RepeatingClosure resume_send_callback_; // Total numbe of bytes written to the data pipe. diff --git a/chromium/components/mirroring/service/video_capture_client.cc b/chromium/components/mirroring/service/video_capture_client.cc index 3c59ed60dc2..7309064497f 100644 --- a/chromium/components/mirroring/service/video_capture_client.cc +++ b/chromium/components/mirroring/service/video_capture_client.cc @@ -160,7 +160,7 @@ void VideoCaptureClient::OnBufferReady(int32_t buffer_id, // If the timestamp is not prepared, we use reference time to make a rough // estimate. e.g. ThreadSafeCaptureOracle::DidCaptureFrame(). - // TODO(crbug/618407): Fix upstream capturers to always set timestamp and + // TODO(crbug.com/618407): Fix upstream capturers to always set timestamp and // reference time. if (info->timestamp.is_zero()) info->timestamp = reference_time - first_frame_ref_time_; @@ -179,7 +179,7 @@ void VideoCaptureClient::OnBufferReady(int32_t buffer_id, scoped_refptr<media::VideoFrame> frame; BufferFinishedCallback buffer_finished_callback; if (buffer_iter->second->is_shared_buffer_handle()) { - // TODO(https://crbug.com/843117): Remove this case after migrating + // TODO(crbug.com/843117): Remove this case after migrating // media::VideoCaptureDeviceClient to the new shared memory API. auto mapping_iter = mapped_buffers_.find(buffer_id); const size_t buffer_size = diff --git a/chromium/components/mirroring/service/video_capture_client.h b/chromium/components/mirroring/service/video_capture_client.h index 5953e6d8ca0..1d3ca9e4d97 100644 --- a/chromium/components/mirroring/service/video_capture_client.h +++ b/chromium/components/mirroring/service/video_capture_client.h @@ -80,9 +80,9 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) VideoCaptureClient mojo::Receiver<media::mojom::VideoCaptureObserver> receiver_{this}; - // TODO(https://crbug.com/843117): Store the - // base::ReadOnlySharedMemoryRegion instead after migrating the - // media::VideoCaptureDeviceClient to the new shared memory API. + // TODO(crbug.com/843117): Store the base::ReadOnlySharedMemoryRegion instead + // after migrating the media::VideoCaptureDeviceClient to the new shared + // memory API. using ClientBufferMap = base::flat_map<int32_t, media::mojom::VideoBufferHandlePtr>; // Stores the buffer handler on OnBufferCreated(). |buffer_id| is the key. @@ -95,7 +95,7 @@ class COMPONENT_EXPORT(MIRRORING_SERVICE) VideoCaptureClient // The callback to deliver the received frame. FrameDeliverCallback frame_deliver_callback_; - // TODO(https://crbug.com/843117): Remove the MappingMap after migrating + // TODO(crbug.com/843117): Remove the MappingMap after migrating // media::VideoCaptureDeviceClient to the new shared memory API. using MappingAndSize = std::pair<mojo::ScopedSharedBufferMapping, uint32_t>; using MappingMap = base::flat_map<int32_t, MappingAndSize>; diff --git a/chromium/components/mirroring/service/video_capture_client_unittest.cc b/chromium/components/mirroring/service/video_capture_client_unittest.cc index 78fd3d312e9..631c2852d7e 100644 --- a/chromium/components/mirroring/service/video_capture_client_unittest.cc +++ b/chromium/components/mirroring/service/video_capture_client_unittest.cc @@ -137,7 +137,7 @@ TEST_P(VideoCaptureClientTest, Basic) { OnBufferReady(0, gfx::Size(320, 180)); } -INSTANTIATE_TEST_SUITE_P(, +INSTANTIATE_TEST_SUITE_P(All, VideoCaptureClientTest, ::testing::Values(true, false)); |