| OLD | NEW |
| 1 // Copyright (c) 2011 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 #include "content/browser/download/save_package.h" | 5 #include "content/browser/download/save_package.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
| 11 #include "base/file_util.h" | 11 #include "base/file_util.h" |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 saved_main_directory_path_(directory_full_path), | 127 saved_main_directory_path_(directory_full_path), |
| 128 title_(tab_contents->GetTitle()), | 128 title_(tab_contents->GetTitle()), |
| 129 start_tick_(base::TimeTicks::Now()), | 129 start_tick_(base::TimeTicks::Now()), |
| 130 finished_(false), | 130 finished_(false), |
| 131 user_canceled_(false), | 131 user_canceled_(false), |
| 132 disk_error_occurred_(false), | 132 disk_error_occurred_(false), |
| 133 save_type_(save_type), | 133 save_type_(save_type), |
| 134 all_save_items_count_(0), | 134 all_save_items_count_(0), |
| 135 wait_state_(INITIALIZE), | 135 wait_state_(INITIALIZE), |
| 136 tab_id_(tab_contents->GetRenderProcessHost()->GetID()), | 136 tab_id_(tab_contents->GetRenderProcessHost()->GetID()), |
| 137 unique_id_(g_save_package_id++), | 137 unique_id_(g_save_package_id++) { |
| 138 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { | |
| 139 DCHECK(page_url_.is_valid()); | 138 DCHECK(page_url_.is_valid()); |
| 140 DCHECK(save_type_ == SAVE_AS_ONLY_HTML || | 139 DCHECK(save_type_ == SAVE_AS_ONLY_HTML || |
| 141 save_type_ == SAVE_AS_COMPLETE_HTML); | 140 save_type_ == SAVE_AS_COMPLETE_HTML); |
| 142 DCHECK(!saved_main_file_path_.empty() && | 141 DCHECK(!saved_main_file_path_.empty() && |
| 143 saved_main_file_path_.value().length() <= kMaxFilePathLength); | 142 saved_main_file_path_.value().length() <= kMaxFilePathLength); |
| 144 DCHECK(!saved_main_directory_path_.empty() && | 143 DCHECK(!saved_main_directory_path_.empty() && |
| 145 saved_main_directory_path_.value().length() < kMaxFilePathLength); | 144 saved_main_directory_path_.value().length() < kMaxFilePathLength); |
| 146 InternalInit(); | 145 InternalInit(); |
| 147 } | 146 } |
| 148 | 147 |
| 149 SavePackage::SavePackage(TabContents* tab_contents) | 148 SavePackage::SavePackage(TabContents* tab_contents) |
| 150 : content::WebContentsObserver(tab_contents), | 149 : content::WebContentsObserver(tab_contents), |
| 151 file_manager_(NULL), | 150 file_manager_(NULL), |
| 152 download_manager_(NULL), | 151 download_manager_(NULL), |
| 153 download_(NULL), | 152 download_(NULL), |
| 154 page_url_(GetUrlToBeSaved()), | 153 page_url_(GetUrlToBeSaved()), |
| 155 title_(tab_contents->GetTitle()), | 154 title_(tab_contents->GetTitle()), |
| 156 start_tick_(base::TimeTicks::Now()), | 155 start_tick_(base::TimeTicks::Now()), |
| 157 finished_(false), | 156 finished_(false), |
| 158 user_canceled_(false), | 157 user_canceled_(false), |
| 159 disk_error_occurred_(false), | 158 disk_error_occurred_(false), |
| 160 save_type_(SAVE_TYPE_UNKNOWN), | 159 save_type_(SAVE_TYPE_UNKNOWN), |
| 161 all_save_items_count_(0), | 160 all_save_items_count_(0), |
| 162 wait_state_(INITIALIZE), | 161 wait_state_(INITIALIZE), |
| 163 tab_id_(tab_contents->GetRenderProcessHost()->GetID()), | 162 tab_id_(tab_contents->GetRenderProcessHost()->GetID()), |
| 164 unique_id_(g_save_package_id++), | 163 unique_id_(g_save_package_id++) { |
| 165 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { | |
| 166 DCHECK(page_url_.is_valid()); | 164 DCHECK(page_url_.is_valid()); |
| 167 InternalInit(); | 165 InternalInit(); |
| 168 } | 166 } |
| 169 | 167 |
| 170 // This is for testing use. Set |finished_| as true because we don't want | 168 // This is for testing use. Set |finished_| as true because we don't want |
| 171 // method Cancel to be be called in destructor in test mode. | 169 // method Cancel to be be called in destructor in test mode. |
| 172 // We also don't call InternalInit(). | 170 // We also don't call InternalInit(). |
| 173 SavePackage::SavePackage(TabContents* tab_contents, | 171 SavePackage::SavePackage(TabContents* tab_contents, |
| 174 const FilePath& file_full_path, | 172 const FilePath& file_full_path, |
| 175 const FilePath& directory_full_path) | 173 const FilePath& directory_full_path) |
| 176 : content::WebContentsObserver(tab_contents), | 174 : content::WebContentsObserver(tab_contents), |
| 177 file_manager_(NULL), | 175 file_manager_(NULL), |
| 178 download_manager_(NULL), | 176 download_manager_(NULL), |
| 179 download_(NULL), | 177 download_(NULL), |
| 180 saved_main_file_path_(file_full_path), | 178 saved_main_file_path_(file_full_path), |
| 181 saved_main_directory_path_(directory_full_path), | 179 saved_main_directory_path_(directory_full_path), |
| 182 start_tick_(base::TimeTicks::Now()), | 180 start_tick_(base::TimeTicks::Now()), |
| 183 finished_(true), | 181 finished_(true), |
| 184 user_canceled_(false), | 182 user_canceled_(false), |
| 185 disk_error_occurred_(false), | 183 disk_error_occurred_(false), |
| 186 save_type_(SAVE_TYPE_UNKNOWN), | 184 save_type_(SAVE_TYPE_UNKNOWN), |
| 187 all_save_items_count_(0), | 185 all_save_items_count_(0), |
| 188 wait_state_(INITIALIZE), | 186 wait_state_(INITIALIZE), |
| 189 tab_id_(0), | 187 tab_id_(0), |
| 190 unique_id_(g_save_package_id++), | 188 unique_id_(g_save_package_id++) { |
| 191 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { | |
| 192 } | 189 } |
| 193 | 190 |
| 194 SavePackage::~SavePackage() { | 191 SavePackage::~SavePackage() { |
| 195 // Stop receiving saving job's updates | 192 // Stop receiving saving job's updates |
| 196 if (!finished_ && !canceled()) { | 193 if (!finished_ && !canceled()) { |
| 197 // Unexpected quit. | 194 // Unexpected quit. |
| 198 Cancel(true); | 195 Cancel(true); |
| 199 } | 196 } |
| 200 | 197 |
| 201 // We should no longer be observing the DownloadItem at this point. | 198 // We should no longer be observing the DownloadItem at this point. |
| (...skipping 1093 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1295 StopObservation(); | 1292 StopObservation(); |
| 1296 } | 1293 } |
| 1297 | 1294 |
| 1298 void SavePackage::FinalizeDownloadEntry() { | 1295 void SavePackage::FinalizeDownloadEntry() { |
| 1299 DCHECK(download_); | 1296 DCHECK(download_); |
| 1300 DCHECK(download_manager_); | 1297 DCHECK(download_manager_); |
| 1301 | 1298 |
| 1302 download_manager_->SavePageDownloadFinished(download_); | 1299 download_manager_->SavePageDownloadFinished(download_); |
| 1303 StopObservation(); | 1300 StopObservation(); |
| 1304 } | 1301 } |
| OLD | NEW |