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

Unified Diff: cc/raster/tile_task_worker_pool_unittest.cc

Issue 1866043006: cc: Remove ScheduleOnOriginThread() and CompleteOnOriginThread(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: wip Created 4 years, 8 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/tile_task_worker_pool_unittest.cc
diff --git a/cc/raster/tile_task_worker_pool_unittest.cc b/cc/raster/tile_task_worker_pool_unittest.cc
index f7613856351ab366ca22483de47a74c169122694..faad7c76f8257b565fde083d739e58ddd07891ae 100644
--- a/cc/raster/tile_task_worker_pool_unittest.cc
+++ b/cc/raster/tile_task_worker_pool_unittest.cc
@@ -51,16 +51,16 @@ enum TileTaskWorkerPoolType {
TILE_TASK_WORKER_POOL_TYPE_BITMAP
};
+class TileTaskWorkerPoolTest;
+
class TestRasterTaskImpl : public RasterTask {
public:
- typedef base::Callback<void(bool was_canceled)> Reply;
-
TestRasterTaskImpl(const Resource* resource,
- const Reply& reply,
+ scoped_ptr<RasterBuffer> raster_buffer,
ImageDecodeTask::Vector* dependencies)
: RasterTask(dependencies),
resource_(resource),
- reply_(reply),
+ raster_buffer_(std::move(raster_buffer)),
raster_source_(FakeRasterSource::CreateFilled(gfx::Size(1, 1))) {}
// Overridden from Task:
@@ -71,23 +71,12 @@ class TestRasterTaskImpl : public RasterTask {
RasterSource::PlaybackSettings());
}
- // Overridden from TileTask:
- void ScheduleOnOriginThread(TileTaskClient* client) 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_ = client->AcquireBufferForRaster(resource_, 0, 0);
- }
- void CompleteOnOriginThread(TileTaskClient* client) override {
- client->ReleaseBufferForRaster(std::move(raster_buffer_));
- reply_.Run(!HasFinishedRunning());
- }
-
protected:
~TestRasterTaskImpl() override {}
private:
+ friend class TileTaskWorkerPoolTest;
const Resource* resource_;
- const Reply reply_;
scoped_ptr<RasterBuffer> raster_buffer_;
scoped_refptr<RasterSource> raster_source_;
@@ -97,10 +86,11 @@ class TestRasterTaskImpl : public RasterTask {
class BlockingTestRasterTaskImpl : public TestRasterTaskImpl {
public:
BlockingTestRasterTaskImpl(const Resource* resource,
- const Reply& reply,
+ scoped_ptr<RasterBuffer> raster_buffer,
base::Lock* lock,
ImageDecodeTask::Vector* dependencies)
- : TestRasterTaskImpl(resource, reply, dependencies), lock_(lock) {}
+ : TestRasterTaskImpl(resource, std::move(raster_buffer), dependencies),
+ lock_(lock) {}
// Overridden from Task:
void RunOnWorkerThread() override {
@@ -176,17 +166,30 @@ class TileTaskWorkerPoolTest
void TearDown() override {
tile_task_worker_pool_->AsTileTaskRunner()->Shutdown();
- tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks();
+ CheckForCompletedTasks();
}
void AllTileTasksFinished() {
- tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks();
+ CheckForCompletedTasks();
base::MessageLoop::current()->QuitWhenIdle();
}
+ void CheckForCompletedTasks() {
+ Task::Vector completed_tasks;
+ tile_task_worker_pool_->AsTileTaskRunner()->CollectCompletedTasks(
+ &completed_tasks);
+
+ for (auto task : completed_tasks) {
+ TestRasterTaskImpl* raster_task =
+ static_cast<TestRasterTaskImpl*>(task.get());
+ CompleteRasterTask(0, !raster_task->HasFinishedRunning());
+ static_cast<TileTask*>(task.get())->DidComplete();
+ }
+ }
+
void RunMessageLoopUntilAllTasksHaveCompleted() {
task_graph_runner_.RunUntilIdle();
- tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks();
+ CheckForCompletedTasks();
}
void ScheduleTasks() {
@@ -211,11 +214,12 @@ class TileTaskWorkerPoolTest
const Resource* const_resource = resource.get();
ImageDecodeTask::Vector empty;
- tasks_.push_back(new TestRasterTaskImpl(
- const_resource,
- base::Bind(&TileTaskWorkerPoolTest::OnTaskCompleted,
- base::Unretained(this), base::Passed(&resource), id),
- &empty));
+ TileTaskClient* client =
+ reinterpret_cast<TileTaskClient*>(tile_task_worker_pool_.get());
+ scoped_ptr<RasterBuffer> raster_buffer =
+ client->AcquireBufferForRaster(const_resource, 0, 0);
+ tasks_.push_back(new TestRasterTaskImpl(const_resource,
+ std::move(raster_buffer), &empty));
}
void AppendTask(unsigned id) { AppendTask(id, gfx::Size(1, 1)); }
@@ -230,11 +234,12 @@ class TileTaskWorkerPoolTest
const Resource* const_resource = resource.get();
ImageDecodeTask::Vector empty;
+ TileTaskClient* client =
+ reinterpret_cast<TileTaskClient*>(tile_task_worker_pool_.get());
+ scoped_ptr<RasterBuffer> raster_buffer =
+ client->AcquireBufferForRaster(const_resource, 0, 0);
tasks_.push_back(new BlockingTestRasterTaskImpl(
- const_resource,
- base::Bind(&TileTaskWorkerPoolTest::OnTaskCompleted,
- base::Unretained(this), base::Passed(&resource), id),
- lock, &empty));
+ const_resource, std::move(raster_buffer), lock, &empty));
}
const std::vector<RasterTaskResult>& completed_tasks() const {
@@ -268,10 +273,7 @@ class TileTaskWorkerPoolTest
output_surface_.get(), &shared_bitmap_manager_, nullptr);
}
- void OnTaskCompleted(
- scoped_ptr<ScopedResource> resource,
- unsigned id,
- bool was_canceled) {
+ void CompleteRasterTask(unsigned id, bool was_canceled) {
RasterTaskResult result;
result.id = id;
result.canceled = was_canceled;

Powered by Google App Engine
This is Rietveld 408576698