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 "chrome/browser/browser_process.h" | 7 #include "chrome/browser/browser_process.h" |
8 #include "chrome/browser/download/download_crx_util.h" | 8 #include "chrome/browser/download/download_crx_util.h" |
9 #include "chrome/browser/download/download_item_model.h" | 9 #include "chrome/browser/download/download_item_model.h" |
10 #include "chrome/browser/download/download_prefs.h" | 10 #include "chrome/browser/download/download_prefs.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 case OPEN_WHEN_COMPLETE: | 66 case OPEN_WHEN_COMPLETE: |
67 return download_item_->CanOpenDownload() && | 67 return download_item_->CanOpenDownload() && |
68 !download_crx_util::IsExtensionDownload(*download_item_); | 68 !download_crx_util::IsExtensionDownload(*download_item_); |
69 case ALWAYS_OPEN_TYPE: | 69 case ALWAYS_OPEN_TYPE: |
70 // For temporary downloads, the target filename might be a temporary | 70 // For temporary downloads, the target filename might be a temporary |
71 // filename. Don't base an "Always open" decision based on it. Also | 71 // filename. Don't base an "Always open" decision based on it. Also |
72 // exclude extensions. | 72 // exclude extensions. |
73 return download_item_->CanOpenDownload() && | 73 return download_item_->CanOpenDownload() && |
74 !download_crx_util::IsExtensionDownload(*download_item_); | 74 !download_crx_util::IsExtensionDownload(*download_item_); |
75 case CANCEL: | 75 case CANCEL: |
76 return download_item_->IsPartialDownload(); | 76 return !download_item_->IsDone(); |
77 case TOGGLE_PAUSE: | 77 case TOGGLE_PAUSE: |
78 return download_item_->GetState() == DownloadItem::IN_PROGRESS; | 78 return download_item_->GetState() == DownloadItem::IN_PROGRESS; |
79 case DISCARD: | 79 case DISCARD: |
80 case KEEP: | 80 case KEEP: |
81 case LEARN_MORE_SCANNING: | 81 case LEARN_MORE_SCANNING: |
82 case LEARN_MORE_INTERRUPTED: | 82 case LEARN_MORE_INTERRUPTED: |
83 return true; | 83 return true; |
84 } | 84 } |
85 return false; | 85 return false; |
86 } | 86 } |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 prefs->DisableAutoOpenBasedOnExtension(path); | 122 prefs->DisableAutoOpenBasedOnExtension(path); |
123 break; | 123 break; |
124 } | 124 } |
125 case CANCEL: | 125 case CANCEL: |
126 download_item_->Cancel(true /* Cancelled by user */); | 126 download_item_->Cancel(true /* Cancelled by user */); |
127 break; | 127 break; |
128 case TOGGLE_PAUSE: | 128 case TOGGLE_PAUSE: |
129 // It is possible for the download to complete before the user clicks the | 129 // It is possible for the download to complete before the user clicks the |
130 // menu item, recheck if the download is in progress state before toggling | 130 // menu item, recheck if the download is in progress state before toggling |
131 // pause. | 131 // pause. |
132 if (download_item_->IsPartialDownload()) { | 132 if (download_item_->GetState() == DownloadItem::IN_PROGRESS) { |
133 if (download_item_->IsPaused()) | 133 if (download_item_->IsPaused()) |
134 download_item_->Resume(); | 134 download_item_->Resume(); |
135 else | 135 else |
136 download_item_->Pause(); | 136 download_item_->Pause(); |
137 } | 137 } |
138 break; | 138 break; |
139 case DISCARD: | 139 case DISCARD: |
140 download_item_->Remove(); | 140 download_item_->Remove(); |
141 break; | 141 break; |
142 case KEEP: | 142 case KEEP: |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 | 176 |
177 bool DownloadShelfContextMenu::IsItemForCommandIdDynamic(int command_id) const { | 177 bool DownloadShelfContextMenu::IsItemForCommandIdDynamic(int command_id) const { |
178 return command_id == TOGGLE_PAUSE; | 178 return command_id == TOGGLE_PAUSE; |
179 } | 179 } |
180 | 180 |
181 string16 DownloadShelfContextMenu::GetLabelForCommandId(int command_id) const { | 181 string16 DownloadShelfContextMenu::GetLabelForCommandId(int command_id) const { |
182 switch (static_cast<ContextMenuCommands>(command_id)) { | 182 switch (static_cast<ContextMenuCommands>(command_id)) { |
183 case SHOW_IN_FOLDER: | 183 case SHOW_IN_FOLDER: |
184 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_SHOW); | 184 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_SHOW); |
185 case OPEN_WHEN_COMPLETE: | 185 case OPEN_WHEN_COMPLETE: |
186 if (download_item_ && | 186 if (download_item_ && !download_item_->IsDone()) |
187 download_item_->GetState() == DownloadItem::IN_PROGRESS) | |
188 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE); | 187 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE); |
189 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN); | 188 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN); |
190 case ALWAYS_OPEN_TYPE: | 189 case ALWAYS_OPEN_TYPE: |
191 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); | 190 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); |
192 case CANCEL: | 191 case CANCEL: |
193 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_CANCEL); | 192 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_CANCEL); |
194 case TOGGLE_PAUSE: | 193 case TOGGLE_PAUSE: |
195 if (download_item_ && download_item_->IsPaused()) | 194 if (download_item_ && download_item_->IsPaused()) |
196 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_RESUME_ITEM); | 195 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_RESUME_ITEM); |
197 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PAUSE_ITEM); | 196 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PAUSE_ITEM); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 malicious_download_menu_model_->AddItemWithStringId( | 291 malicious_download_menu_model_->AddItemWithStringId( |
293 DISCARD, IDS_DOWNLOAD_MENU_DISCARD); | 292 DISCARD, IDS_DOWNLOAD_MENU_DISCARD); |
294 malicious_download_menu_model_->AddItemWithStringId( | 293 malicious_download_menu_model_->AddItemWithStringId( |
295 KEEP, IDS_DOWNLOAD_MENU_KEEP); | 294 KEEP, IDS_DOWNLOAD_MENU_KEEP); |
296 malicious_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR); | 295 malicious_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR); |
297 malicious_download_menu_model_->AddItemWithStringId( | 296 malicious_download_menu_model_->AddItemWithStringId( |
298 LEARN_MORE_SCANNING, IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING); | 297 LEARN_MORE_SCANNING, IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING); |
299 | 298 |
300 return malicious_download_menu_model_.get(); | 299 return malicious_download_menu_model_.get(); |
301 } | 300 } |
OLD | NEW |