Home | History | Annotate | Download | only in glue
      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