| 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;
|
| }
|
|
|