tab_model_list.h revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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 12class Profile; 13class TabModel; 14 15namespace chrome { 16struct NavigateParams; 17} 18 19namespace content { 20class WebContents; 21} 22 23// Stores a list of all TabModel objects. 24class 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