1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "content/shell/renderer/test_runner/web_task.h"
6
7#include <algorithm>
8
9#include "third_party/WebKit/public/web/WebKit.h"
10
11namespace content {
12
13WebTask::WebTask(WebTaskList* list) : task_list_(list) {
14  task_list_->RegisterTask(this);
15}
16
17WebTask::~WebTask() {
18  if (task_list_)
19    task_list_->UnregisterTask(this);
20}
21
22WebTaskList::WebTaskList() {
23}
24
25WebTaskList::~WebTaskList() {
26  RevokeAll();
27}
28
29void WebTaskList::RegisterTask(WebTask* task) {
30  tasks_.push_back(task);
31}
32
33void WebTaskList::UnregisterTask(WebTask* task) {
34  std::vector<WebTask*>::iterator iter =
35      std::find(tasks_.begin(), tasks_.end(), task);
36  if (iter != tasks_.end())
37    tasks_.erase(iter);
38}
39
40void WebTaskList::RevokeAll() {
41  while (!tasks_.empty())
42    tasks_[0]->cancel();
43}
44
45}  // namespace content
46