OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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_slow_download_job.h" | 5 #include "chrome/browser/automation/url_request_slow_download_job.h" |
6 | 6 |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "googleurl/src/gurl.h" | 9 #include "googleurl/src/gurl.h" |
10 #include "net/url_request/url_request.h" | 10 #include "net/url_request/url_request.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 should_send_second_chunk_(false) { | 65 should_send_second_chunk_(false) { |
66 } | 66 } |
67 | 67 |
68 void URLRequestSlowDownloadJob::StartAsync() { | 68 void URLRequestSlowDownloadJob::StartAsync() { |
69 if (LowerCaseEqualsASCII(kFinishDownloadUrl, request_->url().spec().c_str())) | 69 if (LowerCaseEqualsASCII(kFinishDownloadUrl, request_->url().spec().c_str())) |
70 URLRequestSlowDownloadJob::FinishPendingRequests(); | 70 URLRequestSlowDownloadJob::FinishPendingRequests(); |
71 | 71 |
72 NotifyHeadersComplete(); | 72 NotifyHeadersComplete(); |
73 } | 73 } |
74 | 74 |
75 bool URLRequestSlowDownloadJob::ReadRawData(char* buf, int buf_size, | 75 bool URLRequestSlowDownloadJob::ReadRawData(net::IOBuffer* buf, int buf_size, |
76 int *bytes_read) { | 76 int *bytes_read) { |
77 if (LowerCaseEqualsASCII(kFinishDownloadUrl, | 77 if (LowerCaseEqualsASCII(kFinishDownloadUrl, |
78 request_->url().spec().c_str())) { | 78 request_->url().spec().c_str())) { |
79 *bytes_read = 0; | 79 *bytes_read = 0; |
80 return true; | 80 return true; |
81 } | 81 } |
82 | 82 |
83 if (should_send_second_chunk_) { | 83 if (should_send_second_chunk_) { |
84 DCHECK(buf_size > kSecondDownloadSize); | 84 DCHECK(buf_size > kSecondDownloadSize); |
85 for (int i = 0; i < kSecondDownloadSize; ++i) { | 85 for (int i = 0; i < kSecondDownloadSize; ++i) { |
86 buf[i] = '*'; | 86 buf->data()[i] = '*'; |
87 } | 87 } |
88 *bytes_read = kSecondDownloadSize; | 88 *bytes_read = kSecondDownloadSize; |
89 should_send_second_chunk_ = false; | 89 should_send_second_chunk_ = false; |
90 return true; | 90 return true; |
91 } | 91 } |
92 | 92 |
93 if (first_download_size_remaining_ > 0) { | 93 if (first_download_size_remaining_ > 0) { |
94 int send_size = std::min(first_download_size_remaining_, buf_size); | 94 int send_size = std::min(first_download_size_remaining_, buf_size); |
95 for (int i = 0; i < send_size; ++i) { | 95 for (int i = 0; i < send_size; ++i) { |
96 buf[i] = '*'; | 96 buf->data()[i] = '*'; |
97 } | 97 } |
98 *bytes_read = send_size; | 98 *bytes_read = send_size; |
99 first_download_size_remaining_ -= send_size; | 99 first_download_size_remaining_ -= send_size; |
100 | 100 |
101 SetStatus(URLRequestStatus(URLRequestStatus::IO_PENDING, 0)); | 101 SetStatus(URLRequestStatus(URLRequestStatus::IO_PENDING, 0)); |
102 DCHECK(!is_done()); | 102 DCHECK(!is_done()); |
103 return true; | 103 return true; |
104 } | 104 } |
105 | 105 |
106 if (should_finish_download_) { | 106 if (should_finish_download_) { |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 ReplaceSubstringsAfterOffset(&raw_headers, 0, "\n", std::string("\0", 1)); | 154 ReplaceSubstringsAfterOffset(&raw_headers, 0, "\n", std::string("\0", 1)); |
155 info->headers = new net::HttpResponseHeaders(raw_headers); | 155 info->headers = new net::HttpResponseHeaders(raw_headers); |
156 } | 156 } |
157 | 157 |
158 bool URLRequestSlowDownloadJob::GetMimeType(std::string* mime_type) { | 158 bool URLRequestSlowDownloadJob::GetMimeType(std::string* mime_type) { |
159 net::HttpResponseInfo info; | 159 net::HttpResponseInfo info; |
160 GetResponseInfo(&info); | 160 GetResponseInfo(&info); |
161 return info.headers && info.headers->GetMimeType(mime_type); | 161 return info.headers && info.headers->GetMimeType(mime_type); |
162 } | 162 } |
163 | 163 |
OLD | NEW |