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
DownloadFile(const DownloadCreateInfo * info,DownloadManager * download_manager)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
~DownloadFile()31 DownloadFile::~DownloadFile() {
32 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
33 }
34
CancelDownloadRequest(ResourceDispatcherHost * rdh)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
GetDownloadManager()45 DownloadManager* DownloadFile::GetDownloadManager() {
46 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
47 return download_manager_.get();
48 }
49
DebugString() const50 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