| 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 "chrome/browser/download/download_shelf_context_menu.h" | 5 #include "chrome/browser/download/download_shelf_context_menu.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/download/download_crx_util.h" | 9 #include "chrome/browser/download/download_crx_util.h" |
| 10 #include "chrome/browser/download/download_item_model.h" | 10 #include "chrome/browser/download/download_item_model.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 } | 72 } |
| 73 | 73 |
| 74 bool DownloadShelfContextMenu::IsCommandIdEnabled(int command_id) const { | 74 bool DownloadShelfContextMenu::IsCommandIdEnabled(int command_id) const { |
| 75 if (!download_item_) | 75 if (!download_item_) |
| 76 return false; | 76 return false; |
| 77 | 77 |
| 78 switch (static_cast<ContextMenuCommands>(command_id)) { | 78 switch (static_cast<ContextMenuCommands>(command_id)) { |
| 79 case SHOW_IN_FOLDER: | 79 case SHOW_IN_FOLDER: |
| 80 return download_item_->CanShowInFolder(); | 80 return download_item_->CanShowInFolder(); |
| 81 case OPEN_WHEN_COMPLETE: | 81 case OPEN_WHEN_COMPLETE: |
| 82 case PLATFORM_OPEN: | |
| 83 return download_item_->CanOpenDownload() && | 82 return download_item_->CanOpenDownload() && |
| 84 !download_crx_util::IsExtensionDownload(*download_item_); | 83 !download_crx_util::IsExtensionDownload(*download_item_); |
| 85 case ALWAYS_OPEN_TYPE: | 84 case ALWAYS_OPEN_TYPE: |
| 86 // For temporary downloads, the target filename might be a temporary | 85 // For temporary downloads, the target filename might be a temporary |
| 87 // filename. Don't base an "Always open" decision based on it. Also | 86 // filename. Don't base an "Always open" decision based on it. Also |
| 88 // exclude extensions. | 87 // exclude extensions. |
| 89 return download_item_->CanOpenDownload() && | 88 return download_item_->CanOpenDownload() && |
| 90 !download_crx_util::IsExtensionDownload(*download_item_); | 89 !download_crx_util::IsExtensionDownload(*download_item_); |
| 91 case CANCEL: | 90 case CANCEL: |
| 92 return !download_item_->IsDone(); | 91 return !download_item_->IsDone(); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 case ALWAYS_OPEN_TYPE: { | 131 case ALWAYS_OPEN_TYPE: { |
| 133 DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext( | 132 DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext( |
| 134 download_item_->GetBrowserContext()); | 133 download_item_->GetBrowserContext()); |
| 135 base::FilePath path = download_item_->GetTargetFilePath(); | 134 base::FilePath path = download_item_->GetTargetFilePath(); |
| 136 if (!IsCommandIdChecked(ALWAYS_OPEN_TYPE)) | 135 if (!IsCommandIdChecked(ALWAYS_OPEN_TYPE)) |
| 137 prefs->EnableAutoOpenBasedOnExtension(path); | 136 prefs->EnableAutoOpenBasedOnExtension(path); |
| 138 else | 137 else |
| 139 prefs->DisableAutoOpenBasedOnExtension(path); | 138 prefs->DisableAutoOpenBasedOnExtension(path); |
| 140 break; | 139 break; |
| 141 } | 140 } |
| 142 case PLATFORM_OPEN: | |
| 143 DownloadItemModel(download_item_).OpenUsingPlatformHandler(); | |
| 144 break; | |
| 145 case CANCEL: | 141 case CANCEL: |
| 146 download_item_->Cancel(true /* Cancelled by user */); | 142 download_item_->Cancel(true /* Cancelled by user */); |
| 147 break; | 143 break; |
| 148 case TOGGLE_PAUSE: | 144 case TOGGLE_PAUSE: |
| 149 if (download_item_->GetState() == DownloadItem::IN_PROGRESS && | 145 if (download_item_->GetState() == DownloadItem::IN_PROGRESS && |
| 150 !download_item_->IsPaused()) { | 146 !download_item_->IsPaused()) { |
| 151 download_item_->Pause(); | 147 download_item_->Pause(); |
| 152 } else { | 148 } else { |
| 153 download_item_->Resume(); | 149 download_item_->Resume(); |
| 154 } | 150 } |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 string16 DownloadShelfContextMenu::GetLabelForCommandId(int command_id) const { | 214 string16 DownloadShelfContextMenu::GetLabelForCommandId(int command_id) const { |
| 219 switch (static_cast<ContextMenuCommands>(command_id)) { | 215 switch (static_cast<ContextMenuCommands>(command_id)) { |
| 220 case SHOW_IN_FOLDER: | 216 case SHOW_IN_FOLDER: |
| 221 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_SHOW); | 217 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_SHOW); |
| 222 case OPEN_WHEN_COMPLETE: | 218 case OPEN_WHEN_COMPLETE: |
| 223 if (download_item_ && !download_item_->IsDone()) | 219 if (download_item_ && !download_item_->IsDone()) |
| 224 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE); | 220 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE); |
| 225 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN); | 221 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN); |
| 226 case ALWAYS_OPEN_TYPE: | 222 case ALWAYS_OPEN_TYPE: |
| 227 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); | 223 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); |
| 228 case PLATFORM_OPEN: | |
| 229 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PLATFORM_OPEN); | |
| 230 case CANCEL: | 224 case CANCEL: |
| 231 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_CANCEL); | 225 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_CANCEL); |
| 232 case TOGGLE_PAUSE: | 226 case TOGGLE_PAUSE: |
| 233 if (download_item_ && | 227 if (download_item_ && |
| 234 download_item_->GetState() == DownloadItem::IN_PROGRESS && | 228 download_item_->GetState() == DownloadItem::IN_PROGRESS && |
| 235 !download_item_->IsPaused()) | 229 !download_item_->IsPaused()) |
| 236 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PAUSE_ITEM); | 230 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PAUSE_ITEM); |
| 237 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_RESUME_ITEM); | 231 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_RESUME_ITEM); |
| 238 case DISCARD: | 232 case DISCARD: |
| 239 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_DISCARD); | 233 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_DISCARD); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 ui::SimpleMenuModel* DownloadShelfContextMenu::GetFinishedMenuModel() { | 283 ui::SimpleMenuModel* DownloadShelfContextMenu::GetFinishedMenuModel() { |
| 290 if (finished_download_menu_model_) | 284 if (finished_download_menu_model_) |
| 291 return finished_download_menu_model_.get(); | 285 return finished_download_menu_model_.get(); |
| 292 | 286 |
| 293 finished_download_menu_model_.reset(new ui::SimpleMenuModel(this)); | 287 finished_download_menu_model_.reset(new ui::SimpleMenuModel(this)); |
| 294 | 288 |
| 295 finished_download_menu_model_->AddItemWithStringId( | 289 finished_download_menu_model_->AddItemWithStringId( |
| 296 OPEN_WHEN_COMPLETE, IDS_DOWNLOAD_MENU_OPEN); | 290 OPEN_WHEN_COMPLETE, IDS_DOWNLOAD_MENU_OPEN); |
| 297 finished_download_menu_model_->AddCheckItemWithStringId( | 291 finished_download_menu_model_->AddCheckItemWithStringId( |
| 298 ALWAYS_OPEN_TYPE, IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); | 292 ALWAYS_OPEN_TYPE, IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); |
| 299 if (DownloadItemModel(download_item_).ShouldPreferOpeningInBrowser()) | |
| 300 finished_download_menu_model_->AddItemWithStringId( | |
| 301 PLATFORM_OPEN, IDS_DOWNLOAD_MENU_PLATFORM_OPEN); | |
| 302 finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR); | 293 finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR); |
| 303 finished_download_menu_model_->AddItemWithStringId( | 294 finished_download_menu_model_->AddItemWithStringId( |
| 304 SHOW_IN_FOLDER, IDS_DOWNLOAD_MENU_SHOW); | 295 SHOW_IN_FOLDER, IDS_DOWNLOAD_MENU_SHOW); |
| 305 finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR); | 296 finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR); |
| 306 finished_download_menu_model_->AddItemWithStringId( | 297 finished_download_menu_model_->AddItemWithStringId( |
| 307 CANCEL, IDS_DOWNLOAD_MENU_CANCEL); | 298 CANCEL, IDS_DOWNLOAD_MENU_CANCEL); |
| 308 | 299 |
| 309 return finished_download_menu_model_.get(); | 300 return finished_download_menu_model_.get(); |
| 310 } | 301 } |
| 311 | 302 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 DownloadItemModel download_model(download_item_); | 359 DownloadItemModel download_model(download_item_); |
| 369 if (download_model.ShouldAllowDownloadFeedback()) { | 360 if (download_model.ShouldAllowDownloadFeedback()) { |
| 370 malicious_download_menu_model_->AddItemWithStringId( | 361 malicious_download_menu_model_->AddItemWithStringId( |
| 371 REPORT, IDS_DOWNLOAD_MENU_REPORT); | 362 REPORT, IDS_DOWNLOAD_MENU_REPORT); |
| 372 } | 363 } |
| 373 malicious_download_menu_model_->AddItemWithStringId( | 364 malicious_download_menu_model_->AddItemWithStringId( |
| 374 LEARN_MORE_SCANNING, IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING); | 365 LEARN_MORE_SCANNING, IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING); |
| 375 | 366 |
| 376 return malicious_download_menu_model_.get(); | 367 return malicious_download_menu_model_.get(); |
| 377 } | 368 } |
| OLD | NEW |