• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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