1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/browser_tab_restore_service_delegate.h" 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/browser.h" 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/browser_list.h" 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/browser_window.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid BrowserTabRestoreServiceDelegate::ShowBrowserWindow() { 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen browser_->window()->Show(); 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenconst SessionID& BrowserTabRestoreServiceDelegate::GetSessionID() const { 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser_->session_id(); 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenint BrowserTabRestoreServiceDelegate::GetTabCount() const { 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser_->tab_count(); 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenint BrowserTabRestoreServiceDelegate::GetSelectedIndex() const { 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser_->active_index(); 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTabContents* BrowserTabRestoreServiceDelegate::GetTabContentsAt( 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int index) const { 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser_->GetTabContentsAt(index); 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTabContents* BrowserTabRestoreServiceDelegate::GetSelectedTabContents() const { 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser_->GetSelectedTabContents(); 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenbool BrowserTabRestoreServiceDelegate::IsTabPinned(int index) const { 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser_->IsTabPinned(index); 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTabContents* BrowserTabRestoreServiceDelegate::AddRestoredTab( 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::vector<TabNavigation>& navigations, 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int tab_index, 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int selected_navigation, 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& extension_app_id, 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool select, 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool pin, 47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool from_last_session, 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen SessionStorageNamespace* storage_namespace) { 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser_->AddRestoredTab(navigations, tab_index, selected_navigation, 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen extension_app_id, select, pin, 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen from_last_session, storage_namespace); 52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid BrowserTabRestoreServiceDelegate::ReplaceRestoredTab( 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::vector<TabNavigation>& navigations, 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int selected_navigation, 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool from_last_session, 58ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& extension_app_id, 59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen SessionStorageNamespace* session_storage_namespace) { 60ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen browser_->ReplaceRestoredTab(navigations, selected_navigation, 61ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen from_last_session, extension_app_id, 62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen session_storage_namespace); 63ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 64ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid BrowserTabRestoreServiceDelegate::CloseTab() { 66ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen browser_->CloseTab(); 67ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 68ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 69ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Implementations of TabRestoreServiceDelegate static methods 70ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 71ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// static 72ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTabRestoreServiceDelegate* TabRestoreServiceDelegate::Create(Profile* profile) { 73ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Browser* browser = Browser::Create(profile); 74ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (browser) 75ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser->tab_restore_service_delegate(); 76ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen else 77ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return NULL; 78ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 79ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 80ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// static 81ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTabRestoreServiceDelegate* TabRestoreServiceDelegate::FindDelegateForController( 82ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const NavigationController* controller, 83ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int* index) { 84ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Browser* browser = Browser::GetBrowserForController(controller, index); 85ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (browser) 86ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser->tab_restore_service_delegate(); 87ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen else 88ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return NULL; 89ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 90ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 91ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// static 92ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTabRestoreServiceDelegate* TabRestoreServiceDelegate::FindDelegateWithID( 93ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen SessionID::id_type desired_id) { 94ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Browser* browser = BrowserList::FindBrowserWithID(desired_id); 95ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (browser) 96ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return browser->tab_restore_service_delegate(); 97ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen else 98ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return NULL; 99ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 100