| // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_TABS_TAB_HANDLER_H_ |
| #define CHROME_BROWSER_TABS_TAB_HANDLER_H_ |
| #pragma once |
| |
| class Browser; |
| class Profile; |
| class TabStripModel; |
| |
| class TabHandlerDelegate { |
| public: |
| virtual Profile* GetProfile() const = 0; |
| |
| // TODO(beng): remove once decoupling with Browser is complete. |
| virtual Browser* AsBrowser() = 0; |
| }; |
| |
| // An interface implemented by an object that can perform tab related |
| // functionality for a Browser. This functionality includes mapping individual |
| // TabContentses into indices for an index-based tab organization scheme for |
| // example. |
| class TabHandler { |
| public: |
| virtual ~TabHandler() {} |
| |
| // Creates a TabHandler implementation and returns it, transferring ownership |
| // to the caller. |
| static TabHandler* CreateTabHandler(TabHandlerDelegate* delegate); |
| |
| // TODO(beng): remove once decoupling with Browser is complete. |
| virtual TabStripModel* GetTabStripModel() const = 0; |
| }; |
| |
| #endif // CHROME_BROWSER_TABS_TAB_HANDLER_H_ |