Chromium Code Reviews| Index: chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc |
| diff --git a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc |
| index aaac0456e74576a42635edea8511d39e49862da9..938632c65fdf3c28c037b1f92f31f059374e257c 100644 |
| --- a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc |
| +++ b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc |
| @@ -464,11 +464,22 @@ void RecentTabsSubMenuModel::BuildLocalEntries() { |
| break; |
| } |
| case sessions::TabRestoreService::WINDOW: { |
| - BuildLocalWindowItem( |
| - entry->id, |
| - static_cast<const sessions::TabRestoreService::Window&>(*entry) |
| - .tabs.size(), |
| - ++last_local_model_index_); |
| + auto& window = |
| + static_cast<const sessions::TabRestoreService::Window&>(*entry); |
| + // Generate a window entry if the window contained more than 1 tab. |
| + if (window.tabs.size() > 1) { |
|
sky
2017/05/08 22:51:36
We shouldn't need the special case here. Whether y
chrisha
2017/05/09 15:44:54
Moved this discussion to the bug, as it's slightly
|
| + BuildLocalWindowItem(entry->id, window.tabs.size(), |
| + ++last_local_model_index_); |
| + } else { |
| + // Otherwise, generate a tab entry. This fixes |
| + // http://crbug.com/56744. |
| + auto& tab = *window.tabs[0]; |
| + const sessions::SerializedNavigationEntry& current_navigation = |
| + tab.navigations.at(tab.current_navigation_index); |
| + BuildLocalTabItem(entry->id, current_navigation.title(), |
| + current_navigation.virtual_url(), |
| + ++last_local_model_index_); |
| + } |
| break; |
| } |
| } |