1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/download/download_file.h" 6 7 #include <string> 8 9 #include "base/file_util.h" 10 #include "base/stringprintf.h" 11 #include "chrome/browser/download/download_manager.h" 12 #include "chrome/browser/download/download_util.h" 13 #include "chrome/browser/history/download_create_info.h" 14 #include "content/browser/browser_thread.h" 15 16 DownloadFile::DownloadFile(const DownloadCreateInfo* info, 17 DownloadManager* download_manager) 18 : BaseFile(info->save_info.file_path, 19 info->url(), 20 info->referrer_url, 21 info->received_bytes, 22 info->save_info.file_stream), 23 id_(info->download_id), 24 child_id_(info->child_id), 25 request_id_(info->request_id), 26 download_manager_(download_manager) { 27 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 28 29 } 30 31 DownloadFile::~DownloadFile() { 32 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 33 } 34 35 void DownloadFile::CancelDownloadRequest(ResourceDispatcherHost* rdh) { 36 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 37 BrowserThread::PostTask( 38 BrowserThread::IO, FROM_HERE, 39 NewRunnableFunction(&download_util::CancelDownloadRequest, 40 rdh, 41 child_id_, 42 request_id_)); 43 } 44 45 DownloadManager* DownloadFile::GetDownloadManager() { 46 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 47 return download_manager_.get(); 48 } 49 50 std::string DownloadFile::DebugString() const { 51 return base::StringPrintf("{" 52 " full_path_ = " "\"%s\"" 53 " id_ = " "%d" 54 " child_id_ = " "%d" 55 " request_id_ = " "%d" 56 " Base File = %s" 57 " }", 58 full_path_.value().c_str(), 59 id_, 60 child_id_, 61 request_id_, 62 BaseFile::DebugString().c_str()); 63 } 64