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

Issue 2514783002: [Cronet] Add callback wrapper classes to enforce API version checking. (Closed)

Created:
4 years, 1 month ago by pauljensen
Modified:
4 years ago
Reviewers:
kapishnikov
CC:
chromium-reviews, cbentzel+watch_chromium.org, agrieve+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[Cronet] Add callback wrapper classes to enforce API version checking. Wrap Cronet callback/listener classes in wrapper classes whose job it is to enforce that callbacks added in later versions are not called when the client API is of an older version. For now all wrapper classes simply pass through all the callbacks as we're still working on the first version of the API, which we shall support indefinitly. A side benefit is this facilitates only passing implementation, not API, classes to JNI functions like nativeGetStatus. This is required to support cases where the Cronet API may be repackaged into another class at the Java layer, but not at the JNI layer. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester BUG=629299 R=kapishnikov Committed: https://crrev.com/45280ea947ff1c2db6fbbd2d84b72472f87a7891 Cr-Commit-Position: refs/heads/master@{#434891}

Patch Set 1 #

Patch Set 2 : forgot file #

Patch Set 3 : make constructors public, adjust copyright date #

Total comments: 20

Patch Set 4 : rebase #

Patch Set 5 : delegate equals() and hashCode() to wrapped listeners #

Patch Set 6 : rebase #

Patch Set 7 : fix delegating equals #

Total comments: 3

Patch Set 8 : rebase #

Patch Set 9 : fix JNIAdditionalImport #

Messages

Total messages: 26 (6 generated)
pauljensen
Andrei, WDYT? This avoids all calls to Cronet API classes from Cronet implementation with the ...
4 years, 1 month ago (2016-11-18 14:57:41 UTC) #1
kapishnikov
On 2016/11/18 14:57:41, pauljensen wrote: > Andrei, WDYT? > > This avoids all calls to ...
4 years, 1 month ago (2016-11-18 15:17:20 UTC) #2
pauljensen
On 2016/11/18 15:17:20, kapishnikov wrote: > It looks good. What do you think if we ...
4 years, 1 month ago (2016-11-18 16:28:19 UTC) #3
kapishnikov
On 2016/11/18 16:28:19, pauljensen wrote: > On 2016/11/18 15:17:20, kapishnikov wrote: > > It looks ...
4 years, 1 month ago (2016-11-18 16:32:46 UTC) #4
kapishnikov
https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java File components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java (right): https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java#newcode90 components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java:90: private VersionSafeCallbacks.LibraryLoader mLibraryLoader; Can we keep the old CronetEngine.Builder.LibraryLoader ...
4 years, 1 month ago (2016-11-18 16:32:57 UTC) #5
pauljensen
https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java File components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java (right): https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java#newcode90 components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java:90: private VersionSafeCallbacks.LibraryLoader mLibraryLoader; On 2016/11/18 16:32:57, kapishnikov wrote: > ...
4 years, 1 month ago (2016-11-18 19:18:07 UTC) #6
kapishnikov
https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java File components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java (right): https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java#newcode90 components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java:90: private VersionSafeCallbacks.LibraryLoader mLibraryLoader; On 2016/11/18 19:18:07, pauljensen wrote: > ...
4 years, 1 month ago (2016-11-18 19:39:16 UTC) #7
kapishnikov
Two comments; otherwise the change looks good to me. https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java (right): https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java#newcode139 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java:139: ...
4 years, 1 month ago (2016-11-18 20:11:18 UTC) #8
pauljensen
https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java (right): https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java#newcode139 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java:139: private final Map<RequestFinishedInfo.Listener, On 2016/11/18 20:11:18, kapishnikov wrote: > ...
4 years, 1 month ago (2016-11-19 01:12:19 UTC) #9
kapishnikov
https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java (right): https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java#newcode139 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java:139: private final Map<RequestFinishedInfo.Listener, On 2016/11/19 01:12:18, pauljensen wrote: > ...
4 years, 1 month ago (2016-11-21 17:35:23 UTC) #10
pauljensen
https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java (right): https://codereview.chromium.org/2514783002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java#newcode139 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java:139: private final Map<RequestFinishedInfo.Listener, On 2016/11/21 17:35:22, kapishnikov wrote: > ...
4 years, 1 month ago (2016-11-22 12:38:03 UTC) #11
pauljensen
Friendly ping.
4 years ago (2016-11-28 14:03:44 UTC) #12
kapishnikov
https://codereview.chromium.org/2514783002/diff/120001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java (right): https://codereview.chromium.org/2514783002/diff/120001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java#newcode130 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java:130: private final Map<RequestFinishedInfo.Listener, Why can't we use List here ...
4 years ago (2016-11-28 17:38:59 UTC) #13
pauljensen
https://codereview.chromium.org/2514783002/diff/120001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java (right): https://codereview.chromium.org/2514783002/diff/120001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java#newcode130 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java:130: private final Map<RequestFinishedInfo.Listener, On 2016/11/28 17:38:59, kapishnikov wrote: > ...
4 years ago (2016-11-28 18:23:43 UTC) #14
kapishnikov
Thanks for the explanation. LGTM https://codereview.chromium.org/2514783002/diff/120001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java (right): https://codereview.chromium.org/2514783002/diff/120001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java#newcode130 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java:130: private final Map<RequestFinishedInfo.Listener, On ...
4 years ago (2016-11-28 19:30:18 UTC) #15
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/2514783002/140001
4 years ago (2016-11-28 20:50:29 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/313805)
4 years ago (2016-11-28 22:41:33 UTC) #19
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/2514783002/160001
4 years ago (2016-11-29 02:50:16 UTC) #22
commit-bot: I haz the power
Committed patchset #9 (id:160001)
4 years ago (2016-11-29 04:26:14 UTC) #24
commit-bot: I haz the power
4 years ago (2016-11-29 04:28:54 UTC) #26
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/45280ea947ff1c2db6fbbd2d84b72472f87a7891
Cr-Commit-Position: refs/heads/master@{#434891}

Powered by Google App Engine
This is Rietveld 408576698