Chromium Code Reviews| Index: content/browser/download/download_item_impl.cc |
| diff --git a/content/browser/download/download_item_impl.cc b/content/browser/download/download_item_impl.cc |
| index 72159e425e25f81b1872f58c51a5d71f36eea475..ccc1193e52ca0b382a07f9e9b3ebad962c5c5e9c 100644 |
| --- a/content/browser/download/download_item_impl.cc |
| +++ b/content/browser/download/download_item_impl.cc |
| @@ -45,7 +45,6 @@ |
| #include "content/browser/web_contents/web_contents_impl.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/content_browser_client.h" |
| -#include "content/public/browser/download_persistent_store_info.h" |
| #include "net/base/net_util.h" |
| using content::BrowserThread; |
| @@ -53,7 +52,6 @@ using content::DownloadFile; |
| using content::DownloadId; |
| using content::DownloadItem; |
| using content::DownloadManager; |
| -using content::DownloadPersistentStoreInfo; |
| using content::WebContents; |
| namespace { |
| @@ -108,55 +106,49 @@ class NullDownloadRequestHandle : public DownloadRequestHandleInterface { |
| namespace content { |
| -// Our download table ID starts at 1, so we use 0 to represent a download that |
| -// has started, but has not yet had its data persisted in the table. We use fake |
| -// database handles in incognito mode starting at -1 and progressively getting |
| -// more negative. |
| -// static |
| -const int DownloadItem::kUninitializedHandle = 0; |
| - |
| const char DownloadItem::kEmptyFileHash[] = ""; |
| } |
| -// Our download table ID starts at 1, so we use 0 to represent a download that |
| -// has started, but has not yet had its data persisted in the table. We use fake |
| -// database handles in incognito mode starting at -1 and progressively getting |
| -// more negative. |
| - |
| // Constructor for reading from the history service. |
| DownloadItemImpl::DownloadItemImpl(DownloadItemImplDelegate* delegate, |
| DownloadId download_id, |
| - const DownloadPersistentStoreInfo& info, |
| + const FilePath& path, |
| + const GURL& url, |
| + const GURL& referrer_url, |
| + const base::Time& start_time, |
| + const base::Time& end_time, |
| + int64 received_bytes, |
| + int64 total_bytes, |
| + DownloadItem::DownloadState state, |
| + bool opened, |
| const net::BoundNetLog& bound_net_log) |
| : download_id_(download_id), |
| - current_path_(info.path), |
| - target_path_(info.path), |
| + current_path_(path), |
| + target_path_(path), |
| target_disposition_(TARGET_DISPOSITION_OVERWRITE), |
| - url_chain_(1, info.url), |
| - referrer_url_(info.referrer_url), |
| + url_chain_(1, url), |
| + referrer_url_(referrer_url), |
| transition_type_(content::PAGE_TRANSITION_LINK), |
| has_user_gesture_(false), |
| - total_bytes_(info.total_bytes), |
| - received_bytes_(info.received_bytes), |
| + total_bytes_(total_bytes), |
| + received_bytes_(received_bytes), |
| bytes_per_sec_(0), |
| last_reason_(content::DOWNLOAD_INTERRUPT_REASON_NONE), |
| start_tick_(base::TimeTicks()), |
| - state_(ExternalToInternalState(info.state)), |
| + state_(ExternalToInternalState(state)), |
| danger_type_(content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS), |
| - start_time_(info.start_time), |
| - end_time_(info.end_time), |
| - db_handle_(info.db_handle), |
| + start_time_(start_time), |
| + end_time_(end_time), |
| delegate_(delegate), |
| is_paused_(false), |
| open_when_complete_(false), |
| file_externally_removed_(false), |
| safety_state_(SAFE), |
| auto_opened_(false), |
| - is_persisted_(true), |
| is_temporary_(false), |
| all_data_saved_(false), |
| - opened_(info.opened), |
| + opened_(opened), |
| open_enabled_(true), |
| delegate_delayed_complete_(false), |
| bound_net_log_(bound_net_log), |
| @@ -200,14 +192,12 @@ DownloadItemImpl::DownloadItemImpl( |
| state_(IN_PROGRESS_INTERNAL), |
| danger_type_(content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS), |
| start_time_(info.start_time), |
| - db_handle_(DownloadItem::kUninitializedHandle), |
| delegate_(delegate), |
| is_paused_(false), |
| open_when_complete_(false), |
| file_externally_removed_(false), |
| safety_state_(SAFE), |
| auto_opened_(false), |
| - is_persisted_(false), |
| is_temporary_(!info.save_info.file_path.empty()), |
| all_data_saved_(false), |
| opened_(false), |
| @@ -255,14 +245,12 @@ DownloadItemImpl::DownloadItemImpl(DownloadItemImplDelegate* delegate, |
| state_(IN_PROGRESS_INTERNAL), |
| danger_type_(content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS), |
| start_time_(base::Time::Now()), |
| - db_handle_(DownloadItem::kUninitializedHandle), |
| delegate_(delegate), |
| is_paused_(false), |
| open_when_complete_(false), |
| file_externally_removed_(false), |
| safety_state_(SAFE), |
| auto_opened_(false), |
| - is_persisted_(false), |
| is_temporary_(false), |
| all_data_saved_(false), |
| opened_(false), |
| @@ -441,10 +429,6 @@ DownloadId DownloadItemImpl::GetGlobalId() const { |
| return download_id_; |
| } |
| -int64 DownloadItemImpl::GetDbHandle() const { |
| - return db_handle_; |
| -} |
| - |
| DownloadItem::DownloadState DownloadItemImpl::GetState() const { |
| return InternalToExternalState(state_); |
| } |
| @@ -461,10 +445,6 @@ bool DownloadItemImpl::IsTemporary() const { |
| return is_temporary_; |
| } |
| -bool DownloadItemImpl::IsPersisted() const { |
| - return is_persisted_; |
| -} |
| - |
| // TODO(ahendrickson) -- Move |INTERRUPTED| from |IsCancelled()| to |
| // |IsPartialDownload()|, when resuming interrupted downloads is implemented. |
| bool DownloadItemImpl::IsPartialDownload() const { |
| @@ -681,20 +661,6 @@ bool DownloadItemImpl::GetOpened() const { |
| return opened_; |
| } |
| -DownloadPersistentStoreInfo DownloadItemImpl::GetPersistentStoreInfo() const { |
| - // TODO(asanka): Persist GetTargetFilePath() as well. |
| - return DownloadPersistentStoreInfo(GetFullPath(), |
| - GetURL(), |
| - GetReferrerUrl(), |
| - GetStartTime(), |
| - GetEndTime(), |
| - GetReceivedBytes(), |
| - GetTotalBytes(), |
| - GetState(), |
| - GetDbHandle(), |
| - GetOpened()); |
| -} |
| - |
| content::BrowserContext* DownloadItemImpl::GetBrowserContext() const { |
| return delegate_->GetBrowserContext(); |
| } |
| @@ -756,7 +722,6 @@ std::string DownloadItemImpl::DebugString(bool verbose) const { |
| if (verbose) { |
| description += base::StringPrintf( |
| - " db_handle = %" PRId64 |
| " total = %" PRId64 |
| " received = %" PRId64 |
| " reason = %s" |
| @@ -767,7 +732,6 @@ std::string DownloadItemImpl::DebugString(bool verbose) const { |
| " url_chain = \n\t\"%s\"\n\t" |
| " full_path = \"%" PRFilePath "\"" |
| " target_path = \"%" PRFilePath "\"", |
| - GetDbHandle(), |
| GetTotalBytes(), |
| GetReceivedBytes(), |
| InterruptReasonDebugString(last_reason_).c_str(), |
| @@ -892,19 +856,6 @@ void DownloadItemImpl::MarkAsComplete() { |
| TransitionTo(COMPLETE_INTERNAL); |
| } |
| -void DownloadItemImpl::SetIsPersisted() { |
| - is_persisted_ = true; |
| - UpdateObservers(); |
| -} |
| - |
| -void DownloadItemImpl::SetDbHandle(int64 handle) { |
| - db_handle_ = handle; |
| - |
| - bound_net_log_.AddEvent( |
| - net::NetLog::TYPE_DOWNLOAD_ITEM_IN_HISTORY, |
| - net::NetLog::Int64Callback("db_handle", db_handle_)); |
| -} |
| - |
| // **** Download progression cascade |
| void DownloadItemImpl::Init(bool active, |
| @@ -931,18 +882,15 @@ void DownloadItemImpl::Init(bool active, |
| file_name = GetURL().ExtractFileName(); |
| } |
| - bound_net_log_.BeginEvent( |
| - net::NetLog::TYPE_DOWNLOAD_ITEM_ACTIVE, |
| - base::Bind(&download_net_logs::ItemActivatedCallback, |
| - this, download_type, &file_name)); |
| - |
| - // If this is not an active download, end the ACTIVE event now. |
| - if (!active) { |
| + base::Callback<base::Value*(net::NetLog::LogLevel)> active_data = base::Bind( |
| + &download_net_logs::ItemActivatedCallback, this, |
| + download_type, &file_name); |
| + if (active) { |
| + bound_net_log_.BeginEvent( |
| + net::NetLog::TYPE_DOWNLOAD_ITEM_ACTIVE, active_data); |
| + } else { |
| bound_net_log_.AddEvent( |
|
asanka
2012/09/28 19:02:30
EndEvent()
benjhayden
2012/10/01 14:10:03
Can you elaborate why?
This is Init(), which is on
asanka
2012/10/01 15:59:36
Ignore my comment. I misread.
|
| - net::NetLog::TYPE_DOWNLOAD_ITEM_IN_HISTORY, |
| - net::NetLog::Int64Callback("db_handle", db_handle_)); |
| - |
| - bound_net_log_.EndEvent(net::NetLog::TYPE_DOWNLOAD_ITEM_ACTIVE); |
| + net::NetLog::TYPE_DOWNLOAD_ITEM_ACTIVE, active_data); |
| } |
| VLOG(20) << __FUNCTION__ << "() " << DebugString(true); |
| @@ -1079,7 +1027,7 @@ void DownloadItemImpl::OnDownloadRenamedToFinalName( |
| DCHECK(!full_path.empty()); |
| target_path_ = full_path; |
| SetFullPath(full_path); |
| - delegate_->DownloadRenamedToFinalName(this); |
| + UpdateObservers(); |
|
asanka
2012/09/28 19:02:30
Given that with this change we always call UpdateO
benjhayden
2012/10/01 14:10:03
Done.
|
| // Complete the download and release the DownloadFile. |
| BrowserThread::PostTask( |