Merge from Chromium at DEPS revision 273901

This commit was generated by merge_to_master.py.

Change-Id: I45745444894df927ffc1045ab8de88b9e52636a3
diff --git a/net/net.gyp b/net/net.gyp
index 559a7dc..5b5db96 100644
--- a/net/net.gyp
+++ b/net/net.gyp
@@ -45,6 +45,42 @@
   ],
   'targets': [
     {
+      'target_name': 'net_derived_sources',
+      'type': 'none',
+      'sources': [
+        'base/registry_controlled_domains/effective_tld_names.gperf',
+        'base/registry_controlled_domains/effective_tld_names_unittest1.gperf',
+        'base/registry_controlled_domains/effective_tld_names_unittest2.gperf',
+        'base/registry_controlled_domains/effective_tld_names_unittest3.gperf',
+        'base/registry_controlled_domains/effective_tld_names_unittest4.gperf',
+        'base/registry_controlled_domains/effective_tld_names_unittest5.gperf',
+        'base/registry_controlled_domains/effective_tld_names_unittest6.gperf',
+      ],
+      'rules': [
+        {
+          'rule_name': 'dafsa',
+          'extension': 'gperf',
+          'outputs': [
+            '<(SHARED_INTERMEDIATE_DIR)/net/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-inc.cc',
+          ],
+          'inputs': [
+            'tools/tld_cleanup/make_dafsa.py',
+          ],
+          'action': [
+            'python',
+            'tools/tld_cleanup/make_dafsa.py',
+            '<(RULE_INPUT_PATH)',
+            '<(SHARED_INTERMEDIATE_DIR)/net/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-inc.cc',
+          ],
+        },
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '<(SHARED_INTERMEDIATE_DIR)'
+        ],
+      },
+    },
+    {
       'target_name': 'net',
       'type': '<(component)',
       'variables': { 'enable_wexit_time_destructors': 1, },
@@ -58,6 +94,7 @@
         '../third_party/icu/icu.gyp:icuuc',
         '../third_party/zlib/zlib.gyp:zlib',
         '../url/url.gyp:url_lib',
+        'net_derived_sources',
         'net_resources',
       ],
       'sources': [
@@ -238,9 +275,12 @@
               'quic/crypto/p256_key_exchange_openssl.cc',
               'quic/crypto/scoped_evp_aead_ctx.cc',
               'quic/crypto/scoped_evp_aead_ctx.h',
+              'socket/openssl_ssl_util.cc',
+              'socket/openssl_ssl_util.h',
               'socket/ssl_client_socket_openssl.cc',
               'socket/ssl_client_socket_openssl.h',
               'socket/ssl_server_socket_openssl.cc',
+              'socket/ssl_server_socket_openssl.h',
               'socket/ssl_session_cache_openssl.cc',
               'socket/ssl_session_cache_openssl.h',
             ],
@@ -438,6 +478,23 @@
             ],
           },
         ],
+        [ 'use_icu_alternatives_on_android == 1', {
+            'dependencies!': [
+              '../base/base.gyp:base_i18n',
+              '../third_party/icu/icu.gyp:icui18n',
+              '../third_party/icu/icu.gyp:icuuc',
+            ],
+            'sources!': [
+              'base/filename_util_icu.cc',
+              'base/net_string_util_icu.cc',
+              'base/net_util_icu.cc',
+            ],
+            'sources': [
+              'base/net_string_util_icu_alternatives_android.cc',
+              'base/net_string_util_icu_alternatives_android.h',
+            ],
+          },
+        ],
       ],
       'target_conditions': [
         # These source files are excluded by default platform rules, but they
@@ -486,7 +543,8 @@
         '../url/url.gyp:url_lib',
         'http_server',
         'net',
-        'net_test_support'
+        'net_derived_sources',
+        'net_test_support',
       ],
       'sources': [
         '<@(net_test_sources)',
@@ -631,7 +689,10 @@
             ],
           },
         ],
-        [ 'use_v8_in_net==1', {
+        # Always need use_v8_in_net to be 1 to run gyp on Android, so just
+        # remove net_unittest's dependency on v8 when using icu alternatives
+        # instead of setting use_v8_in_net to 0.
+        [ 'use_v8_in_net==1 and use_icu_alternatives_on_android==0', {
             'dependencies': [
               'net_with_v8',
             ],
@@ -738,11 +799,23 @@
             ],
           },
         ],
-        ['OS == "android" and gtest_target_type == "shared_library"', {
+        ['OS == "android"', {
+          # TODO(mmenke):  This depends on test_support_base, which depends on
+          #                icu.  Figure out a way to remove that dependency.
           'dependencies': [
             '../testing/android/native_test.gyp:native_test_native_code',
           ]
         }],
+        [ 'use_icu_alternatives_on_android == 1', {
+            'dependencies!': [
+              '../base/base.gyp:base_i18n',
+            ],
+            'sources!': [
+              'base/filename_util_unittest.cc',
+              'base/net_util_icu_unittest.cc',
+            ],
+          },
+        ],
       ],
       'target_conditions': [
         # These source files are excluded by default platform rules, but they
@@ -813,6 +886,8 @@
       ],
       'export_dependent_settings': [
         '../base/base.gyp:base',
+        # TODO(mmenke):  This depends on icu, figure out a way to build tests
+        #                without icu.
         '../base/base.gyp:test_support_base',
         '../testing/gtest.gyp:gtest',
         '../testing/gmock.gyp:gmock',
@@ -846,6 +921,8 @@
         'dns/mock_host_resolver.h',
         'dns/mock_mdns_socket_factory.cc',
         'dns/mock_mdns_socket_factory.h',
+        'http/http_transaction_test_util.cc',
+        'http/http_transaction_test_util.h',
         'proxy/mock_proxy_resolver.cc',
         'proxy/mock_proxy_resolver.h',
         'proxy/mock_proxy_script_fetcher.cc',
@@ -1427,9 +1504,16 @@
           ],
           'variables': {
             'jni_gen_package': 'net',
-            'jni_generator_ptr_type': 'long',
           },
           'includes': [ '../build/jni_generator.gypi' ],
+
+          'conditions': [
+            ['use_icu_alternatives_on_android==1', {
+              'sources': [
+                'android/java/src/org/chromium/net/NetStringUtil.java',
+              ],
+            }],
+          ],
         },
         {
           'target_name': 'net_test_jni_headers',
@@ -1439,7 +1523,6 @@
           ],
           'variables': {
             'jni_gen_package': 'net',
-            'jni_generator_ptr_type': 'long',
           },
           'includes': [ '../build/jni_generator.gypi' ],
         },
@@ -1544,10 +1627,7 @@
         },
       ],
     }],
-    # Special target to wrap a gtest_target_type==shared_library
-    # net_unittests into an android apk for execution.
-    # See base.gyp for TODO(jrg)s about this strategy.
-    ['OS == "android" and gtest_target_type == "shared_library"', {
+    ['OS == "android"', {
       'targets': [
         {
           'target_name': 'net_unittests_apk',