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

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 - fixed few unit tests 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 919a88577175eea8e01652d1311733d5090b0471..bb1b389d07570bf628832864b8ef126ccab3ffad 100644
--- a/cc/raster/tile_task_worker_pool_unittest.cc
+++ b/cc/raster/tile_task_worker_pool_unittest.cc
@@ -52,17 +52,19 @@ 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,
+ TestRasterTaskImpl(std::unique_ptr<ScopedResource> resource,
+ std::unique_ptr<RasterBuffer> raster_buffer,
ImageDecodeTask::Vector* dependencies)
: RasterTask(dependencies),
- resource_(resource),
- reply_(reply),
- raster_source_(FakeRasterSource::CreateFilled(gfx::Size(1, 1))) {}
+ resource_(std::move(resource)),
+ raster_buffer_(std::move(raster_buffer)),
+ raster_source_(FakeRasterSource::CreateFilled(gfx::Size(1, 1))) {
+ SetTaskTypeId(kRasterTaskTypeId);
+ }
// Overridden from Task:
void RunOnWorkerThread() override {
@@ -72,23 +74,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:
- const Resource* resource_;
- const Reply reply_;
+ friend class TileTaskWorkerPoolTest;
+ std::unique_ptr<ScopedResource> resource_;
std::unique_ptr<RasterBuffer> raster_buffer_;
scoped_refptr<RasterSource> raster_source_;
@@ -97,11 +88,14 @@ class TestRasterTaskImpl : public RasterTask {
class BlockingTestRasterTaskImpl : public TestRasterTaskImpl {
public:
- BlockingTestRasterTaskImpl(const Resource* resource,
- const Reply& reply,
+ BlockingTestRasterTaskImpl(std::unique_ptr<ScopedResource> resource,
+ std::unique_ptr<RasterBuffer> raster_buffer,
base::Lock* lock,
ImageDecodeTask::Vector* dependencies)
- : TestRasterTaskImpl(resource, reply, dependencies), lock_(lock) {}
+ : TestRasterTaskImpl(std::move(resource),
+ std::move(raster_buffer),
+ dependencies),
+ lock_(lock) {}
// Overridden from Task:
void RunOnWorkerThread() override {
@@ -177,17 +171,32 @@ class TileTaskWorkerPoolTest
void TearDown() override {
tile_task_worker_pool_->AsTileTaskRunner()->Shutdown();
- tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks();
+ CheckAndProcessCompletedTasks();
}
void AllTileTasksFinished() {
- tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks();
+ CheckAndProcessCompletedTasks();
base::MessageLoop::current()->QuitWhenIdle();
}
+ void CheckAndProcessCompletedTasks() {
+ Task::Vector completed_tasks;
+ tile_task_worker_pool_->AsTileTaskRunner()->CollectCompletedTasks(
+ &completed_tasks);
+
+ for (auto task : completed_tasks) {
prashant.n 2016/04/11 14:51:52 Add comment or processing completed imagedecodetas
+ if (task->GetTaskTypeId() == kRasterTaskTypeId) {
+ 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();
+ CheckAndProcessCompletedTasks();
}
void ScheduleTasks() {
@@ -212,11 +221,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));
+ std::unique_ptr<RasterBuffer> raster_buffer =
+ tile_task_worker_pool_->AsTileTaskRunner()
+ ->AsTileTaskClient()
+ ->AcquireBufferForRaster(const_resource, 0, 0);
+ tasks_.push_back(new TestRasterTaskImpl(std::move(resource),
+ std::move(raster_buffer), &empty));
}
void AppendTask(unsigned id) { AppendTask(id, gfx::Size(1, 1)); }
@@ -231,11 +241,13 @@ class TileTaskWorkerPoolTest
const Resource* const_resource = resource.get();
ImageDecodeTask::Vector empty;
+ std::unique_ptr<RasterBuffer> raster_buffer =
+ tile_task_worker_pool_->AsTileTaskRunner()
+ ->AsTileTaskClient()
+ ->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));
+ std::move(resource), std::move(raster_buffer), lock, &empty));
}
const std::vector<RasterTaskResult>& completed_tasks() const {
@@ -269,9 +281,7 @@ class TileTaskWorkerPoolTest
output_surface_.get(), &shared_bitmap_manager_, nullptr);
}
- void OnTaskCompleted(std::unique_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