Chromium Code Reviews| Index: chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h |
| diff --git a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h |
| index 0c5b74c1196f47f0c2159d9664e3d0889faefdbe..1c089589cccb02e33f467a1c94ac5bbcac89f3ec 100644 |
| --- a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h |
| +++ b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h |
| @@ -14,6 +14,7 @@ |
| #include "components/favicon/core/favicon_service.h" |
| #include "components/sessions/core/tab_restore_service.h" |
| #include "components/sessions/core/tab_restore_service_observer.h" |
| +#include "components/sync/driver/sync_service_observer.h" |
| #include "components/sync_sessions/synced_session.h" |
| #include "ui/base/accelerators/accelerator.h" |
| #include "ui/base/models/simple_menu_model.h" |
| @@ -36,6 +37,10 @@ namespace sync_sessions { |
| class OpenTabsUIDelegate; |
| } |
| +namespace syncer { |
| +class SyncService; |
| +} // namespace syncer |
| + |
| namespace ui { |
| class AcceleratorProvider; |
| } |
| @@ -45,7 +50,8 @@ class AcceleratorProvider; |
| // opened tabs of other devices. |
| class RecentTabsSubMenuModel : public ui::SimpleMenuModel, |
| public ui::SimpleMenuModel::Delegate, |
| - public sessions::TabRestoreServiceObserver { |
| + public sessions::TabRestoreServiceObserver, |
| + public syncer::SyncServiceObserver { |
| public: |
| // Command Id for recently closed items header or disabled item to which the |
| // accelerator string will be appended. |
| @@ -57,10 +63,9 @@ class RecentTabsSubMenuModel : public ui::SimpleMenuModel, |
| static int GetFirstRecentTabsCommandId(); |
| // If |open_tabs_delegate| is NULL, the default delegate for |browser|'s |
| - // profile will be used. Testing may require a specific |open_tabs_delegate|. |
| + // profile will be used. |
| RecentTabsSubMenuModel(ui::AcceleratorProvider* accelerator_provider, |
| - Browser* browser, |
| - sync_sessions::OpenTabsUIDelegate* open_tabs_delegate); |
| + Browser* browser); |
| ~RecentTabsSubMenuModel() override; |
| // Overridden from ui::SimpleMenuModel::Delegate: |
| @@ -122,6 +127,9 @@ class RecentTabsSubMenuModel : public ui::SimpleMenuModel, |
| // Clear all recently closed tabs and windows. |
| void ClearLocalEntries(); |
| + // Clear all tabs from other devices. |
|
Peter Kasting
2017/03/23 04:48:34
Nit: Clear -> Clears; see http://google.github.io/
Peter Kasting
2017/03/24 00:06:27
Looks like you removed this comment instead of upd
|
| + void ClearTabsFromOtherDevices(); |
| + |
| // Converts |command_id| of menu item to index in local or other devices' |
| // TabNavigationItems, and returns the corresponding local or other devices' |
| // TabNavigationItems in |tab_items|. |
| @@ -139,9 +147,13 @@ class RecentTabsSubMenuModel : public ui::SimpleMenuModel, |
| void TabRestoreServiceDestroyed( |
| sessions::TabRestoreService* service) override; |
| + // Overridden from syncer::SyncServiceObserver |
|
Peter Kasting
2017/03/23 04:48:34
Nit: Trailing colon
Peter Kasting
2017/03/24 00:06:27
Looks like you removed the namespace instead of ad
|
| + void OnSyncCycleCompleted(syncer::SyncService* sync) override {} |
|
Peter Kasting
2017/03/23 04:48:34
Nit: I'd weakly prefer defining this in the .cc th
|
| + void OnForeignSessionUpdated(syncer::SyncService* sync) override; |
| + |
| Browser* browser_; // Weak. |
| - sync_sessions::OpenTabsUIDelegate* open_tabs_delegate_; // Weak. |
| + sync_sessions::OpenTabsUIDelegate* open_tabs_delegate_ = nullptr; // Weak. |
|
Peter Kasting
2017/03/23 04:48:34
Nit: I'm a fan of initializing at the declaration
|
| // Accelerator for reopening last closed tab. |
| ui::Accelerator reopen_closed_tab_accelerator_; |