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

Issue 2774363003: android: Java-based launcher thread (Closed)

Created:
3 years, 8 months ago by boliu
Modified:
3 years, 8 months ago
Reviewers:
gab, jam, agrieve
CC:
chromium-reviews, jam, agrieve+watch_chromium.org, darin-cc_chromium.org, vmpstr+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

android: Java-based launcher thread A major part of android's ChildProcessLauncher is implemented in Java so having an easy access to the launcher thread is important. Refactor JavaHandlerThread in base so that that java part can be created first, and then connected with native peer after consutrction. This is needed because the launcher thread can be used before native library is loaded. Add LauncherThread in content which is a simple wrapper around JavaHandlerThread. Then for android, override the launcher thread message loop. Note this means the launcher thread will no longer be joined on shutdown, but this is not a problem in practice since android never does clean shutdowns. Convert two cases of random background threads in ChildProcessLauncher to use LauncherThread. There are more in the future. BUG=701442 Review-Url: https://codereview.chromium.org/2774363003 Cr-Commit-Position: refs/heads/master@{#460509} Committed: https://chromium.googlesource.com/chromium/src/+/61687ec5b7b5dce1c9c86ae46f552c0c34473555

Patch Set 1 #

Total comments: 8

Patch Set 2 : add test, address comments #

Total comments: 2

Patch Set 3 : comment on test #

Total comments: 9

Patch Set 4 : gab review #

Total comments: 11

Patch Set 5 : gab review 2 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+283 lines, -42 lines) Patch
M base/BUILD.gn View 1 1 chunk +1 line, -0 lines 0 comments Download
M base/android/java/src/org/chromium/base/JavaHandlerThread.java View 1 4 chunks +25 lines, -7 lines 0 comments Download
M base/android/java_handler_thread.h View 1 chunk +6 lines, -1 line 0 comments Download
M base/android/java_handler_thread.cc View 2 chunks +12 lines, -8 lines 0 comments Download
M base/message_loop/message_loop_unittest.cc View 1 2 3 3 chunks +22 lines, -9 lines 0 comments Download
M base/test/BUILD.gn View 1 1 chunk +1 line, -0 lines 0 comments Download
A base/test/android/java/src/org/chromium/base/JavaHandlerThreadTest.java View 1 2 1 chunk +48 lines, -0 lines 0 comments Download
M base/test/android/java_handler_thread_for_testing.h View 1 2 3 4 2 chunks +14 lines, -2 lines 0 comments Download
M base/test/android/java_handler_thread_for_testing.cc View 1 2 3 3 chunks +24 lines, -3 lines 0 comments Download
M content/browser/BUILD.gn View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download
A content/browser/android/launcher_thread.h View 1 1 chunk +32 lines, -0 lines 0 comments Download
A content/browser/android/launcher_thread.cc View 1 1 chunk +27 lines, -0 lines 0 comments Download
M content/browser/browser_main_loop.cc View 1 2 3 4 8 chunks +23 lines, -6 lines 0 comments Download
M content/browser/browser_process_sub_thread.h View 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/browser_process_sub_thread.cc View 1 chunk +6 lines, -2 lines 0 comments Download
M content/public/android/BUILD.gn View 1 2 3 2 chunks +2 lines, -0 lines 0 comments Download
M content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java View 1 4 chunks +3 lines, -4 lines 0 comments Download
A content/public/android/java/src/org/chromium/content/browser/LauncherThread.java View 1 1 chunk +33 lines, -0 lines 0 comments Download

Messages

