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_BROWSER_UI_BROWSER_TAB_RESTORE_SERVICE_DELEGATE_H_ 6 #define CHROME_BROWSER_UI_BROWSER_TAB_RESTORE_SERVICE_DELEGATE_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "base/compiler_specific.h" 12 #include "chrome/browser/sessions/tab_restore_service_delegate.h" 13 14 class Browser; 15 16 // Implementation of TabRestoreServiceDelegate which uses an instance of 17 // Browser in order to fulfil its duties. 18 class BrowserTabRestoreServiceDelegate : public TabRestoreServiceDelegate { 19 public: 20 explicit BrowserTabRestoreServiceDelegate(Browser* browser) 21 : browser_(browser) {} 22 virtual ~BrowserTabRestoreServiceDelegate() {} 23 24 // Overridden from TabRestoreServiceDelegate: 25 virtual void ShowBrowserWindow() OVERRIDE; 26 virtual const SessionID& GetSessionID() const OVERRIDE; 27 virtual int GetTabCount() const OVERRIDE; 28 virtual int GetSelectedIndex() const OVERRIDE; 29 virtual std::string GetAppName() const OVERRIDE; 30 virtual content::WebContents* GetWebContentsAt(int index) const OVERRIDE; 31 virtual content::WebContents* GetActiveWebContents() const OVERRIDE; 32 virtual bool IsTabPinned(int index) const OVERRIDE; 33 virtual content::WebContents* AddRestoredTab( 34 const std::vector<sessions::SerializedNavigationEntry>& navigations, 35 int tab_index, 36 int selected_navigation, 37 const std::string& extension_app_id, 38 bool select, 39 bool pin, 40 bool from_last_session, 41 content::SessionStorageNamespace* storage_namespace, 42 const std::string& user_agent_override) OVERRIDE; 43 virtual content::WebContents* ReplaceRestoredTab( 44 const std::vector<sessions::SerializedNavigationEntry>& navigations, 45 int selected_navigation, 46 bool from_last_session, 47 const std::string& extension_app_id, 48 content::SessionStorageNamespace* session_storage_namespace, 49 const std::string& user_agent_override) OVERRIDE; 50 virtual void CloseTab() OVERRIDE; 51 52 private: 53 Browser* browser_; 54 55 DISALLOW_COPY_AND_ASSIGN(BrowserTabRestoreServiceDelegate); 56 }; 57 58 #endif // CHROME_BROWSER_UI_BROWSER_TAB_RESTORE_SERVICE_DELEGATE_H_ 59