summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ash/launcher/launcher_view.cc3
-rw-r--r--chrome/app/generated_resources.grd6
-rw-r--r--chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.cc8
-rw-r--r--chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.h7
-rw-r--r--chrome/browser/ui/views/ash/launcher/launcher_context_menu.cc16
-rw-r--r--chrome/browser/ui/views/ash/launcher/launcher_context_menu.h2
6 files changed, 39 insertions, 3 deletions
diff --git a/ash/launcher/launcher_view.cc b/ash/launcher/launcher_view.cc
index d19d334..fb9f928 100644
--- a/ash/launcher/launcher_view.cc
+++ b/ash/launcher/launcher_view.cc
@@ -893,8 +893,7 @@ void LauncherView::ShowContextMenuForView(views::View* source,
int view_index = view_model_->GetIndexOfView(source);
if (view_index != -1 &&
- (model_->items()[view_index].type == TYPE_BROWSER_SHORTCUT ||
- model_->items()[view_index].type == TYPE_APP_LIST)) {
+ model_->items()[view_index].type == TYPE_APP_LIST) {
view_index = -1;
}
#if !defined(OS_MACOSX)
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index d9d39877..7c6560c 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -15820,6 +15820,12 @@ Battery full
<message name="IDS_LAUNCHER_CONTEXT_MENU_UNPIN" desc="Title text for the 'unpin' context menu item of the launcher">
Unpin
</message>
+ <message name="IDS_LAUNCHER_NEW_WINDOW" desc="The text label of the New Window menu item">
+ New window
+ </message>
+ <message name="IDS_LAUNCHER_NEW_INCOGNITO_WINDOW" desc="The text label of the New incognito window menu item">
+ New incognito window
+ </message>
<message name="IDS_GTALK_SCREEN_SHARE_DIALOG_MESSAGE" desc="Message to display in the dialog box asking user's permission to share their screen">
Do you want to start presenting your entire screen in this meeting?
</message>
diff --git a/chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.cc b/chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.cc
index 5278531..ffc272c 100644
--- a/chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.cc
+++ b/chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.cc
@@ -396,6 +396,14 @@ void ChromeLauncherDelegate::UnpinAppsWithID(const std::string& app_id) {
}
}
+bool ChromeLauncherDelegate::IsLoggedInAsGuest() {
+ return ProfileManager::GetDefaultProfileOrOffTheRecord()->IsOffTheRecord();
+}
+
+void ChromeLauncherDelegate::CreateNewIncognitoWindow() {
+ Browser::NewEmptyWindow(GetProfileForNewWindows()->GetOffTheRecordProfile());
+}
+
void ChromeLauncherDelegate::SetAutoHideBehavior(
ash::ShelfAutoHideBehavior behavior) {
ash::Shell::GetInstance()->SetShelfAutoHideBehavior(behavior);
diff --git a/chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.h b/chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.h
index d46502f..8a58cf3 100644
--- a/chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.h
+++ b/chrome/browser/ui/views/ash/launcher/chrome_launcher_delegate.h
@@ -140,6 +140,13 @@ class ChromeLauncherDelegate : public ash::LauncherDelegate,
// Unpins any app items whose id is |app_id|.
void UnpinAppsWithID(const std::string& app_id);
+ // Returns true if the user is currently logged in as a guest.
+ bool IsLoggedInAsGuest();
+
+ // Invoked when the user clicks on button in the launcher to create a new
+ // incognito window.
+ void CreateNewIncognitoWindow();
+
ash::LauncherModel* model() { return model_; }
Profile* profile() { return profile_; }
diff --git a/chrome/browser/ui/views/ash/launcher/launcher_context_menu.cc b/chrome/browser/ui/views/ash/launcher/launcher_context_menu.cc
index 9bfd6435..30fe5c4 100644
--- a/chrome/browser/ui/views/ash/launcher/launcher_context_menu.cc
+++ b/chrome/browser/ui/views/ash/launcher/launcher_context_menu.cc
@@ -37,6 +37,13 @@ LauncherContextMenu::LauncherContextMenu(ChromeLauncherDelegate* delegate,
AddCheckItemWithStringId(
LAUNCH_TYPE_FULLSCREEN,
IDS_APP_CONTEXT_MENU_OPEN_FULLSCREEN);
+ } else if (item_.type == ash::TYPE_BROWSER_SHORTCUT) {
+ AddItem(MENU_NEW_WINDOW,
+ l10n_util::GetStringUTF16(IDS_LAUNCHER_NEW_WINDOW));
+ if (!delegate_->IsLoggedInAsGuest()) {
+ AddItem(MENU_NEW_INCOGNITO_WINDOW,
+ l10n_util::GetStringUTF16(IDS_LAUNCHER_NEW_INCOGNITO_WINDOW));
+ }
} else {
AddItem(MENU_OPEN, delegate->GetTitle(item_));
if (delegate->IsOpen(item_.id)) {
@@ -108,6 +115,13 @@ void LauncherContextMenu::ExecuteCommand(int command_id) {
delegate_->SetLaunchType(item_.id, ExtensionPrefs::LAUNCH_FULLSCREEN);
break;
case MENU_AUTO_HIDE:
- return ash::LauncherContextMenu::ToggleAutoHideMenu();
+ ash::LauncherContextMenu::ToggleAutoHideMenu();
+ break;
+ case MENU_NEW_WINDOW:
+ delegate_->CreateNewWindow();
+ break;
+ case MENU_NEW_INCOGNITO_WINDOW:
+ delegate_->CreateNewIncognitoWindow();
+ break;
}
}
diff --git a/chrome/browser/ui/views/ash/launcher/launcher_context_menu.h b/chrome/browser/ui/views/ash/launcher/launcher_context_menu.h
index 2952ad2..db7645a 100644
--- a/chrome/browser/ui/views/ash/launcher/launcher_context_menu.h
+++ b/chrome/browser/ui/views/ash/launcher/launcher_context_menu.h
@@ -43,6 +43,8 @@ class LauncherContextMenu : public ui::SimpleMenuModel,
LAUNCH_TYPE_FULLSCREEN,
LAUNCH_TYPE_WINDOW,
MENU_AUTO_HIDE,
+ MENU_NEW_WINDOW,
+ MENU_NEW_INCOGNITO_WINDOW
};
// Does |item_| represent a valid item? See description of constructor for