diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-03 20:10:53 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-03 20:10:53 +0000 |
commit | 1d88929e761889394c1a97e294e70932dafa5301 (patch) | |
tree | d75a1c39f49205ca7f58cd06024e1b1745e41d8c /net | |
parent | 1247de8adb3acfbe1b26416a4e4a89aacab87388 (diff) | |
download | chromium_src-1d88929e761889394c1a97e294e70932dafa5301.zip chromium_src-1d88929e761889394c1a97e294e70932dafa5301.tar.gz chromium_src-1d88929e761889394c1a97e294e70932dafa5301.tar.bz2 |
libaddressinput - one less copy when downloading data
BUG=337679
Review URL: https://codereview.chromium.org/151133002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248561 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/url_request/test_url_fetcher_factory.cc | 17 | ||||
-rw-r--r-- | net/url_request/test_url_fetcher_factory.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/net/url_request/test_url_fetcher_factory.cc b/net/url_request/test_url_fetcher_factory.cc index f44d22b..2173bfb 100644 --- a/net/url_request/test_url_fetcher_factory.cc +++ b/net/url_request/test_url_fetcher_factory.cc @@ -11,6 +11,7 @@ #include "base/memory/weak_ptr.h" #include "base/message_loop/message_loop.h" #include "net/base/host_port_pair.h" +#include "net/base/io_buffer.h" #include "net/base/net_errors.h" #include "net/http/http_response_headers.h" #include "net/url_request/url_fetcher_delegate.h" @@ -150,6 +151,22 @@ void TestURLFetcher::SaveResponseToTemporaryFile( void TestURLFetcher::SaveResponseWithWriter( scoped_ptr<URLFetcherResponseWriter> response_writer) { + if (fake_response_destination_ == STRING) { + response_writer_ = response_writer.Pass(); + int response = response_writer_->Initialize(CompletionCallback()); + // The TestURLFetcher doesn't handle asynchronous writes. + DCHECK_EQ(OK, response); + + scoped_refptr<IOBuffer> buffer(new StringIOBuffer(fake_response_string_)); + response = response_writer_->Write(buffer.get(), + fake_response_string_.size(), + CompletionCallback()); + DCHECK_EQ(OK, response); + response = response_writer_->Finish(CompletionCallback()); + DCHECK_EQ(OK, response); + } else { + NOTIMPLEMENTED(); + } } HttpResponseHeaders* TestURLFetcher::GetResponseHeaders() const { diff --git a/net/url_request/test_url_fetcher_factory.h b/net/url_request/test_url_fetcher_factory.h index b88daac..f2139d9 100644 --- a/net/url_request/test_url_fetcher_factory.h +++ b/net/url_request/test_url_fetcher_factory.h @@ -222,6 +222,7 @@ class TestURLFetcher : public URLFetcher { HttpRequestHeaders fake_extra_request_headers_; int fake_max_retries_; base::TimeDelta fake_backoff_delay_; + scoped_ptr<URLFetcherResponseWriter> response_writer_; DISALLOW_COPY_AND_ASSIGN(TestURLFetcher); }; |