Use net::UploadDataStream::Init() instead of InitSync()

BUG=113669
TEST=net_unittests


Review URL: https://chromiumcodereview.appspot.com/10829188

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157512 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index f9878067..dd538e2 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -534,6 +534,13 @@
       case STATE_GENERATE_SERVER_AUTH_TOKEN_COMPLETE:
         rv = DoGenerateServerAuthTokenComplete(rv);
         break;
+      case STATE_INIT_REQUEST_BODY:
+        DCHECK_EQ(OK, rv);
+        rv = DoInitRequestBody();
+        break;
+      case STATE_INIT_REQUEST_BODY_COMPLETE:
+        rv = DoInitRequestBodyComplete(rv);
+        break;
       case STATE_BUILD_REQUEST:
         DCHECK_EQ(OK, rv);
         net_log_.BeginEvent(NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST);
@@ -689,7 +696,7 @@
 int HttpNetworkTransaction::DoGenerateServerAuthTokenComplete(int rv) {
   DCHECK_NE(ERR_IO_PENDING, rv);
   if (rv == OK)
-    next_state_ = STATE_BUILD_REQUEST;
+    next_state_ = STATE_INIT_REQUEST_BODY;
   return rv;
 }
 
@@ -742,18 +749,27 @@
   request_headers_.MergeFrom(request_->extra_headers);
 }
 
-int HttpNetworkTransaction::DoBuildRequest() {
-  next_state_ = STATE_BUILD_REQUEST_COMPLETE;
+int HttpNetworkTransaction::DoInitRequestBody() {
+  next_state_ = STATE_INIT_REQUEST_BODY_COMPLETE;
   request_body_.reset(NULL);
+  int rv = OK;
   if (request_->upload_data) {
     request_body_.reset(new UploadDataStream(request_->upload_data));
-    const int error_code = request_body_->InitSync();
-    if (error_code != OK) {
-      request_body_.reset(NULL);
-      return error_code;
-    }
+    rv = request_body_->Init(io_callback_);
   }
+  return rv;
+}
 
+int HttpNetworkTransaction::DoInitRequestBodyComplete(int result) {
+  if (result == OK)
+    next_state_ = STATE_BUILD_REQUEST;
+  else
+    request_body_.reset(NULL);
+  return result;
+}
+
+int HttpNetworkTransaction::DoBuildRequest() {
+  next_state_ = STATE_BUILD_REQUEST_COMPLETE;
   headers_valid_ = false;
 
   // This is constructed lazily (instead of within our Start method), so that
@@ -1399,6 +1415,8 @@
   switch (state) {
     STATE_CASE(STATE_CREATE_STREAM);
     STATE_CASE(STATE_CREATE_STREAM_COMPLETE);
+    STATE_CASE(STATE_INIT_REQUEST_BODY);
+    STATE_CASE(STATE_INIT_REQUEST_BODY_COMPLETE);
     STATE_CASE(STATE_BUILD_REQUEST);
     STATE_CASE(STATE_BUILD_REQUEST_COMPLETE);
     STATE_CASE(STATE_SEND_REQUEST);