Index: chrome/browser/download/download_history.h |
diff --git a/chrome/browser/download/download_history.h b/chrome/browser/download/download_history.h |
index e983c90964ff7cd3ab05215d9787b43e041e9c3f..ea51ab4c43af2c7b9e3f1589d5e91aad3cbb8106 100644 |
--- a/chrome/browser/download/download_history.h |
+++ b/chrome/browser/download/download_history.h |
@@ -67,8 +67,11 @@ class DownloadHistory : public AllDownloadItemNotifier::Observer { |
virtual void OnDownloadHistoryDestroyed() {} |
}; |
- // Returns true if the item is persisted. |
- static bool IsPersisted(content::DownloadItem* item); |
+ // Returns true if the download is persisted. Not reliable when called from |
+ // within a DownloadManager::Observer::OnDownloadCreated handler since the |
+ // persisted state may not yet have been updated for a download that was |
+ // restored from history. |
+ static bool IsPersisted(const content::DownloadItem* item); |
// Neither |manager| nor |history| may be NULL. |
// DownloadService creates DownloadHistory some time after DownloadManager is |
@@ -82,6 +85,14 @@ class DownloadHistory : public AllDownloadItemNotifier::Observer { |
void AddObserver(Observer* observer); |
void RemoveObserver(Observer* observer); |
+ // Returns true if the download was restored from history. Safe to call from |
+ // within a DownloadManager::Observer::OnDownloadCreated handler and can be |
+ // used to distinguish between downloads that were created due to new requests |
+ // vs. downloads that were created due to being restored from history. Note |
+ // that the return value is only reliable for downloads that were restored by |
+ // this specific DownloadHistory instance. |
+ bool WasRestoredFromHistory(const content::DownloadItem* item) const; |
+ |
private: |
typedef std::set<content::DownloadItem*> ItemSet; |