Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Issue 702316 Move Android's ChildProcessLauncher from content/ to base/
Starred by 2 users Project Member Reported by jcivelli@chromium.org, Mar 16 Back to list
Status: Untriaged
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment
This bug tracks the effort for moving ChildProcessLauncher on Android to base/.
Some of the motivations:
- base/test/android uses MultiprocessTestClientLauncher which duplicates what's done in ChildProcessLauncher. It could use ChildProcessLauncher when it's moved to base.
- as part of the servicification effort the Mojo service manager will be used to start all child processes and cannot depend on content/
 
Cc: yfried...@chromium.org mariakhomenko@chromium.org agrieve@chromium.org
Labels: OS-Android
will pull out things that don't belong in base, and then move pieces when they no longer depend on things in content. no code duplication here. semi-orthogonal to all the refactor stuff I want to do.
Project Member Comment 2 by bugdroid1@chromium.org, Mar 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9796a271448f237118bbc54316c664a678ada68b

commit 9796a271448f237118bbc54316c664a678ada68b
Author: jcivelli <jcivelli@chromium.org>
Date: Fri Mar 17 03:45:11 2017

Abstracting parameters passed to child processes on Android.

Making the parameters passed to a child process part of a Bundle as part
of the effort to move child process launcher code to base/.

BUG=702316

