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

Side by Side Diff: chrome/browser/download/download_shelf_context_menu.cc

Issue 55063002: Prefer opening PDF downloads in the browser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tests + rebase Created 7 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
OLDNEW
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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 } 71 }
72 72
73 bool DownloadShelfContextMenu::IsCommandIdEnabled(int command_id) const { 73 bool DownloadShelfContextMenu::IsCommandIdEnabled(int command_id) const {
74 if (!download_item_) 74 if (!download_item_)
75 return false; 75 return false;
76 76
77 switch (static_cast<ContextMenuCommands>(command_id)) { 77 switch (static_cast<ContextMenuCommands>(command_id)) {
78 case SHOW_IN_FOLDER: 78 case SHOW_IN_FOLDER:
79 return download_item_->CanShowInFolder(); 79 return download_item_->CanShowInFolder();
80 case OPEN_WHEN_COMPLETE: 80 case OPEN_WHEN_COMPLETE:
81 case PLATFORM_OPEN:
81 return download_item_->CanOpenDownload() && 82 return download_item_->CanOpenDownload() &&
82 !download_crx_util::IsExtensionDownload(*download_item_); 83 !download_crx_util::IsExtensionDownload(*download_item_);
83 case ALWAYS_OPEN_TYPE: 84 case ALWAYS_OPEN_TYPE:
84 // For temporary downloads, the target filename might be a temporary 85 // For temporary downloads, the target filename might be a temporary
85 // 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
86 // exclude extensions. 87 // exclude extensions.
87 return download_item_->CanOpenDownload() && 88 return download_item_->CanOpenDownload() &&
88 !download_crx_util::IsExtensionDownload(*download_item_); 89 !download_crx_util::IsExtensionDownload(*download_item_);
89 case CANCEL: 90 case CANCEL:
90 return !download_item_->IsDone(); 91 return !download_item_->IsDone();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 case ALWAYS_OPEN_TYPE: { 130 case ALWAYS_OPEN_TYPE: {
130 DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext( 131 DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(
131 download_item_->GetBrowserContext()); 132 download_item_->GetBrowserContext());
132 base::FilePath path = download_item_->GetTargetFilePath(); 133 base::FilePath path = download_item_->GetTargetFilePath();
133 if (!IsCommandIdChecked(ALWAYS_OPEN_TYPE)) 134 if (!IsCommandIdChecked(ALWAYS_OPEN_TYPE))
134 prefs->EnableAutoOpenBasedOnExtension(path); 135 prefs->EnableAutoOpenBasedOnExtension(path);
135 else 136 else
136 prefs->DisableAutoOpenBasedOnExtension(path); 137 prefs->DisableAutoOpenBasedOnExtension(path);
137 break; 138 break;
138 } 139 }
140 case PLATFORM_OPEN:
141 DownloadItemModel(download_item_).OpenUsingPlatformHandler();
142 break;
139 case CANCEL: 143 case CANCEL:
140 download_item_->Cancel(true /* Cancelled by user */); 144 download_item_->Cancel(true /* Cancelled by user */);
141 break; 145 break;
142 case TOGGLE_PAUSE: 146 case TOGGLE_PAUSE:
143 if (download_item_->GetState() == DownloadItem::IN_PROGRESS && 147 if (download_item_->GetState() == DownloadItem::IN_PROGRESS &&
144 !download_item_->IsPaused()) { 148 !download_item_->IsPaused()) {
145 download_item_->Pause(); 149 download_item_->Pause();
146 } else { 150 } else {
147 download_item_->Resume(); 151 download_item_->Resume();
148 } 152 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 string16 DownloadShelfContextMenu::GetLabelForCommandId(int command_id) const { 196 string16 DownloadShelfContextMenu::GetLabelForCommandId(int command_id) const {
193 switch (static_cast<ContextMenuCommands>(command_id)) { 197 switch (static_cast<ContextMenuCommands>(command_id)) {
194 case SHOW_IN_FOLDER: 198 case SHOW_IN_FOLDER:
195 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_SHOW); 199 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_SHOW);
196 case OPEN_WHEN_COMPLETE: 200 case OPEN_WHEN_COMPLETE:
197 if (download_item_ && !download_item_->IsDone()) 201 if (download_item_ && !download_item_->IsDone())
198 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE); 202 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE);
199 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN); 203 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN);
200 case ALWAYS_OPEN_TYPE: 204 case ALWAYS_OPEN_TYPE:
201 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); 205 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE);
206 case PLATFORM_OPEN:
207 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PLATFORM_OPEN);
202 case CANCEL: 208 case CANCEL:
203 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_CANCEL); 209 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_CANCEL);
204 case TOGGLE_PAUSE: 210 case TOGGLE_PAUSE:
205 if (download_item_ && 211 if (download_item_ &&
206 download_item_->GetState() == DownloadItem::IN_PROGRESS && 212 download_item_->GetState() == DownloadItem::IN_PROGRESS &&
207 !download_item_->IsPaused()) 213 !download_item_->IsPaused())
208 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PAUSE_ITEM); 214 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PAUSE_ITEM);
209 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_RESUME_ITEM); 215 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_RESUME_ITEM);
210 case DISCARD: 216 case DISCARD:
211 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_DISCARD); 217 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_DISCARD);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 ui::SimpleMenuModel* DownloadShelfContextMenu::GetFinishedMenuModel() { 265 ui::SimpleMenuModel* DownloadShelfContextMenu::GetFinishedMenuModel() {
260 if (finished_download_menu_model_) 266 if (finished_download_menu_model_)
261 return finished_download_menu_model_.get(); 267 return finished_download_menu_model_.get();
262 268
263 finished_download_menu_model_.reset(new ui::SimpleMenuModel(this)); 269 finished_download_menu_model_.reset(new ui::SimpleMenuModel(this));
264 270
265 finished_download_menu_model_->AddItemWithStringId( 271 finished_download_menu_model_->AddItemWithStringId(
266 OPEN_WHEN_COMPLETE, IDS_DOWNLOAD_MENU_OPEN); 272 OPEN_WHEN_COMPLETE, IDS_DOWNLOAD_MENU_OPEN);
267 finished_download_menu_model_->AddCheckItemWithStringId( 273 finished_download_menu_model_->AddCheckItemWithStringId(
268 ALWAYS_OPEN_TYPE, IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); 274 ALWAYS_OPEN_TYPE, IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE);
275 if (DownloadItemModel(download_item_).ShouldPreferOpeningInBrowser())
276 finished_download_menu_model_->AddItemWithStringId(
277 PLATFORM_OPEN, IDS_DOWNLOAD_MENU_PLATFORM_OPEN);
269 finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR); 278 finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
270 finished_download_menu_model_->AddItemWithStringId( 279 finished_download_menu_model_->AddItemWithStringId(
271 SHOW_IN_FOLDER, IDS_DOWNLOAD_MENU_SHOW); 280 SHOW_IN_FOLDER, IDS_DOWNLOAD_MENU_SHOW);
272 finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR); 281 finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
273 finished_download_menu_model_->AddItemWithStringId( 282 finished_download_menu_model_->AddItemWithStringId(
274 CANCEL, IDS_DOWNLOAD_MENU_CANCEL); 283 CANCEL, IDS_DOWNLOAD_MENU_CANCEL);
275 284
276 return finished_download_menu_model_.get(); 285 return finished_download_menu_model_.get();
277 } 286 }
278 287
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 DownloadItemModel download_model(download_item_); 347 DownloadItemModel download_model(download_item_);
339 if (download_model.ShouldAllowDownloadFeedback()) { 348 if (download_model.ShouldAllowDownloadFeedback()) {
340 maybe_malicious_download_menu_model_->AddItemWithStringId( 349 maybe_malicious_download_menu_model_->AddItemWithStringId(
341 DISCARD, IDS_DOWNLOAD_MENU_DISCARD); 350 DISCARD, IDS_DOWNLOAD_MENU_DISCARD);
342 } 351 }
343 malicious_download_menu_model_->AddItemWithStringId( 352 malicious_download_menu_model_->AddItemWithStringId(
344 LEARN_MORE_SCANNING, IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING); 353 LEARN_MORE_SCANNING, IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING);
345 354
346 return malicious_download_menu_model_.get(); 355 return malicious_download_menu_model_.get();
347 } 356 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698