[go: nahoru, domu]

Support chunked data upload in iOS

Cronet currently accumulates all the upload data from the stream
and sends it on NSStreamEventEndEncountered when using NSMutableURLRequest to post data from a stream.

This CL implements a chunked data uploader to support this
functionality.

Related discuss:
  https://groups.google.com/a/chromium.org/forum/#!topic/net-dev/I02k_dEiq1g

R=kapishnikov@chromium.org

Bug: 755463
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I74aef03f4ffeee8847cd08c870e3d6825a99ccfd
Reviewed-on: https://chromium-review.googlesource.com/813445
Commit-Queue: Andrei Kapishnikov <kapishnikov@chromium.org>
Reviewed-by: Andrei Kapishnikov <kapishnikov@chromium.org>
Reviewed-by: Mark Cogan <marq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535023}
diff --git a/ios/net/BUILD.gn b/ios/net/BUILD.gn
index 797bbee..28b8845 100644
--- a/ios/net/BUILD.gn
+++ b/ios/net/BUILD.gn
@@ -31,6 +31,8 @@
   configs += [ "//build/config/compiler:enable_arc" ]
 
   sources = [
+    "chunked_data_stream_uploader.cc",
+    "chunked_data_stream_uploader.h",
     "clients/crn_network_client_protocol.h",
     "cookies/cookie_cache.cc",
     "cookies/cookie_cache.h",
@@ -109,6 +111,7 @@
   ]
 
   sources = [
+    "chunked_data_stream_uploader_unittest.cc",
     "cookies/cookie_cache_unittest.cc",
     "cookies/cookie_creation_time_manager_unittest.mm",
     "cookies/cookie_store_ios_persistent_unittest.mm",