OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 // The DownloadManager object manages the process of downloading, including | 5 // The DownloadManager object manages the process of downloading, including |
6 // updates to the history system and providing the information for displaying | 6 // updates to the history system and providing the information for displaying |
7 // the downloads view in the Destinations tab. There is one DownloadManager per | 7 // the downloads view in the Destinations tab. There is one DownloadManager per |
8 // active profile in Chrome. | 8 // active profile in Chrome. |
9 // | 9 // |
10 // Each download is represented by a DownloadItem, and all DownloadItems | 10 // Each download is represented by a DownloadItem, and all DownloadItems |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 | 95 |
96 // Constructing from persistent store: | 96 // Constructing from persistent store: |
97 DownloadItem(const DownloadCreateInfo& info); | 97 DownloadItem(const DownloadCreateInfo& info); |
98 | 98 |
99 // Constructing from user action: | 99 // Constructing from user action: |
100 DownloadItem(int32 download_id, | 100 DownloadItem(int32 download_id, |
101 const std::wstring& path, | 101 const std::wstring& path, |
102 int path_uniquifier, | 102 int path_uniquifier, |
103 const std::wstring& url, | 103 const std::wstring& url, |
104 const std::wstring& original_name, | 104 const std::wstring& original_name, |
105 const Time start_time, | 105 const base::Time start_time, |
106 int64 download_size, | 106 int64 download_size, |
107 int render_process_id, | 107 int render_process_id, |
108 int request_id, | 108 int request_id, |
109 bool is_dangerous); | 109 bool is_dangerous); |
110 | 110 |
111 ~DownloadItem(); | 111 ~DownloadItem(); |
112 | 112 |
113 void Init(bool start_timer); | 113 void Init(bool start_timer); |
114 | 114 |
115 // Public API | 115 // Public API |
(...skipping 26 matching lines...) Expand all Loading... |
142 void Remove(bool delete_file); | 142 void Remove(bool delete_file); |
143 | 143 |
144 // Start/stop sending periodic updates to our observers | 144 // Start/stop sending periodic updates to our observers |
145 void StartProgressTimer(); | 145 void StartProgressTimer(); |
146 void StopProgressTimer(); | 146 void StopProgressTimer(); |
147 | 147 |
148 // Simple calculation of the amount of time remaining to completion. Fills | 148 // Simple calculation of the amount of time remaining to completion. Fills |
149 // |*remaining| with the amount of time remaining if successful. Fails and | 149 // |*remaining| with the amount of time remaining if successful. Fails and |
150 // returns false if we do not have the number of bytes or the speed so can | 150 // returns false if we do not have the number of bytes or the speed so can |
151 // not estimate. | 151 // not estimate. |
152 bool TimeRemaining(TimeDelta* remaining) const; | 152 bool TimeRemaining(base::TimeDelta* remaining) const; |
153 | 153 |
154 // Simple speed estimate in bytes/s | 154 // Simple speed estimate in bytes/s |
155 int64 CurrentSpeed() const; | 155 int64 CurrentSpeed() const; |
156 | 156 |
157 // Rough percent complete, -1 means we don't know (since we didn't receive a | 157 // Rough percent complete, -1 means we don't know (since we didn't receive a |
158 // total size). | 158 // total size). |
159 int PercentComplete() const; | 159 int PercentComplete() const; |
160 | 160 |
161 // Update the download's path, the actual file is renamed on the download | 161 // Update the download's path, the actual file is renamed on the download |
162 // thread. | 162 // thread. |
163 void Rename(const std::wstring& full_path); | 163 void Rename(const std::wstring& full_path); |
164 | 164 |
165 // Allow the user to temporarily pause a download or resume a paused download. | 165 // Allow the user to temporarily pause a download or resume a paused download. |
166 void TogglePause(); | 166 void TogglePause(); |
167 | 167 |
168 // Accessors | 168 // Accessors |
169 DownloadState state() const { return state_; } | 169 DownloadState state() const { return state_; } |
170 std::wstring file_name() const { return file_name_; } | 170 std::wstring file_name() const { return file_name_; } |
171 void set_file_name(const std::wstring& name) { file_name_ = name; } | 171 void set_file_name(const std::wstring& name) { file_name_ = name; } |
172 std::wstring full_path() const { return full_path_; } | 172 std::wstring full_path() const { return full_path_; } |
173 void set_full_path(const std::wstring& path) { full_path_ = path; } | 173 void set_full_path(const std::wstring& path) { full_path_ = path; } |
174 int path_uniquifier() const { return path_uniquifier_; } | 174 int path_uniquifier() const { return path_uniquifier_; } |
175 void set_path_uniquifier(int uniquifier) { path_uniquifier_ = uniquifier; } | 175 void set_path_uniquifier(int uniquifier) { path_uniquifier_ = uniquifier; } |
176 std::wstring url() const { return url_; } | 176 std::wstring url() const { return url_; } |
177 int64 total_bytes() const { return total_bytes_; } | 177 int64 total_bytes() const { return total_bytes_; } |
178 void set_total_bytes(int64 total_bytes) { total_bytes_ = total_bytes; } | 178 void set_total_bytes(int64 total_bytes) { total_bytes_ = total_bytes; } |
179 int64 received_bytes() const { return received_bytes_; } | 179 int64 received_bytes() const { return received_bytes_; } |
180 int32 id() const { return id_; } | 180 int32 id() const { return id_; } |
181 Time start_time() const { return start_time_; } | 181 base::Time start_time() const { return start_time_; } |
182 void set_db_handle(int64 handle) { db_handle_ = handle; } | 182 void set_db_handle(int64 handle) { db_handle_ = handle; } |
183 int64 db_handle() const { return db_handle_; } | 183 int64 db_handle() const { return db_handle_; } |
184 DownloadManager* manager() const { return manager_; } | 184 DownloadManager* manager() const { return manager_; } |
185 void set_manager(DownloadManager* manager) { manager_ = manager; } | 185 void set_manager(DownloadManager* manager) { manager_ = manager; } |
186 bool is_paused() const { return is_paused_; } | 186 bool is_paused() const { return is_paused_; } |
187 void set_is_paused(bool pause) { is_paused_ = pause; } | 187 void set_is_paused(bool pause) { is_paused_ = pause; } |
188 bool open_when_complete() const { return open_when_complete_; } | 188 bool open_when_complete() const { return open_when_complete_; } |
189 void set_open_when_complete(bool open) { open_when_complete_ = open; } | 189 void set_open_when_complete(bool open) { open_when_complete_ = open; } |
190 int render_process_id() const { return render_process_id_; } | 190 int render_process_id() const { return render_process_id_; } |
191 int request_id() const { return request_id_; } | 191 int request_id() const { return request_id_; } |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 // Start time for calculating remaining time | 230 // Start time for calculating remaining time |
231 uintptr_t start_tick_; | 231 uintptr_t start_tick_; |
232 | 232 |
233 // The current state of this download | 233 // The current state of this download |
234 DownloadState state_; | 234 DownloadState state_; |
235 | 235 |
236 // The views of this item in the download shelf and download tab | 236 // The views of this item in the download shelf and download tab |
237 ObserverList<Observer> observers_; | 237 ObserverList<Observer> observers_; |
238 | 238 |
239 // Time the download was started | 239 // Time the download was started |
240 Time start_time_; | 240 base::Time start_time_; |
241 | 241 |
242 // Our persistent store handle | 242 // Our persistent store handle |
243 int64 db_handle_; | 243 int64 db_handle_; |
244 | 244 |
245 // Timer for regularly updating our observers | 245 // Timer for regularly updating our observers |
246 base::RepeatingTimer<DownloadItem> update_timer_; | 246 base::RepeatingTimer<DownloadItem> update_timer_; |
247 | 247 |
248 // Our owning object | 248 // Our owning object |
249 DownloadManager* manager_; | 249 DownloadManager* manager_; |
250 | 250 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 static void CancelDownloadRequest(int render_process_id, int request_id); | 322 static void CancelDownloadRequest(int render_process_id, int request_id); |
323 | 323 |
324 // Called from a view when a user clicks a UI button or link. | 324 // Called from a view when a user clicks a UI button or link. |
325 void DownloadCancelled(int32 download_id); | 325 void DownloadCancelled(int32 download_id); |
326 void PauseDownload(int32 download_id, bool pause); | 326 void PauseDownload(int32 download_id, bool pause); |
327 void RemoveDownload(int64 download_handle); | 327 void RemoveDownload(int64 download_handle); |
328 | 328 |
329 // Remove downloads after remove_begin (inclusive) and before remove_end | 329 // Remove downloads after remove_begin (inclusive) and before remove_end |
330 // (exclusive). You may pass in null Time values to do an unbounded delete | 330 // (exclusive). You may pass in null Time values to do an unbounded delete |
331 // in either direction. | 331 // in either direction. |
332 int RemoveDownloadsBetween(const Time remove_begin, const Time remove_end); | 332 int RemoveDownloadsBetween(const base::Time remove_begin, |
| 333 const base::Time remove_end); |
333 | 334 |
334 // Remove downloads will delete all downloads that have a timestamp that is | 335 // Remove downloads will delete all downloads that have a timestamp that is |
335 // the same or more recent than |remove_begin|. The number of downloads | 336 // the same or more recent than |remove_begin|. The number of downloads |
336 // deleted is returned back to the caller. | 337 // deleted is returned back to the caller. |
337 int RemoveDownloads(const Time remove_begin); | 338 int RemoveDownloads(const base::Time remove_begin); |
338 | 339 |
339 // Download the object at the URL. Used in cases such as "Save Link As..." | 340 // Download the object at the URL. Used in cases such as "Save Link As..." |
340 void DownloadUrl(const GURL& url, | 341 void DownloadUrl(const GURL& url, |
341 const GURL& referrer, | 342 const GURL& referrer, |
342 WebContents* web_contents); | 343 WebContents* web_contents); |
343 | 344 |
344 // Allow objects to observe the download creation process. | 345 // Allow objects to observe the download creation process. |
345 void AddObserver(Observer* observer); | 346 void AddObserver(Observer* observer); |
346 | 347 |
347 // Remove a download observer from ourself. | 348 // Remove a download observer from ourself. |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 | 412 |
412 // Called back after a target path for the file to be downloaded to has been | 413 // Called back after a target path for the file to be downloaded to has been |
413 // determined, either automatically based on the suggested file name, or by | 414 // determined, either automatically based on the suggested file name, or by |
414 // the user in a Save As dialog box. | 415 // the user in a Save As dialog box. |
415 void ContinueStartDownload(DownloadCreateInfo* info, | 416 void ContinueStartDownload(DownloadCreateInfo* info, |
416 const std::wstring& target_path); | 417 const std::wstring& target_path); |
417 | 418 |
418 // Update the history service for a particular download. | 419 // Update the history service for a particular download. |
419 void UpdateHistoryForDownload(DownloadItem* download); | 420 void UpdateHistoryForDownload(DownloadItem* download); |
420 void RemoveDownloadFromHistory(DownloadItem* download); | 421 void RemoveDownloadFromHistory(DownloadItem* download); |
421 void RemoveDownloadsFromHistoryBetween(const Time remove_begin, | 422 void RemoveDownloadsFromHistoryBetween(const base::Time remove_begin, |
422 const Time remove_before); | 423 const base::Time remove_before); |
423 | 424 |
424 // Inform the notification service of download starts and stops. | 425 // Inform the notification service of download starts and stops. |
425 void NotifyAboutDownloadStart(); | 426 void NotifyAboutDownloadStart(); |
426 void NotifyAboutDownloadStop(); | 427 void NotifyAboutDownloadStop(); |
427 | 428 |
428 // Create an extension based on the file name and mime type. | 429 // Create an extension based on the file name and mime type. |
429 void GenerateExtension(const std::wstring& file_name, | 430 void GenerateExtension(const std::wstring& file_name, |
430 const std::string& mime_type, | 431 const std::string& mime_type, |
431 std::wstring* generated_extension); | 432 std::wstring* generated_extension); |
432 | 433 |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 | 551 |
551 // The "Save As" dialog box used to ask the user where a file should be | 552 // The "Save As" dialog box used to ask the user where a file should be |
552 // saved. | 553 // saved. |
553 scoped_refptr<SelectFileDialog> select_file_dialog_; | 554 scoped_refptr<SelectFileDialog> select_file_dialog_; |
554 | 555 |
555 DISALLOW_EVIL_CONSTRUCTORS(DownloadManager); | 556 DISALLOW_EVIL_CONSTRUCTORS(DownloadManager); |
556 }; | 557 }; |
557 | 558 |
558 | 559 |
559 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_MANAGER_H__ | 560 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_MANAGER_H__ |
OLD | NEW |