New issue
Advanced search Search tips

Issue 612500 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocked on:
issue 619202
issue 627277
issue 630414



Sign in to add a comment

Migrate frame IPC to Mojo interfaces

Project Member Reported by roc...@chromium.org, May 17 2016

Issue description

Generic tracking bug for this effort.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 18 2016

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

commit f4698a23e30ce832bf2c728d2444f72019ddf1a1
Author: rockot <rockot@chromium.org>
Date: Wed May 18 01:16:03 2016

Mojo: Expose untyped associated endpoints through public API

This CL exposes ScopedInterfaceEndpointHandle through
AssociatedInterfaceRequest and AssociatedInterfacePtrInfo
to allow for unbinding and rebinding associated endpoints
to arbitrary interface types.

BUG=612500
R=yzshen@chromium.org

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

[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/mojo_public.gyp
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/BUILD.gn
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/associated_binding.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/associated_group.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/associated_interface_ptr.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/associated_interface_ptr_info.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/associated_interface_request.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/lib/associated_group.cc
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/lib/associated_interface_ptr_state.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/lib/binding_state.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/lib/interface_endpoint_client.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/lib/interface_ptr_state.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/lib/multiplex_router.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/lib/scoped_interface_endpoint_handle.cc
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/lib/serialization_util.h
[rename] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/tests/associated_interface_unittest.cc
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/cpp/bindings/tests/multiplex_router_unittest.cc
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/tools/bindings/generators/cpp_templates/struct_data_view_definition.tmpl
[modify] https://crrev.com/f4698a23e30ce832bf2c728d2444f72019ddf1a1/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl

Project Member

Comment 2 by bugdroid1@chromium.org, Jun 8 2016

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

commit 464e306a82ead839f02f1930a684400228b72495
Author: rockot <rockot@chromium.org>
Date: Wed Jun 08 17:21:43 2016

Mojo: Eliminate duplicate C API symbols

This gets rid of the duplicate definitions of public
Mojo C API symbols, instead making mojo/public/c/system
the singular source of these definitions. This allows
targets to be linked against mojo/public libraries
without requiring any additional EDK dependencies at
build time.

To facilitate this the EDK uses the same set of API
thunks as the public library, and the public library
exposes a special embedder API (distinct from the DSO
MojoSetSystemThunks call used by the native app loader)
for setting these thunks. The MojoSetSystemThunks API
is moved to a module which is only linked directly into
app DSOs.

Because mojo/public/c/system and mojo/edk/system are
now both components, and because there are no longer
redundant exports between the two, it's now safe for
targets to depend on either one or both of them as
needed without encountering duplicate definitions.

Also some opportunistic cleanup of Mojo build rules.

BUG=612500

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

[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/edk/embedder/BUILD.gn
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/edk/embedder/embedder.cc
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/edk/embedder/entrypoints.cc
[add] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/edk/embedder/entrypoints.h
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/mojo.gyp
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/mojo_base.gyp
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/mojo_edk.gyp
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/mojo_edk_nacl.gyp
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/mojo_edk_tests.gyp
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/mojo_public.gyp
[delete] https://crrev.com/355b6e85f8c363fdfdde8e1be92500fea6d55480/mojo/mojo_variables.gypi
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/public/c/system/BUILD.gn
[add] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/public/c/system/set_thunks_for_app.cc
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/public/c/system/system_export.h
[rename] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/public/c/system/thunks.cc
[rename] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/public/c/system/thunks.h
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/mojo/public/mojo_application.gni
[delete] https://crrev.com/355b6e85f8c363fdfdde8e1be92500fea6d55480/mojo/public/platform/native/BUILD.gn
[delete] https://crrev.com/355b6e85f8c363fdfdde8e1be92500fea6d55480/mojo/public/platform/native/thunk_export.h
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/services/shell/runner/host/BUILD.gn
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/services/shell/runner/host/native_application_support.cc
[modify] https://crrev.com/464e306a82ead839f02f1930a684400228b72495/ui/gfx/gfx.gyp

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 8 2016

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

commit e8e242161954d86ce8e064f8a6515bc818d5b600
Author: rockot <rockot@chromium.org>
Date: Wed Jun 08 18:00:08 2016

Revert of Mojo: Eliminate duplicate C API symbols (patchset #3 id:80001 of https://codereview.chromium.org/2044023004/ )

Reason for revert:
tentative revert due to linker errors. this doesn't make sense. nothing makes sense. RIP sanity

Original issue's description:
> Mojo: Eliminate duplicate C API symbols
>
> This gets rid of the duplicate definitions of public
> Mojo C API symbols, instead making mojo/public/c/system
> the singular source of these definitions. This allows
> targets to be linked against mojo/public libraries
> without requiring any additional EDK dependencies at
> build time.
>
> To facilitate this the EDK uses the same set of API
> thunks as the public library, and the public library
> exposes a special embedder API (distinct from the DSO
> MojoSetSystemThunks call used by the native app loader)
> for setting these thunks. The MojoSetSystemThunks API
> is moved to a module which is only linked directly into
> app DSOs.
>
> Because mojo/public/c/system and mojo/edk/system are
> now both components, and because there are no longer
> redundant exports between the two, it's now safe for
> targets to depend on either one or both of them as
> needed without encountering duplicate definitions.
>
> Also some opportunistic cleanup of Mojo build rules.
>
> BUG=612500
>
> Committed: https://crrev.com/464e306a82ead839f02f1930a684400228b72495
> Cr-Commit-Position: refs/heads/master@{#398605}

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

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

[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/edk/embedder/BUILD.gn
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/edk/embedder/embedder.cc
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/edk/embedder/entrypoints.cc
[delete] https://crrev.com/8b44f4ccceacc67411e855da1af930f80b710482/mojo/edk/embedder/entrypoints.h
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/mojo.gyp
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/mojo_base.gyp
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/mojo_edk.gyp
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/mojo_edk_nacl.gyp
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/mojo_edk_tests.gyp
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/mojo_public.gyp
[add] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/mojo_variables.gypi
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/public/c/system/BUILD.gn
[delete] https://crrev.com/8b44f4ccceacc67411e855da1af930f80b710482/mojo/public/c/system/set_thunks_for_app.cc
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/public/c/system/system_export.h
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/public/mojo_application.gni
[add] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/public/platform/native/BUILD.gn
[rename] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/public/platform/native/system_thunks.cc
[rename] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/public/platform/native/system_thunks.h
[add] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/mojo/public/platform/native/thunk_export.h
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/services/shell/runner/host/BUILD.gn
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/services/shell/runner/host/native_application_support.cc
[modify] https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600/ui/gfx/gfx.gyp

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 8 2016

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

commit 26ec28cabbdcc430483d5f4996b3afaafb1ba1bf
Author: rockot <rockot@chromium.org>
Date: Wed Jun 08 18:22:05 2016

Reland of Mojo: Eliminate duplicate C API symbols (patchset #1 id:1 of https://codereview.chromium.org/2047813003/ )

Reason for revert:
Reverting this didn't fix the failure after all

Original issue's description:
> Revert of Mojo: Eliminate duplicate C API symbols (patchset #3 id:80001 of https://codereview.chromium.org/2044023004/ )
>
> Reason for revert:
> tentative revert due to linker errors. this doesn't make sense. nothing makes sense. RIP sanity
>
> Original issue's description:
> > Mojo: Eliminate duplicate C API symbols
> >
> > This gets rid of the duplicate definitions of public
> > Mojo C API symbols, instead making mojo/public/c/system
> > the singular source of these definitions. This allows
> > targets to be linked against mojo/public libraries
> > without requiring any additional EDK dependencies at
> > build time.
> >
> > To facilitate this the EDK uses the same set of API
> > thunks as the public library, and the public library
> > exposes a special embedder API (distinct from the DSO
> > MojoSetSystemThunks call used by the native app loader)
> > for setting these thunks. The MojoSetSystemThunks API
> > is moved to a module which is only linked directly into
> > app DSOs.
> >
> > Because mojo/public/c/system and mojo/edk/system are
> > now both components, and because there are no longer
> > redundant exports between the two, it's now safe for
> > targets to depend on either one or both of them as
> > needed without encountering duplicate definitions.
> >
> > Also some opportunistic cleanup of Mojo build rules.
> >
> > BUG=612500
> >
> > Committed: https://crrev.com/464e306a82ead839f02f1930a684400228b72495
> > Cr-Commit-Position: refs/heads/master@{#398605}
>
> TBR=jam@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=612500
>
> Committed: https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600
> Cr-Commit-Position: refs/heads/master@{#398614}

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

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

[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/edk/embedder/BUILD.gn
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/edk/embedder/embedder.cc
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/edk/embedder/entrypoints.cc
[add] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/edk/embedder/entrypoints.h
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/mojo.gyp
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/mojo_base.gyp
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/mojo_edk.gyp
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/mojo_edk_nacl.gyp
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/mojo_edk_tests.gyp
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/mojo_public.gyp
[delete] https://crrev.com/55b6d5131d5b10e49fc37bb8cd9143d8a5765143/mojo/mojo_variables.gypi
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/public/c/system/BUILD.gn
[add] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/public/c/system/set_thunks_for_app.cc
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/public/c/system/system_export.h
[rename] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/public/c/system/thunks.cc
[rename] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/public/c/system/thunks.h
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/mojo/public/mojo_application.gni
[delete] https://crrev.com/55b6d5131d5b10e49fc37bb8cd9143d8a5765143/mojo/public/platform/native/BUILD.gn
[delete] https://crrev.com/55b6d5131d5b10e49fc37bb8cd9143d8a5765143/mojo/public/platform/native/thunk_export.h
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/services/shell/runner/host/BUILD.gn
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/services/shell/runner/host/native_application_support.cc
[modify] https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf/ui/gfx/gfx.gyp

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 8 2016

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

commit cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc
Author: rockot <rockot@chromium.org>
Date: Wed Jun 08 19:51:49 2016

Revert of Mojo: Eliminate duplicate C API symbols (patchset #1 id:1 of https://codereview.chromium.org/2048053003/ )

Reason for revert:
trying to revert again, and then clobber. seemed to have fixed the error locally

Original issue's description:
> Reland of Mojo: Eliminate duplicate C API symbols (patchset #1 id:1 of https://codereview.chromium.org/2047813003/ )
>
> Reason for revert:
> Reverting this didn't fix the failure after all
>
> Original issue's description:
> > Revert of Mojo: Eliminate duplicate C API symbols (patchset #3 id:80001 of https://codereview.chromium.org/2044023004/ )
> >
> > Reason for revert:
> > tentative revert due to linker errors. this doesn't make sense. nothing makes sense. RIP sanity
> >
> > Original issue's description:
> > > Mojo: Eliminate duplicate C API symbols
> > >
> > > This gets rid of the duplicate definitions of public
> > > Mojo C API symbols, instead making mojo/public/c/system
> > > the singular source of these definitions. This allows
> > > targets to be linked against mojo/public libraries
> > > without requiring any additional EDK dependencies at
> > > build time.
> > >
> > > To facilitate this the EDK uses the same set of API
> > > thunks as the public library, and the public library
> > > exposes a special embedder API (distinct from the DSO
> > > MojoSetSystemThunks call used by the native app loader)
> > > for setting these thunks. The MojoSetSystemThunks API
> > > is moved to a module which is only linked directly into
> > > app DSOs.
> > >
> > > Because mojo/public/c/system and mojo/edk/system are
> > > now both components, and because there are no longer
> > > redundant exports between the two, it's now safe for
> > > targets to depend on either one or both of them as
> > > needed without encountering duplicate definitions.
> > >
> > > Also some opportunistic cleanup of Mojo build rules.
> > >
> > > BUG=612500
> > >
> > > Committed: https://crrev.com/464e306a82ead839f02f1930a684400228b72495
> > > Cr-Commit-Position: refs/heads/master@{#398605}
> >
> > TBR=jam@chromium.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=612500
> >
> > Committed: https://crrev.com/e8e242161954d86ce8e064f8a6515bc818d5b600
> > Cr-Commit-Position: refs/heads/master@{#398614}
>
> TBR=jam@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=612500
>
> Committed: https://crrev.com/26ec28cabbdcc430483d5f4996b3afaafb1ba1bf
> Cr-Commit-Position: refs/heads/master@{#398622}

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

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

[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/edk/embedder/BUILD.gn
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/edk/embedder/embedder.cc
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/edk/embedder/entrypoints.cc
[delete] https://crrev.com/142a5307d2766eb098802cfa391dfe00b3146443/mojo/edk/embedder/entrypoints.h
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/mojo.gyp
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/mojo_base.gyp
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/mojo_edk.gyp
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/mojo_edk_nacl.gyp
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/mojo_edk_tests.gyp
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/mojo_public.gyp
[add] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/mojo_variables.gypi
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/public/c/system/BUILD.gn
[delete] https://crrev.com/142a5307d2766eb098802cfa391dfe00b3146443/mojo/public/c/system/set_thunks_for_app.cc
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/public/c/system/system_export.h
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/public/mojo_application.gni
[add] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/public/platform/native/BUILD.gn
[rename] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/public/platform/native/system_thunks.cc
[rename] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/public/platform/native/system_thunks.h
[add] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/mojo/public/platform/native/thunk_export.h
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/services/shell/runner/host/BUILD.gn
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/services/shell/runner/host/native_application_support.cc
[modify] https://crrev.com/cb1def278c13f2816feb37a9afe1d2ce0ca2c4dc/ui/gfx/gfx.gyp

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 9 2016

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

commit b04b89b524f89a744e2a0e34a1cfedc84d9085c5
Author: rockot <rockot@chromium.org>
Date: Thu Jun 09 03:58:56 2016

[Reland] Mojo: Eliminate duplicate C API symbols

This gets rid of the duplicate definitions of public
Mojo C API symbols, instead making mojo/public/c/system
the singular source of these definitions. This allows
targets to be linked against mojo/public libraries
without requiring any additional EDK dependencies at
build time.

To facilitate this the EDK uses the same set of API
thunks as the public library, and the public library
exposes a special embedder API (distinct from the DSO
MojoSetSystemThunks call used by the native app loader)
for setting these thunks. The MojoSetSystemThunks API
is moved to a module which is only linked directly into
app DSOs.

Because mojo/public/c/system and mojo/edk/system are
now both components, and because there are no longer
redundant exports between the two, it's now safe for
targets to depend on either one or both of them as
needed without encountering duplicate definitions.

Also some opportunistic cleanup of Mojo build rules.

Reland of https://codereview.chromium.org/2044023004

Previous failures were caused by the mojo/public/c/system
component using "system" as its name, breaking -lsystem
behavior in some linking scenarios. This reland changes
the output_name of that target.

BUG=612500
TBR=jam@chromium.org

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

[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/edk/embedder/BUILD.gn
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/edk/embedder/embedder.cc
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/edk/embedder/entrypoints.cc
[add] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/edk/embedder/entrypoints.h
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/mojo.gyp
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/mojo_base.gyp
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/mojo_edk.gyp
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/mojo_edk_nacl.gyp
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/mojo_edk_tests.gyp
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/mojo_public.gyp
[delete] https://crrev.com/23bcb38936fddb66a15c02315d05d62e529756d4/mojo/mojo_variables.gypi
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/public/c/system/BUILD.gn
[add] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/public/c/system/set_thunks_for_app.cc
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/public/c/system/system_export.h
[rename] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/public/c/system/thunks.cc
[rename] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/public/c/system/thunks.h
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/mojo/public/mojo_application.gni
[delete] https://crrev.com/23bcb38936fddb66a15c02315d05d62e529756d4/mojo/public/platform/native/BUILD.gn
[delete] https://crrev.com/23bcb38936fddb66a15c02315d05d62e529756d4/mojo/public/platform/native/thunk_export.h
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/services/shell/runner/host/BUILD.gn
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/services/shell/runner/host/native_application_support.cc
[modify] https://crrev.com/b04b89b524f89a744e2a0e34a1cfedc84d9085c5/ui/gfx/gfx.gyp

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 11 2016

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

commit c547787ab747c9297d8f7e1f301115d97cd3d2c5
Author: rockot <rockot@chromium.org>
Date: Sat Jun 11 00:38:55 2016

Remove unnecessary dependencies on mojo/edk/system

Since we no longer need to compensate for intentionally
underspecified dependencies on public Mojo APIs, targets
which don't directly depend on mojo/edk sources no longer
need to express a direct dependency on //mojo/edk/system.

This removes all the unnecessary ones, and as a result
also gets rid of the blink_for_unittests target which
only needed to exist because of this weirdness.

BUG=612500
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/ash/mus/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/cc/blink/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/chrome/browser/ui/libgtk2ui/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/components/arc/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/components/mus/common/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/components/safe_json/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/components/webcrypto/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/content/child/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/content/test/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/device/battery/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/device/usb/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/device/vibration/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/device/vr/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/extensions/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/extensions/shell/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/ios/web/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/media/blink/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/media/mojo/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/mojo/android/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/mojo/converters/blink/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/skia/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/tools/ipc_fuzzer/message_replay/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/ui/events/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/ui/events/DEPS

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 13 2016

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

commit 33ea6a02332d0944150e9445a584d6f26718509b
Author: rockot <rockot@chromium.org>
Date: Mon Jun 13 20:33:50 2016

Increase the number of pthread keys available to the IRT

The Mojo EDK uses an additional key for thread-local storage
and is now necessary to bring up IPC in Chrome. This is apparently
enough to push us over the 16 key limit in some cases.

Doubling to 32 to leave some room for further expansion.

BUG=https://code.google.com/p/chromium/issues/detail?id=612500

Review-Url: https://codereview.chromium.org/2050043004

[modify] https://crrev.com/33ea6a02332d0944150e9445a584d6f26718509b/src/untrusted/irt/irt_private_pthread.c

Comment 9 by roc...@chromium.org, Jun 14 2016

Blockedon: 619202
Project Member

Comment 10 by bugdroid1@chromium.org, Jun 15 2016

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

commit c547787ab747c9297d8f7e1f301115d97cd3d2c5
Author: rockot <rockot@chromium.org>
Date: Sat Jun 11 00:38:55 2016

Remove unnecessary dependencies on mojo/edk/system

Since we no longer need to compensate for intentionally
underspecified dependencies on public Mojo APIs, targets
which don't directly depend on mojo/edk sources no longer
need to express a direct dependency on //mojo/edk/system.

This removes all the unnecessary ones, and as a result
also gets rid of the blink_for_unittests target which
only needed to exist because of this weirdness.

BUG=612500
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/ash/mus/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/cc/blink/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/chrome/browser/ui/libgtk2ui/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/components/arc/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/components/mus/common/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/components/safe_json/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/components/webcrypto/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/content/child/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/content/test/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/device/battery/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/device/usb/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/device/vibration/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/device/vr/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/extensions/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/extensions/shell/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/ios/web/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/media/blink/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/media/mojo/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/mojo/android/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/mojo/converters/blink/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/skia/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/tools/ipc_fuzzer/message_replay/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/ui/events/BUILD.gn
[modify] https://crrev.com/c547787ab747c9297d8f7e1f301115d97cd3d2c5/ui/events/DEPS

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 15 2016

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

commit 97912711c72d91e50bf6999f6842f9de1c05fab1
Author: rockot <rockot@chromium.org>
Date: Wed Jun 15 05:28:42 2016

Use Mojo pipes to signal sync IPC events

This transitions legacy sync IPC to use Mojo message pipe handles
for all of its sync event waiting. This is a necessary precursor to
mixing sync legacy IPC with sync Mojo IPC, and is also required to
support correct FIFO between ChannelProxy and Mojo Channel
associated interfaces.

Specifically:

 - Introduces a new IPC::MojoEvent type which is a WaitableEvent-like
   interface around a local message pipe.
 - Moves mojo::SyncHandleRegistry out of internal bindings API and
   exposes it publicly.
 - Replaces most uses of WaitableEvent with MojoEvent for sync IPC
 - Replaces all use of WaitableEvent::WaitMany for sync IPC
   with mojo::SyncHandleRegistry::WatchAllHandles.
 - Cleans up some unnecessary complexity in SyncMessage since
   pump_messages_event() was only being used with a single
   global event that's always signaled.

The system's behavior should be effectively unchanged by this CL,
but legacy sync IPC and mojo sync IPC can now be mixed freely.

BUG=612500
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel

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

[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/chrome/browser/printing/cloud_print/test/DEPS
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/chrome/browser/printing/cloud_print/test/cloud_print_proxy_process_browsertest.cc
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/components/nacl.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/components/nacl/loader/BUILD.gn
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/components/nacl/loader/DEPS
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/components/nacl/loader/nacl_helper_linux.cc
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/components/nacl/loader/nacl_main.cc
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/components/nacl_nonsfi.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/gpu/gpu.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/gpu/ipc/service/BUILD.gn
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/BUILD.gn
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/DEPS
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/ipc.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/ipc.gypi
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/ipc_nacl.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/ipc_sync_channel.cc
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/ipc_sync_channel.h
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/ipc_sync_message.cc
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/ipc_sync_message.h
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/ipc_sync_message_filter.cc
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/ipc_sync_message_filter.h
[add] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/mojo_event.cc
[add] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/mojo_event.h
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ipc/run_all_unittests.cc
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/mojo_edk.gyp
[add] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/mojo_edk.gypi
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/mojo_edk_tests.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/mojo_public.gyp
[add] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/mojo_public.gypi
[add] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/mojo_public_nacl.gyp
[add] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/mojo_public_tests.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/public/cpp/bindings/BUILD.gn
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/public/cpp/bindings/lib/sync_handle_registry.cc
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/public/cpp/bindings/lib/sync_handle_watcher.h
[add] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/public/cpp/bindings/sync_handle_registry.h
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/mojo/public/cpp/system/watcher.h
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/BUILD.gn
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/nacl_irt/DEPS
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/nacl_irt/plugin_startup.cc
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/native_client/native_client.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/ppapi_internal.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/ppapi_proxy_nacl.gyp
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/ppapi_tests.gypi
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/proxy/BUILD.gn
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/proxy/DEPS
[modify] https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1/ppapi/proxy/ppapi_perftests.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 15 2016

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

commit 5628ee3c26b0d0e18f8d722875fc71789b2ffba5
Author: tommycli <tommycli@chromium.org>
Date: Wed Jun 15 15:54:55 2016

Revert of Use Mojo pipes to signal sync IPC events (patchset #30 id:760001 of https://codereview.chromium.org/2033243003/ )

Reason for revert:
Breaks DrMemory builder. Sorry:

https://build.chromium.org/p/chromium.memory.fyi/builders/Chromium%20Windows%20Builder%20%28DrMemory%29?numbuilds=200

First breaking build:

https://build.chromium.org/p/chromium.memory.fyi/builders/Chromium%20Windows%20Builder%20%28DrMemory%29/builds/17216

Error:

Updating projects from gyp files...

Exception: Unknown AST node at key path 'includes': Set([Const('mojo_public.gypi')]) while reading C:\b\build\slave\drm-cr\build\src\mojo\mojo_public.gyp

Traceback (most recent call last):

  File "C:\b\build\slave\drm-cr\build\src\tools\gyp\pylib\gyp\input.py", line 496, in CallLoadTargetBuildFile

    includes, depth, check, False)

  File "C:\b\build\slave\drm-cr\build\src\tools\gyp\pylib\gyp\input.py", line 391, in LoadTargetBuildFile

    includes, True, check)

  File "C:\b\build\slave\drm-cr\build\src\tools\gyp\pylib\gyp\input.py", line 240, in LoadOneBuildFile

    build_file_data = CheckedEval(build_file_contents)

  File "C:\b\build\slave\drm-cr\build\src\tools\gyp\pylib\gyp\input.py", line 194, in CheckedEval

    return CheckNode(c3[0], [])

  File "C:\b\build\slave\drm-cr\build\src\tools\gyp\pylib\gyp\input.py", line 210, in CheckNode

    dict[key] = CheckNode(c[n + 1], kp)

  File "C:\b\build\slave\drm-cr\build\src\tools\gyp\pylib\gyp\input.py", line 224, in CheckNode

    "': " + repr(node))

TypeError: Unknown AST node at key path 'includes': Set([Const('mojo_public.gypi')]) while reading C:\b\build\slave\drm-cr\build\src\mojo\mojo_public.gyp

Original issue's description:
> Use Mojo pipes to signal sync IPC events
>
> This transitions legacy sync IPC to use Mojo message pipe handles
> for all of its sync event waiting. This is a necessary precursor to
> mixing sync legacy IPC with sync Mojo IPC, and is also required to
> support correct FIFO between ChannelProxy and Mojo Channel
> associated interfaces.
>
> Specifically:
>
>  - Introduces a new IPC::MojoEvent type which is a WaitableEvent-like
>    interface around a local message pipe.
>  - Moves mojo::SyncHandleRegistry out of internal bindings API and
>    exposes it publicly.
>  - Replaces most uses of WaitableEvent with MojoEvent for sync IPC
>  - Replaces all use of WaitableEvent::WaitMany for sync IPC
>    with mojo::SyncHandleRegistry::WatchAllHandles.
>  - Cleans up some unnecessary complexity in SyncMessage since
>    pump_messages_event() was only being used with a single
>    global event that's always signaled.
>
> The system's behavior should be effectively unchanged by this CL,
> but legacy sync IPC and mojo sync IPC can now be mixed freely.
>
> BUG=612500
> CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel
>
> Committed: https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1
> Cr-Commit-Position: refs/heads/master@{#399848}

TBR=bbudge@chromium.org,jam@chromium.org,mseaborn@chromium.org,raymes@chromium.org,sievers@chromium.org,yzshen@chromium.org,rockot@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=612500

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

[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/chrome/browser/printing/cloud_print/test/DEPS
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/chrome/browser/printing/cloud_print/test/cloud_print_proxy_process_browsertest.cc
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/components/nacl.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/components/nacl/loader/BUILD.gn
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/components/nacl/loader/DEPS
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/components/nacl/loader/nacl_helper_linux.cc
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/components/nacl/loader/nacl_main.cc
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/components/nacl_nonsfi.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/gpu/gpu.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/gpu/ipc/service/BUILD.gn
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/BUILD.gn
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/DEPS
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/ipc.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/ipc.gypi
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/ipc_nacl.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/ipc_sync_channel.cc
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/ipc_sync_channel.h
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/ipc_sync_message.cc
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/ipc_sync_message.h
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/ipc_sync_message_filter.cc
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/ipc_sync_message_filter.h
[delete] https://crrev.com/9e49fe0d8047ac92c5ca47ca576e3bcde63f0651/ipc/mojo_event.cc
[delete] https://crrev.com/9e49fe0d8047ac92c5ca47ca576e3bcde63f0651/ipc/mojo_event.h
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ipc/run_all_unittests.cc
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/mojo/mojo_edk.gyp
[delete] https://crrev.com/9e49fe0d8047ac92c5ca47ca576e3bcde63f0651/mojo/mojo_edk.gypi
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/mojo/mojo_edk_tests.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/mojo/mojo_public.gyp
[delete] https://crrev.com/9e49fe0d8047ac92c5ca47ca576e3bcde63f0651/mojo/mojo_public.gypi
[delete] https://crrev.com/9e49fe0d8047ac92c5ca47ca576e3bcde63f0651/mojo/mojo_public_nacl.gyp
[delete] https://crrev.com/9e49fe0d8047ac92c5ca47ca576e3bcde63f0651/mojo/mojo_public_tests.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/mojo/public/cpp/bindings/BUILD.gn
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/mojo/public/cpp/bindings/lib/sync_handle_registry.cc
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/mojo/public/cpp/bindings/lib/sync_handle_watcher.h
[delete] https://crrev.com/9e49fe0d8047ac92c5ca47ca576e3bcde63f0651/mojo/public/cpp/bindings/sync_handle_registry.h
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/mojo/public/cpp/system/watcher.h
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/BUILD.gn
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/nacl_irt/DEPS
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/nacl_irt/plugin_startup.cc
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/native_client/native_client.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/ppapi_internal.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/ppapi_proxy_nacl.gyp
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/ppapi_tests.gypi
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/proxy/BUILD.gn
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/proxy/DEPS
[modify] https://crrev.com/5628ee3c26b0d0e18f8d722875fc71789b2ffba5/ppapi/proxy/ppapi_perftests.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 15 2016

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

commit 6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1
Author: rockot <rockot@chromium.org>
Date: Wed Jun 15 18:25:19 2016

Use Mojo pipes to signal sync IPC events

This transitions legacy sync IPC to use Mojo message pipe handles
for all of its sync event waiting. This is a necessary precursor to
mixing sync legacy IPC with sync Mojo IPC, and is also required to
support correct FIFO between ChannelProxy and Mojo Channel
associated interfaces.

Specifically:

 - Introduces a new IPC::MojoEvent type which is a WaitableEvent-like
   interface around a local message pipe.
 - Moves mojo::SyncHandleRegistry out of internal bindings API and
   exposes it publicly.
 - Replaces most uses of WaitableEvent with MojoEvent for sync IPC
 - Replaces all use of WaitableEvent::WaitMany for sync IPC
   with mojo::SyncHandleRegistry::WatchAllHandles.
 - Cleans up some unnecessary complexity in SyncMessage since
   pump_messages_event() was only being used with a single
   global event that's always signaled.

The system's behavior should be effectively unchanged by this CL,
but legacy sync IPC and mojo sync IPC can now be mixed freely.

BUG=612500
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel

Committed: https://crrev.com/97912711c72d91e50bf6999f6842f9de1c05fab1
Review-Url: https://codereview.chromium.org/2033243003
Cr-Original-Commit-Position: refs/heads/master@{#399848}
Cr-Commit-Position: refs/heads/master@{#399963}

[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/chrome/browser/printing/cloud_print/test/DEPS
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/chrome/browser/printing/cloud_print/test/cloud_print_proxy_process_browsertest.cc
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/components/nacl.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/components/nacl/loader/BUILD.gn
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/components/nacl/loader/DEPS
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/components/nacl/loader/nacl_helper_linux.cc
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/components/nacl/loader/nacl_main.cc
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/components/nacl_nonsfi.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/gpu/gpu.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/gpu/ipc/service/BUILD.gn
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/BUILD.gn
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/DEPS
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/ipc.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/ipc.gypi
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/ipc_nacl.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/ipc_sync_channel.cc
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/ipc_sync_channel.h
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/ipc_sync_message.cc
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/ipc_sync_message.h
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/ipc_sync_message_filter.cc
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/ipc_sync_message_filter.h
[add] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/mojo_event.cc
[add] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/mojo_event.h
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ipc/run_all_unittests.cc
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/edk/system/BUILD.gn
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/mojo_edk.gyp
[add] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/mojo_edk.gypi
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/mojo_edk_tests.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/mojo_public.gyp
[add] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/mojo_public.gypi
[add] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/mojo_public_nacl.gyp
[add] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/mojo_public_tests.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/public/cpp/bindings/BUILD.gn
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/public/cpp/bindings/lib/sync_handle_registry.cc
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/public/cpp/bindings/lib/sync_handle_watcher.h
[add] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/public/cpp/bindings/sync_handle_registry.h
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/mojo/public/cpp/system/watcher.h
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/BUILD.gn
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/nacl_irt/DEPS
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/nacl_irt/plugin_startup.cc
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/native_client/native_client.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/ppapi_internal.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/ppapi_proxy_nacl.gyp
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/ppapi_tests.gypi
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/proxy/BUILD.gn
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/proxy/DEPS
[modify] https://crrev.com/6d7be626fdfc8e1e85bc2faa789a12a3ae3960a1/ppapi/proxy/ppapi_perftests.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 21 2016

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

commit 64e65de0553abe1c870978ec4dee77da14d93d9e
Author: rockot <rockot@chromium.org>
Date: Tue Jun 21 20:17:49 2016

Implements Mojo-based waiting for IPC::SyncChannel

Changes SyncChannel et al to use Mojo message pipe handles
and mojo::SyncHandleRegistry for sync waiting in lieu of
base::WaitableEvent.

This is necessary to support sync Mojo interface messages
without risk of deadlock.

BUG=612500

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

[modify] https://crrev.com/64e65de0553abe1c870978ec4dee77da14d93d9e/ipc/ipc_sync_channel.cc
[modify] https://crrev.com/64e65de0553abe1c870978ec4dee77da14d93d9e/ipc/ipc_sync_channel.h
[modify] https://crrev.com/64e65de0553abe1c870978ec4dee77da14d93d9e/ipc/ipc_sync_message.cc
[modify] https://crrev.com/64e65de0553abe1c870978ec4dee77da14d93d9e/ipc/ipc_sync_message.h
[modify] https://crrev.com/64e65de0553abe1c870978ec4dee77da14d93d9e/ipc/ipc_sync_message_filter.cc
[modify] https://crrev.com/64e65de0553abe1c870978ec4dee77da14d93d9e/ipc/ipc_sync_message_filter.h
[modify] https://crrev.com/64e65de0553abe1c870978ec4dee77da14d93d9e/ipc/mojo_event.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 22 2016

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

commit 9981a62a54d9d82c3cdbccb830f637a874f117da
Author: rockot <rockot@chromium.org>
Date: Wed Jun 22 18:07:01 2016

Simplify SyncChannel message pumping event

There's no need to use ref-counted or thread-local storage for
this. It can be a single leaky MojoEvent instance.

BUG=612500

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

[modify] https://crrev.com/9981a62a54d9d82c3cdbccb830f637a874f117da/ipc/ipc_sync_channel.cc
[modify] https://crrev.com/9981a62a54d9d82c3cdbccb830f637a874f117da/ipc/ipc_sync_channel.h

Project Member

Comment 17 by bugdroid1@chromium.org, Jun 30 2016

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

commit 3fe9ca703e3f2e72f8bcc641290935a181e3b022
Author: rockot <rockot@chromium.org>
Date: Thu Jun 30 18:35:44 2016

Mojo C++ Bindings: Extract AssociatedGroupController from MultiplexRouter

Defines AssociatedGroupController, an interface for managing
endpoint lifetime within an associated group. This was extracted
from MultiplexRouter which now implements the interface.

This is a precursor to supporting an alternative binding implementation
to serve the unique requirements of Mojo IPC::Channel and other
interfaces associated with it.

BUG=612500

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

[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/mojo_public.gypi
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/BUILD.gn
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/associated_binding.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/associated_group.h
[add] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/associated_group_controller.h
[rename] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/interface_endpoint_client.h
[rename] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/interface_endpoint_controller.h
[rename] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/interface_id.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/associated_group.cc
[add] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/associated_group_controller.cc
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/associated_interface_ptr_state.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/binding_state.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/bindings_internal.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/handle_interface_serialization.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/interface_ptr_state.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/multiplex_router.cc
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/multiplex_router.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/pipe_control_message_handler.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/pipe_control_message_handler_delegate.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/pipe_control_message_proxy.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/scoped_interface_endpoint_handle.cc
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/serialization_context.cc
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/serialization_context.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/lib/serialization_util.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/cpp/bindings/tests/multiplex_router_unittest.cc
[modify] https://crrev.com/3fe9ca703e3f2e72f8bcc641290935a181e3b022/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl

Project Member

Comment 18 by bugdroid1@chromium.org, Jun 30 2016

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

commit fb120de586f00981251a9bdfc8f952a4a8f91240
Author: rockot <rockot@chromium.org>
Date: Thu Jun 30 21:22:55 2016

Move more Mojo bindings helpers out of internal namespace

Moves the following things out of the mojo::internal namespace
and moves their headers to mojo/public/cpp/bindings:

  - InterfaceId
  - Message flags (constants in Message rather than in internal)
  - MessageHeaderValidator
  - PipeControlMessageHandler
  - PipeControlMessageHandlerDelegate
  - PipeControlMessageProxy
  - SyncHandleWatcher

This completes the set of existing helpers necessary to implement
custom bindings endpoints with custom routing logic.

BUG=612500
R=yzshen@chromium.org

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

[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/mojo_public.gypi
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/BUILD.gn
[rename] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/connector.h
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/binding_state.h
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/connector.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/interface_ptr_state.h
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/message_builder.h
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/message_header_validator.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/message_internal.h
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/multiplex_router.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/multiplex_router.h
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/pipe_control_message_proxy.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/router.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/router.h
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/sync_handle_watcher.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/lib/validation_util.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/message.h
[rename] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/message_header_validator.h
[rename] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/pipe_control_message_handler.h
[rename] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/pipe_control_message_handler_delegate.h
[rename] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/pipe_control_message_proxy.h
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/strong_binding.h
[rename] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/sync_handle_watcher.h
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/tests/connector_unittest.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/tests/router_test_util.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/cpp/bindings/tests/validation_unittest.cc
[modify] https://crrev.com/fb120de586f00981251a9bdfc8f952a4a8f91240/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl

Project Member

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

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

commit a68850cee9663b6295f565a45d830c5271090c69
Author: rockot <rockot@chromium.org>
Date: Thu Jul 07 19:30:48 2016

[mojo-edk] Pump incoming messages in some missing places

Calls AcceptIncomingMessages() in two places it was missing:
  - OnRequestPortMerge(), since Node::MergePorts is called
  - DropPeer(), since Node::LostConnectionToNode is called

BUG=612500

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

[modify] https://crrev.com/a68850cee9663b6295f565a45d830c5271090c69/mojo/edk/system/node_controller.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 7 2016

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

commit 439768f0aaaea83ffb7ce6c3ba4438804582c383
Author: rockot <rockot@chromium.org>
Date: Thu Jul 07 20:19:17 2016

Move content's shell connections to the IO thread

Moves all shell connections in the content layer
(connections owned by instances of MojoShellConnection and
MojoChildConnection) to the IO thread in all process types.
Note that instances of MojoShellConnection and
MojoChildConnection may still be created and used on
any thread.

Additionally exposes a way for InterfaceRegistry and
InterfaceProvider to forward to/from other instances
so we can still have a corresponding instance of each
on whatever thread owns the Mojo[Shell/Child]Connection
object.

This simplifies interface registration and acquisition
on process hosts and ChildThreadImpls, and makes it possible
for a future CL to introduce IO-thread service registration
to avoid thread hops when binding incoming interface requests.

BUG=623398,612500

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

[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/chrome/browser/chromeos/chrome_interface_factory.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/chrome/browser/chromeos/chrome_interface_factory.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/chrome/test/base/mash_browser_tests_main.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/browser_context.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/browser_main_loop.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/mojo/mojo_child_connection.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/mojo/mojo_child_connection.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/renderer_host/render_widget_host_view_mus.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/browser/utility_process_host_impl.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/child/background_sync/background_sync_provider.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/child/child_thread_impl.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/child/child_thread_impl.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/common/mojo/mojo_shell_connection_impl.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/common/mojo/mojo_shell_connection_impl.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/content_common.gypi
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/gpu/BUILD.gn
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/gpu/gpu_child_thread.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/public/browser/render_process_host.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/public/child/child_thread.h
[add] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/public/common/connection_filter.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/public/common/mojo_shell_connection.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/public/test/mock_render_process_host.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/public/test/mock_render_process_host.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/renderer/mus/render_widget_window_tree_client_factory.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/renderer/mus/render_widget_window_tree_client_factory.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/renderer/render_thread_impl.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/navigation/BUILD.gn
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/navigation/content_client/content_browser_client.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/navigation/navigation.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/navigation/navigation.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/navigation/view_impl.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/navigation/view_impl.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/connection.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/connector.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/interface_provider.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/interface_registry.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/lib/connector_impl.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/lib/connector_impl.h
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/lib/interface_provider.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/lib/interface_registry.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/lib/shell_connection.cc
[modify] https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383/services/shell/public/cpp/shell_connection.h

Project Member

Comment 22 by bugdroid1@chromium.org, Jul 7 2016

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

commit 4a93a86045c9ed89385d13a6f6d154fadd2beaab
Author: rockot <rockot@chromium.org>
Date: Thu Jul 07 20:50:14 2016

Revert of Move content's shell connections to the IO thread (patchset #9 id:220001 of https://codereview.chromium.org/2111353002/ )

Reason for revert:
stupid build failure

Original issue's description:
> Move content's shell connections to the IO thread
>
> Moves all shell connections in the content layer
> (connections owned by instances of MojoShellConnection and
> MojoChildConnection) to the IO thread in all process types.
> Note that instances of MojoShellConnection and
> MojoChildConnection may still be created and used on
> any thread.
>
> Additionally exposes a way for InterfaceRegistry and
> InterfaceProvider to forward to/from other instances
> so we can still have a corresponding instance of each
> on whatever thread owns the Mojo[Shell/Child]Connection
> object.
>
> This simplifies interface registration and acquisition
> on process hosts and ChildThreadImpls, and makes it possible
> for a future CL to introduce IO-thread service registration
> to avoid thread hops when binding incoming interface requests.
>
> BUG=623398,612500
>
> Committed: https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383
> Cr-Commit-Position: refs/heads/master@{#404228}

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

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

[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/chrome/browser/chromeos/chrome_interface_factory.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/chrome/browser/chromeos/chrome_interface_factory.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/chrome/test/base/mash_browser_tests_main.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/browser_context.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/browser_main_loop.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/mojo/mojo_child_connection.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/mojo/mojo_child_connection.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/renderer_host/render_widget_host_view_mus.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/browser/utility_process_host_impl.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/child/background_sync/background_sync_provider.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/child/child_thread_impl.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/child/child_thread_impl.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/common/mojo/mojo_shell_connection_impl.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/common/mojo/mojo_shell_connection_impl.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/content_common.gypi
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/gpu/BUILD.gn
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/gpu/gpu_child_thread.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/public/browser/render_process_host.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/public/child/child_thread.h
[delete] https://crrev.com/225e0d108f12c89466aced7ea3dc567080c80d8c/content/public/common/connection_filter.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/public/common/mojo_shell_connection.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/public/test/mock_render_process_host.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/public/test/mock_render_process_host.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/renderer/mus/render_widget_window_tree_client_factory.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/renderer/mus/render_widget_window_tree_client_factory.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/renderer/render_thread_impl.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/navigation/BUILD.gn
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/navigation/content_client/content_browser_client.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/navigation/navigation.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/navigation/navigation.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/navigation/view_impl.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/navigation/view_impl.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/connection.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/connector.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/interface_provider.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/interface_registry.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/lib/connector_impl.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/lib/connector_impl.h
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/lib/interface_provider.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/lib/interface_registry.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/lib/shell_connection.cc
[modify] https://crrev.com/4a93a86045c9ed89385d13a6f6d154fadd2beaab/services/shell/public/cpp/shell_connection.h

Project Member

Comment 23 by bugdroid1@chromium.org, Jul 8 2016

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

commit a18ca6b383554d7806787028c0961858e90bb086
Author: amistry <amistry@chromium.org>
Date: Fri Jul 08 00:47:32 2016

[mojo-edk] Post a task to process local messages.

This ensures the local message queue is _always_ processed, instead of
relying on the side effect of certain functions such as SendMessage.

BUG=612500

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

[modify] https://crrev.com/a18ca6b383554d7806787028c0961858e90bb086/mojo/edk/system/node_controller.cc
[modify] https://crrev.com/a18ca6b383554d7806787028c0961858e90bb086/mojo/edk/system/node_controller.h

Project Member

Comment 24 by bugdroid1@chromium.org, Jul 9 2016

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

commit 0771b1d71a3295691f9ffaefdf50652bd58e01c4
Author: rockot <rockot@chromium.org>
Date: Sat Jul 09 01:16:57 2016

Move content's service manager connections to the IO thread

Moves all service manager connections in the content layer
(connections owned by instances of MojoShellConnection and
MojoChildConnection) to the IO thread in all process types.
Note that instances of MojoShellConnection and
MojoChildConnection may still be created and used on
any thread.

Additionally exposes a way for InterfaceRegistry and
InterfaceProvider to forward to/from other instances
so we can still have a corresponding instance of each
on whatever thread owns the Mojo[Shell/Child]Connection
object.

This simplifies interface registration and acquisition
on process hosts and ChildThreadImpls, and makes it possible
for a future CL to introduce IO-thread service registration
to avoid thread hops when binding incoming interface requests.

BUG=623398,612500

Committed: https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383
Review-Url: https://codereview.chromium.org/2111353002
Cr-Original-Commit-Position: refs/heads/master@{#404228}
Cr-Commit-Position: refs/heads/master@{#404556}

[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/chrome/browser/chromeos/chrome_interface_factory.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/chrome/browser/chromeos/chrome_interface_factory.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/chrome/test/base/mash_browser_tests_main.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/browser_context.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/browser_main_loop.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/mojo/mojo_child_connection.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/mojo/mojo_child_connection.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/renderer_host/render_widget_host_view_mus.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/browser/utility_process_host_impl.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/child/background_sync/background_sync_provider.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/child/child_thread_impl.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/child/child_thread_impl.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/common/mojo/mojo_shell_connection_impl.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/common/mojo/mojo_shell_connection_impl.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/content_common.gypi
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/gpu/BUILD.gn
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/gpu/gpu_child_thread.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/public/browser/render_process_host.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/public/child/child_thread.h
[add] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/public/common/connection_filter.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/public/common/mojo_shell_connection.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/public/test/mock_render_process_host.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/public/test/mock_render_process_host.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/renderer/mus/render_widget_window_tree_client_factory.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/renderer/mus/render_widget_window_tree_client_factory.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/renderer/render_thread_impl.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/navigation/BUILD.gn
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/navigation/content_client/content_browser_client.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/navigation/navigation.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/navigation/navigation.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/navigation/view_impl.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/navigation/view_impl.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/connection.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/connector.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/interface_provider.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/interface_registry.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/lib/connector_impl.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/lib/connector_impl.h
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/lib/interface_provider.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/lib/interface_registry.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/lib/service_context.cc
[modify] https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4/services/shell/public/cpp/service_context.h

Comment 25 by kbr@chromium.org, Jul 11 2016

Blockedon: 627277
Project Member

Comment 26 by bugdroid1@chromium.org, Jul 12 2016

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

commit d535a2c52c815ed792cba4ebbeb621816cd013b8
Author: rockot <rockot@chromium.org>
Date: Tue Jul 12 18:26:39 2016

Revert of Move content's shell connections to the IO thread (patchset #14 id:320001 of https://codereview.chromium.org/2111353002/ )

Reason for revert:
http://crbug.com/627277

Original issue's description:
> Move content's service manager connections to the IO thread
>
> Moves all service manager connections in the content layer
> (connections owned by instances of MojoShellConnection and
> MojoChildConnection) to the IO thread in all process types.
> Note that instances of MojoShellConnection and
> MojoChildConnection may still be created and used on
> any thread.
>
> Additionally exposes a way for InterfaceRegistry and
> InterfaceProvider to forward to/from other instances
> so we can still have a corresponding instance of each
> on whatever thread owns the Mojo[Shell/Child]Connection
> object.
>
> This simplifies interface registration and acquisition
> on process hosts and ChildThreadImpls, and makes it possible
> for a future CL to introduce IO-thread service registration
> to avoid thread hops when binding incoming interface requests.
>
> BUG=623398,612500
>
> Committed: https://crrev.com/439768f0aaaea83ffb7ce6c3ba4438804582c383
> Committed: https://crrev.com/0771b1d71a3295691f9ffaefdf50652bd58e01c4
> Cr-Original-Commit-Position: refs/heads/master@{#404228}
> Cr-Commit-Position: refs/heads/master@{#404556}

TBR=ben@chromium.org,piman@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=623398,612500
NOTRY=true

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

[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/chrome/browser/chromeos/chrome_interface_factory.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/chrome/browser/chromeos/chrome_interface_factory.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/chrome/test/base/mash_browser_tests_main.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/browser_context.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/browser_main_loop.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/mojo/mojo_child_connection.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/mojo/mojo_child_connection.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/mojo/mojo_shell_context.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/renderer_host/render_widget_host_view_mus.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/browser/utility_process_host_impl.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/child/background_sync/background_sync_provider.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/child/child_thread_impl.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/child/child_thread_impl.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/common/mojo/mojo_shell_connection_impl.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/common/mojo/mojo_shell_connection_impl.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/content_common.gypi
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/gpu/BUILD.gn
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/gpu/gpu_child_thread.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/public/browser/render_process_host.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/public/child/child_thread.h
[delete] https://crrev.com/c4f4073a28689b275f41aa83679627d719e8884a/content/public/common/connection_filter.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/public/common/mojo_shell_connection.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/public/test/mock_render_process_host.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/public/test/mock_render_process_host.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/renderer/mus/render_widget_window_tree_client_factory.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/renderer/mus/render_widget_window_tree_client_factory.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/renderer/render_thread_impl.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/navigation/BUILD.gn
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/navigation/content_client/content_browser_client.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/navigation/navigation.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/navigation/navigation.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/navigation/view_impl.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/navigation/view_impl.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/connection.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/connector.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/interface_provider.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/interface_registry.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/lib/connector_impl.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/lib/connector_impl.h
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/lib/interface_provider.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/lib/interface_registry.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/lib/service_context.cc
[modify] https://crrev.com/d535a2c52c815ed792cba4ebbeb621816cd013b8/services/shell/public/cpp/service_context.h

Project Member

Comment 27 by bugdroid1@chromium.org, Jul 13 2016

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

commit 02b8e188466c60a084959c554c0d598303b621c3
Author: rockot <rockot@chromium.org>
Date: Wed Jul 13 20:08:30 2016

Move ChannelMojo bindings to a custom multiplex router

Changes MojoBootstrap - the implementation of master endpoints for
IPC::ChannelMojo - to use custom message routing logic in lieu of
the Mojo public Binding and InterfacePtr primitives and the underlying
MultiplexRouter implementation.

This is part a series of CLs to support Channel-associated interfaces.

BUG=612500

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

[modify] https://crrev.com/02b8e188466c60a084959c554c0d598303b621c3/ipc/ipc_mojo_bootstrap.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Jul 13 2016

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

commit dc88e5075878f16cde23b910d2ce19aa862129e4
Author: rockot <rockot@chromium.org>
Date: Wed Jul 13 22:43:32 2016

Adds associated interface support to IPC::Channel

Provides a way of registering associated interface bindings with
an IPC::Channel endpoint and acquiring proxies to remote interfaces
on the other side.

Support for this is exposed by IPC::Channel but only implemented
in IPC::ChannelMojo.

This is part a series of CLs to support Channel-associated interfaces.

BUG=612500

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

[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/BUILD.gn
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc.gyp
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc.mojom
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_channel.h
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_channel_common.cc
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_message_pipe_reader.cc
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_message_pipe_reader.h
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_mojo_bootstrap.h
[add] https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4/ipc/ipc_test.mojom

Project Member

Comment 29 by bugdroid1@chromium.org, Jul 13 2016

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

commit 3ab4670d4ce9e922da8e9610eeadde6823bca991
Author: rockot <rockot@chromium.org>
Date: Wed Jul 13 23:03:07 2016

Revert of Adds associated interface support to IPC::Channel (patchset #9 id:160001 of https://codereview.chromium.org/2137353002/ )

Reason for revert:
Bah - forgot to update gyp properly. Surprised it got through the CQ...

Original issue's description:
> Adds associated interface support to IPC::Channel
>
> Provides a way of registering associated interface bindings with
> an IPC::Channel endpoint and acquiring proxies to remote interfaces
> on the other side.
>
> Support for this is exposed by IPC::Channel but only implemented
> in IPC::ChannelMojo.
>
> This is part a series of CLs to support Channel-associated interfaces.
>
> BUG=612500
>
> Committed: https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4
> Cr-Commit-Position: refs/heads/master@{#405316}

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

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

[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/BUILD.gn
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc.gyp
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc.mojom
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc_channel.h
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc_channel_common.cc
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc_message_pipe_reader.cc
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc_message_pipe_reader.h
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/3ab4670d4ce9e922da8e9610eeadde6823bca991/ipc/ipc_mojo_bootstrap.h
[delete] https://crrev.com/fc7b7b15c1261315081ef6ee03fc90db28eb9678/ipc/ipc_test.mojom

Project Member

Comment 30 by bugdroid1@chromium.org, Jul 14 2016

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

commit 7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6
Author: rockot <rockot@chromium.org>
Date: Thu Jul 14 00:34:11 2016

Adds associated interface support to IPC::Channel

Provides a way of registering associated interface bindings with
an IPC::Channel endpoint and acquiring proxies to remote interfaces
on the other side.

Support for this is exposed by IPC::Channel but only implemented
in IPC::ChannelMojo.

This is part a series of CLs to support Channel-associated interfaces.

BUG=612500

Committed: https://crrev.com/dc88e5075878f16cde23b910d2ce19aa862129e4
Review-Url: https://codereview.chromium.org/2137353002
Cr-Original-Commit-Position: refs/heads/master@{#405316}
Cr-Commit-Position: refs/heads/master@{#405364}

[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/BUILD.gn
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc.gyp
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc.mojom
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_channel.h
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_channel_common.cc
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_message_pipe_reader.cc
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_message_pipe_reader.h
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_mojo_bootstrap.h
[add] https://crrev.com/7c6bf9577022c2d646bb6a347d6e3c93a5bb5ac6/ipc/ipc_test.mojom

Project Member

Comment 32 by bugdroid1@chromium.org, Jul 20 2016

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

commit a34707ca8e2548fcc804ffaa9571adcba2d024a8
Author: rockot <rockot@chromium.org>
Date: Wed Jul 20 04:28:32 2016

Plumb explicit IPC task runner through to IPC::Channel creation

In preparation for a follow-up CL, IPC::ChannelMojo needs to
know which TaskRunner it will be used from despite being constructed
on some arbitray other thread (for e.g. ChannelProxy).

This CL plumbs through an IPC TaskRunner to various Channel
instantiation sites to avoid lots of noise in the other CL.

There are no behavioral changes introduced here.

BUG=612500,619202

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

[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/content/child/child_thread_impl.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/content/test/render_thread_impl_browser_test_ipc_helper.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel.h
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel_common.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel_factory.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel_factory.h
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel_proxy_unittest.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_channel_unittest.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_fuzzing_tests.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_mojo_perftest.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_perftest_support.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_send_fds_test.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_test_base.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/ipc_test_base.h
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/ipc/sync_socket_unittest.cc
[modify] https://crrev.com/a34707ca8e2548fcc804ffaa9571adcba2d024a8/tools/ipc_fuzzer/message_replay/replay_process.cc

Project Member

Comment 33 by bugdroid1@chromium.org, Jul 21 2016

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

commit e1037f997da9e1d44ca3b09d4ff32f0465673091
Author: rockot <rockot@chromium.org>
Date: Thu Jul 21 00:13:20 2016

Support early associated interface binding on ChannelMojo

Changes the associated bindings implementation for ChannelMojo
such that remote interfaces can be acquired immediately upon
ChannelMojo construction rather than having to wait for connection
on the IO thread.

Simplifies the Channel bootstrapping process, removing a round-trip
Init message (and in fact the entire IPC::mojom::Boostrap interface)
since there's no need to actually exchange associated interface handles
over the pipe. Instead both sides can assume the other will use a fixed,
reserved endpoint ID for their IPC::mojom::Channel interface.

This also removes the restriction that associated interfaces must be
added to a Channel after Init. Instead the same constraints apply as
with AddFilter: an associated interface, like a filter, may be added
at any time as long as either Init hasn't been called OR the remote
process hasn't been launched.

The result of this CL is that any place it's safe to AddFilter,
it's also safe to AddAssociatedInterface; and any place it's safe to
Send, it's also safe to GetRemoteAssociatedInterface and begin using
any such remote interface immediately.

Remote interface requests as well as all messages to remote interfaces
retain FIFO with respect to any Send calls on the same thread. Local
interface request dispatch as well as all messages on locally bound
associated interfaces retain FIFO with respect to any OnMessageReceived
calls on the same thread.

BUG=612500,619202

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

[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc.mojom
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_channel.h
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_channel_proxy.h
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_message_pipe_reader.cc
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_message_pipe_reader.h
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_mojo_bootstrap.h
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/ipc/ipc_mojo_bootstrap_unittest.cc
[modify] https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc

Project Member

Comment 34 by bugdroid1@chromium.org, Jul 21 2016

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

commit f192a075bcd935672ec1db5de7308a96bfd34685
Author: rockot <rockot@chromium.org>
Date: Thu Jul 21 01:33:51 2016

Revert of Support early associated interface binding on ChannelMojo (patchset #5 id:80001 of https://codereview.chromium.org/2163633003/ )

Reason for revert:
Lots of browser_tests failures.

https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/266272

Original issue's description:
> Support early associated interface binding on ChannelMojo
>
> Changes the associated bindings implementation for ChannelMojo
> such that remote interfaces can be acquired immediately upon
> ChannelMojo construction rather than having to wait for connection
> on the IO thread.
>
> Simplifies the Channel bootstrapping process, removing a round-trip
> Init message (and in fact the entire IPC::mojom::Boostrap interface)
> since there's no need to actually exchange associated interface handles
> over the pipe. Instead both sides can assume the other will use a fixed,
> reserved endpoint ID for their IPC::mojom::Channel interface.
>
> This also removes the restriction that associated interfaces must be
> added to a Channel after Init. Instead the same constraints apply as
> with AddFilter: an associated interface, like a filter, may be added
> at any time as long as either Init hasn't been called OR the remote
> process hasn't been launched.
>
> The result of this CL is that any place it's safe to AddFilter,
> it's also safe to AddAssociatedInterface; and any place it's safe to
> Send, it's also safe to GetRemoteAssociatedInterface and begin using
> any such remote interface immediately.
>
> Remote interface requests as well as all messages to remote interfaces
> retain FIFO with respect to any Send calls on the same thread. Local
> interface request dispatch as well as all messages on locally bound
> associated interfaces retain FIFO with respect to any OnMessageReceived
> calls on the same thread.
>
> BUG=612500,619202
>
> Committed: https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091
> Cr-Commit-Position: refs/heads/master@{#406720}

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

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

[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc.mojom
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_channel.h
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_channel_proxy.h
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_message_pipe_reader.cc
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_message_pipe_reader.h
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_mojo_bootstrap.h
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/ipc/ipc_mojo_bootstrap_unittest.cc
[modify] https://crrev.com/f192a075bcd935672ec1db5de7308a96bfd34685/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc

Comment 35 by kbr@chromium.org, Jul 22 2016

Blockedon: 630414
Project Member

Comment 36 by bugdroid1@chromium.org, Jul 22 2016

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

commit 508da24622f957a01b076ccd058bfdccc79068a4
Author: rockot <rockot@chromium.org>
Date: Fri Jul 22 03:53:59 2016

Support early associated interface binding on ChannelMojo

Changes the associated bindings implementation for ChannelMojo
such that remote interfaces can be acquired immediately upon
ChannelMojo construction rather than having to wait for connection
on the IO thread.

Simplifies the Channel bootstrapping process, removing a round-trip
Init message (and in fact the entire IPC::mojom::Boostrap interface)
since there's no need to actually exchange associated interface handles
over the pipe. Instead both sides can assume the other will use a fixed,
reserved endpoint ID for their IPC::mojom::Channel interface.

This also removes the restriction that associated interfaces must be
added to a Channel after Init. Instead the same constraints apply as
with AddFilter: an associated interface, like a filter, may be added
at any time as long as either Init hasn't been called OR the remote
process hasn't been launched.

The result of this CL is that any place it's safe to AddFilter,
it's also safe to AddAssociatedInterface; and any place it's safe to
Send, it's also safe to GetRemoteAssociatedInterface and begin using
any such remote interface immediately.

Remote interface requests as well as all messages to remote interfaces
retain FIFO with respect to any Send calls on the same thread. Local
interface request dispatch as well as all messages on locally bound
associated interfaces retain FIFO with respect to any OnMessageReceived
calls on the same thread.

BUG=612500,619202

Committed: https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091
Review-Url: https://codereview.chromium.org/2163633003
Cr-Original-Commit-Position: refs/heads/master@{#406720}
Cr-Commit-Position: refs/heads/master@{#407050}

[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc.mojom
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_channel.h
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_channel_proxy.h
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_message_pipe_reader.cc
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_message_pipe_reader.h
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_mojo_bootstrap.h
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/ipc/ipc_mojo_bootstrap_unittest.cc
[modify] https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc

Project Member

Comment 37 by bugdroid1@chromium.org, Jul 22 2016

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

commit 5507feebdcc7216f8e390aca33ab28afbe349a97
Author: msramek <msramek@chromium.org>
Date: Fri Jul 22 10:06:21 2016

Revert of Support early associated interface binding on ChannelMojo (patchset #7 id:120001 of https://codereview.chromium.org/2163633003/ )

Reason for revert:
Probable cause of failures on Mac ASan. See crbug.com/630564 for more details.

Original issue's description:
> Support early associated interface binding on ChannelMojo
>
> Changes the associated bindings implementation for ChannelMojo
> such that remote interfaces can be acquired immediately upon
> ChannelMojo construction rather than having to wait for connection
> on the IO thread.
>
> Simplifies the Channel bootstrapping process, removing a round-trip
> Init message (and in fact the entire IPC::mojom::Boostrap interface)
> since there's no need to actually exchange associated interface handles
> over the pipe. Instead both sides can assume the other will use a fixed,
> reserved endpoint ID for their IPC::mojom::Channel interface.
>
> This also removes the restriction that associated interfaces must be
> added to a Channel after Init. Instead the same constraints apply as
> with AddFilter: an associated interface, like a filter, may be added
> at any time as long as either Init hasn't been called OR the remote
> process hasn't been launched.
>
> The result of this CL is that any place it's safe to AddFilter,
> it's also safe to AddAssociatedInterface; and any place it's safe to
> Send, it's also safe to GetRemoteAssociatedInterface and begin using
> any such remote interface immediately.
>
> Remote interface requests as well as all messages to remote interfaces
> retain FIFO with respect to any Send calls on the same thread. Local
> interface request dispatch as well as all messages on locally bound
> associated interfaces retain FIFO with respect to any OnMessageReceived
> calls on the same thread.
>
> BUG=612500,619202
>
> Committed: https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091
> Committed: https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4
> Cr-Original-Commit-Position: refs/heads/master@{#406720}
> Cr-Commit-Position: refs/heads/master@{#407050}

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

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

[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc.mojom
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_channel.h
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_channel_proxy.h
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_message_pipe_reader.cc
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_message_pipe_reader.h
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_mojo_bootstrap.h
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/ipc/ipc_mojo_bootstrap_unittest.cc
[modify] https://crrev.com/5507feebdcc7216f8e390aca33ab28afbe349a97/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc

Project Member

Comment 38 by bugdroid1@chromium.org, Jul 22 2016

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

commit 0e4de5f9a519c6cd206448a10eccc7a535e3db64
Author: rockot <rockot@chromium.org>
Date: Fri Jul 22 21:18:07 2016

Support early associated interface binding on ChannelMojo

Changes the associated bindings implementation for ChannelMojo
such that remote interfaces can be acquired immediately upon
ChannelMojo construction rather than having to wait for connection
on the IO thread.

Simplifies the Channel bootstrapping process, removing a round-trip
Init message (and in fact the entire IPC::mojom::Boostrap interface)
since there's no need to actually exchange associated interface handles
over the pipe. Instead both sides can assume the other will use a fixed,
reserved endpoint ID for their IPC::mojom::Channel interface.

This also removes the restriction that associated interfaces must be
added to a Channel after Init. Instead the same constraints apply as
with AddFilter: an associated interface, like a filter, may be added
at any time as long as either Init hasn't been called OR the remote
process hasn't been launched.

The result of this CL is that any place it's safe to AddFilter,
it's also safe to AddAssociatedInterface; and any place it's safe to
Send, it's also safe to GetRemoteAssociatedInterface and begin using
any such remote interface immediately.

Remote interface requests as well as all messages to remote interfaces
retain FIFO with respect to any Send calls on the same thread. Local
interface request dispatch as well as all messages on locally bound
associated interfaces retain FIFO with respect to any OnMessageReceived
calls on the same thread.

BUG=612500,619202

Committed: https://crrev.com/e1037f997da9e1d44ca3b09d4ff32f0465673091
Committed: https://crrev.com/508da24622f957a01b076ccd058bfdccc79068a4
Review-Url: https://codereview.chromium.org/2163633003
Cr-Original-Original-Commit-Position: refs/heads/master@{#406720}
Cr-Original-Commit-Position: refs/heads/master@{#407050}
Cr-Commit-Position: refs/heads/master@{#407264}

[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc.mojom
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_channel.h
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_channel_proxy.h
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_message_pipe_reader.cc
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_message_pipe_reader.h
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_mojo_bootstrap.h
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/ipc/ipc_mojo_bootstrap_unittest.cc
[modify] https://crrev.com/0e4de5f9a519c6cd206448a10eccc7a535e3db64/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc

Project Member

Comment 39 by bugdroid1@chromium.org, Jul 26 2016

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

commit a32ca4b3ff6690d5b164313cd541e7908b8b8499
Author: rockot <rockot@chromium.org>
Date: Tue Jul 26 00:12:03 2016

Adds BrowserAssociatedInterface

BrowserAssociatedInterface can be implemented in conjunction with
BrowserMessageFilter in order to provide browser-side Mojo bindings
which dispatch on the IO thread and maintain FIFO with respect
to legacy IPC messages on the same channel.

BUG=612500,619202
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[add] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/browser/browser_associated_interface_unittest.cc
[modify] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/content_browser.gypi
[modify] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/content_tests.gypi
[add] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/public/browser/browser_associated_interface.h
[modify] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/public/browser/browser_message_filter.cc
[modify] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/public/browser/browser_message_filter.h
[modify] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/test/BUILD.gn
[modify] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/test/OWNERS
[add] https://crrev.com/a32ca4b3ff6690d5b164313cd541e7908b8b8499/content/test/test_browser_associated_interfaces.mojom

Project Member

Comment 40 by bugdroid1@chromium.org, Jul 27 2016

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

commit 1587e33c1578c277af84c700bd213f5743f09f18
Author: rockot <rockot@chromium.org>
Date: Wed Jul 27 17:44:14 2016

Moves FrameHostMsg_SetCookie to a Mojo message

Adds a new BrowserAssociatedInterface to RenderFrameMessageFilter
and converts a single message (SetCookie) to Mojo.

BUG=612500
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/browser/frame_host/render_frame_message_filter.cc
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/browser/frame_host/render_frame_message_filter.h
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/browser/frame_host/render_frame_message_filter_browsertest.cc
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/common/BUILD.gn
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/common/frame_messages.h
[add] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/common/render_frame_message_filter.mojom
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/content_common_mojo_bindings.gyp
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/renderer/render_thread_impl.h
[modify] https://crrev.com/1587e33c1578c277af84c700bd213f5743f09f18/content/renderer/renderer_webcookiejar_impl.cc

Project Member

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

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

commit 160577e9f267226ebd2c388e3bf1f8067484bbb2
Author: rockot <rockot@chromium.org>
Date: Wed Aug 03 20:24:44 2016

Mojo C++ Bindings: Add helpers for bad message reporting

Adds new C++ API at the bindings layer for convenient reporting
of bad messages from within the stack frames that are actually
processing those messages.

Also adds a new EDK API to set a default process error handler.
This is currently only used to support testing but may be
generally useful for production code as well.

BUG=612500
R=yzshen@chromium.org

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

[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/edk/embedder/embedder.cc
[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/edk/embedder/embedder.h
[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/edk/system/core.cc
[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/edk/system/core.h
[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/public/cpp/bindings/lib/message.cc
[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/public/cpp/bindings/lib/message_internal.h
[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/public/cpp/bindings/message.h
[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/public/cpp/bindings/tests/BUILD.gn
[add] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/public/cpp/bindings/tests/report_bad_message_unittest.cc
[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/public/interfaces/bindings/tests/BUILD.gn
[add] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/public/interfaces/bindings/tests/test_bad_messages.mojom
[modify] https://crrev.com/160577e9f267226ebd2c388e3bf1f8067484bbb2/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl

Project Member

Comment 44 by bugdroid1@chromium.org, Aug 24 2016

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

commit 222e7dd4cce2ad6e583e54638404aedf9126a956
Author: rockot <rockot@chromium.org>
Date: Wed Aug 24 23:37:11 2016

Support custom message filtering on Mojo binding objects

* Replaces MessageFilter with MessageReceiver
* Updates FilterChain to always end on the sink, short-circuiting
  if any "filter" (receiver) rejects along the way
* Adds a new AddFilter() interface to mojo::Binding and
  mojo::AssociatedBinding, allowing users to inject MessageReceiver
  filters to be run immediately before every message dispatch

BUG=612500
R=yzshen@chromium.org
TBR=tsepez@chromium.org

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

[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/BUILD.gn
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/associated_binding.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/binding.h
[add] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/filter_chain.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/interface_endpoint_client.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/binding_state.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/binding_state.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/filter_chain.cc
[delete] https://crrev.com/d184d7e8cf46adaf56c686e4ee6641affed04c3b/mojo/public/cpp/bindings/lib/filter_chain.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/interface_ptr_state.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/message.cc
[delete] https://crrev.com/d184d7e8cf46adaf56c686e4ee6641affed04c3b/mojo/public/cpp/bindings/lib/message_filter.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/message_header_validator.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/multiplex_router.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/multiplex_router.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/router.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/lib/router.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/message.h
[delete] https://crrev.com/d184d7e8cf46adaf56c686e4ee6641affed04c3b/mojo/public/cpp/bindings/message_filter.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/message_header_validator.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/no_interface.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/strong_binding.h
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/tests/associated_interface_unittest.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/tests/binding_unittest.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/tests/multiplex_router_unittest.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/tests/router_unittest.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/cpp/bindings/tests/validation_unittest.cc
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/interfaces/bindings/tests/BUILD.gn
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/interfaces/bindings/tests/test_associated_interfaces.mojom
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/tools/bindings/generators/cpp_templates/interface_request_validator_declaration.tmpl
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/tools/bindings/generators/cpp_templates/interface_response_validator_declaration.tmpl
[modify] https://crrev.com/222e7dd4cce2ad6e583e54638404aedf9126a956/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl

Project Member

Comment 45 by bugdroid1@chromium.org, Aug 26 2016

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

commit 21bb88540cbc926f52b7e6547984ea772c441a69
Author: rockot <rockot@chromium.org>
Date: Fri Aug 26 21:21:32 2016

Add support for dispatch contexts on BindingSet

Allows BindingSet<T>::AddBinding to associate an arbitrary
|context| value with a new binding when added. The set's
dispatch_context() accessor will return this value during
the extent of any message or error dispatch targeting
that specific binding.

Refactors BindingSet to simplify lifetime management
and allow it to be reused for associated bindings as well.

Also implements AddFilter for master interface bindings on
interface types which support associated interfaces, as this
was accidentally omitted when AddFilter was introduced.

BUG=612500
R=yzshen@chromium.org

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

[modify] https://crrev.com/21bb88540cbc926f52b7e6547984ea772c441a69/mojo/public/cpp/bindings/BUILD.gn
[add] https://crrev.com/21bb88540cbc926f52b7e6547984ea772c441a69/mojo/public/cpp/bindings/associated_binding_set.h
[modify] https://crrev.com/21bb88540cbc926f52b7e6547984ea772c441a69/mojo/public/cpp/bindings/binding_set.h
[modify] https://crrev.com/21bb88540cbc926f52b7e6547984ea772c441a69/mojo/public/cpp/bindings/lib/binding_state.cc
[modify] https://crrev.com/21bb88540cbc926f52b7e6547984ea772c441a69/mojo/public/cpp/bindings/lib/binding_state.h
[modify] https://crrev.com/21bb88540cbc926f52b7e6547984ea772c441a69/mojo/public/cpp/bindings/tests/BUILD.gn
[add] https://crrev.com/21bb88540cbc926f52b7e6547984ea772c441a69/mojo/public/cpp/bindings/tests/binding_set_unittest.cc

Project Member

Comment 46 by bugdroid1@chromium.org, Sep 6 2016

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

commit 401fb2ccad8315b60f9f6dcbf892e628975cee54
Author: rockot <rockot@chromium.org>
Date: Tue Sep 06 18:35:57 2016

Mojo Channel: Fix deferred proxy dispatch; support paused channels

This is a twofold change because of some inherent overlap:

 1. Fixes deferred proxy dispatch. This means if a message comes in
    for an unknown associated interface endpoint, we still dispatch
    to the proxy thread, as was the intended behavior. Adds a test
    to verify that this actually works now.

 2. Adds the ability to create a "paused" Channel, and corresponding
    Unpause and Flush operations (which only ChannelMojo supports).
    This is used by a follow-up CL to avoid having
    RenderProcessHostImpl perform its own message queueing, which it
    does to allow certain initialization messages to preempt other
    early Sends.

RPHI must not perform its own queueing once the Channel exists:
interface requests and mojom messages must also be queued, but RPHI
only hooks into the IPC::Sender interface. Queueing outside of the
Channel breaks FIFO between early IPC::Messages and early Channel-
associated Mojo IPC.

In order to support both of these changes, the manual serialization
gunk has also been removed from MessagePipeReader (it was only there
to support thread-safe Send, which we've since abandoned.) This is
necessary to ensure that all send logic goes through the same single
queueing mechanism in the ChannelAssociatedGroupController.

Part a series of CLs to enable and demonstrate WebContents associated
interfaces:

  1. This CL
  2. https://codereview.chromium.org/2309513002
  3. https://codereview.chromium.org/2310563002
  4. https://codereview.chromium.org/2310583002

BUG=612500

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

[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_channel.h
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_channel_common.cc
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_channel_proxy.h
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_message_pipe_reader.cc
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_message_pipe_reader.h
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_mojo_bootstrap.h
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_sync_channel.cc
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_sync_channel.h
[modify] https://crrev.com/401fb2ccad8315b60f9f6dcbf892e628975cee54/ipc/ipc_test.mojom

Project Member

Comment 47 by bugdroid1@chromium.org, Sep 8 2016

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

commit 4b8bca190cdc55bae81974aa09cc10f422f022fb
Author: rockot <rockot@chromium.org>
Date: Thu Sep 08 00:14:17 2016

Mojo C++ Bindings: Additional support for associated binding sets

Implements three orthogonal changes to the public bindings API:

 1. Adds the ability to remove bindings from a binding set. Uses
    a new mojo::BindingId integer alias to identify added bindings.

 2. Adds the ability to set a pre-dispatch hook on binding sets.
    In some cases simply making the dispatch_context() available
    is insufficient, for example when a consumer owns multiple
    binding sets and wants a common path for establishing context
    among any of them.

 3. Adds mojo::GetDummyProxy, a helper that can bind an
    AssociatedInterfacePtr<T> so that it has some valid internal
    state and silently drops all outgoing messages. Unlike
    regular message pipe interfaces, without this feature
    associated interfaces are difficult to stub out in test
    environments.

Part a series of CLs to enable and demonstrate WebContents associated
interfaces:

  1. https://codereview.chromium.org/2301123004
  2. This CL
  3. https://codereview.chromium.org/2310563002
  4. https://codereview.chromium.org/2310583002

BUG=612500
R=yzshen@chromium.org

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

[modify] https://crrev.com/4b8bca190cdc55bae81974aa09cc10f422f022fb/mojo/public/cpp/bindings/associated_interface_ptr.h
[modify] https://crrev.com/4b8bca190cdc55bae81974aa09cc10f422f022fb/mojo/public/cpp/bindings/binding_set.h

Project Member

Comment 48 by bugdroid1@chromium.org, Sep 8 2016

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

commit c08a3abcbc9d79e2a7031b116d0af9ee92d17459
Author: lushnikov <lushnikov@chromium.org>
Date: Thu Sep 08 01:02:39 2016

Revert of Mojo C++ Bindings: Additional support for associated binding sets (patchset #2 id:20001 of https://codereview.chromium.org/2309513002/ )

Reason for revert:
This broke compilation on Win x64 builder:

https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win%20x64%20Builder/builds/94511

Original issue's description:
> Mojo C++ Bindings: Additional support for associated binding sets
>
> Implements three orthogonal changes to the public bindings API:
>
>  1. Adds the ability to remove bindings from a binding set. Uses
>     a new mojo::BindingId integer alias to identify added bindings.
>
>  2. Adds the ability to set a pre-dispatch hook on binding sets.
>     In some cases simply making the dispatch_context() available
>     is insufficient, for example when a consumer owns multiple
>     binding sets and wants a common path for establishing context
>     among any of them.
>
>  3. Adds mojo::GetDummyProxy, a helper that can bind an
>     AssociatedInterfacePtr<T> so that it has some valid internal
>     state and silently drops all outgoing messages. Unlike
>     regular message pipe interfaces, without this feature
>     associated interfaces are difficult to stub out in test
>     environments.
>
> Part a series of CLs to enable and demonstrate WebContents associated
> interfaces:
>
>   1. https://codereview.chromium.org/2301123004
>   2. This CL
>   3. https://codereview.chromium.org/2310563002
>   4. https://codereview.chromium.org/2310583002
>
> BUG=612500
> R=yzshen@chromium.org
>
> Committed: https://crrev.com/4b8bca190cdc55bae81974aa09cc10f422f022fb
> Cr-Commit-Position: refs/heads/master@{#417126}

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

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

[modify] https://crrev.com/c08a3abcbc9d79e2a7031b116d0af9ee92d17459/mojo/public/cpp/bindings/associated_interface_ptr.h
[modify] https://crrev.com/c08a3abcbc9d79e2a7031b116d0af9ee92d17459/mojo/public/cpp/bindings/binding_set.h

Project Member

Comment 49 by bugdroid1@chromium.org, Sep 8 2016

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

commit 78ed1c7950f7a5a896cedf1b943e5120b14fa916
Author: lushnikov <lushnikov@chromium.org>
Date: Thu Sep 08 01:14:58 2016

Reland of Mojo C++ Bindings: Additional support for associated binding sets (patchset #1 id:1 of https://codereview.chromium.org/2324623003/ )

Reason for revert:
It seems like linker just occasionally ran out of memory on the buildbot. The CL seems to be innocent.

Original issue's description:
> Revert of Mojo C++ Bindings: Additional support for associated binding sets (patchset #2 id:20001 of https://codereview.chromium.org/2309513002/ )
>
> Reason for revert:
> This broke compilation on Win x64 builder:
>
> https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win%20x64%20Builder/builds/94511
>
> Original issue's description:
> > Mojo C++ Bindings: Additional support for associated binding sets
> >
> > Implements three orthogonal changes to the public bindings API:
> >
> >  1. Adds the ability to remove bindings from a binding set. Uses
> >     a new mojo::BindingId integer alias to identify added bindings.
> >
> >  2. Adds the ability to set a pre-dispatch hook on binding sets.
> >     In some cases simply making the dispatch_context() available
> >     is insufficient, for example when a consumer owns multiple
> >     binding sets and wants a common path for establishing context
> >     among any of them.
> >
> >  3. Adds mojo::GetDummyProxy, a helper that can bind an
> >     AssociatedInterfacePtr<T> so that it has some valid internal
> >     state and silently drops all outgoing messages. Unlike
> >     regular message pipe interfaces, without this feature
> >     associated interfaces are difficult to stub out in test
> >     environments.
> >
> > Part a series of CLs to enable and demonstrate WebContents associated
> > interfaces:
> >
> >   1. https://codereview.chromium.org/2301123004
> >   2. This CL
> >   3. https://codereview.chromium.org/2310563002
> >   4. https://codereview.chromium.org/2310583002
> >
> > BUG=612500
> > R=yzshen@chromium.org
> >
> > Committed: https://crrev.com/4b8bca190cdc55bae81974aa09cc10f422f022fb
> > Cr-Commit-Position: refs/heads/master@{#417126}
>
> TBR=yzshen@chromium.org,rockot@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=612500
>
> Committed: https://crrev.com/c08a3abcbc9d79e2a7031b116d0af9ee92d17459
> Cr-Commit-Position: refs/heads/master@{#417135}

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

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

[modify] https://crrev.com/78ed1c7950f7a5a896cedf1b943e5120b14fa916/mojo/public/cpp/bindings/associated_interface_ptr.h
[modify] https://crrev.com/78ed1c7950f7a5a896cedf1b943e5120b14fa916/mojo/public/cpp/bindings/binding_set.h

Project Member

Comment 50 by bugdroid1@chromium.org, Sep 8 2016

Labels: merge-merged-2854
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/78ed1c7950f7a5a896cedf1b943e5120b14fa916

commit 78ed1c7950f7a5a896cedf1b943e5120b14fa916
Author: lushnikov <lushnikov@chromium.org>
Date: Thu Sep 08 01:14:58 2016

Reland of Mojo C++ Bindings: Additional support for associated binding sets (patchset #1 id:1 of https://codereview.chromium.org/2324623003/ )

Reason for revert:
It seems like linker just occasionally ran out of memory on the buildbot. The CL seems to be innocent.

Original issue's description:
> Revert of Mojo C++ Bindings: Additional support for associated binding sets (patchset #2 id:20001 of https://codereview.chromium.org/2309513002/ )
>
> Reason for revert:
> This broke compilation on Win x64 builder:
>
> https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win%20x64%20Builder/builds/94511
>
> Original issue's description:
> > Mojo C++ Bindings: Additional support for associated binding sets
> >
> > Implements three orthogonal changes to the public bindings API:
> >
> >  1. Adds the ability to remove bindings from a binding set. Uses
> >     a new mojo::BindingId integer alias to identify added bindings.
> >
> >  2. Adds the ability to set a pre-dispatch hook on binding sets.
> >     In some cases simply making the dispatch_context() available
> >     is insufficient, for example when a consumer owns multiple
> >     binding sets and wants a common path for establishing context
> >     among any of them.
> >
> >  3. Adds mojo::GetDummyProxy, a helper that can bind an
> >     AssociatedInterfacePtr<T> so that it has some valid internal
> >     state and silently drops all outgoing messages. Unlike
> >     regular message pipe interfaces, without this feature
> >     associated interfaces are difficult to stub out in test
> >     environments.
> >
> > Part a series of CLs to enable and demonstrate WebContents associated
> > interfaces:
> >
> >   1. https://codereview.chromium.org/2301123004
> >   2. This CL
> >   3. https://codereview.chromium.org/2310563002
> >   4. https://codereview.chromium.org/2310583002
> >
> > BUG=612500
> > R=yzshen@chromium.org
> >
> > Committed: https://crrev.com/4b8bca190cdc55bae81974aa09cc10f422f022fb
> > Cr-Commit-Position: refs/heads/master@{#417126}
>
> TBR=yzshen@chromium.org,rockot@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=612500
>
> Committed: https://crrev.com/c08a3abcbc9d79e2a7031b116d0af9ee92d17459
> Cr-Commit-Position: refs/heads/master@{#417135}

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

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

[modify] https://crrev.com/78ed1c7950f7a5a896cedf1b943e5120b14fa916/mojo/public/cpp/bindings/associated_interface_ptr.h
[modify] https://crrev.com/78ed1c7950f7a5a896cedf1b943e5120b14fa916/mojo/public/cpp/bindings/binding_set.h

Project Member

Comment 51 by bugdroid1@chromium.org, Sep 8 2016

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

commit 1018875b737323db9ba00d76705ac70005f019ac
Author: rockot <rockot@chromium.org>
Date: Thu Sep 08 18:24:56 2016

Reworks Channel pausing behavior

It turns out creating a Channel paused is not good enough; we actually
need to be able to send some messages, then pause, send more messages,
unpause, send even more messages, and then flush.

This is because of subtleties in how RPHI handles queuing. It queues
messages before the Channel is created, then there is a brief period
between Channel creation and process launch where messages aren't
queued but are sent immediately (but previously queued messages remain
in queue), and then new messages are queued again during process
launch, and finally queueing is turned off after process launch.

This changes Channel to have an explicit Pause() API and gets rid
of the recently added ConnectPaused().

BUG=612500

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

[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_channel.h
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_channel_common.cc
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_channel_proxy.h
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_mojo_bootstrap.h
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_sync_channel.cc
[modify] https://crrev.com/1018875b737323db9ba00d76705ac70005f019ac/ipc/ipc_sync_channel.h

Project Member

Comment 52 by bugdroid1@chromium.org, Sep 15 2016

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

commit f62002a08f3025d4d9fe488c0986369ae94e1f10
Author: rockot <rockot@chromium.org>
Date: Thu Sep 15 00:08:59 2016

Adds associated interface support between RenderFrameHost and RenderFrame.

Introduces a new content::AssociatedInterfaceRegistry and
content::AssociatedInterfaceProvider to serve as Channel-associated
interface counterparts to their shell namesakes.

RenderFrameHost and RenderFrame each have both of these things on them,
and they're routed to the other side using a new RouteProvider interface
buried in RenderProcessHostImpl / ChildThreadImpl on either end.

Also adds a WebContentsInterfaceRegistry to every WebContents,
and a helper WebContentsFrameBindingSet<T> to allow consumers to
very easily manage the lifetime of associated interface bindings
for each frame in a WebContents.

See the follow-up patch for example usage.

Part a series of CLs to enable and demonstrate WebContents associated
interfaces:

  1. https://codereview.chromium.org/2309513002
  2. https://codereview.chromium.org/2316963005
  3. This CL
  4. https://codereview.chromium.org/2310583002

BUG=612500
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/browser/frame_host/render_frame_host_delegate.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/browser/web_contents/web_contents_impl.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/child/child_thread_impl.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/child/child_thread_impl.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/common/BUILD.gn
[add] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/common/associated_interface_provider_impl.cc
[add] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/common/associated_interface_provider_impl.h
[add] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/common/associated_interface_registry_impl.cc
[add] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/common/associated_interface_registry_impl.h
[add] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/common/associated_interfaces.mojom
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/public/browser/BUILD.gn
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/public/browser/render_frame_host.h
[add] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/public/browser/web_contents_binding_set.cc
[add] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/public/browser/web_contents_binding_set.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/public/common/BUILD.gn
[add] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/public/common/associated_interface_provider.h
[add] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/public/common/associated_interface_registry.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/public/renderer/render_frame.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/content/renderer/render_frame_impl.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/ipc/ipc_channel_proxy.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/ipc/ipc_listener.h
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/ipc/ipc_mojo_bootstrap.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/ipc/message_router.cc
[modify] https://crrev.com/f62002a08f3025d4d9fe488c0986369ae94e1f10/ipc/message_router.h

Project Member

Comment 53 by bugdroid1@chromium.org, Sep 16 2016

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

commit ce2138c89ef807204d1fab4a2716d86bbe918092
Author: rockot <rockot@chromium.org>
Date: Fri Sep 16 00:09:18 2016

Fixes for WebContents associated interfaces support

These weren't caught in the original CL
(https://codereview.chromium.org/2310563002) since that CL
intentionally didn't exercise everything.

I neglected to test the follow-up CL completely before
landing the first one, so I missed these bugs:

  1. WebContentsBindingSet::Binding needs to be exported
  2. The RouteProvider proxy in RPHI needs to reset on Init
  3. RenderFrameImpl never implemented
     IPC::Listener::OnAssociatedInterfaceRequest.

*crawls into shame cube*

Landing these fixes separately from the follow-up CL
(https://codereview.chromium.org/2310583002) to retain its
purpose as a minimal example of WebContents IPC conversion.

BUG=612500

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

[modify] https://crrev.com/ce2138c89ef807204d1fab4a2716d86bbe918092/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/ce2138c89ef807204d1fab4a2716d86bbe918092/content/public/browser/web_contents_binding_set.h
[modify] https://crrev.com/ce2138c89ef807204d1fab4a2716d86bbe918092/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/ce2138c89ef807204d1fab4a2716d86bbe918092/content/renderer/render_frame_impl.h

Project Member

Comment 54 by bugdroid1@chromium.org, Sep 16 2016

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

commit b97e3d3f0aeef861bc378c1243406835a52d3569
Author: rockot <rockot@chromium.org>
Date: Fri Sep 16 17:39:03 2016

IPC: Delete thread-safe send support

We ended up not using it, and there are no plans to use it in
the future. It adds some unnecessary complexity to
SyncMessageFilter which I don't want to have to maintain as
I add some extra support for associated interfaces.

BUG=612500
R=jam@chromium.org

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

[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/content/child/indexed_db/indexed_db_dispatcher_unittest.cc
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/content/child/indexed_db/webidbcursor_impl_unittest.cc
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/content/renderer/gpu/queue_message_swap_promise_unittest.cc
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_channel.h
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_channel_common.cc
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_channel_mojo.cc
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_channel_mojo.h
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_channel_proxy.cc
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_channel_proxy.h
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_sync_channel.cc
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_sync_channel_unittest.cc
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_sync_message_filter.cc
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ipc/ipc_sync_message_filter.h
[modify] https://crrev.com/b97e3d3f0aeef861bc378c1243406835a52d3569/ppapi/nacl_irt/manifest_service.cc

Project Member

Comment 55 by bugdroid1@chromium.org, Sep 16 2016

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

commit e1807f0bc6e60da26c609da2e87aaaae4b03c7b2
Author: rockot <rockot@chromium.org>
Date: Fri Sep 16 19:57:54 2016

Convert some NetError[Tab]Helper messages to mojom

Converts ChromeViewHostMsg_RunNetworkDiagnostics and
ChromeViewMsg_SetCanShowNetworkDiagnosticsDialg to mojom without
impacting message ordering.

The browser-side interface is exposed via a
WebContentsFrameBindingSet<T>.

The renderer-side (client) interface is exposed via
RenderFrameImpl's AssociatedInterfaceRegistry.

This CL serves as a simple example of converting routed IPC
messages which are handled by WebContentsObservers or other
WebContents-bound things.

BUG=612500

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

[modify] https://crrev.com/e1807f0bc6e60da26c609da2e87aaaae4b03c7b2/chrome/browser/net/net_error_tab_helper.cc
[modify] https://crrev.com/e1807f0bc6e60da26c609da2e87aaaae4b03c7b2/chrome/browser/net/net_error_tab_helper.h
[modify] https://crrev.com/e1807f0bc6e60da26c609da2e87aaaae4b03c7b2/chrome/browser/net/net_error_tab_helper_unittest.cc
[modify] https://crrev.com/e1807f0bc6e60da26c609da2e87aaaae4b03c7b2/chrome/common/BUILD.gn
[add] https://crrev.com/e1807f0bc6e60da26c609da2e87aaaae4b03c7b2/chrome/common/network_diagnostics.mojom
[modify] https://crrev.com/e1807f0bc6e60da26c609da2e87aaaae4b03c7b2/chrome/common/render_messages.h
[modify] https://crrev.com/e1807f0bc6e60da26c609da2e87aaaae4b03c7b2/chrome/renderer/net/net_error_helper.cc
[modify] https://crrev.com/e1807f0bc6e60da26c609da2e87aaaae4b03c7b2/chrome/renderer/net/net_error_helper.h

Project Member

Comment 57 by bugdroid1@chromium.org, Sep 22 2016

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

commit b7ec9769da285f493402197c7f1d3ded193fd859
Author: rockot <rockot@chromium.org>
Date: Thu Sep 22 00:25:53 2016

Add mojom for WindowOpenDisposition

Adds ui::mojom::WindowOpenDisposition and a typemap which maps it
to ::WindowOpenDisposition. This will be useful when converting
existing IPCs to mojom.

C++ references to WindowOpenDisposition are left alone for now and
we'll rely on the typemap to do its thing for Mojo messages.

Java references have been updated to use the mojom generated type
directly, removing window_open_disposition.h from the set of headers
processed by a java_cpp_enum rule.

BUG=612500

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

[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/chrome/android/BUILD.gn
[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java
[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/components/web_contents_delegate_android/android/java/src/org/chromium/components/web_contents_delegate_android/WebContentsDelegateAndroid.java
[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/ui/android/BUILD.gn
[add] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/ui/base/mojo/BUILD.gn
[add] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/ui/base/mojo/DEPS
[add] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/ui/base/mojo/OWNERS
[add] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/ui/base/mojo/typemaps.gni
[add] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/ui/base/mojo/window_open_disposition.mojom
[add] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/ui/base/mojo/window_open_disposition.typemap
[add] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/ui/base/mojo/window_open_disposition_enum_traits.h
[modify] https://crrev.com/b7ec9769da285f493402197c7f1d3ded193fd859/ui/base/window_open_disposition.h

Project Member

Comment 58 by bugdroid1@chromium.org, Sep 28 2016

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

commit 5c478a7b04b55630c5c491d4d1d2863e965cfa32
Author: rockot <rockot@chromium.org>
Date: Wed Sep 28 23:14:18 2016

Move ViewHostMsg_CreateWindow to mojom

Converts this message, addressing several of its dependencies
in the process:

 - Makes content::WindowContainerType an alias for the new
   content::mojom::WindowContainerType. Some transitional public
   constants have been added to satisfy existing references to
   the old enum values. This will be removed in future CLs.
 - Adds a mojom definition for blink::mojom::WindowFeatures,
   corresponding to blink::WebWindowFeatures. A typemap is
   added between these types and is shared by both Blink and
   Chromium bindings configurations.
 - Adds a blink::mojom::Referrer struct analogous to
   content::Renderer. Chromium bindings typemap this new mojom
   struct to content::Referrer.
 - Adds a mojom blink::mojom::ReferrerPolicy enum with a typemap
   to blink::WebReferrerPolicy, shared by Chromium and Blink
   bindings. This can be de-duplicated in future CLs.

BUG=612500
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/frame_host/interstitial_page_impl.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/frame_host/interstitial_page_impl.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/renderer_host/render_message_filter.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/renderer_host/render_message_filter.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/renderer_host/render_view_host_delegate.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/renderer_host/render_view_host_impl.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/renderer_host/render_view_host_impl.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/renderer_host/render_widget_helper.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/renderer_host/render_widget_helper.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/security_exploit_browsertest.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/browser/web_contents/web_contents_impl.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/common/BUILD.gn
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/common/page_state_serialization.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/common/render_message_filter.mojom
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/common/view_messages.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/common/BUILD.gn
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/common/OWNERS
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/common/referrer.typemap
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/common/referrer_struct_traits.cc
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/common/referrer_struct_traits.h
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/common/typemaps.gni
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/common/window_container_type.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/common/window_container_type.h
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/common/window_container_type.mojom
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/test/mock_render_thread.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/public/test/mock_render_thread.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/renderer/render_thread_impl.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/renderer/render_view_impl.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/test/test_web_contents.cc
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/content/test/test_web_contents.h
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/mojo/public/tools/bindings/blink_bindings_configuration.gni
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/PRESUBMIT.py
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/Tools/Scripts/webkitpy/style/checkers/cpp.py
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/BUILD.gn
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/platform/OWNERS
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/platform/ReferrerPolicyEnumTraits.h
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/platform/referrer.mojom
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/platform/referrer_policy.typemap
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/public_typemaps.gni
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/web/DEPS
[modify] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/web/OWNERS
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/web/WindowFeaturesStructTraits.cpp
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/web/WindowFeaturesStructTraits.h
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/web/window_features.mojom
[add] https://crrev.com/5c478a7b04b55630c5c491d4d1d2863e965cfa32/third_party/WebKit/public/web/window_features.typemap

Project Member

Comment 59 by bugdroid1@chromium.org, Sep 30 2016

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

commit 067ca55f59d8fcc92db8d4eb3551ef31b7b43119
Author: rockot <rockot@chromium.org>
Date: Fri Sep 30 22:00:15 2016

Move ViewMsg_New to mojom

This is added to a new content::mojom::Renderer interface which
is intended to define any messages processed directly by
RenderThreadImpl.

Also moves ViewMsg_New_Params to a mojom struct and adds
native typemaps for some of its dependencies.

BUG=612500
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/browser/renderer_host/render_view_host_impl.cc
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/common/BUILD.gn
[add] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/common/native_types.mojom
[add] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/common/native_types.typemap
[add] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/common/renderer.mojom
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/common/typemaps.gni
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/common/view_messages.h
[add] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/common/web_preferences.typemap
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/public/common/BUILD.gn
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/public/test/render_view_test.cc
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/renderer/render_thread_impl.h
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/renderer/render_view_impl.cc
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/renderer/render_view_impl.h
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/content/test/layouttest_support.cc
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ipc/ipc.mojom
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/services/shell/public/cpp/capabilities_struct_traits.h
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ui/gfx/icc_profile.h
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ui/gfx/ipc/color/BUILD.gn
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ui/gfx/mojo/BUILD.gn
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ui/gfx/mojo/OWNERS
[add] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ui/gfx/mojo/icc_profile.mojom
[add] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ui/gfx/mojo/icc_profile.typemap
[add] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ui/gfx/mojo/icc_profile_struct_traits.cc
[add] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ui/gfx/mojo/icc_profile_struct_traits.h
[modify] https://crrev.com/067ca55f59d8fcc92db8d4eb3551ef31b7b43119/ui/gfx/typemaps.gni

Project Member

Comment 60 by bugdroid1@chromium.org, Oct 4 2016

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

commit 53be7caf3a84b07c4246c5c250ccac629113db9c
Author: rockot <rockot@chromium.org>
Date: Tue Oct 04 20:17:08 2016

Move FrameMsg_NewFrame/NewFrameProxy to mojom

Straightforward conversion, no surprises.

Also changes some (re-)initialization details of RPHI. Namely:

* The mojom::RouteProvider and mojom::Renderer associated
interface proxies are acquired immediately upon Channel creation,
before pausing the Channel. This avoids an issue where one of
these interface requests could be lazily acquired during Channel
pause, blocking a subsequent message on that interface which
should be sent immediately while the Channel is unpaused.
See https://goo.gl/ot0S32 for some explanation of this behavior.

* Any cached associated interface proxies are reset in
ProcessDied() rather than Init(), per nasko@'s suggestion.
This clarifies that they are per-process state.

BUG=612500
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/browser/frame_host/render_frame_proxy_host.cc
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/browser/renderer_host/render_view_host_impl.cc
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/common/frame_messages.h
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/common/native_types.mojom
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/common/native_types.typemap
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/common/renderer.mojom
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/renderer/render_frame_impl.h
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/renderer/render_frame_impl_browsertest.cc
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/renderer/render_thread_impl.h
[modify] https://crrev.com/53be7caf3a84b07c4246c5c250ccac629113db9c/content/renderer/render_view_browsertest.cc

Project Member

Comment 61 by bugdroid1@chromium.org, Oct 6 2016

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

commit 0e6665052f35e77cb6c1e9d5948136eeb87885f9
Author: rockot <rockot@chromium.org>
Date: Thu Oct 06 23:04:22 2016

Use a binding set for BrowserAssociatedInterface

This allows multiple client proxies in a render process to connect
to a single BrowserAssociatedInterface at the same time.

BUG=612500

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

[modify] https://crrev.com/0e6665052f35e77cb6c1e9d5948136eeb87885f9/content/public/browser/browser_associated_interface.h

Project Member

Comment 62 by bugdroid1@chromium.org, Oct 14 2016

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

commit cd2de7ccd49ab1fa092526488761f0c855688654
Author: rockot <rockot@chromium.org>
Date: Fri Oct 14 16:47:31 2016

Always keep a ChannelProxy alive in RenderProcessHostImpl

RPHI currently keeps |channel_| around only as long as the
remote process is alive. In order to allow RPHI::Send to work
even without a process, it queues messages internally when
|channel_| is null.

Channel-associated mojom interfaces may only be acquired
once a Channel exists, and so any messages sent before
Channel creation can't be moved to Channel-associated mojom
interfaces at the moment.

This CL changes RPHI so that it always has a ChannelProxy
instance in |channel_| as long as Cleanup() hasn't run
to completion yet (at that point, the RPHI is about to be
discarded anyway.)

The pre-Init queueing behavior is satisfied here by
pausing the Channel immediately on construction and then
unpausing briefly where it was previously created.

ProcessDied() re-initializes the ChannelProxy to prepare
for potential RPHI reuse, rather than simply resetting it.

Additionally this removes the EnableSendQueue() call on
RPH, as it is either redundant or incorrect - it merely
set |is_initialized_| to false. This could only be reset to
true by Init(), and only when |channel_| was null. The
only possible net effect of this would have been to pause
the channel indefinitely (which is wrong and unlikely), or
to pause the channel during initialization (which is
redundant because it's already effectively paused until
Init()).

BUG=612500

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

[modify] https://crrev.com/cd2de7ccd49ab1fa092526488761f0c855688654/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/cd2de7ccd49ab1fa092526488761f0c855688654/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/cd2de7ccd49ab1fa092526488761f0c855688654/content/browser/renderer_host/render_view_host_impl.cc
[modify] https://crrev.com/cd2de7ccd49ab1fa092526488761f0c855688654/content/public/browser/render_process_host.h
[modify] https://crrev.com/cd2de7ccd49ab1fa092526488761f0c855688654/content/public/test/mock_render_process_host.cc
[modify] https://crrev.com/cd2de7ccd49ab1fa092526488761f0c855688654/content/public/test/mock_render_process_host.h

Project Member

Comment 63 by bugdroid1@chromium.org, Oct 16 2016

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

commit ee0368989c05233d6329ddc5206ed1d7e3c44c98
Author: rockot <rockot@chromium.org>
Date: Sun Oct 16 22:44:32 2016

Clean up mojom::Renderer usage in RPH

This gets rid of the ugly UserData + static accessor pattern
which was used to expose a private mojom interface on RPH.

Instead the mojom interface is forward-declared and a public
accessor is added to RPH despite being unusable by content
embedders.

BUG=612500
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/ee0368989c05233d6329ddc5206ed1d7e3c44c98/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/ee0368989c05233d6329ddc5206ed1d7e3c44c98/content/browser/frame_host/render_frame_proxy_host.cc
[modify] https://crrev.com/ee0368989c05233d6329ddc5206ed1d7e3c44c98/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/ee0368989c05233d6329ddc5206ed1d7e3c44c98/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/ee0368989c05233d6329ddc5206ed1d7e3c44c98/content/browser/renderer_host/render_view_host_impl.cc
[modify] https://crrev.com/ee0368989c05233d6329ddc5206ed1d7e3c44c98/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/ee0368989c05233d6329ddc5206ed1d7e3c44c98/content/public/browser/render_process_host.h
[modify] https://crrev.com/ee0368989c05233d6329ddc5206ed1d7e3c44c98/content/public/test/mock_render_process_host.cc
[modify] https://crrev.com/ee0368989c05233d6329ddc5206ed1d7e3c44c98/content/public/test/mock_render_process_host.h

Project Member

Comment 64 by bugdroid1@chromium.org, Oct 18 2016

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

commit a2db0da89dd2726e057e8af9b49b18a8a3a4813a
Author: rockot <rockot@chromium.org>
Date: Tue Oct 18 17:39:11 2016

Convert miscellaneous RenderThreadImpl messages to mojom

  ViewMsg_NetworkConnectionChanged
  ViewMsg_UpdateScrollbarTheme
  ViewMsg_SystemColorsChanged
  ViewMsg_SetWebKitSharedTimersSuspended
  ViewMsg_PurgePluginListCache

Some complexity here due to some messages being Mac only and
using Mac-only enum types.

We would still like to avoid any support for preproccessing or
platform-specific declarations in mojom, but this CL does add
support for platform-specific (Mac only atm) typemap
configuration.

BUG=612500

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

[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/browser/android/content_view_statics.cc
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/browser/net/browser_online_state_observer.cc
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/browser/plugin_service_impl.cc
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/browser/theme_helper_mac.mm
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/common/native_types.mojom
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/common/native_types.typemap
[add] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/common/native_types_mac.typemap
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/common/renderer.mojom
[add] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/common/typemaps_mac.gni
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/common/view_messages.h
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/content/renderer/render_thread_impl.h
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[modify] https://crrev.com/a2db0da89dd2726e057e8af9b49b18a8a3a4813a/mojo/public/tools/bindings/mojom.gni

Project Member

Comment 65 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/336fc62ab5493e58dda7953cba587f382bde9c3b

commit 336fc62ab5493e58dda7953cba587f382bde9c3b
Author: rockot <rockot@chromium.org>
Date: Wed Oct 05 17:55:48 2016

Expose remote associated interfaces through SyncMessageFilter

This grants child process code safe and convenient access to
remote Channel-associated interfaces on the IO thread.

BUG=612500

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

[modify] https://crrev.com/336fc62ab5493e58dda7953cba587f382bde9c3b/ipc/ipc_sync_message_filter.cc
[modify] https://crrev.com/336fc62ab5493e58dda7953cba587f382bde9c3b/ipc/ipc_sync_message_filter.h

Project Member

Comment 66 by bugdroid1@chromium.org, Oct 27 2016

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

commit 0e6665052f35e77cb6c1e9d5948136eeb87885f9
Author: rockot <rockot@chromium.org>
Date: Thu Oct 06 23:04:22 2016

Use a binding set for BrowserAssociatedInterface

This allows multiple client proxies in a render process to connect
to a single BrowserAssociatedInterface at the same time.

BUG=612500

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

[modify] https://crrev.com/0e6665052f35e77cb6c1e9d5948136eeb87885f9/content/public/browser/browser_associated_interface.h

Project Member

Comment 67 by bugdroid1@chromium.org, Nov 1 2016

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

commit ae1560a11b938a67fe7ef11f23268617e0915d5e
Author: jcivelli <jcivelli@chromium.org>
Date: Tue Nov 01 22:40:23 2016

Converts the ViewHostMsg_CreateWidget message to mojom.

BUG=612500

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

[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/browser/renderer_host/render_message_filter.cc
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/browser/renderer_host/render_message_filter.h
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/common/native_types.mojom
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/common/native_types.typemap
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/common/render_message_filter.mojom
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/common/swapped_out_messages.cc
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/common/view_messages.h
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/public/test/mock_render_thread.cc
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/public/test/mock_render_thread.h
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/renderer/render_view_impl.cc
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/renderer/render_widget.cc
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/renderer/render_widget.h
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/renderer/render_widget_fullscreen.cc
[modify] https://crrev.com/ae1560a11b938a67fe7ef11f23268617e0915d5e/content/renderer/render_widget_fullscreen.h

Comment 69 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840

Comment 71 by vabr@chromium.org, Nov 10 2016

r431130 is causing crashes on blink bots. Example build: https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Precise%20%28dbg%29/builds/957 (log attached). I could verify this locally on my GNU/Linux machine. Will revert the offending patch soon.
Log File contents.html
22.8 MB Download

Comment 72 by vabr@chromium.org, Nov 10 2016

Forgot to mention that the crashing test is fast/hidpi/scrollbar-appearance-increase-device-scale-factor.html
Project Member

Comment 73 by bugdroid1@chromium.org, Nov 10 2016

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

commit 0ae3afa991b953ada3e87fb2c44c65560d8b4196
Author: vabr <vabr@chromium.org>
Date: Thu Nov 10 09:18:13 2016

Revert of Removing the ChildProcessHostMsg_SyncAllocateSharedMemory IPC message. (patchset #3 id:40001 of https://codereview.chromium.org/2478343002/ )

Reason for revert:
This is causing crashes in fast/hidpi/scrollbar-appearance-increase-device-scale-factor.html, more info in http://crbug.com/612500#c71.

Original issue's description:
> Replacing the ChildProcessHostMsg_SyncAllocateSharedMemory IPC message
> with a Mojo shared buffer. Mojo shared buffers automatically delegate
> to a privileged process using an internal sync IPC if necessary when
> instanciated, hence the simplification here.
>
> BUG=612500
>
> Committed: https://crrev.com/f42b5afcda825dbd4d9e278082c24578866d3c31
> Cr-Commit-Position: refs/heads/master@{#431130}

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

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

[modify] https://crrev.com/0ae3afa991b953ada3e87fb2c44c65560d8b4196/content/browser/renderer_host/render_message_filter.cc
[modify] https://crrev.com/0ae3afa991b953ada3e87fb2c44c65560d8b4196/content/browser/renderer_host/render_message_filter.h
[modify] https://crrev.com/0ae3afa991b953ada3e87fb2c44c65560d8b4196/content/child/child_thread_impl.cc
[modify] https://crrev.com/0ae3afa991b953ada3e87fb2c44c65560d8b4196/content/common/child_process_host_impl.cc
[modify] https://crrev.com/0ae3afa991b953ada3e87fb2c44c65560d8b4196/content/common/child_process_host_impl.h
[modify] https://crrev.com/0ae3afa991b953ada3e87fb2c44c65560d8b4196/content/common/child_process_messages.h

Project Member

Comment 75 by bugdroid1@chromium.org, Dec 6 2016

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

commit 9a8e7d0071e6e2492a9f997c22238596ab4122dd
Author: jcivelli <jcivelli@chromium.org>
Date: Tue Dec 06 17:44:18 2016

Revert of Replacing allocate bitmap IPC messages with a new Mojo interface. (patchset #13 id:240001 of https://codereview.chromium.org/2488913003/ )

Reason for revert:
Might be causing a crasher on Windows.
http://crbug.com/671459

Original issue's description:
> Replacing the AllocateBitmap related IPC messages with new mojo methods in the
> RenderMessageFilter interface (it has to be part of the associated interface for
> now because of ordering issue with other CC messages).
>
> As part of that, unified the bitmap allocation behavior in
> ChildSharedBitmapManager on all platforms, by allocating shared memory
> with the generic shared memory allocation code path and then
> registering it as a bitmap.
> Also moved ChildSharedBitmapManager from the ChildThreadImpl to RenderThreadImpl
> as it is not common to all child processes.
>
> BUG=612500
> TEST=content_shell should run normally with the --dissable-gpu flag.
>
> Committed: https://crrev.com/97235f8be07b5fe9200fe76901d27833325a5996
> Cr-Commit-Position: refs/heads/master@{#436095}

TBR=rockot@chromium.org,jbauman@chromium.org,kinuko@chromium.org,tsepez@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=612500

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

[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/browser/renderer_host/render_message_filter.cc
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/browser/renderer_host/render_message_filter.h
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/child/child_shared_bitmap_manager.cc
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/child/child_shared_bitmap_manager.h
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/child/child_thread_impl.cc
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/child/child_thread_impl.h
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/common/child_process_messages.h
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/common/render_message_filter.mojom
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/public/test/mock_render_thread.cc
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/renderer/pepper/pepper_compositor_host.cc
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/renderer/render_thread_impl.h
[modify] https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd/content/renderer/renderer_blink_platform_impl.cc

Project Member

Comment 76 by bugdroid1@chromium.org, Dec 7 2016

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

commit 0f21bd5836318170c155a0caf8bc6f81a939213d
Author: jcivelli <jcivelli@chromium.org>
Date: Wed Dec 07 21:21:33 2016

Reland of placing allocate bitmap IPC messages with a new Mojo interface. (patchset #1 id:1 of https://codereview.chromium.org/2552913003/ )

Reason for revert:
The revert did not help with the crasher, so relanding this CL.

Original issue's description:
> Revert of Replacing allocate bitmap IPC messages with a new Mojo interface. (patchset #13 id:240001 of https://codereview.chromium.org/2488913003/ )
>
> Reason for revert:
> Might be causing a crasher on Windows.
> http://crbug.com/671459
>
> Original issue's description:
> > Replacing the AllocateBitmap related IPC messages with new mojo methods in the
> > RenderMessageFilter interface (it has to be part of the associated interface for
> > now because of ordering issue with other CC messages).
> >
> > As part of that, unified the bitmap allocation behavior in
> > ChildSharedBitmapManager on all platforms, by allocating shared memory
> > with the generic shared memory allocation code path and then
> > registering it as a bitmap.
> > Also moved ChildSharedBitmapManager from the ChildThreadImpl to RenderThreadImpl
> > as it is not common to all child processes.
> >
> > BUG=612500
> > TEST=content_shell should run normally with the --dissable-gpu flag.
> >
> > Committed: https://crrev.com/97235f8be07b5fe9200fe76901d27833325a5996
> > Cr-Commit-Position: refs/heads/master@{#436095}
>
> TBR=rockot@chromium.org,jbauman@chromium.org,kinuko@chromium.org,tsepez@chromium.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=612500
>
> Committed: https://crrev.com/9a8e7d0071e6e2492a9f997c22238596ab4122dd
> Cr-Commit-Position: refs/heads/master@{#436629}

TBR=rockot@chromium.org,jbauman@chromium.org,kinuko@chromium.org,tsepez@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=612500

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

[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/browser/renderer_host/render_message_filter.cc
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/browser/renderer_host/render_message_filter.h
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/child/child_shared_bitmap_manager.cc
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/child/child_shared_bitmap_manager.h
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/child/child_thread_impl.cc
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/child/child_thread_impl.h
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/common/child_process_messages.h
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/common/render_message_filter.mojom
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/public/test/mock_render_thread.cc
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/renderer/pepper/pepper_compositor_host.cc
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/renderer/render_thread_impl.h
[modify] https://crrev.com/0f21bd5836318170c155a0caf8bc6f81a939213d/content/renderer/renderer_blink_platform_impl.cc

Project Member

Comment 77 by bugdroid1@chromium.org, Dec 9 2016

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

commit ee3ff1ffb2acc57ffe1668c603d79debcc463b8c
Author: sadrul <sadrul@chromium.org>
Date: Fri Dec 09 04:22:01 2016

content: Some code cleanup related to shared memory allocation.

After https://crrev.com/432737, memory allocation does not do IPC
anymore. So it does not need the IPC::Sender anymore. Also, it is no
longer necessary to have special code to decide when the allocation
request failed due to out-of-memory. So remove that code too.

BUG=612500

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

[modify] https://crrev.com/ee3ff1ffb2acc57ffe1668c603d79debcc463b8c/content/child/blob_storage/webblobregistry_impl.cc
[modify] https://crrev.com/ee3ff1ffb2acc57ffe1668c603d79debcc463b8c/content/child/child_shared_bitmap_manager.cc
[modify] https://crrev.com/ee3ff1ffb2acc57ffe1668c603d79debcc463b8c/content/child/child_thread_impl.cc
[modify] https://crrev.com/ee3ff1ffb2acc57ffe1668c603d79debcc463b8c/content/child/child_thread_impl.h
[modify] https://crrev.com/ee3ff1ffb2acc57ffe1668c603d79debcc463b8c/content/renderer/media/renderer_gpu_video_accelerator_factories.cc
[modify] https://crrev.com/ee3ff1ffb2acc57ffe1668c603d79debcc463b8c/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/ee3ff1ffb2acc57ffe1668c603d79debcc463b8c/content/renderer/renderer_clipboard_delegate.cc

Project Member

Comment 78 by bugdroid1@chromium.org, Apr 5 2017

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

commit eb509f59b8e9f31569d0dad0d90d8f755291d497
Author: benwells <benwells@chromium.org>
Date: Wed Apr 05 01:06:27 2017

Convert PDF component IPC to mojo.

Converts the PDF component's IPC messages to Mojo.

BUG=612500

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

[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/components/pdf/browser/BUILD.gn
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/components/pdf/browser/pdf_web_contents_helper.cc
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/components/pdf/browser/pdf_web_contents_helper.h
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/components/pdf/common/BUILD.gn
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/components/pdf/common/OWNERS
[add] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/components/pdf/common/pdf.mojom
[delete] https://crrev.com/a71920e629d8d02ce7bec68dc9b485e43507849e/components/pdf/common/pdf_message_generator.cc
[delete] https://crrev.com/a71920e629d8d02ce7bec68dc9b485e43507849e/components/pdf/common/pdf_message_generator.h
[delete] https://crrev.com/a71920e629d8d02ce7bec68dc9b485e43507849e/components/pdf/common/pdf_messages.h
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/components/pdf/renderer/BUILD.gn
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/components/pdf/renderer/pepper_pdf_host.cc
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/components/pdf/renderer/pepper_pdf_host.h
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/content/public/common/referrer_struct_traits.h
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/tools/ipc_fuzzer/message_lib/BUILD.gn
[modify] https://crrev.com/eb509f59b8e9f31569d0dad0d90d8f755291d497/tools/ipc_fuzzer/message_lib/all_messages.h

Owner: rockot@google.com

Sign in to add a comment