1// Copyright (c) 2013 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/ui/browser_iterator.h" 6 7namespace chrome { 8 9BrowserIterator::BrowserIterator() 10 : current_browser_list_(BrowserList::GetInstance(HOST_DESKTOP_TYPE_FIRST)), 11 current_iterator_(current_browser_list_->begin()), 12 next_desktop_type_( 13 static_cast<HostDesktopType>(HOST_DESKTOP_TYPE_FIRST + 1)) { 14 NextBrowserListIfAtEnd(); 15} 16 17BrowserIterator::~BrowserIterator() { 18} 19 20void BrowserIterator::Next() { 21 ++current_iterator_; 22 NextBrowserListIfAtEnd(); 23} 24 25void BrowserIterator::NextBrowserListIfAtEnd() { 26 // Make sure either |current_iterator_| is valid or done(). 27 while (current_iterator_ == current_browser_list_->end() && 28 next_desktop_type_ < HOST_DESKTOP_TYPE_COUNT) { 29 current_browser_list_ = BrowserList::GetInstance(next_desktop_type_); 30 current_iterator_ = current_browser_list_->begin(); 31 next_desktop_type_ = static_cast<HostDesktopType>(next_desktop_type_ + 1); 32 } 33} 34 35} // namespace chrome 36