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