Index: net/url_request/mime_sniffer_proxy.cc |
=================================================================== |
--- net/url_request/mime_sniffer_proxy.cc (revision 8565) |
+++ net/url_request/mime_sniffer_proxy.cc (working copy) |
@@ -6,10 +6,13 @@ |
#include "net/base/mime_sniffer.h" |
+static const int kBufferSize = 1024; |
+ |
MimeSnifferProxy::MimeSnifferProxy(URLRequest* request, |
URLRequest::Delegate* delegate) |
: request_(request), delegate_(delegate), |
- sniff_content_(false), error_(false) { |
+ sniff_content_(false), error_(false), |
+ buf_(new net::IOBuffer(kBufferSize)) { |
request->set_delegate(this); |
} |
@@ -20,7 +23,7 @@ |
// We need to read content before we know the mime type, |
// so we don't call OnResponseStarted. |
sniff_content_ = true; |
- if (request_->Read(buf_, sizeof(buf_), &bytes_read_) && bytes_read_) { |
+ if (request_->Read(buf_, kBufferSize, &bytes_read_) && bytes_read_) { |
OnReadCompleted(request, bytes_read_); |
} else if (!request_->status().is_io_pending()) { |
error_ = true; |
@@ -32,7 +35,8 @@ |
delegate_->OnResponseStarted(request); |
} |
-bool MimeSnifferProxy::Read(char* buf, int max_bytes, int *bytes_read) { |
+bool MimeSnifferProxy::Read(net::IOBuffer* buf, int max_bytes, |
+ int *bytes_read) { |
if (sniff_content_) { |
// This is the first call to Read() after we've sniffed content. |
// Return our local buffer or the error we ran into. |
@@ -43,7 +47,7 @@ |
return false; |
} |
- memcpy(buf, buf_, bytes_read_); |
+ memcpy(buf->data(), buf_->data(), bytes_read_); |
*bytes_read = bytes_read_; |
return true; |
} |
@@ -57,8 +61,8 @@ |
std::string type_hint; |
request_->GetMimeType(&type_hint); |
bytes_read_ = bytes_read; |
- net::SniffMimeType( |
- buf_, bytes_read_, request_->url(), type_hint, &mime_type_); |
+ net::SniffMimeType(buf_->data(), bytes_read_, request_->url(), |
+ type_hint, &mime_type_); |
} else { |
error_ = true; |
} |