OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 <algorithm> | 5 #include <algorithm> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/base_paths.h" | 9 #include "base/base_paths.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 #include "content/public/browser/user_metrics.h" | 46 #include "content/public/browser/user_metrics.h" |
47 #include "extensions/browser/extension_system.h" | 47 #include "extensions/browser/extension_system.h" |
48 #include "extensions/common/constants.h" | 48 #include "extensions/common/constants.h" |
49 #include "extensions/common/extension.h" | 49 #include "extensions/common/extension.h" |
50 #include "extensions/common/manifest_handlers/options_page_info.h" | 50 #include "extensions/common/manifest_handlers/options_page_info.h" |
51 #include "extensions/common/permissions/permission_set.h" | 51 #include "extensions/common/permissions/permission_set.h" |
52 #include "grit/chrome_unscaled_resources.h" | 52 #include "grit/chrome_unscaled_resources.h" |
53 #include "ui/base/l10n/l10n_util.h" | 53 #include "ui/base/l10n/l10n_util.h" |
54 #include "ui/base/resource/resource_bundle.h" | 54 #include "ui/base/resource/resource_bundle.h" |
55 | 55 |
| 56 #if defined(OS_WIN) |
| 57 #include "components/browser_watcher/exit_funnel_win.h" |
| 58 #endif |
| 59 |
56 using base::UserMetricsAction; | 60 using base::UserMetricsAction; |
57 using extensions::Extension; | 61 using extensions::Extension; |
58 using extensions::UpdatedExtensionPermissionsInfo; | 62 using extensions::UpdatedExtensionPermissionsInfo; |
59 | 63 |
60 namespace { | 64 namespace { |
61 const int kInvalidExtensionIndex = -1; | 65 const int kInvalidExtensionIndex = -1; |
62 } | 66 } |
63 | 67 |
64 BackgroundModeManager::BackgroundModeData::BackgroundModeData( | 68 BackgroundModeManager::BackgroundModeData::BackgroundModeData( |
65 Profile* profile, | 69 Profile* profile, |
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
525 case IDC_TASK_MANAGER: | 529 case IDC_TASK_MANAGER: |
526 if (bmd) { | 530 if (bmd) { |
527 chrome::OpenTaskManager(bmd->GetBrowserWindow()); | 531 chrome::OpenTaskManager(bmd->GetBrowserWindow()); |
528 } else { | 532 } else { |
529 UserManager::Show(base::FilePath(), | 533 UserManager::Show(base::FilePath(), |
530 profiles::USER_MANAGER_NO_TUTORIAL, | 534 profiles::USER_MANAGER_NO_TUTORIAL, |
531 profiles::USER_MANAGER_SELECT_PROFILE_TASK_MANAGER); | 535 profiles::USER_MANAGER_SELECT_PROFILE_TASK_MANAGER); |
532 } | 536 } |
533 break; | 537 break; |
534 case IDC_EXIT: | 538 case IDC_EXIT: |
| 539 #if defined(OS_WIN) |
| 540 browser_watcher::ExitFunnel::RecordSingleEvent( |
| 541 chrome::kBrowserExitCodesRegistryPath, L"TraybarExit"); |
| 542 #endif |
535 content::RecordAction(UserMetricsAction("Exit")); | 543 content::RecordAction(UserMetricsAction("Exit")); |
536 chrome::CloseAllBrowsers(); | 544 chrome::CloseAllBrowsers(); |
537 break; | 545 break; |
538 case IDC_STATUS_TRAY_KEEP_CHROME_RUNNING_IN_BACKGROUND: { | 546 case IDC_STATUS_TRAY_KEEP_CHROME_RUNNING_IN_BACKGROUND: { |
539 // Background mode must already be enabled (as otherwise this menu would | 547 // Background mode must already be enabled (as otherwise this menu would |
540 // not be visible). | 548 // not be visible). |
541 DCHECK(IsBackgroundModePrefEnabled()); | 549 DCHECK(IsBackgroundModePrefEnabled()); |
542 DCHECK(chrome::WillKeepAlive()); | 550 DCHECK(chrome::WillKeepAlive()); |
543 | 551 |
544 // Set the background mode pref to "disabled" - the resulting notification | 552 // Set the background mode pref to "disabled" - the resulting notification |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 void BackgroundModeManager::ResumeBackgroundMode() { | 639 void BackgroundModeManager::ResumeBackgroundMode() { |
632 background_mode_suspended_ = false; | 640 background_mode_suspended_ = false; |
633 UpdateKeepAliveAndTrayIcon(); | 641 UpdateKeepAliveAndTrayIcon(); |
634 } | 642 } |
635 | 643 |
636 void BackgroundModeManager::UpdateKeepAliveAndTrayIcon() { | 644 void BackgroundModeManager::UpdateKeepAliveAndTrayIcon() { |
637 if (in_background_mode_ && !background_mode_suspended_) { | 645 if (in_background_mode_ && !background_mode_suspended_) { |
638 if (!keeping_alive_) { | 646 if (!keeping_alive_) { |
639 keeping_alive_ = true; | 647 keeping_alive_ = true; |
640 chrome::IncrementKeepAliveCount(); | 648 chrome::IncrementKeepAliveCount(); |
| 649 |
| 650 #if defined(OS_WIN) |
| 651 browser_watcher::ExitFunnel::RecordSingleEvent( |
| 652 chrome::kBrowserExitCodesRegistryPath, L"BackgroundOn"); |
| 653 #endif |
641 } | 654 } |
642 CreateStatusTrayIcon(); | 655 CreateStatusTrayIcon(); |
643 return; | 656 return; |
644 } | 657 } |
645 | 658 |
646 RemoveStatusTrayIcon(); | 659 RemoveStatusTrayIcon(); |
647 if (keeping_alive_) { | 660 if (keeping_alive_) { |
648 keeping_alive_ = false; | 661 keeping_alive_ = false; |
649 chrome::DecrementKeepAliveCount(); | 662 chrome::DecrementKeepAliveCount(); |
| 663 |
| 664 #if defined(OS_WIN) |
| 665 browser_watcher::ExitFunnel::RecordSingleEvent( |
| 666 chrome::kBrowserExitCodesRegistryPath, L"BackgroundOff"); |
| 667 #endif |
650 } | 668 } |
651 } | 669 } |
652 | 670 |
653 void BackgroundModeManager::OnBrowserAdded(Browser* browser) { | 671 void BackgroundModeManager::OnBrowserAdded(Browser* browser) { |
654 ResumeBackgroundMode(); | 672 ResumeBackgroundMode(); |
655 } | 673 } |
656 | 674 |
657 int BackgroundModeManager::GetBackgroundAppCount() const { | 675 int BackgroundModeManager::GetBackgroundAppCount() const { |
658 int count = 0; | 676 int count = 0; |
659 // Walk the BackgroundModeData for all profiles and count the number of apps. | 677 // Walk the BackgroundModeData for all profiles and count the number of apps. |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
840 } | 858 } |
841 } | 859 } |
842 return profile_it; | 860 return profile_it; |
843 } | 861 } |
844 | 862 |
845 bool BackgroundModeManager::IsBackgroundModePrefEnabled() const { | 863 bool BackgroundModeManager::IsBackgroundModePrefEnabled() const { |
846 PrefService* service = g_browser_process->local_state(); | 864 PrefService* service = g_browser_process->local_state(); |
847 DCHECK(service); | 865 DCHECK(service); |
848 return service->GetBoolean(prefs::kBackgroundModeEnabled); | 866 return service->GetBoolean(prefs::kBackgroundModeEnabled); |
849 } | 867 } |
OLD | NEW |