Implement a CronetProvider framework that allows developing and packaging different Cronet implementations, detecting them at runtime and giving an embedders the choice which one to use.
The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src/+/640977d34b03a64f019b3b9f25fb6e15820914a6
chromium / chromium / src / 640977d34b03a64f019b3b9f25fb6e15820914a6
commit 640977d34b03a64f019b3b9f25fb6e15820914a6 [log] [tgz]
author kapishnikov <kapishnikov@chromium.org> Tue Jan 24 00:29:15 2017
committer Commit bot <commit-bot@chromium.org> Tue Jan 24 00:29:15 2017
tree 3390dc7ee2b16588e719ecd8bc2563c8c1993df1
parent 702ade7cb3ec7ab79f482008239ae396c6767e22 [diff]
Cronet: a framework to provide alternative Cronet implementations
1. Added CronetProvider interface (abstract class) that can be subclassed
in order to add an alternative CronetEngineBuilder implementation.
The interface is implemented by the new built-in Java and Native
Cronet engine providers.
2. Provided functionality that can be used by an embedder to explicitly
select the desired provider from the list of available ones. If the
embedder doesn't select one. The system select the the best available
one based on the provider versions and types.
3. Deprecated enableLegacyMode(). The embedder can now explicitly choose
what implementation to use.
4. Changed the tests to use the new approach.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester
Review-Url: https://codereview.chromium.org/2626523003
Cr-Commit-Position: refs/heads/master@{#445561}
components/cronet/android/BUILD.gn[diff]
components/cronet/android/api.txt[diff]
components/cronet/android/api/src/org/chromium/net/ApiVersion.template[diff]
components/cronet/android/api/src/org/chromium/net/CronetEngine.java[diff]
components/cronet/android/api/src/org/chromium/net/CronetProvider.java[Added - diff]
components/cronet/android/api/src/org/chromium/net/ExperimentalCronetEngine.java[diff]
components/cronet/android/api/src/org/chromium/net/ICronetEngineBuilder.java[diff]
components/cronet/android/api/src/org/chromium/net/ImplLoader.java[Deleted - diff]
components/cronet/android/api_version.txt[diff]
components/cronet/android/cronet_impl_common_proguard.cfg[diff]
components/cronet/android/cronet_impl_native_proguard.cfg[diff]
components/cronet/android/cronet_impl_platform_proguard.cfg[diff]
components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java[diff]
components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java[diff]
components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java[diff]
components/cronet/android/java/src/org/chromium/net/impl/ImplVersion.template[diff]
components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngine.java[diff]
components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngineBuilderImpl.java[Added - diff]
components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java[Added - diff]
components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java[Added - diff]
components/cronet/android/java/src/org/chromium/net/impl/NativeCronetProvider.java[Added - diff]
components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java[diff]
components/cronet/android/test/javatests/src/org/chromium/net/CronetEngineBuilderTest.java[Added - diff]
components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java[diff]
components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java[diff]
components/cronet/android/test/proguard.cfg[diff]
components/cronet/android/test/smoketests/src/org/chromium/net/smoke/MissingNativeLibraryTest.java[diff]
We'd like to merge the change in comment #1 to M57 so it's part of Cronet's M57 release. There should be no impact on Chrome as it does not depend on Cronet. This change has been baking in canary for nearly a week.
Comment 1 by kapishnikov@chromium.org
, Jan 30 2017Status: Fixed (was: Untriaged)