New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 623396 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
please use my google.com address
Closed: Aug 2016
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

Expose Mojo IPC Bootstrap interface via shell::Connection

Project Member Reported by ben@chromium.org, Jun 26 2016

Issue description

Currently we spawn child processes with two tokens - one for the ShellClientRequest, and one for a BootstrapRequest. This latter provides an interface over which Mojo channels are created. Instead of having two channels with different FIFOs which causes major problems, we should have the browser request the Bootstrap interface using its shell::Connection.
 

Comment 1 by ben@chromium.org, Jul 20 2016

Owner: roc...@chromium.org
WIP CL, no idea if it works: https://codereview.chromium.org/2163883005/
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a

commit 7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a
Author: rockot <rockot@chromium.org>
Date: Tue Aug 09 14:09:45 2016

Eliminate kMojoChannelToken usage for render processes

Changes RenderProcessHostImpl to connect its IPC Channel
by requesting a nominal IPC::mojom::ChannelBootstrap
interface from its shell::Connection to the render process.

Changes ChildThreadImpl to support binding such requests
by fusing them to its local IPC Channel if the (now deprecated)
kMojoChannelToken was not provided.

BUG= 623396 
R=ben@chromium.org

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

[modify] https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a/content/browser/BUILD.gn
[modify] https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a/content/browser/mojo/mojo_shell_context.h
[modify] https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a/content/child/BUILD.gn
[modify] https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a/content/child/child_thread_impl.cc
[modify] https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a/content/child/child_thread_impl.h
[modify] https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a/ipc/ipc.mojom

Project Member

Comment 3 by bugdroid1@chromium.org, Aug 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/703abc1a6e28e5df8b3757f9aa0757cb995098ca

commit 703abc1a6e28e5df8b3757f9aa0757cb995098ca
Author: huangs <huangs@chromium.org>
Date: Tue Aug 09 14:21:19 2016

