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

Side by Side Diff: chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc

Issue 14497003: Moves TabNavigation into components/sessions and renames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Really remove webkit_support Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h" 5 #include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 // Collect tabs from all windows of session, pruning those that are not 293 // Collect tabs from all windows of session, pruning those that are not
294 // syncable or are NewTabPage, then sort them from most recent to least 294 // syncable or are NewTabPage, then sort them from most recent to least
295 // recent, independent of which window the tabs were from. 295 // recent, independent of which window the tabs were from.
296 std::vector<const SessionTab*> tabs_in_session; 296 std::vector<const SessionTab*> tabs_in_session;
297 for (size_t j = 0; j < windows.size(); ++j) { 297 for (size_t j = 0; j < windows.size(); ++j) {
298 const SessionWindow* window = windows[j]; 298 const SessionWindow* window = windows[j];
299 for (size_t t = 0; t < window->tabs.size(); ++t) { 299 for (size_t t = 0; t < window->tabs.size(); ++t) {
300 const SessionTab* tab = window->tabs[t]; 300 const SessionTab* tab = window->tabs[t];
301 if (tab->navigations.empty()) 301 if (tab->navigations.empty())
302 continue; 302 continue;
303 const TabNavigation& current_navigation = 303 const sessions::SerializedNavigationEntry& current_navigation =
304 tab->navigations.at(tab->normalized_navigation_index()); 304 tab->navigations.at(tab->normalized_navigation_index());
305 if (current_navigation.virtual_url() == 305 if (current_navigation.virtual_url() ==
306 GURL(chrome::kChromeUINewTabURL)) { 306 GURL(chrome::kChromeUINewTabURL)) {
307 continue; 307 continue;
308 } 308 }
309 tabs_in_session.push_back(tab); 309 tabs_in_session.push_back(tab);
310 } 310 }
311 } 311 }
312 if (tabs_in_session.empty()) 312 if (tabs_in_session.empty())
313 continue; 313 continue;
(...skipping 19 matching lines...) Expand all
333 333
334 // We are not supposed to get here unless at least some items were added. 334 // We are not supposed to get here unless at least some items were added.
335 DCHECK_GT(GetItemCount(), 0); 335 DCHECK_GT(GetItemCount(), 0);
336 AddSeparator(ui::NORMAL_SEPARATOR); 336 AddSeparator(ui::NORMAL_SEPARATOR);
337 AddItemWithStringId(IDC_SHOW_HISTORY, IDS_RECENT_TABS_MORE); 337 AddItemWithStringId(IDC_SHOW_HISTORY, IDS_RECENT_TABS_MORE);
338 } 338 }
339 339
340 void RecentTabsSubMenuModel::BuildForeignTabItem( 340 void RecentTabsSubMenuModel::BuildForeignTabItem(
341 const std::string& session_tag, 341 const std::string& session_tag,
342 const SessionTab& tab) { 342 const SessionTab& tab) {
343 const TabNavigation& current_navigation = 343 const sessions::SerializedNavigationEntry& current_navigation =
344 tab.navigations.at(tab.normalized_navigation_index()); 344 tab.navigations.at(tab.normalized_navigation_index());
345 NavigationItem item(session_tag, tab.tab_id.id(), 345 NavigationItem item(session_tag, tab.tab_id.id(),
346 current_navigation.virtual_url()); 346 current_navigation.virtual_url());
347 int command_id = ModelIndexToCommandId(model_.size()); 347 int command_id = ModelIndexToCommandId(model_.size());
348 // There may be no tab title, in which case, use the url as tab title. 348 // There may be no tab title, in which case, use the url as tab title.
349 AddItem(command_id, 349 AddItem(command_id,
350 current_navigation.title().empty() ? 350 current_navigation.title().empty() ?
351 UTF8ToUTF16(item.url.spec()) : current_navigation.title()); 351 UTF8ToUTF16(item.url.spec()) : current_navigation.title());
352 AddTabFavicon(model_.size(), command_id, item.url); 352 AddTabFavicon(model_.size(), command_id, item.url);
353 model_.push_back(item); 353 model_.push_back(item);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 RecentTabsSubMenuModel::GetModelAssociator() { 437 RecentTabsSubMenuModel::GetModelAssociator() {
438 if (!associator_) { 438 if (!associator_) {
439 ProfileSyncService* service = ProfileSyncServiceFactory::GetInstance()-> 439 ProfileSyncService* service = ProfileSyncServiceFactory::GetInstance()->
440 GetForProfile(browser_->profile()); 440 GetForProfile(browser_->profile());
441 // Only return the associator if it exists and it is done syncing sessions. 441 // Only return the associator if it exists and it is done syncing sessions.
442 if (service && service->ShouldPushChanges()) 442 if (service && service->ShouldPushChanges())
443 associator_ = service->GetSessionModelAssociator(); 443 associator_ = service->GetSessionModelAssociator();
444 } 444 }
445 return associator_; 445 return associator_;
446 } 446 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/search/instant_controller.cc ('k') | chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698