browser_synced_window_delegate.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
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#include "chrome/browser/ui/sync/browser_synced_window_delegate.h" 6 7#include <set> 8 9#include "chrome/browser/sessions/session_id.h" 10#include "chrome/browser/ui/browser.h" 11#include "chrome/browser/ui/browser_finder.h" 12#include "chrome/browser/ui/browser_list.h" 13#include "chrome/browser/ui/browser_tabstrip.h" 14#include "chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h" 15#include "chrome/browser/ui/tab_contents/tab_contents.h" 16#include "chrome/browser/ui/tabs/tab_strip_model.h" 17 18// static SyncedWindowDelegate implementations 19 20// static 21const std::set<browser_sync::SyncedWindowDelegate*> 22 browser_sync::SyncedWindowDelegate::GetSyncedWindowDelegates() { 23 std::set<browser_sync::SyncedWindowDelegate*> synced_window_delegates; 24 for (BrowserList::const_iterator i = BrowserList::begin(); 25 i != BrowserList::end(); ++i) { 26 synced_window_delegates.insert((*i)->synced_window_delegate()); 27 } 28 return synced_window_delegates; 29} 30 31// static 32const browser_sync::SyncedWindowDelegate* 33 browser_sync::SyncedWindowDelegate::FindSyncedWindowDelegateWithId( 34 SessionID::id_type id) { 35 Browser* browser = browser::FindBrowserWithID(id); 36 // In case we don't find the browser (e.g. for Developer Tools). 37 return browser ? browser->synced_window_delegate() : NULL; 38} 39 40// BrowserSyncedWindowDelegate implementations 41 42BrowserSyncedWindowDelegate::BrowserSyncedWindowDelegate(Browser* browser) 43 : browser_(browser) {} 44 45BrowserSyncedWindowDelegate::~BrowserSyncedWindowDelegate() {} 46 47bool BrowserSyncedWindowDelegate::IsTabPinned( 48 const browser_sync::SyncedTabDelegate* tab) const { 49 for (int i = 0; i < browser_->tab_count(); i++) { 50 browser_sync::SyncedTabDelegate* current = GetTabAt(i); 51 if (tab == current) 52 return browser_->tab_strip_model()->IsTabPinned(i); 53 } 54 NOTREACHED(); 55 return false; 56} 57 58browser_sync::SyncedTabDelegate* BrowserSyncedWindowDelegate::GetTabAt( 59 int index) const { 60 return TabContentsSyncedTabDelegate::FromWebContents( 61 chrome::GetWebContentsAt(browser_, index)); 62} 63 64SessionID::id_type BrowserSyncedWindowDelegate::GetTabIdAt(int index) const { 65 return GetTabAt(index)->GetSessionId(); 66} 67 68bool BrowserSyncedWindowDelegate::HasWindow() const { 69 return browser_->window() != NULL; 70} 71 72SessionID::id_type BrowserSyncedWindowDelegate::GetSessionId() const { 73 return browser_->session_id().id(); 74} 75 76int BrowserSyncedWindowDelegate::GetTabCount() const { 77 return browser_->tab_count(); 78} 79 80int BrowserSyncedWindowDelegate::GetActiveIndex() const { 81 return browser_->active_index(); 82} 83 84bool BrowserSyncedWindowDelegate::IsApp() const { 85 return browser_->is_app(); 86} 87 88bool BrowserSyncedWindowDelegate::IsTypeTabbed() const { 89 return browser_->is_type_tabbed(); 90} 91 92bool BrowserSyncedWindowDelegate::IsTypePopup() const { 93 return browser_->is_type_popup(); 94} 95 96bool BrowserSyncedWindowDelegate::IsSessionRestoreInProgress() const { 97 return false; 98} 99