Index: chrome/browser/download/download_item.h |
diff --git a/chrome/browser/download/download_item.h b/chrome/browser/download/download_item.h |
index f8c71d0c3e63b130ce36c83b7d0808ac31c8e3e1..1a9a5efd0b66366f582fd97258b2387e279d1896 100644 |
--- a/chrome/browser/download/download_item.h |
+++ b/chrome/browser/download/download_item.h |
@@ -65,33 +65,22 @@ class DownloadItem { |
}; |
// Constructing from persistent store: |
- explicit DownloadItem(const DownloadCreateInfo& info); |
+ DownloadItem(DownloadManager* download_manager, |
+ const DownloadCreateInfo& info); |
- // Constructing from user action: |
- DownloadItem(int32 download_id, |
+ // Constructing for a regular download: |
+ DownloadItem(DownloadManager* download_manager, |
+ const DownloadCreateInfo& info, |
+ bool is_otr); |
+ |
+ // Constructing for the "Save Page As..." feature: |
+ DownloadItem(DownloadManager* download_manager, |
const FilePath& path, |
- int path_uniquifier, |
const GURL& url, |
- const GURL& referrer_url, |
- const std::string& mime_type, |
- const std::string& original_mime_type, |
- const FilePath& original_name, |
- const base::Time start_time, |
- int64 download_size, |
- int render_process_id, |
- int request_id, |
- bool is_dangerous, |
- bool save_as, |
- bool is_otr, |
- bool is_extension_install, |
- bool is_temporary); |
+ bool is_otr); |
~DownloadItem(); |
- void Init(bool start_timer); |
- |
- // Public API |
- |
void AddObserver(Observer* observer); |
void RemoveObserver(Observer* observer); |
@@ -101,8 +90,26 @@ class DownloadItem { |
// Notifies our observers the downloaded file has been completed. |
void NotifyObserversDownloadFileCompleted(); |
- // Notifies our observers the downloaded file has been opened. |
- void NotifyObserversDownloadOpened(); |
+ // Whether it is OK to open this download. |
+ bool CanOpenDownload(); |
+ |
+ // Tests if a file type should be opened automatically. |
+ bool ShouldOpenFileBasedOnExtension(); |
+ |
+ // Registers this file extension for automatic opening upon download |
+ // completion if 'open' is true, or prevents the extension from automatic |
+ // opening if 'open' is false. |
+ void OpenFilesBasedOnExtension(bool open); |
+ |
+ // Open the file associated with this download (wait for the download to |
+ // complete if it is in progress). |
+ void OpenDownload(); |
+ |
+ // Show the download via the OS shell. |
+ void ShowDownloadInShell(); |
+ |
+ // Called when the user has validated the download of a dangerous file. |
+ void DangerousDownloadValidated(); |
// Received a new chunk of data |
void Update(int64 bytes_so_far); |
@@ -163,8 +170,6 @@ class DownloadItem { |
base::Time start_time() const { return start_time_; } |
void set_db_handle(int64 handle) { db_handle_ = handle; } |
int64 db_handle() const { return db_handle_; } |
- DownloadManager* manager() const { return manager_; } |
- void set_manager(DownloadManager* manager) { manager_ = manager; } |
bool is_paused() const { return is_paused_; } |
void set_is_paused(bool pause) { is_paused_ = pause; } |
bool open_when_complete() const { return open_when_complete_; } |
@@ -194,6 +199,8 @@ class DownloadItem { |
FilePath GetFileName() const; |
private: |
+ void Init(bool start_timer); |
+ |
// Internal helper for maintaining consistent received and total sizes. |
void UpdateSize(int64 size); |
@@ -252,7 +259,7 @@ class DownloadItem { |
base::RepeatingTimer<DownloadItem> update_timer_; |
// Our owning object |
- DownloadManager* manager_; |
+ DownloadManager* download_manager_; |
// In progress downloads may be paused by the user, we note it here |
bool is_paused_; |