Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(451)

Issue 2626523003: Cronet: a framework for providing alternative Cronet implementations (Closed)

Created:
3 years, 11 months ago by kapishnikov
Modified:
3 years, 10 months ago
Reviewers:
pauljensen, mef
CC:
chromium-reviews, cbentzel+watch_chromium.org, agrieve+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

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. BUG=686774 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester Review-Url: https://codereview.chromium.org/2626523003 Cr-Commit-Position: refs/heads/master@{#445561} Committed: https://chromium.googlesource.com/chromium/src/+/640977d34b03a64f019b3b9f25fb6e15820914a6

Patch Set 1 #

Patch Set 2 : Added context to getName() & getVersion(). #

Total comments: 26

Patch Set 3 : Make Providers to return real builders & get rid of legacy mode #

Patch Set 4 : Resolved rebase conflicts #

Patch Set 5 : Addressed comments and fixed tests #

Patch Set 6 : Changed the version templates to expose static methods instead of static fields #

Patch Set 7 : Updated api.txt #

Total comments: 57

Patch Set 8 : Default provider selection based on version and type + addressed comments #

Patch Set 9 : Resolved rebase conflicts #

Patch Set 10 : Fixed JavaDoc links #

Total comments: 74

Patch Set 11 : Addressed Misha's comments, class renaming and extra javadoc #

Patch Set 12 : Addressed Paul's comments #

Patch Set 13 : Fixed api.txt #

Total comments: 16

Patch Set 14 : Addressed Paul's comments #

Total comments: 22

Patch Set 15 : Changed ordering of final fields #

Patch Set 16 : Proguard changes and javadoc #

Total comments: 2

Patch Set 17 : Javadoc fixes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+808 lines, -189 lines) Patch
M components/cronet/android/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +17 lines, -2 lines 0 comments Download
M components/cronet/android/api.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 chunks +17 lines, -7 lines 0 comments Download
M components/cronet/android/api/src/org/chromium/net/ApiVersion.template View 1 2 3 4 5 1 chunk +21 lines, -3 lines 0 comments Download
M components/cronet/android/api/src/org/chromium/net/CronetEngine.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +118 lines, -1 line 0 comments Download
A components/cronet/android/api/src/org/chromium/net/CronetProvider.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +211 lines, -0 lines 0 comments Download
M components/cronet/android/api/src/org/chromium/net/ExperimentalCronetEngine.java View 1 2 2 chunks +13 lines, -21 lines 0 comments Download
M components/cronet/android/api/src/org/chromium/net/ICronetEngineBuilder.java View 1 2 1 chunk +0 lines, -1 line 0 comments Download
D components/cronet/android/api/src/org/chromium/net/ImplLoader.java View 1 chunk +0 lines, -39 lines 0 comments Download
M components/cronet/android/api_version.txt View 1 2 14 15 1 chunk +1 line, -1 line 0 comments Download
M components/cronet/android/cronet_impl_common_proguard.cfg View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -9 lines 0 comments Download
M components/cronet/android/cronet_impl_native_proguard.cfg View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -0 lines 0 comments Download
M components/cronet/android/cronet_impl_platform_proguard.cfg View 1 2 1 chunk +3 lines, -4 lines 0 comments Download
M components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java View 1 2 3 4 9 chunks +2 lines, -77 lines 0 comments Download
M components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java View 1 2 3 4 5 1 chunk +4 lines, -4 lines 0 comments Download
M components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M components/cronet/android/java/src/org/chromium/net/impl/ImplVersion.template View 1 2 3 4 5 1 chunk +21 lines, -3 lines 0 comments Download
M components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngine.java View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
A components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngineBuilderImpl.java View 1 2 3 4 5 6 7 8 9 10 1 chunk +32 lines, -0 lines 0 comments Download
A components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +48 lines, -0 lines 0 comments Download
A components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java View 1 2 3 4 5 6 7 8 9 10 1 chunk +40 lines, -0 lines 0 comments Download
A components/cronet/android/java/src/org/chromium/net/impl/NativeCronetProvider.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +50 lines, -0 lines 0 comments Download
M components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
A components/cronet/android/test/javatests/src/org/chromium/net/CronetEngineBuilderTest.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +146 lines, -0 lines 0 comments Download
M components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +12 lines, -3 lines 0 comments Download
M components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java View 1 2 3 4 5 6 7 4 chunks +8 lines, -5 lines 0 comments Download
M components/cronet/android/test/proguard.cfg View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +6 lines, -0 lines 0 comments Download
M components/cronet/android/test/smoketests/src/org/chromium/net/smoke/MissingNativeLibraryTest.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +30 lines, -6 lines 0 comments Download

