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 #ifndef CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_ 6 #define CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_ 7 8 #include <vector> 9 10 #include "chrome/browser/sessions/session_id.h" 11 12 class Profile; 13 class TabModel; 14 15 namespace chrome { 16 struct NavigateParams; 17 } 18 19 // Stores a list of all TabModel objects. 20 class TabModelList { 21 public: 22 typedef std::vector<TabModel*> TabModelVector; 23 typedef TabModelVector::iterator iterator; 24 typedef TabModelVector::const_iterator const_iterator; 25 26 static void HandlePopupNavigation(chrome::NavigateParams* params); 27 static void AddTabModel(TabModel* tab_model); 28 static void RemoveTabModel(TabModel* tab_model); 29 30 static TabModel* GetTabModelWithProfile(Profile* profile); 31 static TabModel* FindTabModelWithId(SessionID::id_type desired_id); 32 static bool IsOffTheRecordSessionActive(); 33 34 static const_iterator begin(); 35 static const_iterator end(); 36 static bool empty(); 37 static size_t size(); 38 39 private: 40 DISALLOW_IMPLICIT_CONSTRUCTORS(TabModelList); 41 }; 42 43 #endif // CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_ 44