Chromium Code Reviews| Index: components/ntp_snippets/sessions/tab_delegate_sync_adapter.cc |
| diff --git a/components/ntp_snippets/sessions/tab_delegate_sync_adapter.cc b/components/ntp_snippets/sessions/tab_delegate_sync_adapter.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2e798ce4abef6f63282e71a28a4e87d211fe8df6 |
| --- /dev/null |
| +++ b/components/ntp_snippets/sessions/tab_delegate_sync_adapter.cc |
| @@ -0,0 +1,50 @@ |
| +// Copyright 2016 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 "components/ntp_snippets/sessions/tab_delegate_sync_adapter.h" |
| + |
| +#include "components/sync/driver/sync_service.h" |
| +#include "components/sync_sessions/open_tabs_ui_delegate.h" |
| + |
| +using sync_driver::OpenTabsUIDelegate; |
| +using sync_driver::SyncService; |
| + |
| +namespace ntp_snippets { |
| + |
| +TabDelegateSyncAdapter::TabDelegateSyncAdapter(SyncService* sync_service) |
| + : sync_service_(sync_service) { |
| + sync_service_->AddObserver(this); |
| +} |
| + |
| +TabDelegateSyncAdapter::~TabDelegateSyncAdapter() { |
| + sync_service_->RemoveObserver(this); |
| +} |
| + |
| +OpenTabsUIDelegate* TabDelegateSyncAdapter::GetOpenTabsUIDelegate() { |
| + return sync_service_->GetOpenTabsUIDelegate(); |
| +} |
| + |
| +void TabDelegateSyncAdapter::SubscribeForForeignTabChange( |
| + const OnChangeWithDelegate& change_callback) { |
| + change_callback_ = change_callback; |
|
Marc Treib
2016/09/16 12:26:49
Maybe DCHECK that change_callback_ was null before
tschumann
2016/09/16 13:33:20
yes, please. Also add a comment to the OpenTabsUID
skym
2016/09/16 18:18:49
Done.
skym
2016/09/16 18:18:49
Done.
|
| +} |
| + |
| +void TabDelegateSyncAdapter::OnStateChanged() { |
| + // Ignored. |
| +} |
| + |
| +void TabDelegateSyncAdapter::OnSyncConfigurationCompleted() { |
| + InvokeCallback(); |
| +} |
| + |
| +void TabDelegateSyncAdapter::OnForeignSessionUpdated() { |
| + InvokeCallback(); |
| +} |
| + |
| +void TabDelegateSyncAdapter::InvokeCallback() { |
| + if (!change_callback_.is_null()) |
| + change_callback_.Run(sync_service_->GetOpenTabsUIDelegate()); |
| +} |
| + |
| +} // namespace ntp_snippets |