Commit b36ca0a5 authored by Evan Stade's avatar Evan Stade Committed by Commit Bot

Update callbacks and bind sites to Once/Repeating in //remoting/client

Bug: 1007821
Change-Id: I5d5934b2e4e45f9c615267416a2092ae73f8abf9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2093167Reviewed-by: default avatarJoe Downing <joedow@chromium.org>
Commit-Queue: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#749694}
parent c7bdca4a
...@@ -115,28 +115,28 @@ std::unique_ptr<AudioPacket> CreatePacket48000Hz(int samples) { ...@@ -115,28 +115,28 @@ std::unique_ptr<AudioPacket> CreatePacket48000Hz(int samples) {
TEST_F(AudioPlayerTest, Init) { TEST_F(AudioPlayerTest, Init) {
ASSERT_EQ(0, GetNumQueuedPackets()); ASSERT_EQ(0, GetNumQueuedPackets());
audio_->ProcessAudioPacket(CreatePacket44100Hz(10), base::Closure()); audio_->ProcessAudioPacket(CreatePacket44100Hz(10), {});
ASSERT_EQ(1, GetNumQueuedPackets()); ASSERT_EQ(1, GetNumQueuedPackets());
} }
TEST_F(AudioPlayerTest, MultipleSamples) { TEST_F(AudioPlayerTest, MultipleSamples) {
audio_->ProcessAudioPacket(CreatePacket44100Hz(10), base::Closure()); audio_->ProcessAudioPacket(CreatePacket44100Hz(10), {});
ASSERT_EQ(10, GetNumQueuedSamples()); ASSERT_EQ(10, GetNumQueuedSamples());
ASSERT_EQ(1, GetNumQueuedPackets()); ASSERT_EQ(1, GetNumQueuedPackets());
audio_->ProcessAudioPacket(CreatePacket44100Hz(20), base::Closure()); audio_->ProcessAudioPacket(CreatePacket44100Hz(20), {});
ASSERT_EQ(30, GetNumQueuedSamples()); ASSERT_EQ(30, GetNumQueuedSamples());
ASSERT_EQ(2, GetNumQueuedPackets()); ASSERT_EQ(2, GetNumQueuedPackets());
} }
TEST_F(AudioPlayerTest, ChangeSampleRate) { TEST_F(AudioPlayerTest, ChangeSampleRate) {
audio_->ProcessAudioPacket(CreatePacket44100Hz(10), base::Closure()); audio_->ProcessAudioPacket(CreatePacket44100Hz(10), {});
ASSERT_EQ(10, GetNumQueuedSamples()); ASSERT_EQ(10, GetNumQueuedSamples());
ASSERT_EQ(1, GetNumQueuedPackets()); ASSERT_EQ(1, GetNumQueuedPackets());
// New packet with different sampling rate causes previous samples to // New packet with different sampling rate causes previous samples to
// be removed. // be removed.
audio_->ProcessAudioPacket(CreatePacket48000Hz(20), base::Closure()); audio_->ProcessAudioPacket(CreatePacket48000Hz(20), {});
ASSERT_EQ(20, GetNumQueuedSamples()); ASSERT_EQ(20, GetNumQueuedSamples());
ASSERT_EQ(1, GetNumQueuedPackets()); ASSERT_EQ(1, GetNumQueuedPackets());
} }
...@@ -144,7 +144,7 @@ TEST_F(AudioPlayerTest, ChangeSampleRate) { ...@@ -144,7 +144,7 @@ TEST_F(AudioPlayerTest, ChangeSampleRate) {
TEST_F(AudioPlayerTest, ExceedLatency) { TEST_F(AudioPlayerTest, ExceedLatency) {
// Push about 4 seconds worth of samples. // Push about 4 seconds worth of samples.
for (int i = 0; i < 100; ++i) { for (int i = 0; i < 100; ++i) {
audio_->ProcessAudioPacket(CreatePacket48000Hz(2000), base::Closure()); audio_->ProcessAudioPacket(CreatePacket48000Hz(2000), {});
} }
// Verify that we don't have more than 0.5s. // Verify that we don't have more than 0.5s.
...@@ -160,8 +160,7 @@ TEST_F(AudioPlayerTest, ConsumePartialPacket) { ...@@ -160,8 +160,7 @@ TEST_F(AudioPlayerTest, ConsumePartialPacket) {
// Process 100 samples. // Process 100 samples.
int packet1_samples = 100; int packet1_samples = 100;
total_samples += packet1_samples; total_samples += packet1_samples;
audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples), audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples), {});
base::Closure());
ASSERT_EQ(total_samples, GetNumQueuedSamples()); ASSERT_EQ(total_samples, GetNumQueuedSamples());
ASSERT_EQ(1, GetNumQueuedPackets()); ASSERT_EQ(1, GetNumQueuedPackets());
ASSERT_EQ(bytes_consumed, GetBytesConsumed()); ASSERT_EQ(bytes_consumed, GetBytesConsumed());
...@@ -189,15 +188,13 @@ TEST_F(AudioPlayerTest, ConsumeAcrossPackets) { ...@@ -189,15 +188,13 @@ TEST_F(AudioPlayerTest, ConsumeAcrossPackets) {
// Packet 1. // Packet 1.
int packet1_samples = 20; int packet1_samples = 20;
total_samples += packet1_samples; total_samples += packet1_samples;
audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples), audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples), {});
base::Closure());
ASSERT_EQ(total_samples, GetNumQueuedSamples()); ASSERT_EQ(total_samples, GetNumQueuedSamples());
// Packet 2. // Packet 2.
int packet2_samples = 70; int packet2_samples = 70;
total_samples += packet2_samples; total_samples += packet2_samples;
audio_->ProcessAudioPacket(CreatePacket44100Hz(packet2_samples), audio_->ProcessAudioPacket(CreatePacket44100Hz(packet2_samples), {});
base::Closure());
ASSERT_EQ(total_samples, GetNumQueuedSamples()); ASSERT_EQ(total_samples, GetNumQueuedSamples());
ASSERT_EQ(bytes_consumed, GetBytesConsumed()); ASSERT_EQ(bytes_consumed, GetBytesConsumed());
...@@ -234,16 +231,14 @@ TEST_F(AudioPlayerTest, ConsumeEntirePacket) { ...@@ -234,16 +231,14 @@ TEST_F(AudioPlayerTest, ConsumeEntirePacket) {
// Packet 1. // Packet 1.
int packet1_samples = 50; int packet1_samples = 50;
total_samples += packet1_samples; total_samples += packet1_samples;
audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples), audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples), {});
base::Closure());
ASSERT_EQ(total_samples, GetNumQueuedSamples()); ASSERT_EQ(total_samples, GetNumQueuedSamples());
ASSERT_EQ(bytes_consumed, GetBytesConsumed()); ASSERT_EQ(bytes_consumed, GetBytesConsumed());
// Packet 2. // Packet 2.
int packet2_samples = 30; int packet2_samples = 30;
total_samples += packet2_samples; total_samples += packet2_samples;
audio_->ProcessAudioPacket(CreatePacket44100Hz(packet2_samples), audio_->ProcessAudioPacket(CreatePacket44100Hz(packet2_samples), {});
base::Closure());
ASSERT_EQ(total_samples, GetNumQueuedSamples()); ASSERT_EQ(total_samples, GetNumQueuedSamples());
ASSERT_EQ(bytes_consumed, GetBytesConsumed()); ASSERT_EQ(bytes_consumed, GetBytesConsumed());
...@@ -302,8 +297,7 @@ TEST_F(AudioPlayerTest, NotEnoughDataToConsume) { ...@@ -302,8 +297,7 @@ TEST_F(AudioPlayerTest, NotEnoughDataToConsume) {
// Packet 1. // Packet 1.
int packet1_samples = 10; int packet1_samples = 10;
total_samples += packet1_samples; total_samples += packet1_samples;
audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples), audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples), {});
base::Closure());
ASSERT_EQ(total_samples, GetNumQueuedSamples()); ASSERT_EQ(total_samples, GetNumQueuedSamples());
ASSERT_EQ(bytes_consumed, GetBytesConsumed()); ASSERT_EQ(bytes_consumed, GetBytesConsumed());
......
...@@ -40,7 +40,7 @@ class FakeGlRendererDelegate : public GlRendererDelegate { ...@@ -40,7 +40,7 @@ class FakeGlRendererDelegate : public GlRendererDelegate {
on_size_changed_call_count_++; on_size_changed_call_count_++;
} }
void SetOnFrameRenderedCallback(const base::Closure& callback) { void SetOnFrameRenderedCallback(const base::RepeatingClosure& callback) {
on_frame_rendered_callback_ = callback; on_frame_rendered_callback_ = callback;
} }
...@@ -68,7 +68,7 @@ class FakeGlRendererDelegate : public GlRendererDelegate { ...@@ -68,7 +68,7 @@ class FakeGlRendererDelegate : public GlRendererDelegate {
int canvas_width_ = 0; int canvas_width_ = 0;
int canvas_height_ = 0; int canvas_height_ = 0;
base::Closure on_frame_rendered_callback_; base::RepeatingClosure on_frame_rendered_callback_;
base::WeakPtrFactory<FakeGlRendererDelegate> weak_factory_{this}; base::WeakPtrFactory<FakeGlRendererDelegate> weak_factory_{this};
DISALLOW_COPY_AND_ASSIGN(FakeGlRendererDelegate); DISALLOW_COPY_AND_ASSIGN(FakeGlRendererDelegate);
......
...@@ -26,43 +26,44 @@ void RendererProxy::Initialize(base::WeakPtr<GlRenderer> renderer) { ...@@ -26,43 +26,44 @@ void RendererProxy::Initialize(base::WeakPtr<GlRenderer> renderer) {
void RendererProxy::SetTransformation(const ViewMatrix& transformation) { void RendererProxy::SetTransformation(const ViewMatrix& transformation) {
// Viewport and cursor movements need to be synchronized into the same frame. // Viewport and cursor movements need to be synchronized into the same frame.
RunTaskOnProperThread(base::Bind(&GlRenderer::OnPixelTransformationChanged, RunTaskOnProperThread(
renderer_, transformation.ToMatrixArray()), base::BindOnce(&GlRenderer::OnPixelTransformationChanged, renderer_,
true); transformation.ToMatrixArray()),
true);
} }
void RendererProxy::SetCursorPosition(float x, float y) { void RendererProxy::SetCursorPosition(float x, float y) {
RunTaskOnProperThread(base::Bind(&GlRenderer::OnCursorMoved, renderer_, x, y), RunTaskOnProperThread(
true); base::BindOnce(&GlRenderer::OnCursorMoved, renderer_, x, y), true);
} }
void RendererProxy::SetCursorVisibility(bool visible) { void RendererProxy::SetCursorVisibility(bool visible) {
// Cursor visibility and position should be synchronized. // Cursor visibility and position should be synchronized.
RunTaskOnProperThread( RunTaskOnProperThread(base::BindOnce(&GlRenderer::OnCursorVisibilityChanged,
base::Bind(&GlRenderer::OnCursorVisibilityChanged, renderer_, visible), renderer_, visible),
true); true);
} }
void RendererProxy::StartInputFeedback(float x, float y, float diameter) { void RendererProxy::StartInputFeedback(float x, float y, float diameter) {
RunTaskOnProperThread( RunTaskOnProperThread(base::BindOnce(&GlRenderer::OnCursorInputFeedback,
base::Bind(&GlRenderer::OnCursorInputFeedback, renderer_, x, y, diameter), renderer_, x, y, diameter),
false); false);
} }
void RendererProxy::RunTaskOnProperThread(const base::Closure& task, void RendererProxy::RunTaskOnProperThread(base::OnceClosure task,
bool needs_synchronization) { bool needs_synchronization) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
if (task_runner_->BelongsToCurrentThread()) { if (task_runner_->BelongsToCurrentThread()) {
task.Run(); std::move(task).Run();
return; return;
} }
if (needs_synchronization) { if (needs_synchronization) {
ui_task_poster_->AddTask(task); ui_task_poster_->AddTask(std::move(task));
return; return;
} }
task_runner_->PostTask(FROM_HERE, task); task_runner_->PostTask(FROM_HERE, std::move(task));
} }
} // namespace remoting } // namespace remoting
...@@ -39,7 +39,7 @@ class RendererProxy { ...@@ -39,7 +39,7 @@ class RendererProxy {
// Runs the |task| on the thread of |task_runner_|. All tasks run with // Runs the |task| on the thread of |task_runner_|. All tasks run with
// |needs_synchronization| set to true inside the same tick will be run on // |needs_synchronization| set to true inside the same tick will be run on
// |task_runner_| within the same tick. // |task_runner_| within the same tick.
void RunTaskOnProperThread(const base::Closure& task, void RunTaskOnProperThread(base::OnceClosure task,
bool needs_synchronization); bool needs_synchronization);
base::WeakPtr<GlRenderer> renderer_; base::WeakPtr<GlRenderer> renderer_;
......
...@@ -71,9 +71,9 @@ class DualBufferFrameConsumerTest : public testing::Test { ...@@ -71,9 +71,9 @@ class DualBufferFrameConsumerTest : public testing::Test {
void DualBufferFrameConsumerTest::SetUp() { void DualBufferFrameConsumerTest::SetUp() {
consumer_.reset(new DualBufferFrameConsumer( consumer_.reset(new DualBufferFrameConsumer(
base::Bind(&DualBufferFrameConsumerTest::OnFrameReceived, base::BindRepeating(&DualBufferFrameConsumerTest::OnFrameReceived,
base::Unretained(this)), nullptr, base::Unretained(this)),
protocol::FrameConsumer::FORMAT_RGBA)); nullptr, protocol::FrameConsumer::FORMAT_RGBA));
} }
void DualBufferFrameConsumerTest::OnFrameReceived( void DualBufferFrameConsumerTest::OnFrameReceived(
......
...@@ -21,13 +21,14 @@ const float kScrollFlingTimeConstant = 250.f; ...@@ -21,13 +21,14 @@ const float kScrollFlingTimeConstant = 250.f;
namespace remoting { namespace remoting {
GestureInterpreter::GestureInterpreter() GestureInterpreter::GestureInterpreter()
// TODO(yuweih): These animations are better to take GetWeakPtr(). // TODO(yuweih): These animations are better to take GetWeakPtr().
: pan_animation_(kOneFingerFlingTimeConstant, : pan_animation_(
base::Bind(&GestureInterpreter::PanWithoutAbortAnimations, kOneFingerFlingTimeConstant,
base::Unretained(this))), base::BindRepeating(&GestureInterpreter::PanWithoutAbortAnimations,
base::Unretained(this))),
scroll_animation_( scroll_animation_(
kScrollFlingTimeConstant, kScrollFlingTimeConstant,
base::Bind(&GestureInterpreter::ScrollWithoutAbortAnimations, base::BindRepeating(&GestureInterpreter::ScrollWithoutAbortAnimations,
base::Unretained(this))) {} base::Unretained(this))) {}
GestureInterpreter::~GestureInterpreter() = default; GestureInterpreter::~GestureInterpreter() = default;
......
...@@ -27,7 +27,8 @@ class KeyEventMapper : public protocol::InputFilter { ...@@ -27,7 +27,8 @@ class KeyEventMapper : public protocol::InputFilter {
~KeyEventMapper() override; ~KeyEventMapper() override;
// Callback type for use with SetTrapCallback(), below. // Callback type for use with SetTrapCallback(), below.
typedef base::Callback<void(const protocol::KeyEvent&)> KeyTrapCallback; typedef base::RepeatingCallback<void(const protocol::KeyEvent&)>
KeyTrapCallback;
// Sets the callback to which trapped keys will be delivered. // Sets the callback to which trapped keys will be delivered.
void SetTrapCallback(KeyTrapCallback callback); void SetTrapCallback(KeyTrapCallback callback);
......
...@@ -112,7 +112,7 @@ TEST(KeyEventMapperTest, TrapKeys) { ...@@ -112,7 +112,7 @@ TEST(KeyEventMapperTest, TrapKeys) {
MockInputStub trap_stub; MockInputStub trap_stub;
KeyEventMapper event_mapper(&mock_stub); KeyEventMapper event_mapper(&mock_stub);
KeyEventMapper::KeyTrapCallback callback = KeyEventMapper::KeyTrapCallback callback =
base::Bind(&HandleTrappedKey, base::Unretained(&trap_stub)); base::BindRepeating(&HandleTrappedKey, base::Unretained(&trap_stub));
event_mapper.SetTrapCallback(callback); event_mapper.SetTrapCallback(callback);
event_mapper.TrapKey(4, true); event_mapper.TrapKey(4, true);
event_mapper.TrapKey(5, true); event_mapper.TrapKey(5, true);
......
...@@ -283,7 +283,7 @@ void JniGlDisplayHandler::OnPixelTransformationChanged( ...@@ -283,7 +283,7 @@ void JniGlDisplayHandler::OnPixelTransformationChanged(
std::array<float, 9> matrix; std::array<float, 9> matrix;
env->GetFloatArrayRegion(jmatrix.obj(), 0, 9, matrix.data()); env->GetFloatArrayRegion(jmatrix.obj(), 0, 9, matrix.data());
ui_task_poster_.AddTask( ui_task_poster_.AddTask(
base::Bind(&Core::SetTransformation, core_->GetWeakPtr(), matrix)); base::BindOnce(&Core::SetTransformation, core_->GetWeakPtr(), matrix));
} }
void JniGlDisplayHandler::OnCursorPixelPositionChanged( void JniGlDisplayHandler::OnCursorPixelPositionChanged(
...@@ -293,7 +293,7 @@ void JniGlDisplayHandler::OnCursorPixelPositionChanged( ...@@ -293,7 +293,7 @@ void JniGlDisplayHandler::OnCursorPixelPositionChanged(
float y) { float y) {
DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread());
ui_task_poster_.AddTask( ui_task_poster_.AddTask(
base::Bind(&Core::MoveCursor, core_->GetWeakPtr(), x, y)); base::BindOnce(&Core::MoveCursor, core_->GetWeakPtr(), x, y));
} }
void JniGlDisplayHandler::OnCursorVisibilityChanged( void JniGlDisplayHandler::OnCursorVisibilityChanged(
...@@ -302,7 +302,7 @@ void JniGlDisplayHandler::OnCursorVisibilityChanged( ...@@ -302,7 +302,7 @@ void JniGlDisplayHandler::OnCursorVisibilityChanged(
bool visible) { bool visible) {
DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread());
ui_task_poster_.AddTask( ui_task_poster_.AddTask(
base::Bind(&Core::SetCursorVisibility, core_->GetWeakPtr(), visible)); base::BindOnce(&Core::SetCursorVisibility, core_->GetWeakPtr(), visible));
} }
void JniGlDisplayHandler::OnCursorInputFeedback( void JniGlDisplayHandler::OnCursorInputFeedback(
...@@ -312,8 +312,8 @@ void JniGlDisplayHandler::OnCursorInputFeedback( ...@@ -312,8 +312,8 @@ void JniGlDisplayHandler::OnCursorInputFeedback(
float y, float y,
float diameter) { float diameter) {
DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread());
ui_task_poster_.AddTask(base::Bind(&Core::StartInputFeedback, ui_task_poster_.AddTask(base::BindOnce(&Core::StartInputFeedback,
core_->GetWeakPtr(), x, y, diameter)); core_->GetWeakPtr(), x, y, diameter));
} }
void JniGlDisplayHandler::OnRenderDone() { void JniGlDisplayHandler::OnRenderDone() {
......
...@@ -21,12 +21,12 @@ QueuedTaskPoster::~QueuedTaskPoster() { ...@@ -21,12 +21,12 @@ QueuedTaskPoster::~QueuedTaskPoster() {
} }
} }
void QueuedTaskPoster::AddTask(const base::Closure& closure) { void QueuedTaskPoster::AddTask(base::OnceClosure closure) {
if (!source_task_runner_) { if (!source_task_runner_) {
source_task_runner_ = base::ThreadTaskRunnerHandle::Get(); source_task_runner_ = base::ThreadTaskRunnerHandle::Get();
} }
DCHECK(source_task_runner_->BelongsToCurrentThread()); DCHECK(source_task_runner_->BelongsToCurrentThread());
task_queue_.push(closure); task_queue_.emplace(std::move(closure));
if (!transfer_task_scheduled_) { if (!transfer_task_scheduled_) {
source_task_runner_->PostTask( source_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&QueuedTaskPoster::TransferTaskQueue, FROM_HERE, base::BindOnce(&QueuedTaskPoster::TransferTaskQueue,
...@@ -35,9 +35,9 @@ void QueuedTaskPoster::AddTask(const base::Closure& closure) { ...@@ -35,9 +35,9 @@ void QueuedTaskPoster::AddTask(const base::Closure& closure) {
} }
} }
static void ConsumeTaskQueue(base::queue<base::Closure>* queue) { static void ConsumeTaskQueue(base::queue<base::OnceClosure>* queue) {
while (!queue->empty()) { while (!queue->empty()) {
queue->front().Run(); std::move(queue->front()).Run();
queue->pop(); queue->pop();
} }
} }
...@@ -45,8 +45,8 @@ static void ConsumeTaskQueue(base::queue<base::Closure>* queue) { ...@@ -45,8 +45,8 @@ static void ConsumeTaskQueue(base::queue<base::Closure>* queue) {
void QueuedTaskPoster::TransferTaskQueue() { void QueuedTaskPoster::TransferTaskQueue() {
DCHECK(transfer_task_scheduled_); DCHECK(transfer_task_scheduled_);
transfer_task_scheduled_ = false; transfer_task_scheduled_ = false;
base::queue<base::Closure>* queue_to_transfer = base::queue<base::OnceClosure>* queue_to_transfer =
new base::queue<base::Closure>(); new base::queue<base::OnceClosure>();
queue_to_transfer->swap(task_queue_); queue_to_transfer->swap(task_queue_);
target_task_runner_->PostTask( target_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
......
...@@ -28,7 +28,7 @@ class QueuedTaskPoster { ...@@ -28,7 +28,7 @@ class QueuedTaskPoster {
scoped_refptr<base::SingleThreadTaskRunner> target_task_runner); scoped_refptr<base::SingleThreadTaskRunner> target_task_runner);
~QueuedTaskPoster(); ~QueuedTaskPoster();
void AddTask(const base::Closure& closure); void AddTask(base::OnceClosure closure);
private: private:
void TransferTaskQueue(); void TransferTaskQueue();
...@@ -36,7 +36,7 @@ class QueuedTaskPoster { ...@@ -36,7 +36,7 @@ class QueuedTaskPoster {
scoped_refptr<base::SingleThreadTaskRunner> source_task_runner_; scoped_refptr<base::SingleThreadTaskRunner> source_task_runner_;
scoped_refptr<base::SingleThreadTaskRunner> target_task_runner_; scoped_refptr<base::SingleThreadTaskRunner> target_task_runner_;
base::queue<base::Closure> task_queue_; base::queue<base::OnceClosure> task_queue_;
bool transfer_task_scheduled_ = false; bool transfer_task_scheduled_ = false;
......
...@@ -25,9 +25,9 @@ class QueuedTaskPosterTest : public testing::Test { ...@@ -25,9 +25,9 @@ class QueuedTaskPosterTest : public testing::Test {
void TearDown() override; void TearDown() override;
protected: protected:
base::Closure SetSequenceStartedClosure(bool started); base::OnceClosure SetSequenceStartedClosure(bool started);
base::Closure AssertExecutionOrderClosure(int order); base::OnceClosure AssertExecutionOrderClosure(int order);
base::Closure AssertSequenceNotStartedClosure(); base::OnceClosure AssertSequenceNotStartedClosure();
void RunUntilPosterDone(); void RunUntilPosterDone();
...@@ -60,26 +60,27 @@ void QueuedTaskPosterTest::TearDown() { ...@@ -60,26 +60,27 @@ void QueuedTaskPosterTest::TearDown() {
target_thread_.Stop(); target_thread_.Stop();
} }
base::Closure QueuedTaskPosterTest::SetSequenceStartedClosure(bool started) { base::OnceClosure QueuedTaskPosterTest::SetSequenceStartedClosure(
return base::Bind(&QueuedTaskPosterTest::SetSequenceStarted, bool started) {
base::Unretained(this), started); return base::BindOnce(&QueuedTaskPosterTest::SetSequenceStarted,
base::Unretained(this), started);
} }
base::Closure QueuedTaskPosterTest::AssertExecutionOrderClosure(int order) { base::OnceClosure QueuedTaskPosterTest::AssertExecutionOrderClosure(int order) {
return base::Bind(&QueuedTaskPosterTest::AssertExecutionOrder, return base::BindOnce(&QueuedTaskPosterTest::AssertExecutionOrder,
base::Unretained(this), order); base::Unretained(this), order);
} }
base::Closure QueuedTaskPosterTest::AssertSequenceNotStartedClosure() { base::OnceClosure QueuedTaskPosterTest::AssertSequenceNotStartedClosure() {
return base::Bind(&QueuedTaskPosterTest::AssertSequenceNotStarted, return base::BindOnce(&QueuedTaskPosterTest::AssertSequenceNotStarted,
base::Unretained(this)); base::Unretained(this));
} }
void QueuedTaskPosterTest::RunUntilPosterDone() { void QueuedTaskPosterTest::RunUntilPosterDone() {
base::RunLoop run_loop; base::RunLoop run_loop;
poster_->AddTask( poster_->AddTask(base::BindOnce(
base::Bind(base::IgnoreResult(&base::SingleThreadTaskRunner::PostTask), base::IgnoreResult(&base::SingleThreadTaskRunner::PostTask),
main_task_runner_, FROM_HERE, run_loop.QuitClosure())); main_task_runner_, FROM_HERE, run_loop.QuitClosure()));
run_loop.Run(); run_loop.Run();
} }
......
...@@ -164,34 +164,34 @@ void SoftwareVideoRenderer::ProcessVideoPacket( ...@@ -164,34 +164,34 @@ void SoftwareVideoRenderer::ProcessVideoPacket(
void SoftwareVideoRenderer::RenderFrame( void SoftwareVideoRenderer::RenderFrame(
std::unique_ptr<protocol::FrameStats> stats, std::unique_ptr<protocol::FrameStats> stats,
const base::Closure& done, base::OnceClosure done,
std::unique_ptr<webrtc::DesktopFrame> frame) { std::unique_ptr<webrtc::DesktopFrame> frame) {
DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(thread_checker_.CalledOnValidThread());
stats->client_stats.time_decoded = base::TimeTicks::Now(); stats->client_stats.time_decoded = base::TimeTicks::Now();
if (!frame) { if (!frame) {
if (!done.is_null()) if (done)
done.Run(); std::move(done).Run();
return; return;
} }
consumer_->DrawFrame( consumer_->DrawFrame(std::move(frame),
std::move(frame), base::BindOnce(&SoftwareVideoRenderer::OnFrameRendered,
base::BindOnce(&SoftwareVideoRenderer::OnFrameRendered, weak_factory_.GetWeakPtr(),
weak_factory_.GetWeakPtr(), base::Passed(&stats), done)); base::Passed(&stats), std::move(done)));
} }
void SoftwareVideoRenderer::OnFrameRendered( void SoftwareVideoRenderer::OnFrameRendered(
std::unique_ptr<protocol::FrameStats> stats, std::unique_ptr<protocol::FrameStats> stats,
const base::Closure& done) { base::OnceClosure done) {
DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(thread_checker_.CalledOnValidThread());
stats->client_stats.time_rendered = base::TimeTicks::Now(); stats->client_stats.time_rendered = base::TimeTicks::Now();
if (stats_consumer_) if (stats_consumer_)
stats_consumer_->OnVideoFrameStats(*stats); stats_consumer_->OnVideoFrameStats(*stats);
if (!done.is_null()) if (done)
done.Run(); std::move(done).Run();
} }
} // namespace remoting } // namespace remoting
...@@ -64,10 +64,10 @@ class SoftwareVideoRenderer : public protocol::VideoRenderer, ...@@ -64,10 +64,10 @@ class SoftwareVideoRenderer : public protocol::VideoRenderer,
private: private:
void RenderFrame(std::unique_ptr<protocol::FrameStats> stats, void RenderFrame(std::unique_ptr<protocol::FrameStats> stats,
const base::Closure& done, base::OnceClosure done,
std::unique_ptr<webrtc::DesktopFrame> frame); std::unique_ptr<webrtc::DesktopFrame> frame);
void OnFrameRendered(std::unique_ptr<protocol::FrameStats> stats, void OnFrameRendered(std::unique_ptr<protocol::FrameStats> stats,
const base::Closure& done); base::OnceClosure done);
scoped_refptr<base::SingleThreadTaskRunner> decode_task_runner_; scoped_refptr<base::SingleThreadTaskRunner> decode_task_runner_;
......
...@@ -166,7 +166,7 @@ TEST_F(SoftwareVideoRendererTest, DecodeFrame) { ...@@ -166,7 +166,7 @@ TEST_F(SoftwareVideoRendererTest, DecodeFrame) {
renderer_->ProcessVideoPacket( renderer_->ProcessVideoPacket(
encoder_.Encode(*test_frames[frame_index]), encoder_.Encode(*test_frames[frame_index]),
base::Bind(&SetTrue, &(callback_called[frame_index]))); base::BindOnce(&SetTrue, &(callback_called[frame_index])));
} }
for (int frame_index = 0; frame_index < kFrameCount; frame_index++) { for (int frame_index = 0; frame_index < kFrameCount; frame_index++) {
......
...@@ -40,8 +40,8 @@ class DesktopViewportTest : public testing::Test { ...@@ -40,8 +40,8 @@ class DesktopViewportTest : public testing::Test {
void DesktopViewportTest::SetUp() { void DesktopViewportTest::SetUp() {
viewport_.RegisterOnTransformationChangedCallback( viewport_.RegisterOnTransformationChangedCallback(
base::Bind(&DesktopViewportTest::OnTransformationChanged, base::BindRepeating(&DesktopViewportTest::OnTransformationChanged,
base::Unretained(this)), base::Unretained(this)),
true); true);
} }
......
...@@ -19,7 +19,7 @@ class FlingAnimation { ...@@ -19,7 +19,7 @@ class FlingAnimation {
public: public:
// arguments are delta_x and delta_y with respect to the positions at previous // arguments are delta_x and delta_y with respect to the positions at previous
// tick. // tick.
using FlingCallback = base::Callback<void(float, float)>; using FlingCallback = base::RepeatingCallback<void(float, float)>;
FlingAnimation(float time_constant, const FlingCallback& fling_callback); FlingAnimation(float time_constant, const FlingCallback& fling_callback);
~FlingAnimation(); ~FlingAnimation();
......
...@@ -32,7 +32,8 @@ class FlingAnimationTest : public testing::Test { ...@@ -32,7 +32,8 @@ class FlingAnimationTest : public testing::Test {
FlingAnimation fling_animation_{ FlingAnimation fling_animation_{
kFlingTimeConstant, kFlingTimeConstant,
base::Bind(&FlingAnimationTest::OnDeltaChanged, base::Unretained(this))}; base::BindRepeating(&FlingAnimationTest::OnDeltaChanged,
base::Unretained(this))};
float received_dx_ = 0.f; float received_dx_ = 0.f;
float received_dy_ = 0.f; float received_dy_ = 0.f;
......
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