Chromium Code Reviews| Index: chrome/browser/download/download_test_file_activity_observer.cc |
| diff --git a/chrome/browser/download/download_test_file_activity_observer.cc b/chrome/browser/download/download_test_file_activity_observer.cc |
| index db68b6fd60906615ff11c3777cc62fdcc3eb4f0a..cb838fcd3d4e28897e09a525ffde22bdedd653e5 100644 |
| --- a/chrome/browser/download/download_test_file_activity_observer.cc |
| +++ b/chrome/browser/download/download_test_file_activity_observer.cc |
| @@ -25,6 +25,7 @@ class DownloadTestFileActivityObserver::MockDownloadManagerDelegate |
| : ChromeDownloadManagerDelegate(profile), |
| file_chooser_enabled_(false), |
| file_chooser_displayed_(false), |
| + downloads_dangerous_(false), |
| weak_ptr_factory_(this) { |
| if (!profile->IsOffTheRecord()) |
| GetDownloadIdReceiverCallback().Run( |
| @@ -47,6 +48,38 @@ class DownloadTestFileActivityObserver::MockDownloadManagerDelegate |
| return weak_ptr_factory_.GetWeakPtr(); |
| } |
| + void ChangeDangerTypeForFeedbackTest() { |
|
asanka
2014/03/26 18:01:30
Suggestion: Use a more generic name since this is
felt
2014/06/03 00:35:22
My problem here is that I don't know how to get th
asanka
2014/06/05 19:20:12
static void SetDangerous(const DownloadTargetCallb
|
| + downloads_dangerous_ = true; |
|
asanka
2014/03/26 18:01:30
Use a more descriptive name? mark_downloads_as_dan
felt
2014/06/03 00:35:22
Done.
|
| + } |
| + |
| + virtual bool DetermineDownloadTarget( |
| + content::DownloadItem* item, |
| + const content::DownloadTargetCallback& callback) OVERRIDE { |
| + if (downloads_dangerous_ && |
| + item->GetDangerType() == content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE) { |
|
asanka
2014/03/26 18:01:30
If you are forcing a danger type, I'd propose just
felt
2014/06/03 00:35:22
I believe this should be fixed now.
|
| + content::DownloadTargetCallback dangerous_callback = |
| + base::Bind(&MockDownloadManagerDelegate::SetDangerous, |
| + callback); |
| + return ChromeDownloadManagerDelegate::DetermineDownloadTarget( |
| + item, dangerous_callback); |
| + } else { |
| + return ChromeDownloadManagerDelegate::DetermineDownloadTarget( |
| + item, callback); |
| + } |
| + } |
| + |
| + static void SetDangerous( |
| + const content::DownloadTargetCallback& callback, |
| + const base::FilePath& target_path, |
| + content::DownloadItem::TargetDisposition disp, |
| + content::DownloadDangerType danger_type, |
| + const base::FilePath& intermediate_path) { |
| + callback.Run(target_path, |
| + disp, |
| + content::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT, |
| + intermediate_path); |
| + } |
| + |
| protected: |
| virtual void PromptUserForDownloadPath(content::DownloadItem* item, |
| @@ -64,6 +97,7 @@ class DownloadTestFileActivityObserver::MockDownloadManagerDelegate |
| private: |
| bool file_chooser_enabled_; |
| bool file_chooser_displayed_; |
| + bool downloads_dangerous_; |
| base::WeakPtrFactory<MockDownloadManagerDelegate> weak_ptr_factory_; |
| }; |
| @@ -89,3 +123,8 @@ bool DownloadTestFileActivityObserver::TestAndResetDidShowFileChooser() { |
| return test_delegate_.get() && |
| test_delegate_->TestAndResetDidShowFileChooser(); |
| } |
| + |
| +void DownloadTestFileActivityObserver::ChangeDangerTypeForFeedbackTest() { |
| + if (test_delegate_.get()) |
| + test_delegate_->ChangeDangerTypeForFeedbackTest(); |
| +} |