New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 601172 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , iOS
Pri: 3
Type: ----

Blocking:
issue 430110
issue 601972



Sign in to add a comment

[Cronet] Create smaller library binary size of Cronet on iOS

Project Member Reported by mef@chromium.org, Apr 6 2016

Issue description

Current implementation of Cronet on iOS (also known as CrNet) is quite big and requires ICU data files to be included into the application.

We need to produce smaller library by following the strategy used on Android - disable brotli, ftp and file support, use ICU alternatives, etc.




 

Comment 1 by mef@chromium.org, Apr 6 2016

Per discussion on https://codereview.chromium.org/1839803002/ it also makes sense to remove net_small, cronet_small and few other targets, which were used to produced smaller binaries as part of regular Android build, and use gyp/gn variables to configure Cronet builders.
Project Member

Comment 2 by bugdroid1@chromium.org, Apr 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build.git/+/1383ee56d0f0d7943cfe2647654099169c42bd64

commit 1383ee56d0f0d7943cfe2647654099169c42bd64
Author: mef@chromium.org <mef@chromium.org>
Date: Thu Apr 07 21:55:28 2016

Add disable_brotli_filter=1 and use_platform_icu_alternatives=1 to gyp defines for cronet_builder config.

BUG= 601172 

Review URL: https://codereview.chromium.org/1862223004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/build@299774 0039d316-1c4b-4281-b951-d872f2087c98

[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipe_modules/chromium_android/chromium_config.py
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipe_modules/cronet/example.expected/local_test.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_arm64_builder.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_arm64_builder__dbg_.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_armv6_builder.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_builder.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_builder__dbg_.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_data_reduction_proxy_builder.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_mips_builder.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_tester.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_x86_builder.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/android_cronet_x86_builder__dbg_.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/cronet_try.json
[modify] https://crrev.com/1383ee56d0f0d7943cfe2647654099169c42bd64/scripts/slave/recipes/cronet.expected/local_test.json

Project Member

Comment 3 by bugdroid1@chromium.org, Apr 7 2016

The following revision refers to this bug:
  http://goto.ext.google.com/viewvc/chrome-internal?view=rev&revision=86275

------------------------------------------------------------------
r86275 | recipe-roller@chromium.org | 2016-04-07T22:09:31.015857Z

-----------------------------------------------------------------

Comment 4 by mef@chromium.org, Apr 9 2016

Blocking: 601972
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/abe280e7da8b757d8f622cc9c9421880aaa38231

commit abe280e7da8b757d8f622cc9c9421880aaa38231
Author: kapishnikov <kapishnikov@chromium.org>
Date: Thu Apr 14 19:07:16 2016

Remove net & url small, iOS ICU alternatives, unit tests.

1. Removed |net_small| and |url_small| targets.
2. To keep supporting the small builds, introduced |use_platform_icu_alternatives|
   boolean flag that indicates whether the net and url targets should be
   built with ICU alternatives. The default value of the flag is false.
3. Removed |cronet_static_small| target.
4. Renamed 'define' USE_ICU_ALTERNATIVES_ON_ANDROID to
   USE_PLATFORM_ICU_ALTERNATIVES.
5. Added use_platform_icu_alternatives=1/true to gyp/gn cr_cronet.py.
6. Changed cronet_reduction_proxy component to stop using net & url small.
7. Removed |common_small| template from data_reduction_proxy/core/common
8. Removed |google_apis_small| template from google_apis.
9. Added simplistic ICU alternatives for iOS
10. Fixed linking problem when net_unitests were build with GN (not all
    websockets tests were excluded when enable_websockets was set to false).
11. Added support for net_unitests for the small net/url variation
    (there were no tests for it before).
12. Created the list of unit tests that are failing with the current
    alternative ICU implementations on Android and iOS. Added them to the
    exclude list.
13. Added new flag 'disable_brotli_filter' which is false by default.
    Set the flag to true in cr_cronet.py.
14. Converted 'define' USE_PLATFORM_ICU_ALTERNATIVES to build flags.

The current number of passing tests:
net_with_icu_alternative iOS: 12548
net_with_icu iOS: 14549
net_with_icu_alternative Android: 15000
net_with_icu Android: 15223
url_with_icu_alternative iOS: 49
url_with_icu iOS: 91
url_with_icu_alternative Android: 50
url_with_icu Android: 92

BUG= 601172 

Review URL: https://codereview.chromium.org/1839803002

Cr-Commit-Position: refs/heads/master@{#387382}

[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/build/common.gypi
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/components/cronet.gypi
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/components/cronet/android/BUILD.gn
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/components/cronet/android/cronet_library_loader.cc
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/components/cronet/cronet_static.gypi
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/components/cronet/tools/cr_cronet.py
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/components/data_reduction_proxy.gypi
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/components/data_reduction_proxy/core/browser/BUILD.gn
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/components/data_reduction_proxy/core/common/BUILD.gn
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/google_apis/BUILD.gn
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/net/BUILD.gn
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/net/android/net_jni_registrar.cc
[add] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/net/base/net_string_util_icu_alternatives_ios.mm
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/net/net.gyp
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/net/net_common.gypi
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/net/test/run_all_unittests.cc
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/tools/mb/mb_config.pyl
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/url/BUILD.gn
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/url/android/url_jni_registrar.cc
[add] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/url/features.gni
[modify] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/url/url.gyp
[add] https://crrev.com/abe280e7da8b757d8f622cc9c9421880aaa38231/url/url_canon_icu_alternatives_ios.mm

Comment 6 by mef@chromium.org, Apr 29 2016

Status: Fixed (was: Assigned)

Sign in to add a comment