Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(384)

Side by Side Diff: chrome/browser/download/download_item.h

Issue 6905049: Detect removed files and reflect the state in chrome://downloads and the download shelf (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Correct typo Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // Each download is represented by a DownloadItem, and all DownloadItems 5 // Each download is represented by a DownloadItem, and all DownloadItems
6 // are owned by the DownloadManager which maintains a global list of all 6 // are owned by the DownloadManager which maintains a global list of all
7 // downloads. DownloadItems are created when a user initiates a download, 7 // downloads. DownloadItems are created when a user initiates a download,
8 // and exist for the duration of the browser life time. 8 // and exist for the duration of the browser life time.
9 // 9 //
10 // Download observers: 10 // Download observers:
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 // exit (DownloadManager destructor) from user interface initiated cancels 149 // exit (DownloadManager destructor) from user interface initiated cancels
150 // because at exit, the history system may not exist, and any updates to it 150 // because at exit, the history system may not exist, and any updates to it
151 // require AddRef'ing the DownloadManager in the destructor which results in 151 // require AddRef'ing the DownloadManager in the destructor which results in
152 // a DCHECK failure. Set 'update_history' to false when canceling from at 152 // a DCHECK failure. Set 'update_history' to false when canceling from at
153 // exit to prevent this crash. This may result in a difference between the 153 // exit to prevent this crash. This may result in a difference between the
154 // downloaded file's size on disk, and what the history system's last record 154 // downloaded file's size on disk, and what the history system's last record
155 // of it is. At worst, we'll end up re-downloading a small portion of the file 155 // of it is. At worst, we'll end up re-downloading a small portion of the file
156 // when resuming a download (assuming the server supports byte ranges). 156 // when resuming a download (assuming the server supports byte ranges).
157 void Cancel(bool update_history); 157 void Cancel(bool update_history);
158 158
159 // Called when all data has been saved. Only has display effects.
160 void OnAllDataSaved(int64 size);
161
162 // Called by external code (SavePackage) using the DownloadItem interface 159 // Called by external code (SavePackage) using the DownloadItem interface
163 // to display progress when the DownloadItem should be considered complete. 160 // to display progress when the DownloadItem should be considered complete.
164 void MarkAsComplete(); 161 void MarkAsComplete();
165 162
163 // Called when all data has been saved. Only has display effects.
164 void OnAllDataSaved(int64 size);
165
166 // Called when the downloaded file is removed.
167 void OnDownloadedFileRemoved();
168
166 // Download operation had an error. 169 // Download operation had an error.
167 // |size| is the amount of data received so far, and |os_error| is the error 170 // |size| is the amount of data received so far, and |os_error| is the error
168 // code that the operation received. 171 // code that the operation received.
169 void Interrupted(int64 size, int os_error); 172 void Interrupted(int64 size, int os_error);
170 173
171 // Deletes the file from disk and removes the download from the views and 174 // Deletes the file from disk and removes the download from the views and
172 // history. |user| should be true if this is the result of the user clicking 175 // history. |user| should be true if this is the result of the user clicking
173 // the discard button, and false if it is being deleted for other reasons like 176 // the discard button, and false if it is being deleted for other reasons like
174 // browser shutdown. 177 // browser shutdown.
175 void Delete(DeleteReason reason); 178 void Delete(DeleteReason reason);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 int64 received_bytes() const { return received_bytes_; } 255 int64 received_bytes() const { return received_bytes_; }
253 int32 id() const { return id_; } 256 int32 id() const { return id_; }
254 base::Time start_time() const { return start_time_; } 257 base::Time start_time() const { return start_time_; }
255 void set_db_handle(int64 handle) { db_handle_ = handle; } 258 void set_db_handle(int64 handle) { db_handle_ = handle; }
256 int64 db_handle() const { return db_handle_; } 259 int64 db_handle() const { return db_handle_; }
257 bool is_paused() const { return is_paused_; } 260 bool is_paused() const { return is_paused_; }
258 bool open_when_complete() const { return open_when_complete_; } 261 bool open_when_complete() const { return open_when_complete_; }
259 void set_open_when_complete(bool open) { open_when_complete_ = open; } 262 void set_open_when_complete(bool open) { open_when_complete_ = open; }
260 int render_process_id() const { return render_process_id_; } 263 int render_process_id() const { return render_process_id_; }
261 int request_id() const { return request_id_; } 264 int request_id() const { return request_id_; }
265 bool file_exists() const { return file_exists_; }
262 SafetyState safety_state() const { return safety_state_; } 266 SafetyState safety_state() const { return safety_state_; }
263 void set_safety_state(SafetyState safety_state) { 267 void set_safety_state(SafetyState safety_state) {
264 safety_state_ = safety_state; 268 safety_state_ = safety_state;
265 } 269 }
266 DangerType danger_type() { return danger_type_;} 270 DangerType danger_type() { return danger_type_;}
267 bool auto_opened() { return auto_opened_; } 271 bool auto_opened() { return auto_opened_; }
268 FilePath target_name() const { return target_name_; } 272 FilePath target_name() const { return target_name_; }
269 bool save_as() const { return save_as_; } 273 bool save_as() const { return save_as_; }
270 bool is_otr() const { return is_otr_; } 274 bool is_otr() const { return is_otr_; }
271 bool is_extension_install() const { return is_extension_install_; } 275 bool is_extension_install() const { return is_extension_install_; }
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 362
359 // Our owning object 363 // Our owning object
360 DownloadManager* download_manager_; 364 DownloadManager* download_manager_;
361 365
362 // In progress downloads may be paused by the user, we note it here 366 // In progress downloads may be paused by the user, we note it here
363 bool is_paused_; 367 bool is_paused_;
364 368
365 // A flag for indicating if the download should be opened at completion. 369 // A flag for indicating if the download should be opened at completion.
366 bool open_when_complete_; 370 bool open_when_complete_;
367 371
372 // A flag for indicating if the downloaded file exists.
373 bool file_exists_;
Randy Smith (Not in Mondays) 2011/05/12 20:21:17 This flag is currently only valid after the state
Paweł Hajdan Jr. 2011/05/13 08:41:10 I prefer file_exists for simplicity. file_external
haraken1 2011/05/13 14:08:17 I also prefer |file_externally_removed_| in this c
Randy Smith (Not in Mondays) 2011/05/13 20:45:32 Sure, but having a race condition to watch for bet
374
368 // Whether the download is considered potentially safe or dangerous 375 // Whether the download is considered potentially safe or dangerous
369 // (executable files are typically considered dangerous). 376 // (executable files are typically considered dangerous).
370 SafetyState safety_state_; 377 SafetyState safety_state_;
371 378
372 // Why |safety_state_| is not SAFE. 379 // Why |safety_state_| is not SAFE.
373 DangerType danger_type_; 380 DangerType danger_type_;
374 381
375 // Whether the download was auto-opened. We set this rather than using 382 // Whether the download was auto-opened. We set this rather than using
376 // an observer as it's frequently possible for the download to be auto opened 383 // an observer as it's frequently possible for the download to be auto opened
377 // before the observer is added. 384 // before the observer is added.
(...skipping 26 matching lines...) Expand all
404 // Did the user open the item either directly or indirectly (such as by 411 // Did the user open the item either directly or indirectly (such as by
405 // setting always open files of this type)? The shelf also sets this field 412 // setting always open files of this type)? The shelf also sets this field
406 // when the user closes the shelf before the item has been opened but should 413 // when the user closes the shelf before the item has been opened but should
407 // be treated as though the user opened it. 414 // be treated as though the user opened it.
408 bool opened_; 415 bool opened_;
409 416
410 DISALLOW_COPY_AND_ASSIGN(DownloadItem); 417 DISALLOW_COPY_AND_ASSIGN(DownloadItem);
411 }; 418 };
412 419
413 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_H_ 420 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698