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/chrome_download_manager_delegate.h" | 5 #include "chrome/browser/download/chrome_download_manager_delegate.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
201 base::Bind( | 201 base::Bind( |
202 &ChromeDownloadManagerDelegate::CheckClientDownloadDone, | 202 &ChromeDownloadManagerDelegate::CheckClientDownloadDone, |
203 this, | 203 this, |
204 item->GetId())); | 204 item->GetId())); |
205 return false; | 205 return false; |
206 } | 206 } |
207 #endif | 207 #endif |
208 return true; | 208 return true; |
209 } | 209 } |
210 | 210 |
211 bool ChromeDownloadManagerDelegate::ShouldOpenWithWebIntent( | |
212 DownloadItem* item) { | |
213 std::string mime_type = item->GetMimeType(); | |
214 LOG(INFO) << "Testing " << mime_type << " for web intents"; | |
215 | |
216 // TODO: Check for explicit user-caused download? | |
217 | |
218 if (mime_type == "application/rss+xml" || | |
jam
2012/03/16 21:36:26
why is this stuff in chrome?
Greg Billock
2012/03/18 00:32:21
This method is basically a policy delegation to th
| |
219 mime_type == "application/atom+xml" || | |
220 mime_type == "application/ms-word" || | |
221 mime_type == "application/pdf") { | |
222 return true; | |
223 } | |
224 | |
225 return false; | |
226 } | |
227 | |
211 bool ChromeDownloadManagerDelegate::ShouldOpenDownload(DownloadItem* item) { | 228 bool ChromeDownloadManagerDelegate::ShouldOpenDownload(DownloadItem* item) { |
212 if (!IsExtensionDownload(item)) { | 229 if (!IsExtensionDownload(item)) { |
213 return true; | 230 return true; |
214 } | 231 } |
215 | 232 |
216 scoped_refptr<CrxInstaller> crx_installer = | 233 scoped_refptr<CrxInstaller> crx_installer = |
217 download_crx_util::OpenChromeExtension(profile_, *item); | 234 download_crx_util::OpenChromeExtension(profile_, *item); |
218 | 235 |
219 // CRX_INSTALLER_DONE will fire when the install completes. Observe() | 236 // CRX_INSTALLER_DONE will fire when the install completes. Observe() |
220 // will call DelayedDownloadOpened() on this item. If this DownloadItem is | 237 // will call DelayedDownloadOpened() on this item. If this DownloadItem is |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
605 int32 download_id, int64 db_handle) { | 622 int32 download_id, int64 db_handle) { |
606 // It's not immediately obvious, but HistoryBackend::CreateDownload() can | 623 // It's not immediately obvious, but HistoryBackend::CreateDownload() can |
607 // call this function with an invalid |db_handle|. For instance, this can | 624 // call this function with an invalid |db_handle|. For instance, this can |
608 // happen when the history database is offline. We cannot have multiple | 625 // happen when the history database is offline. We cannot have multiple |
609 // DownloadItems with the same invalid db_handle, so we need to assign a | 626 // DownloadItems with the same invalid db_handle, so we need to assign a |
610 // unique |db_handle| here. | 627 // unique |db_handle| here. |
611 if (db_handle == DownloadItem::kUninitializedHandle) | 628 if (db_handle == DownloadItem::kUninitializedHandle) |
612 db_handle = download_history_->GetNextFakeDbHandle(); | 629 db_handle = download_history_->GetNextFakeDbHandle(); |
613 download_manager_->OnItemAddedToPersistentStore(download_id, db_handle); | 630 download_manager_->OnItemAddedToPersistentStore(download_id, db_handle); |
614 } | 631 } |
OLD | NEW |