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/sync/glue/synced_window_delegate_android.h" 6 7 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/sync/glue/synced_tab_delegate_android.h" 9 #include "chrome/browser/ui/android/tab_model/tab_model.h" 10 #include "chrome/browser/ui/android/tab_model/tab_model_list.h" 11 #include "content/public/browser/web_contents.h" 12 13 namespace browser_sync { 14 15 // SyncedWindowDelegate implementations 16 17 const std::set<SyncedWindowDelegate*> 18 SyncedWindowDelegate::GetSyncedWindowDelegates() { 19 std::set<SyncedWindowDelegate*> synced_window_delegates; 20 for (TabModelList::const_iterator i = TabModelList::begin(); 21 i != TabModelList::end(); ++i) { 22 synced_window_delegates.insert((*i)->GetSyncedWindowDelegate()); 23 } 24 return synced_window_delegates; 25 } 26 27 const SyncedWindowDelegate* 28 SyncedWindowDelegate::FindSyncedWindowDelegateWithId( 29 SessionID::id_type session_id) { 30 TabModel* tab_model = TabModelList::FindTabModelWithId( 31 session_id); 32 33 // In case we don't find the browser (e.g. for Developer Tools). 34 return tab_model ? tab_model->GetSyncedWindowDelegate() : NULL; 35 } 36 37 // SyncedWindowDelegateAndroid implementations 38 39 SyncedWindowDelegateAndroid::SyncedWindowDelegateAndroid( 40 TabModel* tab_model) 41 : tab_model_(tab_model) {} 42 43 SyncedWindowDelegateAndroid::~SyncedWindowDelegateAndroid() {} 44 45 bool SyncedWindowDelegateAndroid::HasWindow() const { 46 return !tab_model_->IsOffTheRecord(); 47 } 48 49 SessionID::id_type SyncedWindowDelegateAndroid::GetSessionId() const { 50 return tab_model_->GetSessionId(); 51 } 52 53 int SyncedWindowDelegateAndroid::GetTabCount() const { 54 return tab_model_->GetTabCount(); 55 } 56 57 int SyncedWindowDelegateAndroid::GetActiveIndex() const { 58 return tab_model_->GetActiveIndex(); 59 } 60 61 bool SyncedWindowDelegateAndroid::IsApp() const { 62 return false; 63 } 64 65 bool SyncedWindowDelegateAndroid::IsTypeTabbed() const { 66 return true; 67 } 68 69 bool SyncedWindowDelegateAndroid::IsTypePopup() const { 70 return false; 71 } 72 73 bool SyncedWindowDelegateAndroid::IsTabPinned( 74 const SyncedTabDelegate* tab) const { 75 return false; 76 } 77 78 SyncedTabDelegate* SyncedWindowDelegateAndroid::GetTabAt(int index) const { 79 return tab_model_->GetTabAt(index); 80 } 81 82 SessionID::id_type SyncedWindowDelegateAndroid::GetTabIdAt(int index) const { 83 SyncedTabDelegate* tab = GetTabAt(index); 84 return tab ? tab->GetSessionId() : -1; 85 } 86 87 bool SyncedWindowDelegateAndroid::IsSessionRestoreInProgress() const { 88 return tab_model_->IsSessionRestoreInProgress(); 89 } 90 91 } // namespace browser_sync 92