Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2340)

Unified Diff: cc/raster/raster_buffer_provider_unittest.cc

Issue 1866043006: cc: Remove ScheduleOnOriginThread() and CompleteOnOriginThread(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/raster/raster_buffer_provider_unittest.cc
diff --git a/cc/raster/raster_buffer_provider_unittest.cc b/cc/raster/raster_buffer_provider_unittest.cc
index 6890dd24d8da4e03a67952a91974d7836a146c2b..30dea8855564065c4046f335b2ad1fd5d6ccdcaa 100644
--- a/cc/raster/raster_buffer_provider_unittest.cc
+++ b/cc/raster/raster_buffer_provider_unittest.cc
@@ -55,12 +55,14 @@ class TestRasterTaskImpl : public TileTask {
public:
typedef base::Callback<void(bool was_canceled)> Reply;
- TestRasterTaskImpl(const Resource* resource,
- const Reply& reply,
+ TestRasterTaskImpl(std::unique_ptr<ScopedResource> resource,
+ unsigned id,
+ std::unique_ptr<RasterBuffer> raster_buffer,
TileTask::Vector* dependencies)
- : TileTask(true, dependencies),
- resource_(resource),
- reply_(reply),
+ : TileTask(TileTask::Type::RASTER, true, dependencies),
+ resource_(std::move(resource)),
+ id_(id),
+ raster_buffer_(std::move(raster_buffer)),
raster_source_(FakeRasterSource::CreateFilled(gfx::Size(1, 1))) {}
// Overridden from Task:
@@ -71,23 +73,14 @@ class TestRasterTaskImpl : public TileTask {
RasterSource::PlaybackSettings());
}
- // Overridden from TileTask:
- void ScheduleOnOriginThread(RasterBufferProvider* provider) override {
- // The raster buffer has no tile ids associated with it for partial update,
- // so doesn't need to provide a valid dirty rect.
- raster_buffer_ = provider->AcquireBufferForRaster(resource_, 0, 0);
- }
- void CompleteOnOriginThread(RasterBufferProvider* provider) override {
- provider->ReleaseBufferForRaster(std::move(raster_buffer_));
- reply_.Run(!state().IsFinished());
- }
-
protected:
~TestRasterTaskImpl() override {}
private:
- const Resource* resource_;
- const Reply reply_;
+ friend class RasterBufferProviderTest;
+
+ std::unique_ptr<ScopedResource> resource_;
+ unsigned id_;
std::unique_ptr<RasterBuffer> raster_buffer_;
scoped_refptr<RasterSource> raster_source_;
@@ -96,11 +89,16 @@ class TestRasterTaskImpl : public TileTask {
class BlockingTestRasterTaskImpl : public TestRasterTaskImpl {
public:
- BlockingTestRasterTaskImpl(const Resource* resource,
- const Reply& reply,
+ BlockingTestRasterTaskImpl(std::unique_ptr<ScopedResource> resource,
+ unsigned id,
+ std::unique_ptr<RasterBuffer> raster_buffer,
base::Lock* lock,
TileTask::Vector* dependencies)
- : TestRasterTaskImpl(resource, reply, dependencies), lock_(lock) {}
+ : TestRasterTaskImpl(std::move(resource),
+ id,
+ std::move(raster_buffer),
+ dependencies),
+ lock_(lock) {}
// Overridden from Task:
void RunOnWorkerThread() override {
@@ -175,17 +173,17 @@ class RasterBufferProviderTest
void TearDown() override {
tile_task_manager_->Shutdown();
- tile_task_manager_->CheckForCompletedTasks();
+ CheckForCompletedTasks();
}
void AllTileTasksFinished() {
- tile_task_manager_->CheckForCompletedTasks();
+ CheckForCompletedTasks();
base::MessageLoop::current()->QuitWhenIdle();
}
void RunMessageLoopUntilAllTasksHaveCompleted() {
task_graph_runner_.RunUntilIdle();
- tile_task_manager_->CheckForCompletedTasks();
+ CheckForCompletedTasks();
}
void ScheduleTasks() {
@@ -207,14 +205,15 @@ class RasterBufferProviderTest
ScopedResource::Create(resource_provider_.get()));
resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE,
RGBA_8888);
- const Resource* const_resource = resource.get();
+ // The raster buffer has no tile ids associated with it for partial update,
+ // so doesn't need to provide a valid dirty rect.
+ std::unique_ptr<RasterBuffer> raster_buffer =
+ tile_task_manager_->GetRasterBufferProvider()->AcquireBufferForRaster(
+ resource.get(), 0, 0);
TileTask::Vector empty;
- tasks_.push_back(new TestRasterTaskImpl(
- const_resource,
- base::Bind(&RasterBufferProviderTest::OnTaskCompleted,
- base::Unretained(this), base::Passed(&resource), id),
- &empty));
+ tasks_.push_back(new TestRasterTaskImpl(std::move(resource), id,
+ std::move(raster_buffer), &empty));
}
void AppendTask(unsigned id) { AppendTask(id, gfx::Size(1, 1)); }
@@ -226,14 +225,13 @@ class RasterBufferProviderTest
ScopedResource::Create(resource_provider_.get()));
resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE,
RGBA_8888);
- const Resource* const_resource = resource.get();
+ std::unique_ptr<RasterBuffer> raster_buffer =
+ tile_task_manager_->GetRasterBufferProvider()->AcquireBufferForRaster(
+ resource.get(), 0, 0);
TileTask::Vector empty;
tasks_.push_back(new BlockingTestRasterTaskImpl(
- const_resource,
- base::Bind(&RasterBufferProviderTest::OnTaskCompleted,
- base::Unretained(this), base::Passed(&resource), id),
- lock, &empty));
+ std::move(resource), id, std::move(raster_buffer), lock, &empty));
}
const std::vector<RasterTaskResult>& completed_tasks() const {
@@ -267,12 +265,33 @@ class RasterBufferProviderTest
output_surface_.get(), &shared_bitmap_manager_, nullptr);
}
- void OnTaskCompleted(std::unique_ptr<ScopedResource> resource,
- unsigned id,
- bool was_canceled) {
+ void CheckForCompletedTasks() {
+ Task::Vector completed_tasks;
+ tile_task_manager_->CollectCompletedTasks(&completed_tasks);
+
+ for (auto task : completed_tasks) {
+ TileTask* tile_task = static_cast<TileTask*>(task.get());
+ switch (tile_task->type()) {
+ case TileTask::Type::RASTER:
+ OnRasterTaskCompleted(tile_task);
+ break;
+ default:
+ NOTREACHED();
+ }
+
+ task->state().DidComplete();
+ }
+
+ completed_tasks.clear();
+ }
+
+ void OnRasterTaskCompleted(TileTask* task) {
+ TestRasterTaskImpl* raster_task = static_cast<TestRasterTaskImpl*>(task);
+ tile_task_manager_->GetRasterBufferProvider()->ReleaseBufferForRaster(
+ std::move(raster_task->raster_buffer_));
RasterTaskResult result;
- result.id = id;
- result.canceled = was_canceled;
+ result.id = raster_task->id_;
+ result.canceled = raster_task->state().IsCanceled();
completed_tasks_.push_back(result);
}
« no previous file with comments | « cc/raster/raster_buffer_provider_perftest.cc ('k') | cc/raster/task.h » ('j') | cc/raster/task.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698