OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/safe_browsing/download_feedback.h" | 5 #include "chrome/browser/safe_browsing/download_feedback.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/files/file_util_proxy.h" | 9 #include "base/files/file_util_proxy.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 DownloadFeedbackImpl::~DownloadFeedbackImpl() { | 101 DownloadFeedbackImpl::~DownloadFeedbackImpl() { |
102 DCHECK(CalledOnValidThread()); | 102 DCHECK(CalledOnValidThread()); |
103 DVLOG(1) << "DownloadFeedback destructed " << this; | 103 DVLOG(1) << "DownloadFeedback destructed " << this; |
104 | 104 |
105 if (uploader_) { | 105 if (uploader_) { |
106 RecordUploadResult(UPLOAD_CANCELLED); | 106 RecordUploadResult(UPLOAD_CANCELLED); |
107 // Destroy the uploader before attempting to delete the file. | 107 // Destroy the uploader before attempting to delete the file. |
108 uploader_.reset(); | 108 uploader_.reset(); |
109 } | 109 } |
110 | 110 |
111 base::FileUtilProxy::Delete(file_task_runner_, file_path_, false, | 111 base::FileUtilProxy::Delete(file_task_runner_.get(), |
| 112 file_path_, |
| 113 false, |
112 base::FileUtilProxy::StatusCallback()); | 114 base::FileUtilProxy::StatusCallback()); |
113 } | 115 } |
114 | 116 |
115 void DownloadFeedbackImpl::Start(const base::Closure& finish_callback) { | 117 void DownloadFeedbackImpl::Start(const base::Closure& finish_callback) { |
116 DCHECK(CalledOnValidThread()); | 118 DCHECK(CalledOnValidThread()); |
117 DCHECK(!uploader_); | 119 DCHECK(!uploader_); |
118 | 120 |
119 CommandLine* cmdline = CommandLine::ForCurrentProcess(); | 121 CommandLine* cmdline = CommandLine::ForCurrentProcess(); |
120 | 122 |
121 ClientDownloadReport report_metadata; | 123 ClientDownloadReport report_metadata; |
122 | 124 |
123 bool r = report_metadata.mutable_download_request()->ParseFromString( | 125 bool r = report_metadata.mutable_download_request()->ParseFromString( |
124 ping_request_); | 126 ping_request_); |
125 DCHECK(r); | 127 DCHECK(r); |
126 r = report_metadata.mutable_download_response()->ParseFromString( | 128 r = report_metadata.mutable_download_response()->ParseFromString( |
127 ping_response_); | 129 ping_response_); |
128 DCHECK(r); | 130 DCHECK(r); |
129 file_size_ = report_metadata.download_request().length(); | 131 file_size_ = report_metadata.download_request().length(); |
130 | 132 |
131 GURL url = GURL(cmdline->HasSwitch(switches::kSbDownloadFeedbackURL) ? | 133 GURL url = GURL(cmdline->HasSwitch(switches::kSbDownloadFeedbackURL) ? |
132 cmdline->GetSwitchValueASCII(switches::kSbDownloadFeedbackURL) : | 134 cmdline->GetSwitchValueASCII(switches::kSbDownloadFeedbackURL) : |
133 kSbDefaultFeedbackURL); | 135 kSbDefaultFeedbackURL); |
134 | 136 |
135 std::string metadata_string; | 137 std::string metadata_string; |
136 bool ok = report_metadata.SerializeToString(&metadata_string); | 138 bool ok = report_metadata.SerializeToString(&metadata_string); |
137 DCHECK(ok); | 139 DCHECK(ok); |
138 uploader_.reset(TwoPhaseUploader::Create( | 140 uploader_.reset( |
139 request_context_getter_, | 141 TwoPhaseUploader::Create(request_context_getter_.get(), |
140 file_task_runner_, | 142 file_task_runner_.get(), |
141 url, | 143 url, |
142 metadata_string, | 144 metadata_string, |
143 file_path_, | 145 file_path_, |
144 TwoPhaseUploader::ProgressCallback(), | 146 TwoPhaseUploader::ProgressCallback(), |
145 base::Bind(&DownloadFeedbackImpl::FinishedUpload, base::Unretained(this), | 147 base::Bind(&DownloadFeedbackImpl::FinishedUpload, |
146 finish_callback))); | 148 base::Unretained(this), |
| 149 finish_callback))); |
147 uploader_->Start(); | 150 uploader_->Start(); |
148 } | 151 } |
149 | 152 |
150 void DownloadFeedbackImpl::FinishedUpload(base::Closure finish_callback, | 153 void DownloadFeedbackImpl::FinishedUpload(base::Closure finish_callback, |
151 TwoPhaseUploader::State state, | 154 TwoPhaseUploader::State state, |
152 int net_error, | 155 int net_error, |
153 int response_code, | 156 int response_code, |
154 const std::string& response_data) { | 157 const std::string& response_data) { |
155 DCHECK(CalledOnValidThread()); | 158 DCHECK(CalledOnValidThread()); |
156 DVLOG(1) << __FUNCTION__ << " " << state << " rlen=" << response_data.size(); | 159 DVLOG(1) << __FUNCTION__ << " " << state << " rlen=" << response_data.size(); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 return new DownloadFeedbackImpl( | 220 return new DownloadFeedbackImpl( |
218 request_context_getter, file_task_runner, file_path, ping_request, | 221 request_context_getter, file_task_runner, file_path, ping_request, |
219 ping_response); | 222 ping_response); |
220 return DownloadFeedback::factory_->CreateDownloadFeedback( | 223 return DownloadFeedback::factory_->CreateDownloadFeedback( |
221 request_context_getter, file_task_runner, file_path, ping_request, | 224 request_context_getter, file_task_runner, file_path, ping_request, |
222 ping_response); | 225 ping_response); |
223 } | 226 } |
224 | 227 |
225 } // namespace safe_browsing | 228 } // namespace safe_browsing |
226 | 229 |
OLD | NEW |