1// Copyright 2014 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#ifndef CHROME_BROWSER_TASK_MANAGER_TAB_CONTENTS_INFORMATION_H_
6#define CHROME_BROWSER_TASK_MANAGER_TAB_CONTENTS_INFORMATION_H_
7
8#include "base/basictypes.h"
9#include "chrome/browser/task_manager/web_contents_information.h"
10
11namespace task_manager {
12
13// WebContentsInformation for WebContentses that are part of the tab strip
14// model, devtools, and/or the PrerenderManager. These three cases are combined
15// into one category because, for example, a prerendered WebContents can become
16// part of the tab strip model over its lifetime.
17class TabContentsInformation
18    : public NotificationObservingWebContentsInformation {
19 public:
20  TabContentsInformation();
21  virtual ~TabContentsInformation();
22
23  // WebContentsInformation implementation.
24  virtual bool CheckOwnership(content::WebContents* web_contents) OVERRIDE;
25  virtual void GetAll(const NewWebContentsCallback& callback) OVERRIDE;
26  virtual scoped_ptr<RendererResource> MakeResource(
27      content::WebContents* web_contents) OVERRIDE;
28
29 private:
30  DISALLOW_COPY_AND_ASSIGN(TabContentsInformation);
31};
32
33}  // namespace task_manager
34
35#endif  // CHROME_BROWSER_TASK_MANAGER_TAB_CONTENTS_INFORMATION_H_
36