Total messages: 34 (16 generated)
boliu
+agreive for an overall first look.. and also a question about base tests. So I ...
3 years, 8 months ago (2017-03-28 05:05:36 UTC) #6
boliu
On 2017/03/28 05:05:36, boliu wrote: > +agreive for an overall first look.. and also a ...
3 years, 8 months ago (2017-03-28 18:00:42 UTC) #7
agrieve
Just nits for base/ Whatever you decide, lgtm. https://codereview.chromium.org/2774363003/diff/1/base/android/java/src/org/chromium/base/JavaHandlerThread.java File base/android/java/src/org/chromium/base/JavaHandlerThread.java (right): https://codereview.chromium.org/2774363003/diff/1/base/android/java/src/org/chromium/base/JavaHandlerThread.java#newcode37 base/android/java/src/org/chromium/base/JavaHandlerThread.java:37: public ...
3 years, 8 months ago (2017-03-28 19:59:33 UTC) #8
boliu
https://codereview.chromium.org/2774363003/diff/1/base/android/java/src/org/chromium/base/JavaHandlerThread.java File base/android/java/src/org/chromium/base/JavaHandlerThread.java (right): https://codereview.chromium.org/2774363003/diff/1/base/android/java/src/org/chromium/base/JavaHandlerThread.java#newcode37 base/android/java/src/org/chromium/base/JavaHandlerThread.java:37: public Looper getLooper() { On 2017/03/28 19:59:32, agrieve wrote: ...
3 years, 8 months ago (2017-03-28 23:30:52 UTC) #9
boliu
PTAL agrieve: Added tests in base too +gab for stamping non-android base changes +jam for ...
3 years, 8 months ago (2017-03-28 23:32:33 UTC) #11
agrieve
base tests lgtm https://codereview.chromium.org/2774363003/diff/20001/base/test/android/java/src/org/chromium/base/JavaHandlerThreadTest.java File base/test/android/java/src/org/chromium/base/JavaHandlerThreadTest.java (right): https://codereview.chromium.org/2774363003/diff/20001/base/test/android/java/src/org/chromium/base/JavaHandlerThreadTest.java#newcode34 base/test/android/java/src/org/chromium/base/JavaHandlerThreadTest.java:34: handler.post(runnable); nit: might be good to ...
3 years, 8 months ago (2017-03-29 00:05:56 UTC) #15
boliu
https://codereview.chromium.org/2774363003/diff/20001/base/test/android/java/src/org/chromium/base/JavaHandlerThreadTest.java File base/test/android/java/src/org/chromium/base/JavaHandlerThreadTest.java (right): https://codereview.chromium.org/2774363003/diff/20001/base/test/android/java/src/org/chromium/base/JavaHandlerThreadTest.java#newcode34 base/test/android/java/src/org/chromium/base/JavaHandlerThreadTest.java:34: handler.post(runnable); On 2017/03/29 00:05:56, agrieve wrote: > nit: might ...
3 years, 8 months ago (2017-03-29 01:48:49 UTC) #16
jam
lgtm
3 years, 8 months ago (2017-03-29 14:48:58 UTC) #17
gab
https://codereview.chromium.org/2774363003/diff/40001/base/message_loop/message_loop_unittest.cc File base/message_loop/message_loop_unittest.cc (right): https://codereview.chromium.org/2774363003/diff/40001/base/message_loop/message_loop_unittest.cc#newcode102 base/message_loop/message_loop_unittest.cc:102: if (init_java_first) { I'm not clear on difference? The ...
3 years, 8 months ago (2017-03-29 17:19:53 UTC) #18
boliu
gab ptal sorry had a rebase in between patch sets, but additional diff not too ...
3 years, 8 months ago (2017-03-29 18:02:40 UTC) #20
gab
lgtm w/ comments I guess this will make it harder to deprecate PROCESS_LAUNCHER thread in ...
3 years, 8 months ago (2017-03-29 18:14:04 UTC) #21
boliu
https://codereview.chromium.org/2774363003/diff/60001/base/test/android/java_handler_thread_for_testing.h File base/test/android/java_handler_thread_for_testing.h (right): https://codereview.chromium.org/2774363003/diff/60001/base/test/android/java_handler_thread_for_testing.h#newcode44 base/test/android/java_handler_thread_for_testing.h:44: static std::unique_ptr<JavaHandlerThreadForTesting> CreateJavaFirst( On 2017/03/29 18:14:04, gab wrote: > ...
3 years, 8 months ago (2017-03-29 18:30:07 UTC) #22
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/2774363003/80001
3 years, 8 months ago (2017-03-29 18:31:24 UTC) #25
gab
https://codereview.chromium.org/2774363003/diff/60001/content/browser/browser_main_loop.cc File content/browser/browser_main_loop.cc (right): https://codereview.chromium.org/2774363003/diff/60001/content/browser/browser_main_loop.cc#newcode1086 content/browser/browser_main_loop.cc:1086: if (redirect_nonUInonIO_browser_threads) { Actually can't we just change this ...
3 years, 8 months ago (2017-03-29 18:38:06 UTC) #26
boliu
https://codereview.chromium.org/2774363003/diff/60001/content/browser/browser_main_loop.cc File content/browser/browser_main_loop.cc (right): https://codereview.chromium.org/2774363003/diff/60001/content/browser/browser_main_loop.cc#newcode1086 content/browser/browser_main_loop.cc:1086: if (redirect_nonUInonIO_browser_threads) { On 2017/03/29 18:38:06, gab wrote: > ...
3 years, 8 months ago (2017-03-29 18:42:20 UTC) #28
gab
https://codereview.chromium.org/2774363003/diff/60001/content/browser/browser_main_loop.cc File content/browser/browser_main_loop.cc (right): https://codereview.chromium.org/2774363003/diff/60001/content/browser/browser_main_loop.cc#newcode1086 content/browser/browser_main_loop.cc:1086: if (redirect_nonUInonIO_browser_threads) { On 2017/03/29 18:42:20, boliu wrote: > ...
3 years, 8 months ago (2017-03-29 18:46:53 UTC) #29
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/2774363003/80001
3 years, 8 months ago (2017-03-29 18:48:23 UTC) #31
commit-bot: I haz the power
3 years, 8 months ago (2017-03-29 20:10:25 UTC) #34
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as
https://chromium.googlesource.com/chromium/src/+/61687ec5b7b5dce1c9c86ae46f55...

Powered by Google App Engine
This is Rietveld 408576698