| Index: chrome/browser/sync/sessions/sync_sessions_multi_windowed_web_contents_router.cc
|
| diff --git a/chrome/browser/sync/sessions/sync_sessions_multi_windowed_web_contents_router.cc b/chrome/browser/sync/sessions/sync_sessions_multi_windowed_web_contents_router.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..36ae222c430a234b36d576d985f3b751779ebd5a
|
| --- /dev/null
|
| +++ b/chrome/browser/sync/sessions/sync_sessions_multi_windowed_web_contents_router.cc
|
| @@ -0,0 +1,57 @@
|
| +// Copyright 2017 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/sync/sessions/sync_sessions_multi_windowed_web_contents_router.h"
|
| +
|
| +#include "chrome/browser/ui/browser.h"
|
| +#include "chrome/browser/ui/browser_list.h"
|
| +#include "chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h"
|
| +#include "chrome/browser/ui/tabs/tab_strip_model.h"
|
| +
|
| +namespace sync_sessions {
|
| +
|
| +SyncSessionsMultiWindowedWebContentsRouter::
|
| + SyncSessionsMultiWindowedWebContentsRouter(Profile* profile)
|
| + : SyncSessionsWebContentsRouter(profile) {
|
| + BrowserList* browser_list = BrowserList::GetInstance();
|
| + for (Browser* browser : *browser_list)
|
| + browser->tab_strip_model()->AddObserver(this);
|
| + browser_list->AddObserver(this);
|
| +}
|
| +
|
| +SyncSessionsMultiWindowedWebContentsRouter::
|
| + ~SyncSessionsMultiWindowedWebContentsRouter() {}
|
| +
|
| +void SyncSessionsMultiWindowedWebContentsRouter::Shutdown() {
|
| + SyncSessionsWebContentsRouter::Shutdown();
|
| + BrowserList* browser_list = BrowserList::GetInstance();
|
| + for (Browser* browser : *browser_list)
|
| + browser->tab_strip_model()->RemoveObserver(this);
|
| + BrowserList::GetInstance()->RemoveObserver(this);
|
| +}
|
| +
|
| +void SyncSessionsMultiWindowedWebContentsRouter::OnBrowserAdded(
|
| + Browser* browser) {
|
| + browser->tab_strip_model()->AddObserver(this);
|
| +}
|
| +
|
| +void SyncSessionsMultiWindowedWebContentsRouter::OnBrowserRemoved(
|
| + Browser* browser) {
|
| + browser->tab_strip_model()->RemoveObserver(this);
|
| +}
|
| +
|
| +void SyncSessionsMultiWindowedWebContentsRouter::TabInsertedAt(
|
| + TabStripModel* model,
|
| + content::WebContents* web_contents,
|
| + int index,
|
| + bool foreground) {
|
| + if (handler_ && web_contents) {
|
| + SyncedTabDelegate* delegate =
|
| + TabContentsSyncedTabDelegate::FromWebContents(web_contents);
|
| + if (delegate)
|
| + handler_->OnLocalTabModified(delegate);
|
| + }
|
| +}
|
| +
|
| +} // namespace sync_sessions
|
|
|