OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "build/build_config.h" | 5 #include "build/build_config.h" |
6 | 6 |
7 #include "chrome/browser/download/save_file_manager.h" | 7 #include "chrome/browser/download/save_file_manager.h" |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 DCHECK(url.is_valid()); | 131 DCHECK(url.is_valid()); |
132 | 132 |
133 BrowserThread::PostTask( | 133 BrowserThread::PostTask( |
134 BrowserThread::IO, FROM_HERE, | 134 BrowserThread::IO, FROM_HERE, |
135 NewRunnableMethod(this, | 135 NewRunnableMethod(this, |
136 &SaveFileManager::OnSaveURL, | 136 &SaveFileManager::OnSaveURL, |
137 url, | 137 url, |
138 referrer, | 138 referrer, |
139 render_process_host_id, | 139 render_process_host_id, |
140 render_view_id, | 140 render_view_id, |
141 request_context_getter)); | 141 make_scoped_refptr(request_context_getter))); |
142 } else { | 142 } else { |
143 // We manually start the save job. | 143 // We manually start the save job. |
144 SaveFileCreateInfo* info = new SaveFileCreateInfo(file_full_path, | 144 SaveFileCreateInfo* info = new SaveFileCreateInfo(file_full_path, |
145 url, | 145 url, |
146 save_source, | 146 save_source, |
147 -1); | 147 -1); |
148 info->render_process_id = render_process_host_id; | 148 info->render_process_id = render_process_host_id; |
149 info->render_view_id = render_view_id; | 149 info->render_view_id = render_view_id; |
150 | 150 |
151 // Since the data will come from render process, so we need to start | 151 // Since the data will come from render process, so we need to start |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 243 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
244 SaveFile* save_file = LookupSaveFile(save_id); | 244 SaveFile* save_file = LookupSaveFile(save_id); |
245 if (save_file) { | 245 if (save_file) { |
246 bool write_success = save_file->AppendDataToFile(data->data(), data_len); | 246 bool write_success = save_file->AppendDataToFile(data->data(), data_len); |
247 BrowserThread::PostTask( | 247 BrowserThread::PostTask( |
248 BrowserThread::UI, FROM_HERE, | 248 BrowserThread::UI, FROM_HERE, |
249 NewRunnableMethod( | 249 NewRunnableMethod( |
250 this, &SaveFileManager::OnUpdateSaveProgress, save_file->save_id(), | 250 this, &SaveFileManager::OnUpdateSaveProgress, save_file->save_id(), |
251 save_file->bytes_so_far(), write_success)); | 251 save_file->bytes_so_far(), write_success)); |
252 } | 252 } |
253 data->Release(); | |
254 } | 253 } |
255 | 254 |
256 // The IO thread will call this when saving is completed or it got error when | 255 // The IO thread will call this when saving is completed or it got error when |
257 // fetching data. In the former case, we forward the message to OnSaveFinished | 256 // fetching data. In the former case, we forward the message to OnSaveFinished |
258 // in UI thread. In the latter case, the save ID will be -1, which means the | 257 // in UI thread. In the latter case, the save ID will be -1, which means the |
259 // saving action did not even start, so we need to call OnErrorFinished in UI | 258 // saving action did not even start, so we need to call OnErrorFinished in UI |
260 // thread, which will use the save URL to find corresponding request record and | 259 // thread, which will use the save URL to find corresponding request record and |
261 // delete it. | 260 // delete it. |
262 void SaveFileManager::SaveFinished(int save_id, | 261 void SaveFileManager::SaveFinished(int save_id, |
263 GURL save_url, | 262 GURL save_url, |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 SaveFileMap::iterator it = save_file_map_.find(*i); | 523 SaveFileMap::iterator it = save_file_map_.find(*i); |
525 if (it != save_file_map_.end()) { | 524 if (it != save_file_map_.end()) { |
526 SaveFile* save_file = it->second; | 525 SaveFile* save_file = it->second; |
527 DCHECK(!save_file->in_progress()); | 526 DCHECK(!save_file->in_progress()); |
528 file_util::Delete(save_file->full_path(), false); | 527 file_util::Delete(save_file->full_path(), false); |
529 delete save_file; | 528 delete save_file; |
530 save_file_map_.erase(it); | 529 save_file_map_.erase(it); |
531 } | 530 } |
532 } | 531 } |
533 } | 532 } |
OLD | NEW |