| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/app_list/extension_app_context_menu.h" | 5 #include "chrome/browser/ui/app_list/extension_app_context_menu.h" |
| 6 | 6 |
| 7 #include "chrome/browser/extensions/context_menu_matcher.h" | 7 #include "chrome/browser/extensions/context_menu_matcher.h" |
| 8 #include "chrome/browser/extensions/extension_util.h" | 8 #include "chrome/browser/extensions/extension_util.h" |
| 9 #include "chrome/browser/extensions/menu_manager.h" | 9 #include "chrome/browser/extensions/menu_manager.h" |
| 10 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 10 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 USE_LAUNCH_TYPE_REGULAR, | 98 USE_LAUNCH_TYPE_REGULAR, |
| 99 IDS_APP_CONTEXT_MENU_OPEN_REGULAR); | 99 IDS_APP_CONTEXT_MENU_OPEN_REGULAR); |
| 100 menu_model->AddCheckItemWithStringId( | 100 menu_model->AddCheckItemWithStringId( |
| 101 USE_LAUNCH_TYPE_PINNED, | 101 USE_LAUNCH_TYPE_PINNED, |
| 102 IDS_APP_CONTEXT_MENU_OPEN_PINNED); | 102 IDS_APP_CONTEXT_MENU_OPEN_PINNED); |
| 103 if (extensions::util::CanHostedAppsOpenInWindows()) { | 103 if (extensions::util::CanHostedAppsOpenInWindows()) { |
| 104 menu_model->AddCheckItemWithStringId( | 104 menu_model->AddCheckItemWithStringId( |
| 105 USE_LAUNCH_TYPE_WINDOW, | 105 USE_LAUNCH_TYPE_WINDOW, |
| 106 IDS_APP_CONTEXT_MENU_OPEN_WINDOW); | 106 IDS_APP_CONTEXT_MENU_OPEN_WINDOW); |
| 107 } | 107 } |
| 108 #if defined(OS_MACOSX) | |
| 109 // Mac does not support standalone web app browser windows or maximize. | |
| 110 menu_model->AddCheckItemWithStringId( | |
| 111 USE_LAUNCH_TYPE_FULLSCREEN, | |
| 112 IDS_APP_CONTEXT_MENU_OPEN_FULLSCREEN); | |
| 113 #else | |
| 114 // Even though the launch type is Full Screen it is more accurately | 108 // Even though the launch type is Full Screen it is more accurately |
| 115 // described as Maximized in Ash. | 109 // described as Maximized in Ash. |
| 116 menu_model->AddCheckItemWithStringId( | 110 menu_model->AddCheckItemWithStringId( |
| 117 USE_LAUNCH_TYPE_FULLSCREEN, | 111 USE_LAUNCH_TYPE_FULLSCREEN, |
| 118 IDS_APP_CONTEXT_MENU_OPEN_MAXIMIZED); | 112 IDS_APP_CONTEXT_MENU_OPEN_MAXIMIZED); |
| 119 #endif | |
| 120 } | 113 } |
| 121 menu_model->AddSeparator(ui::NORMAL_SEPARATOR); | 114 menu_model->AddSeparator(ui::NORMAL_SEPARATOR); |
| 122 } | 115 } |
| 123 | 116 |
| 124 // Assign unique IDs to commands added by the app itself. | 117 // Assign unique IDs to commands added by the app itself. |
| 125 int index = USE_LAUNCH_TYPE_COMMAND_END; | 118 int index = USE_LAUNCH_TYPE_COMMAND_END; |
| 126 extension_menu_items_->AppendExtensionItems( | 119 extension_menu_items_->AppendExtensionItems( |
| 127 extensions::MenuItem::ExtensionKey(app_id()), | 120 extensions::MenuItem::ExtensionKey(app_id()), |
| 128 base::string16(), | 121 base::string16(), |
| 129 &index, | 122 &index, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 153 AppContextMenu::IsItemForCommandIdDynamic(command_id); | 146 AppContextMenu::IsItemForCommandIdDynamic(command_id); |
| 154 } | 147 } |
| 155 | 148 |
| 156 base::string16 ExtensionAppContextMenu::GetLabelForCommandId( | 149 base::string16 ExtensionAppContextMenu::GetLabelForCommandId( |
| 157 int command_id) const { | 150 int command_id) const { |
| 158 if (command_id == TOGGLE_PIN) | 151 if (command_id == TOGGLE_PIN) |
| 159 return AppContextMenu::GetLabelForCommandId(command_id); | 152 return AppContextMenu::GetLabelForCommandId(command_id); |
| 160 | 153 |
| 161 DCHECK_EQ(LAUNCH_NEW, command_id); | 154 DCHECK_EQ(LAUNCH_NEW, command_id); |
| 162 | 155 |
| 163 #if defined(OS_MACOSX) | |
| 164 // Full screen on Mac launches in a tab. | |
| 165 bool launches_in_window = extensions::util::CanHostedAppsOpenInWindows() && | |
| 166 IsCommandIdChecked(USE_LAUNCH_TYPE_WINDOW); | |
| 167 #else | |
| 168 // If --enable-new-bookmark-apps is enabled, then only check if | 156 // If --enable-new-bookmark-apps is enabled, then only check if |
| 169 // USE_LAUNCH_TYPE_WINDOW is checked, as USE_LAUNCH_TYPE_PINNED (i.e. open | 157 // USE_LAUNCH_TYPE_WINDOW is checked, as USE_LAUNCH_TYPE_PINNED (i.e. open |
| 170 // as pinned tab) and fullscreen-by-default windows do not exist. | 158 // as pinned tab) and fullscreen-by-default windows do not exist. |
| 171 bool launches_in_window = | 159 bool launches_in_window = |
| 172 (extensions::util::IsNewBookmarkAppsEnabled() | 160 (extensions::util::IsNewBookmarkAppsEnabled() |
| 173 ? IsCommandIdChecked(USE_LAUNCH_TYPE_WINDOW) | 161 ? IsCommandIdChecked(USE_LAUNCH_TYPE_WINDOW) |
| 174 : !(IsCommandIdChecked(USE_LAUNCH_TYPE_PINNED) || | 162 : !(IsCommandIdChecked(USE_LAUNCH_TYPE_PINNED) || |
| 175 IsCommandIdChecked(USE_LAUNCH_TYPE_REGULAR))); | 163 IsCommandIdChecked(USE_LAUNCH_TYPE_REGULAR))); |
| 176 #endif | |
| 177 | 164 |
| 178 return launches_in_window ? | 165 return launches_in_window ? |
| 179 l10n_util::GetStringUTF16(IDS_APP_LIST_CONTEXT_MENU_NEW_WINDOW) : | 166 l10n_util::GetStringUTF16(IDS_APP_LIST_CONTEXT_MENU_NEW_WINDOW) : |
| 180 l10n_util::GetStringUTF16(IDS_APP_LIST_CONTEXT_MENU_NEW_TAB); | 167 l10n_util::GetStringUTF16(IDS_APP_LIST_CONTEXT_MENU_NEW_TAB); |
| 181 } | 168 } |
| 182 | 169 |
| 183 bool ExtensionAppContextMenu::IsCommandIdChecked(int command_id) const { | 170 bool ExtensionAppContextMenu::IsCommandIdChecked(int command_id) const { |
| 184 if (command_id >= USE_LAUNCH_TYPE_COMMAND_START && | 171 if (command_id >= USE_LAUNCH_TYPE_COMMAND_START && |
| 185 command_id < USE_LAUNCH_TYPE_COMMAND_END) { | 172 command_id < USE_LAUNCH_TYPE_COMMAND_END) { |
| 186 return static_cast<int>(controller()->GetExtensionLaunchType( | 173 return static_cast<int>(controller()->GetExtensionLaunchType( |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 } else if (command_id == MENU_NEW_WINDOW) { | 229 } else if (command_id == MENU_NEW_WINDOW) { |
| 243 controller()->CreateNewWindow(profile(), false); | 230 controller()->CreateNewWindow(profile(), false); |
| 244 } else if (command_id == MENU_NEW_INCOGNITO_WINDOW) { | 231 } else if (command_id == MENU_NEW_INCOGNITO_WINDOW) { |
| 245 controller()->CreateNewWindow(profile(), true); | 232 controller()->CreateNewWindow(profile(), true); |
| 246 } else { | 233 } else { |
| 247 AppContextMenu::ExecuteCommand(command_id, event_flags); | 234 AppContextMenu::ExecuteCommand(command_id, event_flags); |
| 248 } | 235 } |
| 249 } | 236 } |
| 250 | 237 |
| 251 } // namespace app_list | 238 } // namespace app_list |
| OLD | NEW |