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 2d0482c88f3daa14bbf7e43567e10d807bd0e3f1..8181190b2272c18a5d3859ed371f5820f3b4722b 100644 |
--- a/content/browser/download/download_item_impl.cc |
+++ b/content/browser/download/download_item_impl.cc |
@@ -27,7 +27,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; |
@@ -35,7 +34,6 @@ using content::DownloadFile; |
using content::DownloadId; |
using content::DownloadItem; |
using content::DownloadManager; |
-using content::DownloadPersistentStoreInfo; |
using content::WebContents; |
// A DownloadItem normally goes through the following states: |
@@ -123,13 +121,6 @@ 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[] = ""; |
} |
@@ -142,36 +133,42 @@ const char DownloadItem::kEmptyFileHash[] = ""; |
// 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_(info.state), |
+ state_(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), |
@@ -215,14 +212,12 @@ DownloadItemImpl::DownloadItemImpl( |
state_(IN_PROGRESS), |
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), |
@@ -270,14 +265,12 @@ DownloadItemImpl::DownloadItemImpl(DownloadItemImplDelegate* delegate, |
state_(IN_PROGRESS), |
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), |
@@ -821,20 +814,6 @@ bool DownloadItemImpl::IsDangerous() const { |
#endif |
} |
-DownloadPersistentStoreInfo DownloadItemImpl::GetPersistentStoreInfo() const { |
- // TODO(asanka): Persist GetTargetFilePath() as well. |
- return DownloadPersistentStoreInfo(GetFullPath(), |
- GetURL(), |
- GetReferrerUrl(), |
- GetStartTime(), |
- GetEndTime(), |
- GetReceivedBytes(), |
- GetTotalBytes(), |
- GetState(), |
- GetDbHandle(), |
- GetOpened()); |
-} |
- |
WebContents* DownloadItemImpl::GetWebContents() const { |
// TODO(rdsmith): Remove null check after removing GetWebContents() from |
// paths that might be used by DownloadItems created from history import. |
@@ -966,7 +945,7 @@ void DownloadItemImpl::Init(bool active, |
if (!active) { |
bound_net_log_.AddEvent( |
net::NetLog::TYPE_DOWNLOAD_ITEM_IN_HISTORY, |
- net::NetLog::Int64Callback("db_handle", db_handle_)); |
+ net::NetLog::Int64Callback("id", GetId())); |
bound_net_log_.EndEvent(net::NetLog::TYPE_DOWNLOAD_ITEM_ACTIVE); |
} |
@@ -1030,7 +1009,6 @@ std::string DownloadItemImpl::DebugString(bool verbose) const { |
if (verbose) { |
description += base::StringPrintf( |
- " db_handle = %" PRId64 |
" total = %" PRId64 |
" received = %" PRId64 |
" reason = %s" |
@@ -1041,7 +1019,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(), |
@@ -1062,102 +1039,120 @@ std::string DownloadItemImpl::DebugString(bool verbose) const { |
} |
bool DownloadItemImpl::AllDataSaved() const { return all_data_saved_; } |
+ |
DownloadItem::DownloadState DownloadItemImpl::GetState() const { |
return state_; |
} |
+ |
const std::vector<GURL>& DownloadItemImpl::GetUrlChain() const { |
return url_chain_; |
} |
+ |
const GURL& DownloadItemImpl::GetOriginalUrl() const { |
return url_chain_.front(); |
} |
+ |
const GURL& DownloadItemImpl::GetReferrerUrl() const { return referrer_url_; } |
+ |
std::string DownloadItemImpl::GetSuggestedFilename() const { |
return suggested_filename_; |
} |
+ |
std::string DownloadItemImpl::GetContentDisposition() const { |
return content_disposition_; |
} |
+ |
std::string DownloadItemImpl::GetMimeType() const { return mime_type_; } |
+ |
std::string DownloadItemImpl::GetOriginalMimeType() const { |
return original_mime_type_; |
} |
+ |
std::string DownloadItemImpl::GetReferrerCharset() const { |
return referrer_charset_; |
} |
+ |
std::string DownloadItemImpl::GetRemoteAddress() const { |
return remote_address_; |
} |
+ |
int64 DownloadItemImpl::GetTotalBytes() const { return total_bytes_; } |
+ |
void DownloadItemImpl::SetTotalBytes(int64 total_bytes) { |
total_bytes_ = total_bytes; |
} |
+ |
const std::string& DownloadItemImpl::GetHash() const { return hash_; } |
+ |
int64 DownloadItemImpl::GetReceivedBytes() const { return received_bytes_; } |
+ |
const std::string& DownloadItemImpl::GetHashState() const { |
return hash_state_; |
} |
-int32 DownloadItemImpl::GetId() const { return download_id_.local(); } |
-DownloadId DownloadItemImpl::GetGlobalId() const { return download_id_; } |
-base::Time DownloadItemImpl::GetStartTime() const { return start_time_; } |
-base::Time DownloadItemImpl::GetEndTime() const { return end_time_; } |
-void DownloadItemImpl::SetIsPersisted() { |
- is_persisted_ = true; |
-} |
+int32 DownloadItemImpl::GetId() const { return download_id_.local(); } |
-bool DownloadItemImpl::IsPersisted() const { |
- return is_persisted_; |
-} |
+DownloadId DownloadItemImpl::GetGlobalId() const { return download_id_; } |
-void DownloadItemImpl::SetDbHandle(int64 handle) { |
- db_handle_ = handle; |
+base::Time DownloadItemImpl::GetStartTime() const { return start_time_; } |
- bound_net_log_.AddEvent( |
- net::NetLog::TYPE_DOWNLOAD_ITEM_IN_HISTORY, |
- net::NetLog::Int64Callback("db_handle", db_handle_)); |
-} |
+base::Time DownloadItemImpl::GetEndTime() const { return end_time_; } |
-int64 DownloadItemImpl::GetDbHandle() const { return db_handle_; } |
bool DownloadItemImpl::IsPaused() const { return is_paused_; } |
+ |
bool DownloadItemImpl::GetOpenWhenComplete() const { |
return open_when_complete_; |
} |
+ |
void DownloadItemImpl::SetOpenWhenComplete(bool open) { |
open_when_complete_ = open; |
} |
+ |
bool DownloadItemImpl::GetFileExternallyRemoved() const { |
return file_externally_removed_; |
} |
+ |
DownloadItem::SafetyState DownloadItemImpl::GetSafetyState() const { |
return safety_state_; |
} |
bool DownloadItemImpl::GetAutoOpened() { return auto_opened_; } |
+ |
FilePath DownloadItemImpl::GetTargetName() const { |
return target_path_.BaseName(); |
} |
+ |
const FilePath& DownloadItemImpl::GetForcedFilePath() const { |
// TODO(asanka): Get rid of GetForcedFilePath(). We should instead just |
// require that clients respect GetTargetFilePath() if it is already set. |
return forced_file_path_; |
} |
+ |
bool DownloadItemImpl::HasUserGesture() const { |
return has_user_gesture_; |
}; |
+ |
content::PageTransition DownloadItemImpl::GetTransitionType() const { |
return transition_type_; |
}; |
+ |
bool DownloadItemImpl::IsTemporary() const { return is_temporary_; } |
+ |
void DownloadItemImpl::SetIsTemporary(bool temporary) { |
is_temporary_ = temporary; |
} |
+ |
void DownloadItemImpl::SetOpened(bool opened) { opened_ = opened; } |
+ |
bool DownloadItemImpl::GetOpened() const { return opened_; } |
+ |
const std::string& DownloadItemImpl::GetLastModifiedTime() const { |
return last_modified_time_; |
} |
+ |
const std::string& DownloadItemImpl::GetETag() const { return etag_; } |
+ |
content::DownloadInterruptReason DownloadItemImpl::GetLastReason() const { |
return last_reason_; |
} |
+ |
void DownloadItemImpl::MockDownloadOpenForTesting() { open_enabled_ = false; } |