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