| OLD | NEW |
| 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/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/prefs/scoped_user_pref_update.h" | 9 #include "base/prefs/scoped_user_pref_update.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 #include "chrome/browser/ui/toolbar/wrench_menu_model.h" | 27 #include "chrome/browser/ui/toolbar/wrench_menu_model.h" |
| 28 #include "chrome/common/pref_names.h" | 28 #include "chrome/common/pref_names.h" |
| 29 #include "components/favicon_base/favicon_types.h" | 29 #include "components/favicon_base/favicon_types.h" |
| 30 #include "grit/browser_resources.h" | 30 #include "grit/browser_resources.h" |
| 31 #include "grit/generated_resources.h" | 31 #include "grit/generated_resources.h" |
| 32 #include "grit/theme_resources.h" | 32 #include "grit/theme_resources.h" |
| 33 #include "grit/ui_resources.h" | 33 #include "grit/ui_resources.h" |
| 34 #include "ui/base/accelerators/accelerator.h" | 34 #include "ui/base/accelerators/accelerator.h" |
| 35 #include "ui/base/l10n/l10n_util.h" | 35 #include "ui/base/l10n/l10n_util.h" |
| 36 #include "ui/base/resource/resource_bundle.h" | 36 #include "ui/base/resource/resource_bundle.h" |
| 37 #include "ui/gfx/favicon_size.h" | |
| 38 | 37 |
| 39 #if defined(USE_ASH) | 38 #if defined(USE_ASH) |
| 40 #include "ash/accelerators/accelerator_table.h" | 39 #include "ash/accelerators/accelerator_table.h" |
| 41 #endif // defined(USE_ASH) | 40 #endif // defined(USE_ASH) |
| 42 | 41 |
| 43 namespace { | 42 namespace { |
| 44 | 43 |
| 45 // Initial comamnd ID's for navigatable (and hence executable) tab/window menu | 44 // Initial comamnd ID's for navigatable (and hence executable) tab/window menu |
| 46 // items. The menumodel and storage structures are not 1-1: | 45 // items. The menumodel and storage structures are not 1-1: |
| 47 // - menumodel has "Recently closed" header, "No tabs from other devices", | 46 // - menumodel has "Recently closed" header, "No tabs from other devices", |
| (...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 607 // Otherwise, start to fetch the favicon from local history asynchronously. | 606 // Otherwise, start to fetch the favicon from local history asynchronously. |
| 608 // Set default icon first. | 607 // Set default icon first. |
| 609 SetIcon(index_in_menu, default_favicon_); | 608 SetIcon(index_in_menu, default_favicon_); |
| 610 // Start request to fetch actual icon if possible. | 609 // Start request to fetch actual icon if possible. |
| 611 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( | 610 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( |
| 612 browser_->profile(), Profile::EXPLICIT_ACCESS); | 611 browser_->profile(), Profile::EXPLICIT_ACCESS); |
| 613 if (!favicon_service) | 612 if (!favicon_service) |
| 614 return; | 613 return; |
| 615 | 614 |
| 616 favicon_service->GetFaviconImageForPageURL( | 615 favicon_service->GetFaviconImageForPageURL( |
| 617 FaviconService::FaviconForPageURLParams( | 616 url, |
| 618 url, favicon_base::FAVICON, gfx::kFaviconSize), | |
| 619 base::Bind(&RecentTabsSubMenuModel::OnFaviconDataAvailable, | 617 base::Bind(&RecentTabsSubMenuModel::OnFaviconDataAvailable, |
| 620 weak_ptr_factory_.GetWeakPtr(), | 618 weak_ptr_factory_.GetWeakPtr(), |
| 621 command_id), | 619 command_id), |
| 622 is_local_tab ? &local_tab_cancelable_task_tracker_ | 620 is_local_tab ? &local_tab_cancelable_task_tracker_ |
| 623 : &other_devices_tab_cancelable_task_tracker_); | 621 : &other_devices_tab_cancelable_task_tracker_); |
| 624 } | 622 } |
| 625 | 623 |
| 626 void RecentTabsSubMenuModel::OnFaviconDataAvailable( | 624 void RecentTabsSubMenuModel::OnFaviconDataAvailable( |
| 627 int command_id, | 625 int command_id, |
| 628 const favicon_base::FaviconImageResult& image_result) { | 626 const favicon_base::FaviconImageResult& image_result) { |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 685 | 683 |
| 686 ui::MenuModelDelegate* menu_model_delegate = GetMenuModelDelegate(); | 684 ui::MenuModelDelegate* menu_model_delegate = GetMenuModelDelegate(); |
| 687 if (menu_model_delegate) | 685 if (menu_model_delegate) |
| 688 menu_model_delegate->OnMenuStructureChanged(); | 686 menu_model_delegate->OnMenuStructureChanged(); |
| 689 } | 687 } |
| 690 | 688 |
| 691 void RecentTabsSubMenuModel::TabRestoreServiceDestroyed( | 689 void RecentTabsSubMenuModel::TabRestoreServiceDestroyed( |
| 692 TabRestoreService* service) { | 690 TabRestoreService* service) { |
| 693 TabRestoreServiceChanged(service); | 691 TabRestoreServiceChanged(service); |
| 694 } | 692 } |
| OLD | NEW |