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