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

Side by Side Diff: content/browser/download/download_item_impl.cc

Issue 2705283003: Added last_access_time to DownloadItem and History DB (Closed)
Patch Set: rebase origin/master Created 3 years, 9 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // File method ordering: Methods in this file are in the same order as 5 // File method ordering: Methods in this file are in the same order as
6 // in download_item_impl.h, with the following exception: The public 6 // in download_item_impl.h, with the following exception: The public
7 // interface Start is placed in chronological order with the other 7 // interface Start is placed in chronological order with the other
8 // (private) routines that together define a DownloadItem's state 8 // (private) routines that together define a DownloadItem's state
9 // transitions as the download progresses. See "Download progression 9 // transitions as the download progresses. See "Download progression
10 // cascade" later in this file. 10 // cascade" later in this file.
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 uint32_t download_id, 130 uint32_t download_id,
131 const base::FilePath& current_path, 131 const base::FilePath& current_path,
132 const base::FilePath& target_path, 132 const base::FilePath& target_path,
133 const std::vector<GURL>& url_chain, 133 const std::vector<GURL>& url_chain,
134 const GURL& referrer_url, 134 const GURL& referrer_url,
135 const GURL& site_url, 135 const GURL& site_url,
136 const GURL& tab_url, 136 const GURL& tab_url,
137 const GURL& tab_refererr_url, 137 const GURL& tab_refererr_url,
138 const std::string& mime_type, 138 const std::string& mime_type,
139 const std::string& original_mime_type, 139 const std::string& original_mime_type,
140 const base::Time& start_time, 140 base::Time start_time,
141 const base::Time& end_time, 141 base::Time end_time,
142 const std::string& etag, 142 const std::string& etag,
143 const std::string& last_modified, 143 const std::string& last_modified,
144 int64_t received_bytes, 144 int64_t received_bytes,
145 int64_t total_bytes, 145 int64_t total_bytes,
146 const std::string& hash, 146 const std::string& hash,
147 DownloadItem::DownloadState state, 147 DownloadItem::DownloadState state,
148 DownloadDangerType danger_type, 148 DownloadDangerType danger_type,
149 DownloadInterruptReason interrupt_reason, 149 DownloadInterruptReason interrupt_reason,
150 bool opened, 150 bool opened,
151 base::Time last_access_time,
151 const std::vector<DownloadItem::ReceivedSlice>& received_slices, 152 const std::vector<DownloadItem::ReceivedSlice>& received_slices,
152 const net::NetLogWithSource& net_log) 153 const net::NetLogWithSource& net_log)
153 : guid_(base::ToUpperASCII(guid)), 154 : guid_(base::ToUpperASCII(guid)),
154 download_id_(download_id), 155 download_id_(download_id),
155 target_path_(target_path), 156 target_path_(target_path),
156 url_chain_(url_chain), 157 url_chain_(url_chain),
157 referrer_url_(referrer_url), 158 referrer_url_(referrer_url),
158 site_url_(site_url), 159 site_url_(site_url),
159 tab_url_(tab_url), 160 tab_url_(tab_url),
160 tab_referrer_url_(tab_refererr_url), 161 tab_referrer_url_(tab_refererr_url),
161 mime_type_(mime_type), 162 mime_type_(mime_type),
162 original_mime_type_(original_mime_type), 163 original_mime_type_(original_mime_type),
163 total_bytes_(total_bytes), 164 total_bytes_(total_bytes),
164 last_reason_(interrupt_reason), 165 last_reason_(interrupt_reason),
165 start_tick_(base::TimeTicks()), 166 start_tick_(base::TimeTicks()),
166 state_(ExternalToInternalState(state)), 167 state_(ExternalToInternalState(state)),
167 danger_type_(danger_type), 168 danger_type_(danger_type),
168 start_time_(start_time), 169 start_time_(start_time),
169 end_time_(end_time), 170 end_time_(end_time),
170 delegate_(delegate), 171 delegate_(delegate),
171 opened_(opened), 172 opened_(opened),
173 last_access_time_(last_access_time),
172 current_path_(current_path), 174 current_path_(current_path),
173 received_bytes_(received_bytes), 175 received_bytes_(received_bytes),
174 all_data_saved_(state == COMPLETE), 176 all_data_saved_(state == COMPLETE),
175 hash_(hash), 177 hash_(hash),
176 last_modified_time_(last_modified), 178 last_modified_time_(last_modified),
177 etag_(etag), 179 etag_(etag),
178 received_slices_(received_slices), 180 received_slices_(received_slices),
179 net_log_(net_log), 181 net_log_(net_log),
180 weak_ptr_factory_(this) { 182 weak_ptr_factory_(this) {
181 delegate_->Attach(); 183 delegate_->Attach();
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 if (state_ != COMPLETE_INTERNAL || file_externally_removed_) 456 if (state_ != COMPLETE_INTERNAL || file_externally_removed_)
455 return; 457 return;
456 458
457 // Ideally, we want to detect errors in opening and report them, but we 459 // Ideally, we want to detect errors in opening and report them, but we
458 // don't generally have the proper interface for that to the external 460 // don't generally have the proper interface for that to the external
459 // program that opens the file. So instead we spawn a check to update 461 // program that opens the file. So instead we spawn a check to update
460 // the UI if the file has been deleted in parallel with the open. 462 // the UI if the file has been deleted in parallel with the open.
461 delegate_->CheckForFileRemoval(this); 463 delegate_->CheckForFileRemoval(this);
462 RecordOpen(GetEndTime(), !GetOpened()); 464 RecordOpen(GetEndTime(), !GetOpened());
463 opened_ = true; 465 opened_ = true;
466 last_access_time_ = base::Time::Now();
464 for (auto& observer : observers_) 467 for (auto& observer : observers_)
465 observer.OnDownloadOpened(this); 468 observer.OnDownloadOpened(this);
466 delegate_->OpenDownload(this); 469 delegate_->OpenDownload(this);
467 } 470 }
468 471
469 void DownloadItemImpl::ShowDownloadInShell() { 472 void DownloadItemImpl::ShowDownloadInShell() {
470 DCHECK_CURRENTLY_ON(BrowserThread::UI); 473 DCHECK_CURRENTLY_ON(BrowserThread::UI);
471 474
472 delegate_->ShowDownloadInShell(this); 475 delegate_->ShowDownloadInShell(this);
473 } 476 }
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 } 770 }
768 771
769 bool DownloadItemImpl::GetAutoOpened() { 772 bool DownloadItemImpl::GetAutoOpened() {
770 return auto_opened_; 773 return auto_opened_;
771 } 774 }
772 775
773 bool DownloadItemImpl::GetOpened() const { 776 bool DownloadItemImpl::GetOpened() const {
774 return opened_; 777 return opened_;
775 } 778 }
776 779
780 base::Time DownloadItemImpl::GetLastAccessTime() const {
781 return last_access_time_;
782 }
783
777 BrowserContext* DownloadItemImpl::GetBrowserContext() const { 784 BrowserContext* DownloadItemImpl::GetBrowserContext() const {
778 return delegate_->GetBrowserContext(); 785 return delegate_->GetBrowserContext();
779 } 786 }
780 787
781 WebContents* DownloadItemImpl::GetWebContents() const { 788 WebContents* DownloadItemImpl::GetWebContents() const {
782 // TODO(rdsmith): Remove null check after removing GetWebContents() from 789 // TODO(rdsmith): Remove null check after removing GetWebContents() from
783 // paths that might be used by DownloadItems created from history import. 790 // paths that might be used by DownloadItems created from history import.
784 // Currently such items have null request_handle_s, where other items 791 // Currently such items have null request_handle_s, where other items
785 // (regular and SavePackage downloads) have actual objects off the pointer. 792 // (regular and SavePackage downloads) have actual objects off the pointer.
786 if (job_) 793 if (job_)
(...skipping 19 matching lines...) Expand all
806 } 813 }
807 814
808 void DownloadItemImpl::SetOpenWhenComplete(bool open) { 815 void DownloadItemImpl::SetOpenWhenComplete(bool open) {
809 open_when_complete_ = open; 816 open_when_complete_ = open;
810 } 817 }
811 818
812 void DownloadItemImpl::SetOpened(bool opened) { 819 void DownloadItemImpl::SetOpened(bool opened) {
813 opened_ = opened; 820 opened_ = opened;
814 } 821 }
815 822
823 void DownloadItemImpl::SetLastAccessTime(base::Time last_access_time) {
824 last_access_time_ = last_access_time;
825 UpdateObservers();
826 }
827
816 void DownloadItemImpl::SetDisplayName(const base::FilePath& name) { 828 void DownloadItemImpl::SetDisplayName(const base::FilePath& name) {
817 display_name_ = name; 829 display_name_ = name;
818 } 830 }
819 831
820 std::string DownloadItemImpl::DebugString(bool verbose) const { 832 std::string DownloadItemImpl::DebugString(bool verbose) const {
821 std::string description = 833 std::string description =
822 base::StringPrintf("{ id = %d" 834 base::StringPrintf("{ id = %d"
823 " state = %s", 835 " state = %s",
824 download_id_, 836 download_id_,
825 DebugDownloadStateString(state_)); 837 DebugDownloadStateString(state_));
(...skipping 1326 matching lines...) Expand 10 before | Expand all | Expand 10 after
2152 case RESUME_MODE_USER_CONTINUE: 2164 case RESUME_MODE_USER_CONTINUE:
2153 return "USER_CONTINUE"; 2165 return "USER_CONTINUE";
2154 case RESUME_MODE_USER_RESTART: 2166 case RESUME_MODE_USER_RESTART:
2155 return "USER_RESTART"; 2167 return "USER_RESTART";
2156 } 2168 }
2157 NOTREACHED() << "Unknown resume mode " << mode; 2169 NOTREACHED() << "Unknown resume mode " << mode;
2158 return "unknown"; 2170 return "unknown";
2159 } 2171 }
2160 2172
2161 } // namespace content 2173 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/download/download_item_impl.h ('k') | content/browser/download/download_manager_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698