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

Issue 2686983003: Avoid a thread hop when initializing IPC to new processes (Closed)

Created:
3 years, 10 months ago by Ken Rockot(use gerrit already)
Modified:
3 years, 10 months ago
Reviewers:
CC:
chromium-reviews, darin-cc_chromium.org, jam, mac-reviews_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Avoid a thread hop when initializing IPC to new processes ChildProcessLauncher waits until receiving a successful launch notification on its host thread before completing the low-level IPC pipe connection to a new child process. This means that even after a process is successfully launched on the launcher thread, we must wait until a task can run on the host thread (UI or IO, typically) before the new child process's main thread can be unblocked (it's waiting on a sync broker message to initialize IPC). This CL instead begins browser-side initialization of IPC as soon as the new process handle is known (synchronously after LaunchProcess on most platforms, async on the launcher thread for Android). We still incur the cost of an internal PostTask to the IO thread within the EDK before browser-side initialization can complete, but that can be removed in a future CL. This takes advantage of the new PendingProcessConnection EDK API to ensure safe handling of any potential failure cases. BUG=682794

Patch Set 1 #

Patch Set 2 : . #

Unified diffs Side-by-side diffs Delta from patch set Stats (+84 lines, -49 lines) Patch
M content/browser/child_process_launcher.h View 2 chunks +0 lines, -2 lines 0 comments Download
M content/browser/child_process_launcher.cc View 1 3 chunks +6 lines, -15 lines 0 comments Download
M content/browser/child_process_launcher_helper.h View 1 6 chunks +21 lines, -7 lines 0 comments Download
M content/browser/child_process_launcher_helper.cc View 1 5 chunks +35 lines, -15 lines 0 comments Download
M content/browser/child_process_launcher_helper_android.cc View 1 3 chunks +13 lines, -7 lines 0 comments Download
M content/browser/child_process_launcher_helper_linux.cc View 1 chunk +3 lines, -1 line 0 comments Download
M content/browser/child_process_launcher_helper_mac.cc View 1 chunk +3 lines, -1 line 0 comments Download
M content/browser/child_process_launcher_helper_win.cc View 1 chunk +3 lines, -1 line 0 comments Download

Depends on Patchset:

Messages

Total messages: 10 (10 generated)
Ken Rockot(use gerrit already)
The CQ bit was checked by rockot@chromium.org to run a CQ dry run
3 years, 10 months ago (2017-02-09 03:38:16 UTC) #1
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2686983003/1
3 years, 10 months ago (2017-02-09 03:38:59 UTC) #2
Ken Rockot(use gerrit already)
Description was changed from ========== Avoid a thread hop when initializing child IPC to new ...
3 years, 10 months ago (2017-02-09 03:39:55 UTC) #3
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
3 years, 10 months ago (2017-02-09 04:04:35 UTC) #4
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_n5x_swarming_rel on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_n5x_swarming_rel/builds/115500) linux_android_rel_ng on ...
3 years, 10 months ago (2017-02-09 04:04:36 UTC) #5
Ken Rockot(use gerrit already)
Description was changed from ========== Avoid a thread hop when initializing child IPC to new ...
3 years, 10 months ago (2017-02-09 08:57:16 UTC) #6
Ken Rockot(use gerrit already)
The CQ bit was checked by rockot@chromium.org to run a CQ dry run
3 years, 10 months ago (2017-02-10 00:11:35 UTC) #7
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2686983003/20001
3 years, 10 months ago (2017-02-10 00:12:10 UTC) #8
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
3 years, 10 months ago (2017-02-10 00:37:08 UTC) #9
commit-bot: I haz the power
3 years, 10 months ago (2017-02-10 00:37:09 UTC) #10
Dry run: Try jobs failed on following builders:
  android_n5x_swarming_rel on master.tryserver.chromium.android (JOB_FAILED,
https://build.chromium.org/p/tryserver.chromium.android/builders/android_n5x_...)

Powered by Google App Engine
This is Rietveld 408576698