Messages

Total messages: 38 (14 generated)
kapishnikov
PTAL
3 years, 11 months ago (2017-01-10 20:01:56 UTC) #3
mef
https://codereview.chromium.org/2626523003/diff/20001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java File components/cronet/android/api/src/org/chromium/net/CronetEngine.java (right): https://codereview.chromium.org/2626523003/diff/20001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java#newcode513 components/cronet/android/api/src/org/chromium/net/CronetEngine.java:513: CronetImplProvider provider; Should it call addCronetProviderImplByClassName(className) at this point? ...
3 years, 11 months ago (2017-01-10 23:30:03 UTC) #4
pauljensen
https://codereview.chromium.org/2626523003/diff/20001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java File components/cronet/android/api/src/org/chromium/net/CronetEngine.java (right): https://codereview.chromium.org/2626523003/diff/20001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java#newcode29 components/cronet/android/api/src/org/chromium/net/CronetEngine.java:29: static final String TAG = "CronetApi"; private https://codereview.chromium.org/2626523003/diff/20001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java#newcode29 components/cronet/android/api/src/org/chromium/net/CronetEngine.java:29: ...
3 years, 11 months ago (2017-01-11 16:48:13 UTC) #5
kapishnikov
Thanks for the review! I have addressed the comments. PTAL. The next PS will contain ...
3 years, 11 months ago (2017-01-17 22:29:20 UTC) #6
pauljensen
https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java File components/cronet/android/api/src/org/chromium/net/CronetEngine.java (right): https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java#newcode74 components/cronet/android/api/src/org/chromium/net/CronetEngine.java:74: } nit: how about we get rid of this ...
3 years, 11 months ago (2017-01-18 17:03:05 UTC) #7
mef
looks pretty good to me. https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java File components/cronet/android/api/src/org/chromium/net/CronetEngine.java (right): https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java#newcode89 components/cronet/android/api/src/org/chromium/net/CronetEngine.java:89: + " The list ...
3 years, 11 months ago (2017-01-18 20:57:54 UTC) #8
kapishnikov
Thanks for the another review. I have addressed the comments and added the logic to ...
3 years, 11 months ago (2017-01-19 01:25:25 UTC) #9
mef
https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetProviders.java File components/cronet/android/api/src/org/chromium/net/CronetProviders.java (right): https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetProviders.java#newcode65 components/cronet/android/api/src/org/chromium/net/CronetProviders.java:65: return providers; On 2017/01/19 01:25:24, kapishnikov wrote: > On ...
3 years, 11 months ago (2017-01-19 22:57:47 UTC) #10
kapishnikov
https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetProviders.java File components/cronet/android/api/src/org/chromium/net/CronetProviders.java (right): https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetProviders.java#newcode65 components/cronet/android/api/src/org/chromium/net/CronetProviders.java:65: return providers; On 2017/01/19 22:57:46, mef wrote: > On ...
3 years, 11 months ago (2017-01-20 16:21:54 UTC) #11
pauljensen
https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetProviders.java File components/cronet/android/api/src/org/chromium/net/CronetProviders.java (right): https://codereview.chromium.org/2626523003/diff/120001/components/cronet/android/api/src/org/chromium/net/CronetProviders.java#newcode65 components/cronet/android/api/src/org/chromium/net/CronetProviders.java:65: return providers; On 2017/01/19 01:25:24, kapishnikov wrote: > On ...
3 years, 11 months ago (2017-01-20 17:13:36 UTC) #12
kapishnikov
Paul, thanks for the comments. I addressed most of them but some require further discussion. ...
3 years, 11 months ago (2017-01-20 21:48:39 UTC) #13
pauljensen
Should we @hide CronetProvider(s)? https://codereview.chromium.org/2626523003/diff/180001/components/cronet/android/api/src/org/chromium/net/CronetProviders.java File components/cronet/android/api/src/org/chromium/net/CronetProviders.java (right): https://codereview.chromium.org/2626523003/diff/180001/components/cronet/android/api/src/org/chromium/net/CronetProviders.java#newcode27 components/cronet/android/api/src/org/chromium/net/CronetProviders.java:27: * Name of the platform ...
3 years, 11 months ago (2017-01-23 14:44:29 UTC) #14
kapishnikov
1. Renamed provider names to ROVIDER_NAME_FALLBACK & PROVIDER_NAME_APP_PACKAGED. 2. Got rid of CronetProviders class and ...
3 years, 11 months ago (2017-01-23 18:16:53 UTC) #15
pauljensen
https://codereview.chromium.org/2626523003/diff/260001/components/cronet/android/api/src/org/chromium/net/CronetProvider.java File components/cronet/android/api/src/org/chromium/net/CronetProvider.java (right): https://codereview.chromium.org/2626523003/diff/260001/components/cronet/android/api/src/org/chromium/net/CronetProvider.java#newcode43 components/cronet/android/api/src/org/chromium/net/CronetProvider.java:43: public static final String PROVIDER_NAME_APP_PACKAGED = "App-Packaged-Cronet-Provider"; can we ...
3 years, 11 months ago (2017-01-23 18:28:58 UTC) #16
kapishnikov
https://codereview.chromium.org/2626523003/diff/260001/components/cronet/android/api/src/org/chromium/net/CronetProvider.java File components/cronet/android/api/src/org/chromium/net/CronetProvider.java (right): https://codereview.chromium.org/2626523003/diff/260001/components/cronet/android/api/src/org/chromium/net/CronetProvider.java#newcode43 components/cronet/android/api/src/org/chromium/net/CronetProvider.java:43: public static final String PROVIDER_NAME_APP_PACKAGED = "App-Packaged-Cronet-Provider"; On 2017/01/23 ...
3 years, 11 months ago (2017-01-23 18:56:14 UTC) #17
pauljensen
LGTM modulo comments. specify BUG=629299 https://codereview.chromium.org/2626523003/diff/260001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java File components/cronet/android/api/src/org/chromium/net/CronetEngine.java (right): https://codereview.chromium.org/2626523003/diff/260001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java#newcode354 components/cronet/android/api/src/org/chromium/net/CronetEngine.java:354: // The platform provider ...
3 years, 11 months ago (2017-01-23 19:42:22 UTC) #18
pauljensen
AFAIK this needs to be committed (i.e. all the way through CQ) by 7pm to ...
3 years, 11 months ago (2017-01-23 21:59:08 UTC) #21
kapishnikov
https://codereview.chromium.org/2626523003/diff/260001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java File components/cronet/android/api/src/org/chromium/net/CronetEngine.java (right): https://codereview.chromium.org/2626523003/diff/260001/components/cronet/android/api/src/org/chromium/net/CronetEngine.java#newcode354 components/cronet/android/api/src/org/chromium/net/CronetEngine.java:354: // The platform provider should always be at the ...
3 years, 11 months ago (2017-01-23 22:14:56 UTC) #22
mef
On 2017/01/23 21:59:08, pauljensen wrote: > AFAIK this needs to be committed (i.e. all the ...
3 years, 11 months ago (2017-01-23 22:15:36 UTC) #23
mef
lgtm https://codereview.chromium.org/2626523003/diff/300001/components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java File components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java (right): https://codereview.chromium.org/2626523003/diff/300001/components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java#newcode16 components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java:16: * for building the Java-base implementation of {@link ...
3 years, 11 months ago (2017-01-23 22:38:56 UTC) #26
kapishnikov
Submitting. https://codereview.chromium.org/2626523003/diff/300001/components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java File components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java (right): https://codereview.chromium.org/2626523003/diff/300001/components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java#newcode16 components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java:16: * for building the Java-base implementation of {@link ...
3 years, 11 months ago (2017-01-23 22:42:26 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2626523003/320001
3 years, 11 months ago (2017-01-23 22:43:24 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2626523003/320001
3 years, 11 months ago (2017-01-23 22:54:50 UTC) #34
commit-bot: I haz the power
3 years, 11 months ago (2017-01-24 00:29:53 UTC) #37
Message was sent while issue was closed.
Committed patchset #17 (id:320001) as
https://chromium.googlesource.com/chromium/src/+/640977d34b03a64f019b3b9f25fb...

Powered by Google App Engine
This is Rietveld 408576698