Revert of Eliminate kMojoChannelToken usage for render processes (patchset #5 id:80001 of https://codereview.chromium.org/2201183005/ )

Reason for revert:
Compile error in Webkit Mac Builder.

child_thread_impl.cc:272:47: error: non-virtual member function marked 'override' hides virtual member function
                 shell::Connector* connector) override {

Original issue's description:
> Eliminate kMojoChannelToken usage for render processes
>
> Changes RenderProcessHostImpl to connect its IPC Channel
> by requesting a nominal IPC::mojom::ChannelBootstrap
> interface from its shell::Connection to the render process.
>
> Changes ChildThreadImpl to support binding such requests
> by fusing them to its local IPC Channel if the (now deprecated)
> kMojoChannelToken was not provided.
>
> BUG= 623396 
> R=ben@chromium.org
>
> Committed: https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a
> Cr-Commit-Position: refs/heads/master@{#410656}

TBR=ben@chromium.org,tsepez@chromium.org,jschuh@chromium.org,rockot@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 623396 

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

[modify] https://crrev.com/703abc1a6e28e5df8b3757f9aa0757cb995098ca/content/browser/BUILD.gn
[modify] https://crrev.com/703abc1a6e28e5df8b3757f9aa0757cb995098ca/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/703abc1a6e28e5df8b3757f9aa0757cb995098ca/content/browser/mojo/mojo_shell_context.h
[modify] https://crrev.com/703abc1a6e28e5df8b3757f9aa0757cb995098ca/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/703abc1a6e28e5df8b3757f9aa0757cb995098ca/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/703abc1a6e28e5df8b3757f9aa0757cb995098ca/content/child/BUILD.gn
[modify] https://crrev.com/703abc1a6e28e5df8b3757f9aa0757cb995098ca/content/child/child_thread_impl.cc
[modify] https://crrev.com/703abc1a6e28e5df8b3757f9aa0757cb995098ca/content/child/child_thread_impl.h
[modify] https://crrev.com/703abc1a6e28e5df8b3757f9aa0757cb995098ca/ipc/ipc.mojom

Project Member

Comment 4 by bugdroid1@chromium.org, Aug 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc

commit ff1b853cb6bfc3d5402fc970b2d856cbe73418cc
Author: rockot <rockot@chromium.org>
Date: Tue Aug 09 16:30:05 2016

Eliminate kMojoChannelToken usage for render processes

Changes RenderProcessHostImpl to connect its IPC Channel
by requesting a nominal IPC::mojom::ChannelBootstrap
interface from its shell::Connection to the render process.

Changes ChildThreadImpl to support binding such requests
by fusing them to its local IPC Channel if the (now deprecated)
kMojoChannelToken was not provided.

BUG= 623396 
R=ben@chromium.org

Committed: https://crrev.com/7a7f8f7e6977500d09270ff9d9b3817dda5e5b8a
Review-Url: https://codereview.chromium.org/2201183005
Cr-Original-Commit-Position: refs/heads/master@{#410656}
Cr-Commit-Position: refs/heads/master@{#410699}

[modify] https://crrev.com/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc/content/browser/BUILD.gn
[modify] https://crrev.com/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc/content/browser/mojo/mojo_shell_context.h
[modify] https://crrev.com/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc/content/child/BUILD.gn
[modify] https://crrev.com/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc/content/child/child_thread_impl.cc
[modify] https://crrev.com/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc/content/child/child_thread_impl.h
[modify] https://crrev.com/ff1b853cb6bfc3d5402fc970b2d856cbe73418cc/ipc/ipc.mojom

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8efa71b85282fb4df1d3836a20d086d223df714f

commit 8efa71b85282fb4df1d3836a20d086d223df714f
Author: rockot <rockot@chromium.org>
Date: Wed Aug 10 03:09:05 2016

Establish MojoChildConnection from BrowserChildProcessHostImpl

Rather than have individual BrowserChildProcessHostImpl users
create their own connection, this moves all that junk into BCPHI
and allows its users to configure it with a service name and
instance ID.

Also changes ChildProcessHost to support ChannelMojo connection
via remote interfaces provided by its delegate, and uses this
in conjunction with the BCPHI changes. Eliminates one more use
of kMojoChannelToken.

BUG= 623396 
R=ben@chromium.org

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

[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/chrome/browser/chromeos/extensions/device_local_account_external_policy_loader_unittest.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/chrome/browser/task_manager/providers/child_process_task.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/BUILD.gn
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/browser/browser_child_process_host_impl.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/browser/browser_child_process_host_impl.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/browser/gpu/gpu_process_host.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/browser/ppapi_plugin_process_host.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/browser/ppapi_plugin_process_host.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/browser/utility_process_host_impl.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/browser/utility_process_host_impl.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/child/child_thread_impl.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/common/BUILD.gn
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/common/DEPS
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/common/child_process_host_impl.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/common/child_process_host_impl.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/common/mojo/constants.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/common/mojo/constants.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/content_resources.grd
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/content_tests.gypi
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/app/BUILD.gn
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/app/mojo/content_browser_manifest.json
[add] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/app/mojo/content_plugin_manifest.json
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/browser/browser_child_process_host.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/browser/browser_child_process_host_delegate.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/browser/browser_child_process_host_delegate.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/common/BUILD.gn
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/common/child_process_host.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/common/child_process_host_delegate.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/common/child_process_host_delegate.h
[add] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/test/test_mojo_shell_context.cc
[add] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/test/test_mojo_shell_context.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/test/test_utils.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/content/public/test/test_utils.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/services/catalog/entry.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/services/catalog/entry.h
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/services/catalog/reader.cc
[modify] https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f/services/shell/service_manager.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/83cff6863fbd3949ed21debdf642105ebff9825d

commit 83cff6863fbd3949ed21debdf642105ebff9825d
Author: foolip <foolip@chromium.org>
Date: Wed Aug 10 14:51:10 2016

Revert of Establish MojoChildConnection from BrowserChildProcessHostImpl (patchset #9 id:190001 of https://codereview.chromium.org/2221153003/ )

Reason for revert:
ContentBrowserTest.BrowserCrashCallStack/RendererCrashCallStack are failing on
"Linux Tests (dbg)(1)" and "Linux Tests (dbg)(1)(32)" since this CL. Reproduced
locally and bisected to "Establish MojoChildConnection from
BrowserChildProcessHostImpl", also verified that reverting it on master locally
fixes the problem.

When it fails, the tests stall for a long time before failing. Sample from bot:

ContentBrowserTest.RendererCrashCallStack (run #1):
[ RUN      ] ContentBrowserTest.RendererCrashCallStack
[11795:11795:0810/064214:8507100974:WARNING:audio_manager.cc(317)] Multiple instances of AudioManager detected
[11795:11795:0810/064214:8507101034:WARNING:audio_manager.cc(278)] Multiple instances of AudioManager detected
Xlib:  extension "RANDR" missing on display ":9".
BrowserTestBase signal handler received SIGTERM. Backtrace:
#0 0x7fdba1ca413e base::debug::StackTrace::StackTrace()
#1 0x00000145ffaa content::(anonymous namespace)::DumpStackTraceSignalHandler()
#2 0x7fdb929cf0b0 <unknown>
#3 0x7fdb92d65d2b __libc_read
#4 0x7fdba1db7e42 base::GetAppOutputInternal()
#5 0x7fdba1db7ff6 base::GetAppOutputAndError()
#6 0x000000993436 content::ContentBrowserTest_RendererCrashCallStack_Test::RunTestOnMainThread()
#7 0x00000144f6ae content::ContentBrowserTest::RunTestOnMainThreadLoop()
#8 0x00000145fd24 content::BrowserTestBase::ProxyRunTestOnMainThreadLoop()
#9 0x0000005b969d _ZN4base8internal13FunctorTraitsIMN4mojo13StrongBindingIN6device14BatteryMonitorEEEFvvEvE6InvokeIPS6_JEEEvS8_OT_DpOT0_
#10 0x0000005b95f1 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN4mojo13StrongBindingIN6device14BatteryMonitorEEEFvvEJPS8_EEEvOT_DpOT0_
#11 0x000001461247 _ZN4base8internal7InvokerINS0_9BindStateIMN7content15BrowserTestBaseEFvvEJNS0_17UnretainedWrapperIS4_EEEEEFvvEE7RunImplIRKS6_RKSt5tupleIJS8_EEJLm0EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE
#12 0x0000014611ac _ZN4base8internal7InvokerINS0_9BindStateIMN7content15BrowserTestBaseEFvvEJNS0_17UnretainedWrapperIS4_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#13 0x0000005b971e base::Callback<>::Run()
#14 0x0000015920a8 content::ShellBrowserMainParts::PreMainMessageLoopRun()
#15 0x7fdba3457031 content::BrowserMainLoop::PreMainMessageLoopRun()
#16 0x7fdba29ee2bd _ZN4base8internal13FunctorTraitsIMN4mojo10BindingSetIN7content5mojom14ProcessControlEE7ElementEFvvEvE6InvokeIPS8_JEEEvSA_OT_DpOT0_
#17 0x7fdba345f091 _ZN4base8internal12InvokeHelperILb0EiE8MakeItSoIRKMN7content15BrowserMainLoopEFivEJPS5_EEEiOT_DpOT0_
#18 0x7fdba345f037 _ZN4base8internal7InvokerINS0_9BindStateIMN7content15BrowserMainLoopEFivEJNS0_17UnretainedWrapperIS4_EEEEEFivEE7RunImplIRKS6_RKSt5tupleIJS8_EEJLm0EEEEiOT_OT0_NS_13IndexSequenceIJXspT1_EEEE
#19 0x7fdba345ef9c _ZN4base8internal7InvokerINS0_9BindStateIMN7content15BrowserMainLoopEFivEJNS0_17UnretainedWrapperIS4_EEEEEFivEE3RunEPNS0_13BindStateBaseE
#20 0x7fdba29ee36e base::Callback<>::Run()
#21 0x7fdba3ef057b content::StartupTaskRunner::RunAllTasksNow()
#22 0x7fdba3455033 content::BrowserMainLoop::CreateStartupTasks()
#23 0x7fdba346164d content::BrowserMainRunnerImpl::Initialize()
#24 0x000001541fc4 ShellBrowserMain()
#25 0x000001521e46 content::ShellMainDelegate::RunProcess()
#26 0x7fdba5057e3b content::RunNamedProcessTypeMain()
#27 0x7fdba505a172 content::ContentMainRunnerImpl::Run()
#28 0x7fdba5056f42 content::ContentMain()
#29 0x00000145fa46 content::BrowserTestBase::SetUp()
#30 0x00000144f52d content::ContentBrowserTest::SetUp()
#31 0x0000016a05da testing::internal::HandleSehExceptionsInMethodIfSupported<>()
#32 0x000001691b0e testing::internal::HandleExceptionsInMethodIfSupported<>()
#33 0x0000016868a3 testing::Test::Run()
#34 0x000001687098 testing::TestInfo::Run()
#35 0x00000168763a testing::TestCase::Run()
#36 0x00000168c98c testing::internal::UnitTestImpl::RunAllTests()
#37 0x0000016a4d6a testing::internal::HandleSehExceptionsInMethodIfSupported<>()
#38 0x0000016931ee testing::internal::HandleExceptionsInMethodIfSupported<>()
#39 0x00000168c62f testing::UnitTest::Run()
#40 0x0000014d1d11 RUN_ALL_TESTS()
#41 0x0000014d0bc2 base::TestSuite::Run()
#42 0x00000145edcc content::ContentTestLauncherDelegate::RunTestSuite()
#43 0x00000149b712 content::LaunchTests()
#44 0x00000145ec28 main
#45 0x7fdb929ba7ed __libc_start_main
#46 0x0000005612c5 <unknown>

Original issue's description:
> Establish MojoChildConnection from BrowserChildProcessHostImpl
>
> Rather than have individual BrowserChildProcessHostImpl users
> create their own connection, this moves all that junk into BCPHI
> and allows its users to configure it with a service name and
> instance ID.
>
> Also changes ChildProcessHost to support ChannelMojo connection
> via remote interfaces provided by its delegate, and uses this
> in conjunction with the BCPHI changes. Eliminates one more use
> of kMojoChannelToken.
>
> BUG= 623396 
> R=ben@chromium.org
>
> Committed: https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f
> Cr-Commit-Position: refs/heads/master@{#410937}

TBR=ben@chromium.org,rockot@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 623396 

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

[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/chrome/browser/chromeos/extensions/device_local_account_external_policy_loader_unittest.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/chrome/browser/task_manager/providers/child_process_task.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/BUILD.gn
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/browser/browser_child_process_host_impl.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/browser/browser_child_process_host_impl.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/browser/gpu/gpu_process_host.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/browser/ppapi_plugin_process_host.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/browser/ppapi_plugin_process_host.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/browser/utility_process_host_impl.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/browser/utility_process_host_impl.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/child/child_thread_impl.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/common/BUILD.gn
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/common/DEPS
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/common/child_process_host_impl.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/common/child_process_host_impl.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/common/mojo/constants.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/common/mojo/constants.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/content_resources.grd
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/content_tests.gypi
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/app/BUILD.gn
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/app/mojo/content_browser_manifest.json
[delete] https://crrev.com/af7dfbe1caf07ba720221ed293818a89674e71ed/content/public/app/mojo/content_plugin_manifest.json
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/browser/browser_child_process_host.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/browser/browser_child_process_host_delegate.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/browser/browser_child_process_host_delegate.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/common/BUILD.gn
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/common/child_process_host.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/common/child_process_host_delegate.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/common/child_process_host_delegate.h
[delete] https://crrev.com/af7dfbe1caf07ba720221ed293818a89674e71ed/content/public/test/test_mojo_shell_context.cc
[delete] https://crrev.com/af7dfbe1caf07ba720221ed293818a89674e71ed/content/public/test/test_mojo_shell_context.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/test/test_utils.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/content/public/test/test_utils.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/services/catalog/entry.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/services/catalog/entry.h
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/services/catalog/reader.cc
[modify] https://crrev.com/83cff6863fbd3949ed21debdf642105ebff9825d/services/shell/service_manager.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bd8ac0b42ea508a8768d3453431dbfbbe5c4dab0

commit bd8ac0b42ea508a8768d3453431dbfbbe5c4dab0
Author: rockot <rockot@chromium.org>
Date: Fri Aug 19 01:26:59 2016

Handle early ServiceRequest errors in shell::ServiceContext

Sets an error handler immediately when binding ServiceContext's
ServiceRequest. This means Service::OnStop() may be invoked
without first receiving Service::OnStart().

Docs updated accordingly, and MojoShellConnectionImpl changed to
destroy its ConnectionFilter instances in OnStop().

This eliminates a race condition where a child process might not
detect an IPC Channel error in case of early browser process
exit.

BUG= 623396 

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

[modify] https://crrev.com/bd8ac0b42ea508a8768d3453431dbfbbe5c4dab0/content/common/mojo/mojo_shell_connection_impl.cc
[modify] https://crrev.com/bd8ac0b42ea508a8768d3453431dbfbbe5c4dab0/services/shell/public/cpp/lib/service_context.cc
[modify] https://crrev.com/bd8ac0b42ea508a8768d3453431dbfbbe5c4dab0/services/shell/public/cpp/service.h

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/da988790418661f7d580f42d52be312a83589650

commit da988790418661f7d580f42d52be312a83589650
Author: rockot <rockot@chromium.org>
Date: Fri Aug 19 20:46:42 2016

Establish MojoChildConnection from BrowserChildProcessHostImpl

Rather than have individual BrowserChildProcessHostImpl users
create their own connection, this moves all that junk into BCPHI
and allows its users to configure it with a service name and
instance ID.

Also changes ChildProcessHost to support ChannelMojo connection
via remote interfaces provided by its delegate, and uses this
in conjunction with the BCPHI changes. Eliminates one more use
of kMojoChannelToken.

BUG= 623396 
R=ben@chromium.org

Committed: https://crrev.com/8efa71b85282fb4df1d3836a20d086d223df714f
Review-Url: https://codereview.chromium.org/2221153003
Cr-Original-Commit-Position: refs/heads/master@{#410937}
Cr-Commit-Position: refs/heads/master@{#413232}

[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/chrome/browser/chromeos/extensions/device_local_account_external_policy_loader_unittest.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/chrome/browser/task_manager/providers/child_process_task.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/BUILD.gn
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/browser/browser_child_process_host_impl.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/browser/browser_child_process_host_impl.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/browser/gpu/gpu_process_host.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/browser/ppapi_plugin_process_host.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/browser/ppapi_plugin_process_host.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/browser/utility_process_host_impl.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/browser/utility_process_host_impl.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/child/child_thread_impl.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/common/BUILD.gn
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/common/DEPS
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/common/child_process_host_impl.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/common/child_process_host_impl.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/common/mojo/constants.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/common/mojo/constants.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/content_resources.grd
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/content_tests.gypi
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/app/BUILD.gn
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/app/mojo/content_browser_manifest.json
[add] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/app/mojo/content_plugin_manifest.json
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/browser/browser_child_process_host.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/browser/browser_child_process_host_delegate.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/browser/browser_child_process_host_delegate.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/common/BUILD.gn
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/common/child_process_host.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/common/child_process_host_delegate.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/common/child_process_host_delegate.h
[add] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/test/test_mojo_shell_context.cc
[add] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/test/test_mojo_shell_context.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/test/test_utils.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/content/public/test/test_utils.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/services/catalog/entry.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/services/catalog/entry.h
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/services/catalog/reader.cc
[modify] https://crrev.com/da988790418661f7d580f42d52be312a83589650/services/shell/service_manager.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Aug 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d4184c454d453d76627a5b4d21454b1ba476fb9b

commit d4184c454d453d76627a5b4d21454b1ba476fb9b
Author: rockot <rockot@chromium.org>
Date: Fri Aug 19 21:34:04 2016

Remove Channel token from InProcessChildThreadParams

All in-process child threads now acquire a ChannelMojo
interface from a shell connection. The Channel pipe
token is no longer needed.

BUG= 623396 
R=ben@chromium.org

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

[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/browser/browser_child_process_host_impl.cc
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/browser/utility_process_host_impl.cc
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/child/child_thread_impl.cc
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/child/child_thread_impl.h
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/common/in_process_child_thread_params.cc
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/common/in_process_child_thread_params.h
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/common/mojo/constants.h
[rename] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/common/mojo/mojo_child_connection.cc
[rename] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/common/mojo/mojo_child_connection.h
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/content_browser.gypi
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/content_tests.gypi
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/public/test/test_mojo_shell_context.h
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/renderer/render_thread_impl_browsertest.cc
[modify] https://crrev.com/d4184c454d453d76627a5b4d21454b1ba476fb9b/content/test/BUILD.gn
[delete] https://crrev.com/f859be05a8db1f6301119cd9dfd58d7ddd75ee22/content/test/render_thread_impl_browser_test_ipc_helper.cc
[delete] https://crrev.com/f859be05a8db1f6301119cd9dfd58d7ddd75ee22/content/test/render_thread_impl_browser_test_ipc_helper.h

Status: Fixed (was: Assigned)

Sign in to add a comment