OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "content/shell/browser/shell_download_manager_delegate.h" | 5 #include "content/shell/browser/shell_download_manager_delegate.h" |
6 | 6 |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <windows.h> | 8 #include <windows.h> |
9 #include <commdlg.h> | 9 #include <commdlg.h> |
10 #endif | 10 #endif |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "ui/aura/window_tree_host.h" | 29 #include "ui/aura/window_tree_host.h" |
30 #endif | 30 #endif |
31 | 31 |
32 namespace content { | 32 namespace content { |
33 | 33 |
34 ShellDownloadManagerDelegate::ShellDownloadManagerDelegate() | 34 ShellDownloadManagerDelegate::ShellDownloadManagerDelegate() |
35 : download_manager_(NULL), | 35 : download_manager_(NULL), |
36 suppress_prompting_(false), | 36 suppress_prompting_(false), |
37 weak_ptr_factory_(this) {} | 37 weak_ptr_factory_(this) {} |
38 | 38 |
39 ShellDownloadManagerDelegate::~ShellDownloadManagerDelegate(){ | 39 ShellDownloadManagerDelegate::~ShellDownloadManagerDelegate() { |
40 if (download_manager_) { | 40 if (download_manager_) { |
41 DCHECK_EQ(static_cast<DownloadManagerDelegate*>(this), | 41 DCHECK_EQ(static_cast<DownloadManagerDelegate*>(this), |
42 download_manager_->GetDelegate()); | 42 download_manager_->GetDelegate()); |
43 download_manager_->SetDelegate(NULL); | 43 download_manager_->SetDelegate(NULL); |
44 download_manager_ = NULL; | 44 download_manager_ = NULL; |
45 } | 45 } |
46 } | 46 } |
47 | 47 |
48 | 48 |
49 void ShellDownloadManagerDelegate::SetDownloadManager( | 49 void ShellDownloadManagerDelegate::SetDownloadManager( |
(...skipping 16 matching lines...) Expand all Loading... |
66 // SetDownloadManager, the system is not fully initialized. | 66 // SetDownloadManager, the system is not fully initialized. |
67 if (default_download_path_.empty()) { | 67 if (default_download_path_.empty()) { |
68 default_download_path_ = download_manager_->GetBrowserContext()->GetPath(). | 68 default_download_path_ = download_manager_->GetBrowserContext()->GetPath(). |
69 Append(FILE_PATH_LITERAL("Downloads")); | 69 Append(FILE_PATH_LITERAL("Downloads")); |
70 } | 70 } |
71 | 71 |
72 if (!download->GetForcedFilePath().empty()) { | 72 if (!download->GetForcedFilePath().empty()) { |
73 callback.Run(download->GetForcedFilePath(), | 73 callback.Run(download->GetForcedFilePath(), |
74 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 74 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
75 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 75 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
76 download->GetForcedFilePath()); | 76 download->GetForcedFilePath(), DOWNLOAD_INTERRUPT_REASON_NONE); |
77 return true; | 77 return true; |
78 } | 78 } |
79 | 79 |
80 FilenameDeterminedCallback filename_determined_callback = | 80 FilenameDeterminedCallback filename_determined_callback = |
81 base::Bind(&ShellDownloadManagerDelegate::OnDownloadPathGenerated, | 81 base::Bind(&ShellDownloadManagerDelegate::OnDownloadPathGenerated, |
82 weak_ptr_factory_.GetWeakPtr(), | 82 weak_ptr_factory_.GetWeakPtr(), |
83 download->GetId(), | 83 download->GetId(), |
84 callback); | 84 callback); |
85 | 85 |
86 BrowserThread::PostTask( | 86 BrowserThread::PostTask( |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 | 134 |
135 void ShellDownloadManagerDelegate::OnDownloadPathGenerated( | 135 void ShellDownloadManagerDelegate::OnDownloadPathGenerated( |
136 uint32_t download_id, | 136 uint32_t download_id, |
137 const DownloadTargetCallback& callback, | 137 const DownloadTargetCallback& callback, |
138 const base::FilePath& suggested_path) { | 138 const base::FilePath& suggested_path) { |
139 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 139 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
140 if (suppress_prompting_) { | 140 if (suppress_prompting_) { |
141 // Testing exit. | 141 // Testing exit. |
142 callback.Run(suggested_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 142 callback.Run(suggested_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
143 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 143 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
144 suggested_path.AddExtension(FILE_PATH_LITERAL(".crdownload"))); | 144 suggested_path.AddExtension(FILE_PATH_LITERAL(".crdownload")), |
| 145 DOWNLOAD_INTERRUPT_REASON_NONE); |
145 return; | 146 return; |
146 } | 147 } |
147 | 148 |
148 ChooseDownloadPath(download_id, callback, suggested_path); | 149 ChooseDownloadPath(download_id, callback, suggested_path); |
149 } | 150 } |
150 | 151 |
151 void ShellDownloadManagerDelegate::ChooseDownloadPath( | 152 void ShellDownloadManagerDelegate::ChooseDownloadPath( |
152 uint32_t download_id, | 153 uint32_t download_id, |
153 const DownloadTargetCallback& callback, | 154 const DownloadTargetCallback& callback, |
154 const base::FilePath& suggested_path) { | 155 const base::FilePath& suggested_path) { |
(...skipping 23 matching lines...) Expand all Loading... |
178 save_as.Flags = OFN_OVERWRITEPROMPT | OFN_EXPLORER | OFN_ENABLESIZING | | 179 save_as.Flags = OFN_OVERWRITEPROMPT | OFN_EXPLORER | OFN_ENABLESIZING | |
179 OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST; | 180 OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST; |
180 | 181 |
181 if (GetSaveFileName(&save_as)) | 182 if (GetSaveFileName(&save_as)) |
182 result = base::FilePath(std::wstring(save_as.lpstrFile)); | 183 result = base::FilePath(std::wstring(save_as.lpstrFile)); |
183 #else | 184 #else |
184 NOTIMPLEMENTED(); | 185 NOTIMPLEMENTED(); |
185 #endif | 186 #endif |
186 | 187 |
187 callback.Run(result, DownloadItem::TARGET_DISPOSITION_PROMPT, | 188 callback.Run(result, DownloadItem::TARGET_DISPOSITION_PROMPT, |
188 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, result); | 189 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, result, |
| 190 DOWNLOAD_INTERRUPT_REASON_NONE); |
189 } | 191 } |
190 | 192 |
191 void ShellDownloadManagerDelegate::SetDownloadBehaviorForTesting( | 193 void ShellDownloadManagerDelegate::SetDownloadBehaviorForTesting( |
192 const base::FilePath& default_download_path) { | 194 const base::FilePath& default_download_path) { |
193 default_download_path_ = default_download_path; | 195 default_download_path_ = default_download_path; |
194 suppress_prompting_ = true; | 196 suppress_prompting_ = true; |
195 } | 197 } |
196 | 198 |
197 } // namespace content | 199 } // namespace content |
OLD | NEW |