| Index: content/browser/download/download_item.cc
|
| diff --git a/content/browser/download/download_item.cc b/content/browser/download/download_item.cc
|
| index 6a6301fc261becdd55c280169d8fd9205c969922..4ffe6c7ce95ff4dc654c10a44dc77b6960b0a835 100644
|
| --- a/content/browser/download/download_item.cc
|
| +++ b/content/browser/download/download_item.cc
|
| @@ -130,6 +130,7 @@ DownloadItem::DownloadItem(DownloadManager* download_manager,
|
| start_tick_(base::TimeTicks()),
|
| state_(static_cast<DownloadState>(info.state)),
|
| start_time_(info.start_time),
|
| + end_time_(info.end_time),
|
| db_handle_(info.db_handle),
|
| download_manager_(download_manager),
|
| is_paused_(false),
|
| @@ -140,7 +141,7 @@ DownloadItem::DownloadItem(DownloadManager* download_manager,
|
| is_otr_(false),
|
| is_temporary_(false),
|
| all_data_saved_(false),
|
| - opened_(false),
|
| + opened_(info.opened),
|
| open_enabled_(true),
|
| delegate_delayed_complete_(false) {
|
| if (IsInProgress())
|
| @@ -285,8 +286,10 @@ void DownloadItem::OpenDownload() {
|
| // program that opens the file. So instead we spawn a check to update
|
| // the UI if the file has been deleted in parallel with the open.
|
| download_manager_->CheckForFileRemoval(this);
|
| + download_stats::RecordOpen(end_time(), !opened());
|
| opened_ = true;
|
| FOR_EACH_OBSERVER(Observer, observers_, OnDownloadOpened(this));
|
| + download_manager_->MarkDownloadOpened(this);
|
|
|
| // For testing: If download opening is disabled on this item,
|
| // make the rest of the routine a no-op.
|
| @@ -390,6 +393,7 @@ void DownloadItem::MarkAsComplete() {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| DCHECK(all_data_saved_);
|
| + end_time_ = base::Time::Now();
|
| TransitionTo(COMPLETE);
|
| }
|
|
|
| @@ -420,6 +424,7 @@ void DownloadItem::Completed() {
|
| VLOG(20) << __FUNCTION__ << "() " << DebugString(false);
|
|
|
| DCHECK(all_data_saved_);
|
| + end_time_ = base::Time::Now();
|
| TransitionTo(COMPLETE);
|
| download_manager_->DownloadCompleted(id());
|
| download_stats::RecordDownloadCompleted(start_tick_, received_bytes_);
|
| @@ -688,10 +693,12 @@ DownloadPersistentStoreInfo DownloadItem::GetPersistentStoreInfo() const {
|
| GetURL(),
|
| referrer_url(),
|
| start_time(),
|
| + end_time(),
|
| received_bytes(),
|
| total_bytes(),
|
| state(),
|
| - db_handle());
|
| + db_handle(),
|
| + opened());
|
| }
|
|
|
| FilePath DownloadItem::GetTargetFilePath() const {
|
|
|