0

[Code Health] Convert Closure to OnceClosure

The pause_cb_ Closure is a OnceClosure.  Change Pause() and Flush() to
take a OnceClosure.

This fixes text_render.cc not to use Closure.  Every instance is now
either RepeatingClosure or OnceClosure.

Bug: 1007799
Change-Id: I6ad66ccb149cac914325da98da2f4c0a3965fd7e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2095709
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Commit-Queue: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#750269}
This commit is contained in:
Raymond Toy
2020-03-13 19:38:13 +00:00
committed by Commit Bot
parent 87d01b48ae
commit 888f8dd6d2
3 changed files with 18 additions and 16 deletions

@ -65,22 +65,22 @@ void TextRenderer::StartPlaying() {
state_ = kPlaying; state_ = kPlaying;
} }
void TextRenderer::Pause(const base::Closure& callback) { void TextRenderer::Pause(base::OnceClosure callback) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->BelongsToCurrentThread());
DCHECK(state_ == kPlaying || state_ == kEnded) << "state_ " << state_; DCHECK(state_ == kPlaying || state_ == kEnded) << "state_ " << state_;
DCHECK_GE(pending_read_count_, 0); DCHECK_GE(pending_read_count_, 0);
if (pending_read_count_ == 0) { if (pending_read_count_ == 0) {
state_ = kPaused; state_ = kPaused;
task_runner_->PostTask(FROM_HERE, callback); task_runner_->PostTask(FROM_HERE, std::move(callback));
return; return;
} }
pause_cb_ = callback; pause_cb_ = std::move(callback);
state_ = kPausePending; state_ = kPausePending;
} }
void TextRenderer::Flush(const base::Closure& callback) { void TextRenderer::Flush(base::OnceClosure callback) {
DCHECK(task_runner_->BelongsToCurrentThread()); DCHECK(task_runner_->BelongsToCurrentThread());
DCHECK_EQ(pending_read_count_, 0); DCHECK_EQ(pending_read_count_, 0);
DCHECK(state_ == kPaused) << "state_ " << state_; DCHECK(state_ == kPaused) << "state_ " << state_;
@ -91,7 +91,7 @@ void TextRenderer::Flush(const base::Closure& callback) {
itr->second->text_ranges_.Reset(); itr->second->text_ranges_.Reset();
} }
DCHECK_EQ(pending_eos_set_.size(), text_track_state_map_.size()); DCHECK_EQ(pending_eos_set_.size(), text_track_state_map_.size());
task_runner_->PostTask(FROM_HERE, callback); task_runner_->PostTask(FROM_HERE, std::move(callback));
} }
void TextRenderer::AddTextStream(DemuxerStream* text_stream, void TextRenderer::AddTextStream(DemuxerStream* text_stream,

@ -52,10 +52,10 @@ class MEDIA_EXPORT TextRenderer {
// Temporarily suspends decoding and rendering, executing |callback| when // Temporarily suspends decoding and rendering, executing |callback| when
// playback has been suspended. // playback has been suspended.
void Pause(const base::Closure& callback); void Pause(base::OnceClosure callback);
// Discards any text data, executing |callback| when completed. // Discards any text data, executing |callback| when completed.
void Flush(const base::Closure& callback); void Flush(base::OnceClosure callback);
// Adds new |text_stream|, having the indicated |config|, to the text stream // Adds new |text_stream|, having the indicated |config|, to the text stream
// collection managed by this text renderer. // collection managed by this text renderer.
@ -109,7 +109,7 @@ class MEDIA_EXPORT TextRenderer {
base::RepeatingClosure ended_cb_; base::RepeatingClosure ended_cb_;
// Callback provided to Pause(). // Callback provided to Pause().
base::Closure pause_cb_; base::OnceClosure pause_cb_;
// Simple state tracking variable. // Simple state tracking variable.
enum State { enum State {

@ -54,9 +54,10 @@ class TextRendererTest : public testing::Test {
void CreateTextRenderer() { void CreateTextRenderer() {
DCHECK(!text_renderer_); DCHECK(!text_renderer_);
text_renderer_.reset(new TextRenderer( text_renderer_.reset(
task_environment_.GetMainThreadTaskRunner(), new TextRenderer(task_environment_.GetMainThreadTaskRunner(),
base::Bind(&TextRendererTest::OnAddTextTrack, base::Unretained(this)))); base::BindRepeating(&TextRendererTest::OnAddTextTrack,
base::Unretained(this))));
text_renderer_->Initialize( text_renderer_->Initialize(
base::BindRepeating(&TextRendererTest::OnEnd, base::Unretained(this))); base::BindRepeating(&TextRendererTest::OnEnd, base::Unretained(this)));
} }
@ -171,14 +172,14 @@ class TextRendererTest : public testing::Test {
void Pause() { void Pause() {
text_renderer_->Pause( text_renderer_->Pause(
base::Bind(&TextRendererTest::OnPause, base::Unretained(this))); base::BindOnce(&TextRendererTest::OnPause, base::Unretained(this)));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
} }
void Flush() { void Flush() {
EXPECT_CALL(*this, OnFlush()); EXPECT_CALL(*this, OnFlush());
text_renderer_->Flush( text_renderer_->Flush(
base::Bind(&TextRendererTest::OnFlush, base::Unretained(this))); base::BindOnce(&TextRendererTest::OnFlush, base::Unretained(this)));
} }
void ExpectRead(size_t idx) { void ExpectRead(size_t idx) {
@ -205,9 +206,10 @@ class TextRendererTest : public testing::Test {
}; };
TEST_F(TextRendererTest, CreateTextRendererNoInit) { TEST_F(TextRendererTest, CreateTextRendererNoInit) {
text_renderer_.reset(new TextRenderer( text_renderer_.reset(
task_environment_.GetMainThreadTaskRunner(), new TextRenderer(task_environment_.GetMainThreadTaskRunner(),
base::Bind(&TextRendererTest::OnAddTextTrack, base::Unretained(this)))); base::BindRepeating(&TextRendererTest::OnAddTextTrack,
base::Unretained(this))));
text_renderer_.reset(); text_renderer_.reset();
} }