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

Issue 686774 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Cronet: a framework for providing alternative Cronet implementations

Project Member Reported by kapishnikov@chromium.org, Jan 30 2017

Issue description

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.
 
Cc: mef@chromium.org
Status: Fixed (was: Untriaged)
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]
Labels: -Pri-3 Merge-Request-57 Pri-1
Owner: kapishnikov@chromium.org
Status: Assigned (was: Fixed)
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.

Labels: -Merge-Request-57 Merge-Approved-57
Merge approved for M57 branch 2987.
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 30 2017

Labels: -merge-approved-57 merge-merged-2987
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/12f8bc6c1361d506f51598da28696a6350b17954

commit 12f8bc6c1361d506f51598da28696a6350b17954
Author: kapishnikov <kapishnikov@chromium.org>
Date: Mon Jan 30 22:50:27 2017

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}
(cherry picked from commit 640977d34b03a64f019b3b9f25fb6e15820914a6)

BUG= 686774 
NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2660963002
Cr-Commit-Position: refs/branch-heads/2987@{#199}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/BUILD.gn
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/api.txt
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/api/src/org/chromium/net/ApiVersion.template
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/api/src/org/chromium/net/CronetEngine.java
[add] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/api/src/org/chromium/net/CronetProvider.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/api/src/org/chromium/net/ExperimentalCronetEngine.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/api/src/org/chromium/net/ICronetEngineBuilder.java
[delete] https://crrev.com/cdf4402738b87ca888eb12baa02d1b78bd396b4a/components/cronet/android/api/src/org/chromium/net/ImplLoader.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/api_version.txt
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/cronet_impl_common_proguard.cfg
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/cronet_impl_native_proguard.cfg
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/cronet_impl_platform_proguard.cfg
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/ImplVersion.template
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngine.java
[add] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngineBuilderImpl.java
[add] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java
[add] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java
[add] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/NativeCronetProvider.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java
[add] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/test/javatests/src/org/chromium/net/CronetEngineBuilderTest.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/test/proguard.cfg
[modify] https://crrev.com/12f8bc6c1361d506f51598da28696a6350b17954/components/cronet/android/test/smoketests/src/org/chromium/net/smoke/MissingNativeLibraryTest.java

Status: Fixed (was: Assigned)

Sign in to add a comment