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

Issue 2283243002: Allow direct executors in cronet. (Closed)

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

Description

Allow direct executors in cronet. Direct executors are banned by default - if cronet detects an executor with this behavior, it will fail the request immediately. Callers can disable this enforcement by using a new method on UrlRequest.Builder. Callers can use directexecutor to get finer grained control over their threading behavior - lightweight callbacks won't necessarily need to hop back and forth between threads. BUG=566195 Committed: https://crrev.com/813945b2126b168e154d0f54c70bae7e77f05add Cr-Commit-Position: refs/heads/master@{#416287}

Patch Set 1 #

Total comments: 45

Patch Set 2 : Addressed comments #

Total comments: 1

Patch Set 3 : Addressed comments, unified request failure logic in CronetUrlRequest #

Total comments: 4

Patch Set 4 : Refactor DirectPreventingExecutor, and fix closing logic #

Total comments: 6

Patch Set 5 : Added test for context shutdown. #

Patch Set 6 : Sync and rebase #

Patch Set 7 : Improve thread checking #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+417 lines, -80 lines) Patch
M components/cronet/android/BUILD.gn View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M components/cronet/android/api/src/org/chromium/net/CronetEngine.java View 3 chunks +4 lines, -2 lines 0 comments Download
A components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java View 1 chunk +17 lines, -0 lines 0 comments Download
M components/cronet/android/api/src/org/chromium/net/JavaCronetEngine.java View 1 chunk +3 lines, -2 lines 0 comments Download
M components/cronet/android/api/src/org/chromium/net/JavaUrlRequest.java View 1 2 3 4 5 17 chunks +107 lines, -27 lines 0 comments Download
M components/cronet/android/api/src/org/chromium/net/UrlRequest.java View 1 2 3 3 chunks +18 lines, -1 line 0 comments Download
M components/cronet/android/cronet_upload_data_stream_adapter.cc View 2 chunks +0 lines, -2 lines 0 comments Download
M components/cronet/android/cronet_url_request_adapter.cc View 1 3 chunks +0 lines, -3 lines 0 comments Download
M components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java View 1 2 3 7 chunks +25 lines, -3 lines 0 comments Download
M components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java View 1 2 3 11 chunks +36 lines, -25 lines 0 comments Download
M components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java View 1 2 3 7 chunks +22 lines, -7 lines 0 comments Download
M components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java View 1 2 3 4 2 chunks +57 lines, -0 lines 0 comments Download
M components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java View 1 2 3 4 5 2 chunks +101 lines, -0 lines 0 comments Download
M components/cronet/android/test/javatests/src/org/chromium/net/TestUploadDataProvider.java View 1 chunk +1 line, -1 line 0 comments Download
M components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java View 1 2 3 4 5 6 9 chunks +25 lines, -7 lines 2 comments Download

Messages

