blob: b43e07b1b856256d3c26d28a071bbbdb0ded0956 [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_list.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() {}
BrowserSyncedWindowDelegatesGetter::SyncedWindowDelegateMap
BrowserSyncedWindowDelegatesGetter::GetSyncedWindowDelegates() {
SyncedWindowDelegateMap synced_window_delegates;
// Add all the browser windows.
for (auto* browser : *BrowserList::GetInstance()) {
if (browser->profile() != profile_)
continue;
synced_window_delegates[browser->synced_window_delegate()->GetSessionId()] =
browser->synced_window_delegate();
}
return synced_window_delegates;
}
const sync_sessions::SyncedWindowDelegate*
BrowserSyncedWindowDelegatesGetter::FindById(SessionID::id_type id) {
Browser* browser = chrome::FindBrowserWithID(id);
return (browser != nullptr) ? browser->synced_window_delegate() : nullptr;
}
} // namespace browser_sync