| Index: ios/web/webui/url_data_manager_ios_backend.cc
|
| diff --git a/ios/web/webui/url_data_manager_ios_backend.cc b/ios/web/webui/url_data_manager_ios_backend.cc
|
| index cc3e3e9af8886bfdab7f8a0ee3822425feeab4a3..09e8fc4421eac494303f535cd85dbe2674d88ea2 100644
|
| --- a/ios/web/webui/url_data_manager_ios_backend.cc
|
| +++ b/ios/web/webui/url_data_manager_ios_backend.cc
|
| @@ -96,7 +96,7 @@ class URLRequestChromeJob : public net::URLRequestJob {
|
| // net::URLRequestJob implementation.
|
| void Start() override;
|
| void Kill() override;
|
| - bool ReadRawData(net::IOBuffer* buf, int buf_size, int* bytes_read) override;
|
| + int ReadRawData(net::IOBuffer* buf, int buf_size) override;
|
| bool GetMimeType(std::string* mime_type) const override;
|
| int GetResponseCode() const override;
|
| void GetResponseInfo(net::HttpResponseInfo* info) override;
|
| @@ -142,7 +142,7 @@ class URLRequestChromeJob : public net::URLRequestJob {
|
|
|
| // Do the actual copy from data_ (the data we're serving) into |buf|.
|
| // Separate from ReadRawData so we can handle async I/O.
|
| - void CompleteRead(net::IOBuffer* buf, int buf_size, int* bytes_read);
|
| + int CompleteRead(net::IOBuffer* buf, int buf_size);
|
|
|
| // The actual data we're serving. NULL until it's been fetched.
|
| scoped_refptr<base::RefCountedMemory> data_;
|
| @@ -293,56 +293,46 @@ void URLRequestChromeJob::DataAvailable(base::RefCountedMemory* bytes) {
|
| if (bytes) {
|
| // The request completed, and we have all the data.
|
| // Clear any IO pending status.
|
| - SetStatus(net::URLRequestStatus());
|
| -
|
| data_ = bytes;
|
| - int bytes_read;
|
| if (pending_buf_.get()) {
|
| CHECK(pending_buf_->data());
|
| - CompleteRead(pending_buf_.get(), pending_buf_size_, &bytes_read);
|
| + int rv = CompleteRead(pending_buf_.get(), pending_buf_size_);
|
| pending_buf_ = NULL;
|
| - NotifyReadComplete(bytes_read);
|
| + ReadRawDataComplete(rv);
|
| }
|
| } else {
|
| - // The request failed.
|
| - NotifyDone(
|
| - net::URLRequestStatus(net::URLRequestStatus::FAILED, net::ERR_FAILED));
|
| + ReadRawDataComplete(net::ERR_FAILED);
|
| }
|
| }
|
|
|
| -bool URLRequestChromeJob::ReadRawData(net::IOBuffer* buf,
|
| - int buf_size,
|
| - int* bytes_read) {
|
| +int URLRequestChromeJob::ReadRawData(net::IOBuffer* buf, int buf_size) {
|
| if (!data_.get()) {
|
| - SetStatus(net::URLRequestStatus(net::URLRequestStatus::IO_PENDING, 0));
|
| DCHECK(!pending_buf_.get());
|
| CHECK(buf->data());
|
| pending_buf_ = buf;
|
| pending_buf_size_ = buf_size;
|
| - return false; // Tell the caller we're still waiting for data.
|
| + return net::ERR_IO_PENDING; // Tell the caller we're still waiting for
|
| + // data.
|
| }
|
|
|
| // Otherwise, the data is available.
|
| - CompleteRead(buf, buf_size, bytes_read);
|
| - return true;
|
| + return CompleteRead(buf, buf_size);
|
| }
|
|
|
| -void URLRequestChromeJob::CompleteRead(net::IOBuffer* buf,
|
| - int buf_size,
|
| - int* bytes_read) {
|
| +int URLRequestChromeJob::CompleteRead(net::IOBuffer* buf, int buf_size) {
|
| // http://crbug.com/373841
|
| char url_buf[128];
|
| base::strlcpy(url_buf, request_->url().spec().c_str(), arraysize(url_buf));
|
| base::debug::Alias(url_buf);
|
|
|
| - int remaining = static_cast<int>(data_->size()) - data_offset_;
|
| + int remaining = data_->size() - data_offset_;
|
| if (buf_size > remaining)
|
| buf_size = remaining;
|
| if (buf_size > 0) {
|
| memcpy(buf->data(), data_->front() + data_offset_, buf_size);
|
| data_offset_ += buf_size;
|
| }
|
| - *bytes_read = buf_size;
|
| + return buf_size;
|
| }
|
|
|
| namespace {
|
|
|