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

Side by Side Diff: chrome/browser/background_mode_manager.cc

Issue 4850001: Corrected bad DCHECK range check in BackgroundModeManager::ExecuteApplication. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added Task Manager entry to Status Icon's context menu. Created 10 years, 1 month 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "app/l10n_util.h" 5 #include "app/l10n_util.h"
6 #include "app/resource_bundle.h" 6 #include "app/resource_bundle.h"
7 #include "base/base_paths.h" 7 #include "base/base_paths.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 #if defined(TOOLKIT_GTK) 491 #if defined(TOOLKIT_GTK)
492 string16 preferences = gtk_util::GetStockPreferencesMenuLabel(); 492 string16 preferences = gtk_util::GetStockPreferencesMenuLabel();
493 if (preferences.empty()) 493 if (preferences.empty())
494 menu->AddItemWithStringId(IDC_OPTIONS, IDS_OPTIONS); 494 menu->AddItemWithStringId(IDC_OPTIONS, IDS_OPTIONS);
495 else 495 else
496 menu->AddItem(IDC_OPTIONS, preferences); 496 menu->AddItem(IDC_OPTIONS, preferences);
497 #else 497 #else
498 menu->AddItemWithStringId(IDC_OPTIONS, IDS_OPTIONS); 498 menu->AddItemWithStringId(IDC_OPTIONS, IDS_OPTIONS);
499 #endif 499 #endif
500 } 500 }
501 menu->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
501 menu->AddSeparator(); 502 menu->AddSeparator();
502 int application_position = 0; 503 int application_position = 0;
503 context_menu_application_offset_ = menu->GetItemCount(); 504 context_menu_application_offset_ = menu->GetItemCount();
504 for (ExtensionList::const_iterator cursor = applications_.begin(); 505 for (ExtensionList::const_iterator cursor = applications_.begin();
505 cursor != applications_.end(); 506 cursor != applications_.end();
506 ++cursor, ++application_position) { 507 ++cursor, ++application_position) {
507 const SkBitmap* icon = applications_.GetIcon(*cursor); 508 const SkBitmap* icon = applications_.GetIcon(*cursor);
508 int sort_position = applications_.GetPosition(*cursor); 509 int sort_position = applications_.GetPosition(*cursor);
509 DCHECK(sort_position == application_position); 510 DCHECK(sort_position == application_position);
510 const std::string& name = (*cursor)->name(); 511 const std::string& name = (*cursor)->name();
(...skipping 23 matching lines...) Expand all
534 return false; 535 return false;
535 } 536 }
536 537
537 void BackgroundModeManager::RemoveStatusTrayIcon() { 538 void BackgroundModeManager::RemoveStatusTrayIcon() {
538 if (status_icon_) 539 if (status_icon_)
539 status_tray_->RemoveStatusIcon(status_icon_); 540 status_tray_->RemoveStatusIcon(status_icon_);
540 status_icon_ = NULL; 541 status_icon_ = NULL;
541 } 542 }
542 543
543 void BackgroundModeManager::ExecuteApplication(int item) { 544 void BackgroundModeManager::ExecuteApplication(int item) {
544 DCHECK(item > 0 && item < static_cast<int>(applications_.size())); 545 DCHECK(item >= 0 && item < static_cast<int>(applications_.size()));
545 Browser* browser = BrowserList::GetLastActive(); 546 Browser* browser = BrowserList::GetLastActive();
546 if (!browser) { 547 if (!browser) {
547 Browser::OpenEmptyWindow(profile_); 548 Browser::OpenEmptyWindow(profile_);
548 browser = BrowserList::GetLastActive(); 549 browser = BrowserList::GetLastActive();
549 } 550 }
550 const Extension* extension = applications_.GetExtension(item); 551 const Extension* extension = applications_.GetExtension(item);
551 browser->OpenApplicationTab(profile_, extension, NULL); 552 browser->OpenApplicationTab(profile_, extension, NULL);
552 } 553 }
553 554
554 void BackgroundModeManager::ExecuteCommand(int item) { 555 void BackgroundModeManager::ExecuteCommand(int item) {
555 switch (item) { 556 switch (item) {
557 case IDC_ABOUT:
558 GetBrowserWindow()->OpenAboutChromeDialog();
559 break;
556 case IDC_EXIT: 560 case IDC_EXIT:
557 UserMetrics::RecordAction(UserMetricsAction("Exit"), profile_); 561 UserMetrics::RecordAction(UserMetricsAction("Exit"), profile_);
558 BrowserList::CloseAllBrowsersAndExit(); 562 BrowserList::CloseAllBrowsersAndExit();
559 break; 563 break;
560 case IDC_ABOUT:
561 GetBrowserWindow()->OpenAboutChromeDialog();
562 break;
563 case IDC_OPTIONS: 564 case IDC_OPTIONS:
564 GetBrowserWindow()->OpenOptionsDialog(); 565 GetBrowserWindow()->OpenOptionsDialog();
565 break; 566 break;
567 case IDC_TASK_MANAGER:
568 GetBrowserWindow()->OpenTaskManager();
569 break;
566 default: 570 default:
567 ExecuteApplication(item); 571 ExecuteApplication(item);
568 break; 572 break;
569 } 573 }
570 } 574 }
571 575
572 Browser* BackgroundModeManager::GetBrowserWindow() { 576 Browser* BackgroundModeManager::GetBrowserWindow() {
573 Browser* browser = BrowserList::GetLastActive(); 577 Browser* browser = BrowserList::GetLastActive();
574 if (!browser) { 578 if (!browser) {
575 Browser::OpenEmptyWindow(profile_); 579 Browser::OpenEmptyWindow(profile_);
576 browser = BrowserList::GetLastActive(); 580 browser = BrowserList::GetLastActive();
577 } 581 }
578 return browser; 582 return browser;
579 } 583 }
580 584
581 // static 585 // static
582 void BackgroundModeManager::RegisterUserPrefs(PrefService* prefs) { 586 void BackgroundModeManager::RegisterUserPrefs(PrefService* prefs) {
583 prefs->RegisterBooleanPref(prefs::kBackgroundModeEnabled, true); 587 prefs->RegisterBooleanPref(prefs::kBackgroundModeEnabled, true);
584 prefs->RegisterBooleanPref(prefs::kLaunchOnStartupResetAllowed, false); 588 prefs->RegisterBooleanPref(prefs::kLaunchOnStartupResetAllowed, false);
585 } 589 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698