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

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: Merge with the latest revision Created 9 years, 6 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
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | chrome/browser/download/download_item.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 void RemoveObserver(Observer* observer); 128 void RemoveObserver(Observer* observer);
129 129
130 // Notifies our observers periodically. 130 // Notifies our observers periodically.
131 void UpdateObservers(); 131 void UpdateObservers();
132 132
133 // NotificationObserver implementation. 133 // NotificationObserver implementation.
134 virtual void Observe(NotificationType type, 134 virtual void Observe(NotificationType type,
135 const NotificationSource& source, 135 const NotificationSource& source,
136 const NotificationDetails& details); 136 const NotificationDetails& details);
137 137
138 // Returns true if it is OK to open this download. 138 // Returns true if it is OK to open a folder which this file is inside.
139 bool CanShowInFolder();
140
141 // Returns true if it is OK to register the type of this file so that
142 // it opens automatically.
139 bool CanOpenDownload(); 143 bool CanOpenDownload();
140 144
141 // Tests if a file type should be opened automatically. 145 // Tests if a file type should be opened automatically.
142 bool ShouldOpenFileBasedOnExtension(); 146 bool ShouldOpenFileBasedOnExtension();
143 147
144 // Registers this file extension for automatic opening upon download 148 // Registers this file extension for automatic opening upon download
145 // completion if 'open' is true, or prevents the extension from automatic 149 // completion if 'open' is true, or prevents the extension from automatic
146 // opening if 'open' is false. 150 // opening if 'open' is false.
147 void OpenFilesBasedOnExtension(bool open); 151 void OpenFilesBasedOnExtension(bool open);
148 152
(...skipping 14 matching lines...) Expand all
163 // exit (DownloadManager destructor) from user interface initiated cancels 167 // exit (DownloadManager destructor) from user interface initiated cancels
164 // because at exit, the history system may not exist, and any updates to it 168 // because at exit, the history system may not exist, and any updates to it
165 // require AddRef'ing the DownloadManager in the destructor which results in 169 // require AddRef'ing the DownloadManager in the destructor which results in
166 // a DCHECK failure. Set 'update_history' to false when canceling from at 170 // a DCHECK failure. Set 'update_history' to false when canceling from at
167 // exit to prevent this crash. This may result in a difference between the 171 // exit to prevent this crash. This may result in a difference between the
168 // downloaded file's size on disk, and what the history system's last record 172 // downloaded file's size on disk, and what the history system's last record
169 // of it is. At worst, we'll end up re-downloading a small portion of the file 173 // of it is. At worst, we'll end up re-downloading a small portion of the file
170 // when resuming a download (assuming the server supports byte ranges). 174 // when resuming a download (assuming the server supports byte ranges).
171 void Cancel(bool update_history); 175 void Cancel(bool update_history);
172 176
173 // Called when all data has been saved. Only has display effects.
174 void OnAllDataSaved(int64 size);
175
176 // Called by external code (SavePackage) using the DownloadItem interface 177 // Called by external code (SavePackage) using the DownloadItem interface
177 // to display progress when the DownloadItem should be considered complete. 178 // to display progress when the DownloadItem should be considered complete.
178 void MarkAsComplete(); 179 void MarkAsComplete();
179 180
181 // Called when all data has been saved. Only has display effects.
182 void OnAllDataSaved(int64 size);
183
184 // Called when the downloaded file is removed.
185 void OnDownloadedFileRemoved();
186
180 // Download operation had an error. 187 // Download operation had an error.
181 // |size| is the amount of data received so far, and |os_error| is the error 188 // |size| is the amount of data received so far, and |os_error| is the error
182 // code that the operation received. 189 // code that the operation received.
183 void Interrupted(int64 size, int os_error); 190 void Interrupted(int64 size, int os_error);
184 191
185 // Deletes the file from disk and removes the download from the views and 192 // Deletes the file from disk and removes the download from the views and
186 // history. |user| should be true if this is the result of the user clicking 193 // history. |user| should be true if this is the result of the user clicking
187 // the discard button, and false if it is being deleted for other reasons like 194 // the discard button, and false if it is being deleted for other reasons like
188 // browser shutdown. 195 // browser shutdown.
189 void Delete(DeleteReason reason); 196 void Delete(DeleteReason reason);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 total_bytes_ = total_bytes; 278 total_bytes_ = total_bytes;
272 } 279 }
273 int64 received_bytes() const { return received_bytes_; } 280 int64 received_bytes() const { return received_bytes_; }
274 int32 id() const { return download_id_; } 281 int32 id() const { return download_id_; }
275 base::Time start_time() const { return start_time_; } 282 base::Time start_time() const { return start_time_; }
276 void set_db_handle(int64 handle) { db_handle_ = handle; } 283 void set_db_handle(int64 handle) { db_handle_ = handle; }
277 int64 db_handle() const { return db_handle_; } 284 int64 db_handle() const { return db_handle_; }
278 bool is_paused() const { return is_paused_; } 285 bool is_paused() const { return is_paused_; }
279 bool open_when_complete() const { return open_when_complete_; } 286 bool open_when_complete() const { return open_when_complete_; }
280 void set_open_when_complete(bool open) { open_when_complete_ = open; } 287 void set_open_when_complete(bool open) { open_when_complete_ = open; }
288 bool file_externally_removed() const { return file_externally_removed_; }
281 SafetyState safety_state() const { return safety_state_; } 289 SafetyState safety_state() const { return safety_state_; }
282 void set_safety_state(SafetyState safety_state) { 290 void set_safety_state(SafetyState safety_state) {
283 safety_state_ = safety_state; 291 safety_state_ = safety_state;
284 } 292 }
285 // Why |safety_state_| is not SAFE. 293 // Why |safety_state_| is not SAFE.
286 DangerType GetDangerType() const; 294 DangerType GetDangerType() const;
287 bool IsDangerous() const; 295 bool IsDangerous() const;
288 void MarkFileDangerous(); 296 void MarkFileDangerous();
289 void MarkUrlDangerous(); 297 void MarkUrlDangerous();
290 298
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 433
426 // Our owning object 434 // Our owning object
427 DownloadManager* download_manager_; 435 DownloadManager* download_manager_;
428 436
429 // In progress downloads may be paused by the user, we note it here 437 // In progress downloads may be paused by the user, we note it here
430 bool is_paused_; 438 bool is_paused_;
431 439
432 // A flag for indicating if the download should be opened at completion. 440 // A flag for indicating if the download should be opened at completion.
433 bool open_when_complete_; 441 bool open_when_complete_;
434 442
443 // A flag for indicating if the downloaded file is externally removed.
444 bool file_externally_removed_;
445
435 // Indicates if the download is considered potentially safe or dangerous 446 // Indicates if the download is considered potentially safe or dangerous
436 // (executable files are typically considered dangerous). 447 // (executable files are typically considered dangerous).
437 SafetyState safety_state_; 448 SafetyState safety_state_;
438 449
439 // True if the download was auto-opened. We set this rather than using 450 // True if the download was auto-opened. We set this rather than using
440 // an observer as it's frequently possible for the download to be auto opened 451 // an observer as it's frequently possible for the download to be auto opened
441 // before the observer is added. 452 // before the observer is added.
442 bool auto_opened_; 453 bool auto_opened_;
443 454
444 // True if the download was initiated in an incognito window. 455 // True if the download was initiated in an incognito window.
(...skipping 15 matching lines...) Expand all
460 // only. 471 // only.
461 bool open_enabled_; 472 bool open_enabled_;
462 473
463 // DownloadItem observes CRX installs it initiates. 474 // DownloadItem observes CRX installs it initiates.
464 NotificationRegistrar registrar_; 475 NotificationRegistrar registrar_;
465 476
466 DISALLOW_COPY_AND_ASSIGN(DownloadItem); 477 DISALLOW_COPY_AND_ASSIGN(DownloadItem);
467 }; 478 };
468 479
469 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_H_ 480 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_H_
OLDNEW
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | chrome/browser/download/download_item.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698