OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/automation/url_request_automation_job.h" | 5 #include "chrome/browser/automation/url_request_automation_job.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/time.h" | 10 #include "base/time.h" |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 return old_https_factory_(request, network_delegate, scheme); | 166 return old_https_factory_(request, network_delegate, scheme); |
167 } | 167 } |
168 return NULL; | 168 return NULL; |
169 } | 169 } |
170 | 170 |
171 // net::URLRequestJob Implementation. | 171 // net::URLRequestJob Implementation. |
172 void URLRequestAutomationJob::Start() { | 172 void URLRequestAutomationJob::Start() { |
173 if (!is_pending()) { | 173 if (!is_pending()) { |
174 // Start reading asynchronously so that all error reporting and data | 174 // Start reading asynchronously so that all error reporting and data |
175 // callbacks happen as they would for network requests. | 175 // callbacks happen as they would for network requests. |
176 MessageLoop::current()->PostTask( | 176 base::MessageLoop::current()->PostTask( |
177 FROM_HERE, | 177 FROM_HERE, |
178 base::Bind(&URLRequestAutomationJob::StartAsync, | 178 base::Bind(&URLRequestAutomationJob::StartAsync, |
179 weak_factory_.GetWeakPtr())); | 179 weak_factory_.GetWeakPtr())); |
180 } else { | 180 } else { |
181 // If this is a pending job, then register it immediately with the message | 181 // If this is a pending job, then register it immediately with the message |
182 // filter so it can be serviced later when we receive a request from the | 182 // filter so it can be serviced later when we receive a request from the |
183 // external host to connect to the corresponding external tab. | 183 // external host to connect to the corresponding external tab. |
184 message_filter_->RegisterRequest(this); | 184 message_filter_->RegisterRequest(this); |
185 } | 185 } |
186 } | 186 } |
(...skipping 18 matching lines...) Expand all Loading... |
205 // We should not receive a read request for a pending job. | 205 // We should not receive a read request for a pending job. |
206 DCHECK(!is_pending()); | 206 DCHECK(!is_pending()); |
207 | 207 |
208 pending_buf_ = buf; | 208 pending_buf_ = buf; |
209 pending_buf_size_ = buf_size; | 209 pending_buf_size_ = buf_size; |
210 | 210 |
211 if (message_filter_) { | 211 if (message_filter_) { |
212 message_filter_->Send(new AutomationMsg_RequestRead(tab_, id_, buf_size)); | 212 message_filter_->Send(new AutomationMsg_RequestRead(tab_, id_, buf_size)); |
213 SetStatus(net::URLRequestStatus(net::URLRequestStatus::IO_PENDING, 0)); | 213 SetStatus(net::URLRequestStatus(net::URLRequestStatus::IO_PENDING, 0)); |
214 } else { | 214 } else { |
215 MessageLoop::current()->PostTask( | 215 base::MessageLoop::current()->PostTask( |
216 FROM_HERE, | 216 FROM_HERE, |
217 base::Bind(&URLRequestAutomationJob::NotifyJobCompletionTask, | 217 base::Bind(&URLRequestAutomationJob::NotifyJobCompletionTask, |
218 weak_factory_.GetWeakPtr())); | 218 weak_factory_.GetWeakPtr())); |
219 } | 219 } |
220 return false; | 220 return false; |
221 } | 221 } |
222 | 222 |
223 bool URLRequestAutomationJob::GetMimeType(std::string* mime_type) const { | 223 bool URLRequestAutomationJob::GetMimeType(std::string* mime_type) const { |
224 if (!mime_type_.empty()) { | 224 if (!mime_type_.empty()) { |
225 *mime_type = mime_type_; | 225 *mime_type = mime_type_; |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 if (!is_done()) { | 532 if (!is_done()) { |
533 NotifyDone(request_status_); | 533 NotifyDone(request_status_); |
534 } | 534 } |
535 // Reset any pending reads. | 535 // Reset any pending reads. |
536 if (pending_buf_) { | 536 if (pending_buf_) { |
537 pending_buf_ = NULL; | 537 pending_buf_ = NULL; |
538 pending_buf_size_ = 0; | 538 pending_buf_size_ = 0; |
539 NotifyReadComplete(0); | 539 NotifyReadComplete(0); |
540 } | 540 } |
541 } | 541 } |
OLD | NEW |