Review-Url: https://codereview.chromium.org/2756053002
Cr-Commit-Position: refs/heads/master@{#457679}

[modify] https://crrev.com/9796a271448f237118bbc54316c664a678ada68b/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java
[modify] https://crrev.com/9796a271448f237118bbc54316c664a678ada68b/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java
[modify] https://crrev.com/9796a271448f237118bbc54316c664a678ada68b/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java
[modify] https://crrev.com/9796a271448f237118bbc54316c664a678ada68b/content/public/android/java/src/org/chromium/content/browser/ChildProcessConstants.java
[modify] https://crrev.com/9796a271448f237118bbc54316c664a678ada68b/content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java
[modify] https://crrev.com/9796a271448f237118bbc54316c664a678ada68b/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java

Project Member Comment 4 by bugdroid1@chromium.org, Mar 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d62ca1238e8c477dfbbbe928febfa67dd19bfe35

commit d62ca1238e8c477dfbbbe928febfa67dd19bfe35
Author: jcivelli <jcivelli@chromium.org>
Date: Tue Mar 21 21:54:43 2017

Moving FileDescriptorInfo from content/ to base/ and making base
multiprocess test client use this class (instead of their own version).

BUG=702316

Review-Url: https://codereview.chromium.org/2765453004
Cr-Commit-Position: refs/heads/master@{#458568}

[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/BUILD.gn
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/android/OWNERS
[rename] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/android/java/src/org/chromium/base/process_launcher/FileDescriptorInfo.aidl
[add] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/android/java/src/org/chromium/base/process_launcher/FileDescriptorInfo.java
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/android/java/src/org/chromium/base/process_launcher/OWNERS
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/test/BUILD.gn
[delete] https://crrev.com/a0a1b3df67b6a958b8dd7007cc8edcae18a4d9bb/base/test/android/java/src/org/chromium/base/FileDescriptorInfo.java
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/test/android/java/src/org/chromium/base/ITestClient.aidl
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/test/android/java/src/org/chromium/base/MultiprocessTestClientLauncher.java
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/test/android/java/src/org/chromium/base/MultiprocessTestClientService.java
[add] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/base/test/android/java/src/org/chromium/base/OWNERS
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/content/browser/child_process_launcher_helper_android.cc
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/content/public/android/BUILD.gn
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java
[delete] https://crrev.com/a0a1b3df67b6a958b8dd7007cc8edcae18a4d9bb/content/public/android/java/src/org/chromium/content/common/FileDescriptorInfo.java
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/content/public/android/javatests/src/org/chromium/content/browser/ChildProcessLauncherTest.java
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/content/public/android/junit/src/org/chromium/content/browser/BindingManagerImplTest.java
[modify] https://crrev.com/d62ca1238e8c477dfbbbe928febfa67dd19bfe35/content/shell/android/shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestHelperService.java

Project Member Comment 5 by bugdroid1@chromium.org, Mar 22
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/27d06a66030cece252b659e1eca0be955d4d7475

commit 27d06a66030cece252b659e1eca0be955d4d7475
Author: jcivelli <jcivelli@chromium.org>
Date: Wed Mar 22 01:40:37 2017

Making callbacks in Android ChildProcessLauncher generic.

As part of the effort of moving ChildProcessLauncher.java to base,
making the callbacks passed to the child processes generic (an IBinder)
and moving the content ones to a specific content class.

BUG=702316

Review-Url: https://codereview.chromium.org/2760093002
Cr-Commit-Position: refs/heads/master@{#458612}

[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/browser/BUILD.gn
[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/browser/android/browser_jni_registrar.cc
[add] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/browser/android/gpu_process_callback.cc
[add] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/browser/android/gpu_process_callback.h
[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/browser/child_process_launcher_helper_android.cc
[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/public/android/BUILD.gn
[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java
[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java
[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java
[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java
[add] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/public/android/java/src/org/chromium/content/browser/GpuProcessCallback.java
[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl
[rename] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/public/android/java/src/org/chromium/content/common/IGpuProcessCallback.aidl
[modify] https://crrev.com/27d06a66030cece252b659e1eca0be955d4d7475/content/public/android/junit/src/org/chromium/content/browser/BindingManagerImplTest.java

Project Member Comment 6 by bugdroid1@chromium.org, Mar 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ce6ef2968b6785ccc8c29bf8b5954b5242845552

commit ce6ef2968b6785ccc8c29bf8b5954b5242845552
Author: jcivelli <jcivelli@chromium.org>
Date: Fri Mar 31 03:58:27 2017

Moving IChildProcessService to base/

As part of the effort of moving Android process launching to base/,
moving IChildProcessService.aidl to base/.

BUG=702316

Review-Url: https://codereview.chromium.org/2777013005
Cr-Commit-Position: refs/heads/master@{#461020}

[modify] https://crrev.com/ce6ef2968b6785ccc8c29bf8b5954b5242845552/base/BUILD.gn
[rename] https://crrev.com/ce6ef2968b6785ccc8c29bf8b5954b5242845552/base/android/java/src/org/chromium/base/process_launcher/IChildProcessService.aidl
[modify] https://crrev.com/ce6ef2968b6785ccc8c29bf8b5954b5242845552/content/public/android/BUILD.gn
[modify] https://crrev.com/ce6ef2968b6785ccc8c29bf8b5954b5242845552/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java
[modify] https://crrev.com/ce6ef2968b6785ccc8c29bf8b5954b5242845552/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java
[modify] https://crrev.com/ce6ef2968b6785ccc8c29bf8b5954b5242845552/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java
[modify] https://crrev.com/ce6ef2968b6785ccc8c29bf8b5954b5242845552/content/public/android/java/src/org/chromium/content/common/common.aidl
[modify] https://crrev.com/ce6ef2968b6785ccc8c29bf8b5954b5242845552/content/public/android/junit/src/org/chromium/content/browser/BindingManagerImplTest.java

Project Member Comment 7 by bugdroid1@chromium.org, Apr 4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dd463aa3da242c236addb4fdf26ee4500bd429f5

commit dd463aa3da242c236addb4fdf26ee4500bd429f5
Author: jcivelli <jcivelli@chromium.org>
Date: Tue Apr 04 19:19:35 2017

Clean-up in ChildProcessLauncher.

This is a clean-up follow-up for
https://codereview.chromium.org/2760093002:
- the callback type parameter is replaced with the actual callback
  object.
- the alwaysInForeground parameter is now part of the SpawnData class.
- SpawnData accessors are renamed to follow Java naming conventions.

BUG=702316

Review-Url: https://codereview.chromium.org/2792093002
Cr-Commit-Position: refs/heads/master@{#461798}

[modify] https://crrev.com/dd463aa3da242c236addb4fdf26ee4500bd429f5/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java
[modify] https://crrev.com/dd463aa3da242c236addb4fdf26ee4500bd429f5/content/public/android/javatests/src/org/chromium/content/browser/ChildProcessLauncherTest.java

Project Member Comment 8 by bugdroid1@chromium.org, Apr 6
Labels: merge-merged-3029
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6cd461bcd7239b71ba190bb1633246cce3336a76

commit 6cd461bcd7239b71ba190bb1633246cce3336a76
Author: Bo Liu <boliu@chromium.org>
Date: Thu Apr 06 17:09:23 2017

[Merge m58] Abstracting parameters passed to child processes on Android.

Making the parameters passed to a child process part of a Bundle as part
of the effort to move child process launcher code to base/.

BUG=702316

Review-Url: https://codereview.chromium.org/2756053002
Cr-Commit-Position: refs/heads/master@{#457679}
(cherry picked from commit 9796a271448f237118bbc54316c664a678ada68b)

Merging so a follow up CL can be merged for
BUG=690118

Review-Url: https://codereview.chromium.org/2795333002 .
Cr-Commit-Position: refs/branch-heads/3029@{#607}
Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471}

[modify] https://crrev.com/6cd461bcd7239b71ba190bb1633246cce3336a76/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java
[modify] https://crrev.com/6cd461bcd7239b71ba190bb1633246cce3336a76/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java
[modify] https://crrev.com/6cd461bcd7239b71ba190bb1633246cce3336a76/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java
[modify] https://crrev.com/6cd461bcd7239b71ba190bb1633246cce3336a76/content/public/android/java/src/org/chromium/content/browser/ChildProcessConstants.java
[modify] https://crrev.com/6cd461bcd7239b71ba190bb1633246cce3336a76/content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java
[modify] https://crrev.com/6cd461bcd7239b71ba190bb1633246cce3336a76/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java

Project Member Comment 9 by bugdroid1@chromium.org, Apr 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9bd4d39997fab20c32cd0c7a75c45dbcf3f00642

commit 9bd4d39997fab20c32cd0c7a75c45dbcf3f00642
Author: jcivelli <jcivelli@chromium.org>
Date: Thu Apr 06 23:37:16 2017

Change ITestClient to be similar to IChildProcessService.

Preparing the MultiprocessTestClientLauncher for transitioning to the
new base ChildProcessLauncher. More specifically, making ITestClient
similar to IChildProcessService. This requires moving extra methods to
a new interface ITestController, and creating a callback interface
ITestCallback that lets the service sets the ITestController interface
on the client.

BUG=702316

Review-Url: https://codereview.chromium.org/2781913002
Cr-Commit-Position: refs/heads/master@{#462683}

[modify] https://crrev.com/9bd4d39997fab20c32cd0c7a75c45dbcf3f00642/base/test/BUILD.gn
[add] https://crrev.com/9bd4d39997fab20c32cd0c7a75c45dbcf3f00642/base/test/android/java/src/org/chromium/base/ChildProcessConstants.java
[add] https://crrev.com/9bd4d39997fab20c32cd0c7a75c45dbcf3f00642/base/test/android/java/src/org/chromium/base/ITestCallback.aidl
[modify] https://crrev.com/9bd4d39997fab20c32cd0c7a75c45dbcf3f00642/base/test/android/java/src/org/chromium/base/ITestClient.aidl
[add] https://crrev.com/9bd4d39997fab20c32cd0c7a75c45dbcf3f00642/base/test/android/java/src/org/chromium/base/ITestController.aidl
[modify] https://crrev.com/9bd4d39997fab20c32cd0c7a75c45dbcf3f00642/base/test/android/java/src/org/chromium/base/MultiprocessTestClientLauncher.java
[modify] https://crrev.com/9bd4d39997fab20c32cd0c7a75c45dbcf3f00642/base/test/android/java/src/org/chromium/base/MultiprocessTestClientService.java

Project Member Comment 10 by bugdroid1@chromium.org, Apr 10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/857cc7b94a374decb02c7c98a3b84dd14ec6a275

commit 857cc7b94a374decb02c7c98a3b84dd14ec6a275
Author: jcivelli <jcivelli@chromium.org>
Date: Mon Apr 10 23:17:49 2017

Adding a new annotation to set ChildProcessAllocator settings in tests.

Created a new annotation that lets tests specify settings for the
allocation of child services. It is mostly a clean-up to replace the
current use of the command line annotation with a more specific one.
As a result I had to create a new content specific instrumentation test
runner that registers that new content specific annotation.

BUG=702316

Review-Url: https://codereview.chromium.org/2814533002
Cr-Commit-Position: refs/heads/master@{#463440}

[modify] https://crrev.com/857cc7b94a374decb02c7c98a3b84dd14ec6a275/chrome/android/javatests/src/org/chromium/chrome/browser/BindingManagerIntegrationTest.java
[modify] https://crrev.com/857cc7b94a374decb02c7c98a3b84dd14ec6a275/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeInstrumentationTestRunner.java
[modify] https://crrev.com/857cc7b94a374decb02c7c98a3b84dd14ec6a275/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java
[modify] https://crrev.com/857cc7b94a374decb02c7c98a3b84dd14ec6a275/content/public/android/javatests/src/org/chromium/content/browser/ChildProcessLauncherTest.java
[modify] https://crrev.com/857cc7b94a374decb02c7c98a3b84dd14ec6a275/content/public/test/android/BUILD.gn
[add] https://crrev.com/857cc7b94a374decb02c7c98a3b84dd14ec6a275/content/public/test/android/javatests/src/org/chromium/content/browser/test/ChildProcessAllocatorSettings.java
[add] https://crrev.com/857cc7b94a374decb02c7c98a3b84dd14ec6a275/content/public/test/android/javatests/src/org/chromium/content/browser/test/ChildProcessAllocatorSettingsHook.java
[add] https://crrev.com/857cc7b94a374decb02c7c98a3b84dd14ec6a275/content/public/test/android/javatests/src/org/chromium/content/browser/test/ContentInstrumentationTestRunner.java
[modify] https://crrev.com/857cc7b94a374decb02c7c98a3b84dd14ec6a275/content/shell/android/javatests/AndroidManifest.xml

Project Member Comment 11 by bugdroid1@chromium.org, Apr 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/185a6fa4442ecee538c9f7539c3bc7f52bb0ea36

commit 185a6fa4442ecee538c9f7539c3bc7f52bb0ea36
Author: jcivelli <jcivelli@chromium.org>
Date: Wed Apr 12 03:21:51 2017

Factor out inner-classes out of ChildProcessLauncher.

Factoring out ChildProcessAllocator and SpawnData out of
ChildProcessLauncher.
Also:
- simplifying ChildProcessAllocator by lazy allocating on access rather
  than explicitly.
- removing forWarmUp from SpawnData has it can be handled as a parameter
  passed around in ChildProcessLauncher.

BUG=702316

Review-Url: https://codereview.chromium.org/2795113003
Cr-Commit-Position: refs/heads/master@{#463916}

[modify] https://crrev.com/185a6fa4442ecee538c9f7539c3bc7f52bb0ea36/content/public/android/BUILD.gn
[add] https://crrev.com/185a6fa4442ecee538c9f7539c3bc7f52bb0ea36/content/public/android/java/src/org/chromium/content/browser/ChildConnectionAllocator.java
[modify] https://crrev.com/185a6fa4442ecee538c9f7539c3bc7f52bb0ea36/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java
[modify] https://crrev.com/185a6fa4442ecee538c9f7539c3bc7f52bb0ea36/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java
[add] https://crrev.com/185a6fa4442ecee538c9f7539c3bc7f52bb0ea36/content/public/android/java/src/org/chromium/content/browser/ChildSpawnData.java
[modify] https://crrev.com/185a6fa4442ecee538c9f7539c3bc7f52bb0ea36/content/public/android/javatests/src/org/chromium/content/browser/ChildProcessLauncherTest.java
[modify] https://crrev.com/185a6fa4442ecee538c9f7539c3bc7f52bb0ea36/content/public/test/android/javatests/src/org/chromium/content/browser/test/ChildProcessAllocatorSettingsHook.java

Project Member Comment 12 by bugdroid1@chromium.org, May 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0

commit 9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0
Author: jcivelli <jcivelli@chromium.org>
Date: Wed May 17 18:09:27 2017

Moving some CPL logic to CPLH.

In preparation of the move of some of the child process launcher logic to
base, moved the code responsible for building the parameters passed to
the service from ChildProcessLauncher to ChildProcessLauncherHelper.
The ChildSpawnData class now contains both bundles used when starting the
service, and it's the responsibility of the ChildProcessLauncherHelper to
include the command line and file descriptors in the bundles.

BUG=702316

Review-Url: https://codereview.chromium.org/2882823002
Cr-Commit-Position: refs/heads/master@{#472494}

[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/browser/child_process_launcher_helper_android.cc
[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/public/android/java/src/org/chromium/content/browser/ChildConnectionAllocator.java
[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java
[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java
[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java
[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/public/android/java/src/org/chromium/content/browser/ChildSpawnData.java
[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/public/android/javatests/src/org/chromium/content/browser/ChildProcessLauncherIntegrationTest.java
[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/public/android/javatests/src/org/chromium/content/browser/ChildProcessLauncherTest.java
[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/shell/android/shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestHelperService.java
[modify] https://crrev.com/9cf3fd03d8f4d885b6e1c88cf3ae6ecc8d5542b0/content/shell/android/shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestUtils.java

Project Member Comment 13 by bugdroid1@chromium.org, Jun 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bb9c0e1b5b591255889c90a97788c1bf78993453

commit bb9c0e1b5b591255889c90a97788c1bf78993453
Author: Jay Civelli <jcivelli@google.com>
Date: Mon Jun 12 20:55:24 2017

Creating a chrome ChildProcessServiceImpl class for WebAPK.

WebApkSandboxedProcessService accesses ChildProcessServiceImpl (which is
in content) through reflection and needs to be exposed to WebAPK.
Introducting a new chrome class that exposes this and forwards to
ChildProcessServiceImpl.
This also prepares for the move of ChildProcessServiceImpl to base where
more work will need to be done when creating a ChildProcessServiceImpl.

BUG=702316

Change-Id: Ib70f72c430a8a48b8ee84db5c6359f4c6f6dddfb
Reviewed-on: https://chromium-review.googlesource.com/528669
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Xi Han <hanxi@chromium.org>
Commit-Queue: Jay Civelli <jcivelli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478757}
[add] https://crrev.com/bb9c0e1b5b591255889c90a97788c1bf78993453/chrome/android/java/src/org/chromium/chrome/browser/WebApkChildProcessServiceImpl.java
[modify] https://crrev.com/bb9c0e1b5b591255889c90a97788c1bf78993453/chrome/android/java_sources.gni
[modify] https://crrev.com/bb9c0e1b5b591255889c90a97788c1bf78993453/chrome/android/webapk/shell_apk/shell_apk_version.gni
[modify] https://crrev.com/bb9c0e1b5b591255889c90a97788c1bf78993453/chrome/android/webapk/shell_apk/src/org/chromium/webapk/shell_apk/WebApkSandboxedProcessService.java
[modify] https://crrev.com/bb9c0e1b5b591255889c90a97788c1bf78993453/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java

Project Member Comment 14 by bugdroid1@chromium.org, Jun 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5b29b7b17c700688dacde791d73ea86709336950

commit 5b29b7b17c700688dacde791d73ea86709336950
Author: Jay Civelli <jcivelli@google.com>
Date: Thu Jun 15 19:47:51 2017

Make Android multiprocess tests use IChildProcessService.aidl

Removing the multiprocess test specific ITestClient.aidl and making the
multiprocess launcher and service classes use IChildProcessService.aidl.
This is in preparation of the move of child process launcher to base and
having the multiprocess tests use it.

BUG=702316

Change-Id: I5cb81c45dcf1d4f19c34fbaa42194b22ca358a5f
Reviewed-on: https://chromium-review.googlesource.com/534953
Commit-Queue: Jay Civelli <jcivelli@google.com>
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479796}
[modify] https://crrev.com/5b29b7b17c700688dacde791d73ea86709336950/base/test/BUILD.gn
[delete] https://crrev.com/1a2091a9b123d6a856d86f60b267725fad61a11f/base/test/android/java/src/org/chromium/base/ITestClient.aidl
[modify] https://crrev.com/5b29b7b17c700688dacde791d73ea86709336950/base/test/android/java/src/org/chromium/base/MultiprocessTestClientLauncher.java
[modify] https://crrev.com/5b29b7b17c700688dacde791d73ea86709336950/base/test/android/java/src/org/chromium/base/MultiprocessTestClientService.java

Project Member Comment 15 by bugdroid1@chromium.org, Jun 21 (2 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4

commit 3dfa47ef98c9dd80d120de8f8cfea303c8169ac4
Author: Jay Civelli <jcivelli@google.com>
Date: Wed Jun 21 17:46:00 2017

Splitting ChildProcessServiceImpl for basification.

Splitting ChildProcessServiceImpl with a delegate and moving the
content specific logic to a content implementation class.
ChildProcessServiceImpl takes care of initializing the command line and
registering file descriptors. This class will be next moved to base.
The content specific behavior (using the custom linker, providing the
GPU surfaces to the renderer) is moved to the content implementation
of the delegate, ContentChildProcessServiceDelegate.

Bug: 702316
Change-Id: I357e2a81836a97cf53888ca3d7ec3b46e12c91a1
Reviewed-on: https://chromium-review.googlesource.com/526262
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Jay Civelli <jcivelli@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Reviewed-by: Xi Han <hanxi@chromium.org>
Reviewed-by: Tao Bai <michaelbai@chromium.org>
Commit-Queue: Jay Civelli <jcivelli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481236}
[modify] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/chrome/android/java/src/org/chromium/chrome/browser/WebApkChildProcessServiceImpl.java
[modify] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/app/BUILD.gn
[modify] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/app/android/app_jni_registrar.cc
[modify] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/app/android/child_process_service_impl.cc
[add] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/app/android/content_child_process_service_delegate.cc
[add] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/app/android/content_child_process_service_delegate.h
[modify] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/public/android/BUILD.gn
[modify] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java
[add] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceDelegate.java
[modify] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java
[add] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/public/android/java/src/org/chromium/content/app/ContentChildProcessService.java
[add] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/public/android/java/src/org/chromium/content/app/ContentChildProcessServiceDelegate.java
[modify] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java
[modify] https://crrev.com/3dfa47ef98c9dd80d120de8f8cfea303c8169ac4/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java

Project Member Comment 16 by bugdroid1@chromium.org, Jun 22 (2 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a15e0a988364c2d8bf0db30c2b538dc09744eee3

commit a15e0a988364c2d8bf0db30c2b538dc09744eee3
Author: Jay Civelli <jcivelli@google.com>
Date: Thu Jun 22 00:36:02 2017

Removing dependency to service manager from ChildProcessServiceImpl.

Moving the retrieval of FD keys used to register FDs to the
FileDescriptorStore from ChildProcessServiceImpl to
ContentChildProcessServiceDelegate, as these depend on ServiceManager.
This require introducing a new call to ChildProcessServiceDelegate and
having one extra JNI call done during process start-up.

TBR=michaelbai

Bug: 702316
Change-Id: I3d39d68440b3d16033bd6bd9ccbe6b51241325e1
Reviewed-on: https://chromium-review.googlesource.com/538906
Commit-Queue: Jay Civelli <jcivelli@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481378}
[modify] https://crrev.com/a15e0a988364c2d8bf0db30c2b538dc09744eee3/content/app/android/child_process_service_impl.cc
[modify] https://crrev.com/a15e0a988364c2d8bf0db30c2b538dc09744eee3/content/app/android/content_child_process_service_delegate.cc
[modify] https://crrev.com/a15e0a988364c2d8bf0db30c2b538dc09744eee3/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceDelegate.java
[modify] https://crrev.com/a15e0a988364c2d8bf0db30c2b538dc09744eee3/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java
[modify] https://crrev.com/a15e0a988364c2d8bf0db30c2b538dc09744eee3/content/public/android/java/src/org/chromium/content/app/ContentChildProcessServiceDelegate.java

Project Member Comment 17 by bugdroid1@chromium.org, Yesterday (34 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ddcb2490139405d4cafae70b3adfefd6b3b11a2f

commit ddcb2490139405d4cafae70b3adfefd6b3b11a2f
Author: Jay Civelli <jcivelli@google.com>
Date: Fri Jun 23 01:53:39 2017

Moving ChildProcessService to base.

Moving ChildProcessService and associated classes to base.

BUG: 702316
Change-Id: If4f47ca958127cc316e42f06428af94bb42cd0aa
Reviewed-on: https://chromium-review.googlesource.com/540140
Commit-Queue: Jay Civelli <jcivelli@chromium.org>
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Reviewed-by: Jay Civelli <jcivelli@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481775}
[modify] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/base/BUILD.gn
[modify] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/base/android/base_jni_registrar.cc
[rename] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/base/android/child_process_service_impl.cc
[add] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/base/android/child_process_service_impl.h
[add] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/base/android/java/src/org/chromium/base/process_launcher/ChildProcessConstants.java
[rename] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java
[rename] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/base/android/java/src/org/chromium/base/process_launcher/ChildProcessServiceDelegate.java
[rename] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/base/android/java/src/org/chromium/base/process_launcher/ChildProcessServiceImpl.java
[modify] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/chrome/android/java/src/org/chromium/chrome/browser/WebApkChildProcessServiceImpl.java
[modify] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/content/app/BUILD.gn
[modify] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/content/app/android/app_jni_registrar.cc
[delete] https://crrev.com/3391d2ce4059ebe801dd8310d13d8dc59293600e/content/app/android/child_process_service_impl.h
[modify] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/content/public/android/BUILD.gn
[modify] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/content/public/android/java/src/org/chromium/content/app/ContentChildProcessService.java
[modify] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/content/public/android/java/src/org/chromium/content/app/ContentChildProcessServiceDelegate.java
[modify] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java
[rename] https://crrev.com/ddcb2490139405d4cafae70b3adfefd6b3b11a2f/content/public/android/java/src/org/chromium/content/browser/ContentChildProcessConstants.java

Project Member Comment 18 by bugdroid1@chromium.org, Today (17 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c21465ddb50486fe00ab06b35f55afd587a4e66d

commit c21465ddb50486fe00ab06b35f55afd587a4e66d
Author: Jay Civelli <jcivelli@google.com>
Date: Fri Jun 23 18:55:19 2017

Moving allocator clean-up to a listener.

Moving the clean-up of ChildConnectionAllocator from freeConnection
to a specific listener, in preparation of moving clean-up of
connections from ChildProcessLauncher to the allocator itself.

Bug: 702316
Change-Id: I90755e475a94b34840868d3e788d7e7c1cfe2f79
Reviewed-on: https://chromium-review.googlesource.com/544085
Reviewed-by: Bo Liu <boliu@chromium.org>
Commit-Queue: Jay Civelli <jcivelli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481975}
[modify] https://crrev.com/c21465ddb50486fe00ab06b35f55afd587a4e66d/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java

Project Member Comment 19 by bugdroid1@chromium.org, Today (15 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5088b57949e9538b30905f854e952e10adf52bc6

commit 5088b57949e9538b30905f854e952e10adf52bc6
Author: Jay Civelli <jcivelli@google.com>
Date: Fri Jun 23 21:03:47 2017

Making the ChildConnectionAllocator clean connection itself.

The ChildConnectionAllocator relies on the ChildProcessLauncherHelper
for clearing up connections when they get disconnected.
Moving that logic to the ChildConnectionAllocator.
For that I had to change the deathcallback so it is always invoked
(even if the process was stopped by the client).

Bug: 702316
Change-Id: I9c0a229471ef3c80359e60da628bff32f51a27f2
Reviewed-on: https://chromium-review.googlesource.com/544796
Reviewed-by: Bo Liu <boliu@chromium.org>
Commit-Queue: Jay Civelli <jcivelli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482026}
[modify] https://crrev.com/5088b57949e9538b30905f854e952e10adf52bc6/content/public/android/java/src/org/chromium/content/browser/ChildConnectionAllocator.java
[modify] https://crrev.com/5088b57949e9538b30905f854e952e10adf52bc6/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java
[modify] https://crrev.com/5088b57949e9538b30905f854e952e10adf52bc6/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java

Project Member Comment 20 by bugdroid1@chromium.org, Today (13 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c15f40e23fec9a6635cc81d7fd76ec5ce9818f68

commit c15f40e23fec9a6635cc81d7fd76ec5ce9818f68
Author: Jay Civelli <jcivelli@google.com>
Date: Fri Jun 23 22:16:44 2017

Clean-up of ChildProcessLauncherHelper.stop()

ChildProcessLauncherHelper calls stop method when a child process dies,
which ends up stopping the connection when the connection is already
stopped. Cleaning it up by abstracting the behavior on disconnection
to an onChildProcessStopped method.
Also improving tests to ensure this onChildProcessStopped is called.

Bug: 702316
Change-Id: I348d347ea8b6903886565d4a3c7ede7d30def6f5
Reviewed-on: https://chromium-review.googlesource.com/546698
Commit-Queue: Jay Civelli <jcivelli@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482048}
[modify] https://crrev.com/c15f40e23fec9a6635cc81d7fd76ec5ce9818f68/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java
[modify] https://crrev.com/c15f40e23fec9a6635cc81d7fd76ec5ce9818f68/content/public/android/javatests/src/org/chromium/content/browser/ChildProcessLauncherTest.java

Sign in to add a comment