From 4db27d802c70279a1e54f028c35eb9ff658fdd6c Mon Sep 17 00:00:00 2001 From: "hashimoto@chromium.org" <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> Date: Thu, 20 Dec 2012 11:50:24 +0000 Subject: net: Split sync part of UploadFileElementReader as UploadFileElementReaderSync Add UploadFileElementReaderSync and use it from Chrome Frame. Remove UploadDataStream::InitSync/ReadSync Remove UploadElementReader::InitSync/ReadSync Allow passing null callbacks for Init/Read when callers can be confident that the operation finishes synchronously. BUG=None TEST=net_unittests, chrome_frame_net_tests TBR=ananta@chromium.org for chrome_frame/urlmon_upload_data_stream.cc Review URL: https://chromiumcodereview.appspot.com/11587007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174133 0039d316-1c4b-4281-b951-d872f2087c98 --- net/http/http_stream_parser.cc | 4 ++-- net/http/http_stream_parser_unittest.cc | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'net/http') diff --git a/net/http/http_stream_parser.cc b/net/http/http_stream_parser.cc index 95e2ba6..d08d62db 100644 --- a/net/http/http_stream_parser.cc +++ b/net/http/http_stream_parser.cc @@ -255,8 +255,8 @@ int HttpStreamParser::SendRequest(const std::string& request_line, size_t todo = request_->upload_data_stream->size(); while (todo) { - int consumed = request_->upload_data_stream->ReadSync(request_headers_, - todo); + int consumed = request_->upload_data_stream->Read(request_headers_, todo, + CompletionCallback()); DCHECK_GT(consumed, 0); // Read() won't fail if not chunked. request_headers_->DidConsume(consumed); todo -= consumed; diff --git a/net/http/http_stream_parser_unittest.cc b/net/http/http_stream_parser_unittest.cc index b62f539..f7e69a9 100644 --- a/net/http/http_stream_parser_unittest.cc +++ b/net/http/http_stream_parser_unittest.cc @@ -98,7 +98,7 @@ TEST(HttpStreamParser, ShouldMergeRequestHeadersAndBody_NoBody) { TEST(HttpStreamParser, ShouldMergeRequestHeadersAndBody_EmptyBody) { ScopedVector<UploadElementReader> element_readers; scoped_ptr<UploadDataStream> body(new UploadDataStream(&element_readers, 0)); - ASSERT_EQ(OK, body->InitSync()); + ASSERT_EQ(OK, body->Init(CompletionCallback())); // Shouldn't be merged if upload data is empty. ASSERT_FALSE(HttpStreamParser::ShouldMergeRequestHeadersAndBody( "some header", body.get())); @@ -109,7 +109,7 @@ TEST(HttpStreamParser, ShouldMergeRequestHeadersAndBody_ChunkedBody) { scoped_ptr<UploadDataStream> body( new UploadDataStream(UploadDataStream::CHUNKED, 0)); body->AppendChunk(payload.data(), payload.size(), true); - ASSERT_EQ(OK, body->InitSync()); + ASSERT_EQ(OK, body->Init(CompletionCallback())); // Shouldn't be merged if upload data carries chunked data. ASSERT_FALSE(HttpStreamParser::ShouldMergeRequestHeadersAndBody( "some header", body.get())); @@ -129,7 +129,9 @@ TEST(HttpStreamParser, ShouldMergeRequestHeadersAndBody_FileBody) { temp_file_path, 0, 0, base::Time())); scoped_ptr<UploadDataStream> body(new UploadDataStream(&element_readers, 0)); - ASSERT_EQ(OK, body->InitSync()); + TestCompletionCallback callback; + ASSERT_EQ(ERR_IO_PENDING, body->Init(callback.callback())); + ASSERT_EQ(OK, callback.WaitForResult()); // Shouldn't be merged if upload data carries a file, as it's not in-memory. ASSERT_FALSE(HttpStreamParser::ShouldMergeRequestHeadersAndBody( "some header", body.get())); @@ -142,7 +144,7 @@ TEST(HttpStreamParser, ShouldMergeRequestHeadersAndBody_SmallBodyInMemory) { payload.data(), payload.size())); scoped_ptr<UploadDataStream> body(new UploadDataStream(&element_readers, 0)); - ASSERT_EQ(OK, body->InitSync()); + ASSERT_EQ(OK, body->Init(CompletionCallback())); // Yes, should be merged if the in-memory body is small here. ASSERT_TRUE(HttpStreamParser::ShouldMergeRequestHeadersAndBody( "some header", body.get())); @@ -155,7 +157,7 @@ TEST(HttpStreamParser, ShouldMergeRequestHeadersAndBody_LargeBodyInMemory) { payload.data(), payload.size())); scoped_ptr<UploadDataStream> body(new UploadDataStream(&element_readers, 0)); - ASSERT_EQ(OK, body->InitSync()); + ASSERT_EQ(OK, body->Init(CompletionCallback())); // Shouldn't be merged if the in-memory body is large here. ASSERT_FALSE(HttpStreamParser::ShouldMergeRequestHeadersAndBody( "some header", body.get())); @@ -198,7 +200,7 @@ TEST(HttpStreamParser, AsyncChunkAndAsyncSocket) { UploadDataStream upload_stream(UploadDataStream::CHUNKED, 0); upload_stream.AppendChunk(kChunk1, arraysize(kChunk1) - 1, false); - ASSERT_EQ(OK, upload_stream.InitSync()); + ASSERT_EQ(OK, upload_stream.Init(CompletionCallback())); DeterministicSocketData data(reads, arraysize(reads), writes, arraysize(writes)); -- cgit v1.1