Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Unified Diff: chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h

Issue 2768633003: Dynamic updating recent menu for tabs from other devices. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698