Index: chrome/browser/ui/browser_tab_restore_service_delegate.cc |
diff --git a/chrome/browser/ui/browser_tab_restore_service_delegate.cc b/chrome/browser/ui/browser_tab_restore_service_delegate.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2f80156bfbb2f1b22faa7c2e4c59068000aa5ab0 |
--- /dev/null |
+++ b/chrome/browser/ui/browser_tab_restore_service_delegate.cc |
@@ -0,0 +1,99 @@ |
+// Copyright (c) 2011 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. |
+ |
+#include "chrome/browser/ui/browser_tab_restore_service_delegate.h" |
+ |
+#include "chrome/browser/ui/browser.h" |
+#include "chrome/browser/ui/browser_list.h" |
+#include "chrome/browser/ui/browser_window.h" |
+ |
+void BrowserTabRestoreServiceDelegate::ShowBrowserWindow() { |
+ browser_->window()->Show(); |
+} |
+ |
+const SessionID& BrowserTabRestoreServiceDelegate::GetSessionID() const { |
+ return browser_->session_id(); |
+} |
+ |
+int BrowserTabRestoreServiceDelegate::GetTabCount() const { |
+ return browser_->tab_count(); |
+} |
+ |
+int BrowserTabRestoreServiceDelegate::GetSelectedIndex() const { |
+ return browser_->selected_index(); |
+} |
+ |
+TabContents* BrowserTabRestoreServiceDelegate::GetTabContentsAt( |
+ int index) const { |
+ return browser_->GetTabContentsAt(index); |
+} |
+ |
+TabContents* BrowserTabRestoreServiceDelegate::GetSelectedTabContents() const { |
+ return browser_->GetSelectedTabContents(); |
+} |
+ |
+bool BrowserTabRestoreServiceDelegate::IsTabPinned(int index) const { |
+ return browser_->IsTabPinned(index); |
+} |
+ |
+TabContents* BrowserTabRestoreServiceDelegate::AddRestoredTab( |
+ const std::vector<TabNavigation>& navigations, |
+ int tab_index, |
+ int selected_navigation, |
+ const std::string& extension_app_id, |
+ bool select, |
+ bool pin, |
+ bool from_last_session, |
+ SessionStorageNamespace* storage_namespace) { |
+ return browser_->AddRestoredTab(navigations, tab_index, selected_navigation, |
+ extension_app_id, select, pin, |
+ from_last_session, storage_namespace); |
+} |
+ |
+void BrowserTabRestoreServiceDelegate::ReplaceRestoredTab( |
+ const std::vector<TabNavigation>& navigations, |
+ int selected_navigation, |
+ bool from_last_session, |
+ const std::string& extension_app_id, |
+ SessionStorageNamespace* session_storage_namespace) { |
+ browser_->ReplaceRestoredTab(navigations, selected_navigation, |
+ from_last_session, extension_app_id, |
+ session_storage_namespace); |
+} |
+ |
+void BrowserTabRestoreServiceDelegate::CloseTab() { |
+ browser_->CloseTab(); |
+} |
+ |
+// Implementations of TabRestoreServiceDelegate static methods |
+ |
+// static |
+TabRestoreServiceDelegate* TabRestoreServiceDelegate::Create(Profile* profile) { |
+ Browser* browser = Browser::Create(profile); |
+ if (browser) |
+ return browser->tab_restore_service_delegate(); |
+ else |
+ return NULL; |
+} |
+ |
+// static |
+TabRestoreServiceDelegate* TabRestoreServiceDelegate::FindDelegateForController( |
+ const NavigationController* controller, |
+ int* index) { |
+ Browser* browser = Browser::GetBrowserForController(controller, index); |
+ if (browser) |
+ return browser->tab_restore_service_delegate(); |
+ else |
+ return NULL; |
+} |
+ |
+// static |
+TabRestoreServiceDelegate* TabRestoreServiceDelegate::FindDelegateWithID( |
+ SessionID::id_type desired_id) { |
+ Browser* browser = BrowserList::FindBrowserWithID(desired_id); |
+ if (browser) |
+ return browser->tab_restore_service_delegate(); |
+ else |
+ return NULL; |
+} |