Total messages: 29 (8 generated)
Charles
4 years, 3 months ago (2016-08-29 15:47:25 UTC) #3
mef
This is part one, to be continued. :) https://codereview.chromium.org/2283243002/diff/1/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/2283243002/diff/1/components/cronet/android/api/src/org/chromium/net/CronetEngine.java#newcode859 components/cronet/android/api/src/org/chromium/net/CronetEngine.java:859: boolean ...
4 years, 3 months ago (2016-08-30 16:29:45 UTC) #5
mef
https://codereview.chromium.org/2283243002/diff/1/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java (right): https://codereview.chromium.org/2283243002/diff/1/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java#newcode377 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java:377: failWithException( I think this could cause destroyRequestAdapter() to be ...
4 years, 3 months ago (2016-08-30 17:55:47 UTC) #6
Charles
PTAL https://codereview.chromium.org/2283243002/diff/1/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/2283243002/diff/1/components/cronet/android/api/src/org/chromium/net/CronetEngine.java#newcode859 components/cronet/android/api/src/org/chromium/net/CronetEngine.java:859: boolean disableCache, boolean disableConnectionMigration, boolean allowDirectExecutor); On 2016/08/30 ...
4 years, 3 months ago (2016-08-30 20:11:06 UTC) #7
mef
https://codereview.chromium.org/2283243002/diff/1/components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java File components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java (right): https://codereview.chromium.org/2283243002/diff/1/components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java#newcode15 components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java:15: super("Inline execution is prohibited for this request"); On 2016/08/30 ...
4 years, 3 months ago (2016-08-31 17:26:53 UTC) #8
mef
looks good, just one more nit. https://codereview.chromium.org/2283243002/diff/1/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java (right): https://codereview.chromium.org/2283243002/diff/1/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java#newcode762 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java:762: throw new InlineExecutionProhibitedException(); ...
4 years, 3 months ago (2016-08-31 18:30:11 UTC) #9
Charles
PTAL https://codereview.chromium.org/2283243002/diff/1/components/cronet/android/api/src/org/chromium/net/JavaUrlRequest.java File components/cronet/android/api/src/org/chromium/net/JavaUrlRequest.java (right): https://codereview.chromium.org/2283243002/diff/1/components/cronet/android/api/src/org/chromium/net/JavaUrlRequest.java#newcode368 components/cronet/android/api/src/org/chromium/net/JavaUrlRequest.java:368: mUserExecutor.execute(uploadErrorSetting(runnable)); On 2016/08/31 17:26:52, mef wrote: > On ...
4 years, 3 months ago (2016-08-31 19:08:36 UTC) #10
mef
couple more nits. https://codereview.chromium.org/2283243002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java (right): https://codereview.chromium.org/2283243002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java#newcode375 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java:375: // direct execution not permitted), or ...
4 years, 3 months ago (2016-08-31 20:24:25 UTC) #11
Charles
All tests passing! https://codereview.chromium.org/2283243002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java File components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java (right): https://codereview.chromium.org/2283243002/diff/40001/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java#newcode375 components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java:375: // direct execution not permitted), or ...
4 years, 3 months ago (2016-08-31 22:36:41 UTC) #12
mef
Looks much cleaner now! https://codereview.chromium.org/2283243002/diff/60001/components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java File components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java (right): https://codereview.chromium.org/2283243002/diff/60001/components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java#newcode13 components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java:13: public final class InlineExecutionProhibitedException extends ...
4 years, 3 months ago (2016-09-01 15:17:18 UTC) #13
Charles
Test added. https://codereview.chromium.org/2283243002/diff/60001/components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java File components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java (right): https://codereview.chromium.org/2283243002/diff/60001/components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java#newcode13 components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java:13: public final class InlineExecutionProhibitedException extends RejectedExecutionException { ...
4 years, 3 months ago (2016-09-01 16:45:24 UTC) #14
mef
lgtm, thanks a lot!
4 years, 3 months ago (2016-09-01 18:31:49 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/2283243002/80001
4 years, 3 months ago (2016-09-01 18:39:23 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: android_arm64_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_arm64_dbg_recipe/builds/122379) android_compile_dbg on master.tryserver.chromium.android (JOB_FAILED, ...
4 years, 3 months ago (2016-09-01 18:43:01 UTC) #19
mef
On 2016/09/01 18:43:01, commit-bot: I haz the power wrote: > Try jobs failed on following ...
4 years, 3 months ago (2016-09-01 18:59:42 UTC) #20
mef
Ah, nice! https://codereview.chromium.org/2283243002/diff/120001/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java File components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java (right): https://codereview.chromium.org/2283243002/diff/120001/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java#newcode245 components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java:245: checkExecutorThread(); Can this be just if (!error.getCause() ...
4 years, 3 months ago (2016-09-02 15:01:47 UTC) #21
Charles
https://codereview.chromium.org/2283243002/diff/120001/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java File components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java (right): https://codereview.chromium.org/2283243002/diff/120001/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java#newcode245 components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java:245: checkExecutorThread(); On 2016/09/02 15:01:47, mef wrote: > Can this ...
4 years, 3 months ago (2016-09-02 15:03:30 UTC) #22
mef
Thanks for explanation, lgtm
4 years, 3 months ago (2016-09-02 15:25:35 UTC) #23
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/2283243002/120001
4 years, 3 months ago (2016-09-02 15:42:10 UTC) #25
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 3 months ago (2016-09-02 17:11:34 UTC) #27
commit-bot: I haz the power
4 years, 3 months ago (2016-09-02 17:14:15 UTC) #29
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/813945b2126b168e154d0f54c70bae7e77f05add
Cr-Commit-Position: refs/heads/master@{#416287}

Powered by Google App Engine
This is Rietveld 408576698