blob: 6e33d979fa51089a46b913e84d692f0a623b39f4 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/sync/browser_synced_window_delegates_getter.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_iterator.h"
#include "chrome/browser/ui/sync/browser_synced_window_delegate.h"
#include "components/sync_sessions/synced_window_delegate.h"
namespace browser_sync {
BrowserSyncedWindowDelegatesGetter::BrowserSyncedWindowDelegatesGetter(
Profile* profile)
: profile_(profile) {}
BrowserSyncedWindowDelegatesGetter::~BrowserSyncedWindowDelegatesGetter() {}
std::set<const SyncedWindowDelegate*>
BrowserSyncedWindowDelegatesGetter::GetSyncedWindowDelegates() {
std::set<const SyncedWindowDelegate*> synced_window_delegates;
// Add all the browser windows.
for (chrome::BrowserIterator it; !it.done(); it.Next()) {
if (it->profile() != profile_)
continue;
synced_window_delegates.insert(it->synced_window_delegate());
}
return synced_window_delegates;
}
const SyncedWindowDelegate* BrowserSyncedWindowDelegatesGetter::FindById(
SessionID::id_type id) {
Browser* browser = chrome::FindBrowserWithID(id);
return (browser != nullptr) ? browser->synced_window_delegate() : nullptr;
}
} // namespace browser_sync