1// Copyright (c) 2012 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_RENDERER_EXTENSIONS_TAB_FINDER_H_
6#define CHROME_RENDERER_EXTENSIONS_TAB_FINDER_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "content/public/renderer/render_view_visitor.h"
11
12namespace content {
13class RenderView;
14}
15
16namespace extensions {
17
18// Finds the top RenderView associated with a tab ID.
19class TabFinder : public content::RenderViewVisitor {
20 public:
21  // Returns the top RenderView with |tab_id|, or NULL if none is found.
22  static content::RenderView* Find(int tab_id);
23
24 private:
25  explicit TabFinder(int tab_id);
26  virtual ~TabFinder();
27
28  // content::RenderViewVisitor implementation.
29  virtual bool Visit(content::RenderView* render_view) OVERRIDE;
30
31  int tab_id_;
32  content::RenderView* view_;
33
34  DISALLOW_COPY_AND_ASSIGN(TabFinder);
35};
36
37}  // namespace extensions
38
39#endif  // CHROME_RENDERER_EXTENSIONS_TAB_FINDER_H_
40