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

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

Issue 2868983003: Ensure History > Recent Tabs restore preserves window disposition. (Closed)
Patch Set: Small cleanup. Created 3 years, 7 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.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;
}
}

Powered by Google App Engine
This is Rietveld 408576698