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 16DownloadFile::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 31DownloadFile::~DownloadFile() { 32 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 33} 34 35void 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 45DownloadManager* DownloadFile::GetDownloadManager() { 46 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 47 return download_manager_.get(); 48} 49 50std::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