New issue
Advanced search Search tips

Issue 895616 link

Starred by 2 users

Issue metadata

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

Blocking:
issue 904240



Sign in to add a comment

Consider supporting compilable expression of service manifests

Project Member Reported by roc...@chromium.org, Oct 15

Issue description

We should consider supporting compilable service manifests, i.e. expressing manifests as static data structures in C++ code. Benefits would include opportunities for better sanity checks at build time (e.g. we could work out a capabilities expression system that is statically analyzable).

The main counterargument against doing this is that we still need dynamically loadable manifests in some cases, so there will be two ways of doing the same thing.
 
Labels: -Pri-3 Pri-2
Owner: rockot@google.com
Status: Assigned (was: Untriaged)
Project Member

Comment 2 by bugdroid1@chromium.org, Nov 20

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

commit e6fa6c5823cc39462904ebe7194878caec6179ec
Author: Ken Rockot <rockot@google.com>
Date: Tue Nov 20 21:53:39 2018

More migration from ServiceContext & ServiceTest

Migrates some miscellaneous stuff from ServiceContext and ServiceTest
over to ServiceBinding and plain old unit tests.

Introduces new TestService and TestServiceManager helpers for such unit
tests to use. This ultimately provides similar functionality to the
old ServiceTest framework but with much less hidden magic and only a
marginal increase in per-test boilerplate.

Bug: 895616, 906239 
Change-Id: I5c4958f92092ee435efe2c83eaa371f1171a71d4
Reviewed-on: https://chromium-review.googlesource.com/c/1343372
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609814}
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/ash/app_launch_unittest.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/ash/ash_service_unittest.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/ash/components/quick_launch/main.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/ash/components/quick_launch/quick_launch_application.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/ash/components/quick_launch/quick_launch_application.h
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/ash/shell/content/client/shell_main_delegate.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/chrome/utility/chrome_content_utility_client.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/chrome/utility/mash_service_factory.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/chrome/utility/mash_service_factory.h
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/filesystem/BUILD.gn
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/filesystem/file_system_app.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/filesystem/file_system_app.h
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/filesystem/files_test_base.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/filesystem/files_test_base.h
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/filesystem/main.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/font/BUILD.gn
[delete] https://crrev.com/304f3ee41537a07c9f6d28b3ce6b31296b5cbe13/components/services/font/font_loader_test.h
[rename] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/font/font_loader_unittest.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/font/font_service_app.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/font/font_service_app.h
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/font/main.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/leveldb/BUILD.gn
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/leveldb/leveldb_app.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/leveldb/leveldb_app.h
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/leveldb/leveldb_service_unittest.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/leveldb/main.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/components/services/leveldb/remote_iterator_unittest.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/content/test/BUILD.gn
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/services/service_manager/public/cpp/service_binding.cc
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/services/service_manager/public/cpp/test/BUILD.gn
[add] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/services/service_manager/public/cpp/test/test_service.cc
[add] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/services/service_manager/public/cpp/test/test_service.h
[add] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/services/service_manager/public/cpp/test/test_service_manager.cc
[add] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/services/service_manager/public/cpp/test/test_service_manager.h
[modify] https://crrev.com/e6fa6c5823cc39462904ebe7194878caec6179ec/services/service_manager/service_manager.cc

Status: Started (was: Assigned)
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 14

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

commit 2be65e2d62ae3dbceb2b1815cf31fc3721f3cd4b
Author: Ken Rockot <rockot@google.com>
Date: Fri Dec 14 22:28:22 2018

Remove catalog::LoadDefaultCatalogManifest

It was only used in two unittest runners. This migrates them to use
generated code instead of parsing a manifest from JSON at runtime.

Bug: 895616
Change-Id: I25421806ff47a411197a91f2161ce7b09938d3d5
Reviewed-on: https://chromium-review.googlesource.com/c/1378676
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#616851}
[modify] https://crrev.com/2be65e2d62ae3dbceb2b1815cf31fc3721f3cd4b/ash/BUILD.gn
[modify] https://crrev.com/2be65e2d62ae3dbceb2b1815cf31fc3721f3cd4b/ash/test/ash_unittests.cc
[modify] https://crrev.com/2be65e2d62ae3dbceb2b1815cf31fc3721f3cd4b/services/catalog/catalog.cc
[modify] https://crrev.com/2be65e2d62ae3dbceb2b1815cf31fc3721f3cd4b/services/catalog/catalog.h
[modify] https://crrev.com/2be65e2d62ae3dbceb2b1815cf31fc3721f3cd4b/ui/views/mus/BUILD.gn
[modify] https://crrev.com/2be65e2d62ae3dbceb2b1815cf31fc3721f3cd4b/ui/views/mus/views_mus_test_suite.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Dec 17

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

commit 1d8faab8bc1dfa21bfc68040f1133451b16c43bb
Author: Ken Rockot <rockot@google.com>
Date: Mon Dec 17 23:46:30 2018

[SM] Introduce C++ Manifest type

This introduces service_manager::Manifest and an associated builder
interface for constructing them. Manifest replaces most usage of
base::Value for runtime manifest structures. All generated catalog code
is migrated to use this type instead of generic base::Values. Service
Manager internals have been partially adapted to process Manifest objects
and convert them to the internal legacy catalog format for now.

Future CLs will eliminate the concept of catalogs entirely and get rid
of all code generation, in favor of hand-written Manifest definitions
living in the source tree.

Bug: 895616
Change-Id: I5c34e3f701133ed55925ece30e39c6ff28ba72c5
Reviewed-on: https://chromium-review.googlesource.com/c/1379057
Reviewed-by: Oksana Zhuravlova <oksamyt@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#617289}
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/catalog/catalog.cc
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/catalog/catalog.h
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/catalog/entry_cache.cc
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/catalog/entry_cache.h
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/catalog/public/tools/catalog.cc.tmpl
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/catalog/public/tools/catalog.gni
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/catalog/public/tools/catalog.h.tmpl
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/background/background_service_manager.cc
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/background/background_service_manager.h
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/public/cpp/BUILD.gn
[add] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/public/cpp/manifest.cc
[add] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/public/cpp/manifest.h
[add] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/public/cpp/manifest_builder.cc
[add] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/public/cpp/manifest_builder.h
[add] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/public/cpp/manifest_unittest.cc
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/public/cpp/test/test_service_manager.cc
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/public/cpp/test/test_service_manager.h
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/service_manager.cc
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/service_manager.h
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/standalone/context.cc
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/standalone/context.h
[modify] https://crrev.com/1d8faab8bc1dfa21bfc68040f1133451b16c43bb/services/service_manager/tests/BUILD.gn

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 17

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

commit b90911200735d40c7132aee540e6e0fc67de2269
Author: Ken Rockot <rockot@google.com>
Date: Mon Dec 17 23:53:17 2018

[SM] Clean up some catalog usage

Quick POC getting rid of some test JSON manifests and generated catalog
sources in favor of defining the test manifests manually within test
code.

Bug: 895616
Change-Id: Ia8fed46ad43dd88210f175079828018d4f8853ae
Reviewed-on: https://chromium-review.googlesource.com/c/1379322
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617296}
[modify] https://crrev.com/b90911200735d40c7132aee540e6e0fc67de2269/services/service_manager/tests/BUILD.gn
[modify] https://crrev.com/b90911200735d40c7132aee540e6e0fc67de2269/services/service_manager/tests/lifecycle/BUILD.gn
[modify] https://crrev.com/b90911200735d40c7132aee540e6e0fc67de2269/services/service_manager/tests/lifecycle/OWNERS
[delete] https://crrev.com/e53b4732fadd692a8335ce3f7a505f2557f57537/services/service_manager/tests/lifecycle/app_manifest.json
[delete] https://crrev.com/e53b4732fadd692a8335ce3f7a505f2557f57537/services/service_manager/tests/lifecycle/exe_manifest.json
[modify] https://crrev.com/b90911200735d40c7132aee540e6e0fc67de2269/services/service_manager/tests/lifecycle/lifecycle_unittest.cc
[delete] https://crrev.com/e53b4732fadd692a8335ce3f7a505f2557f57537/services/service_manager/tests/lifecycle/lifecycle_unittest_manifest.json
[delete] https://crrev.com/e53b4732fadd692a8335ce3f7a505f2557f57537/services/service_manager/tests/lifecycle/package_app_a_manifest.json
[delete] https://crrev.com/e53b4732fadd692a8335ce3f7a505f2557f57537/services/service_manager/tests/lifecycle/package_app_b_manifest.json
[delete] https://crrev.com/e53b4732fadd692a8335ce3f7a505f2557f57537/services/service_manager/tests/lifecycle/package_manifest.json
[delete] https://crrev.com/e53b4732fadd692a8335ce3f7a505f2557f57537/services/service_manager/tests/lifecycle/parent_manifest.json

Project Member

Comment 7 by bugdroid1@chromium.org, Dec 19

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

commit fc0b50652969d075085d384e065e86e7cd5479e2
Author: Ken Rockot <rockot@google.com>
Date: Wed Dec 19 08:29:13 2018

[SM] Remove JSON manifests & catalogs from tests

Replaces all use of JSON manifests and catalogs in Service Manager's
tests with C++ Manifest structures.

Bug: 895616
Change-Id: Iddc39b19248dc6f78dd8ac4b21e18cdb2cab1db3
Reviewed-on: https://chromium-review.googlesource.com/c/1379485
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617768}
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/BUILD.gn
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/background/tests/BUILD.gn
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/background/tests/OWNERS
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/background/tests/background_service_manager_unittest.cc
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/background/tests/test_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/background/tests/test_service_manifest.json
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/runner/host/BUILD.gn
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/runner/host/OWNERS
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/runner/host/host_test_service_manifest.json
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/BUILD.gn
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/connect/BUILD.gn
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/connect/OWNERS
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/connect/connect_test_app_a_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/connect/connect_test_app_b_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/connect/connect_test_app_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/connect/connect_test_class_app_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/connect/connect_test_exe_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/connect/connect_test_package_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/connect/connect_test_sandboxed_app_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/connect/connect_test_singleton_app_manifest.json
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/connect/connect_unittest.cc
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/connect/connect_unittests_manifest.json
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/service_manager/BUILD.gn
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/service_manager/OWNERS
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/service_manager/embedder.cc
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/service_manager/embedder_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/service_manager/regular_manifest.json
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/service_manager/service_manager_unittest.cc
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/service_manager/service_manager_unittest_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/service_manager/shared_instance_across_users_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/service_manager/singleton_manifest.json
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/service_manager/target.cc
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/service_manager/target_manifest.json
[add] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/service_manager/test_manifests.cc
[add] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/service_manager/test_manifests.h
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/shutdown/BUILD.gn
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/shutdown/OWNERS
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/shutdown/shutdown_client_manifest.json
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/shutdown/shutdown_service_manifest.json
[modify] https://crrev.com/fc0b50652969d075085d384e065e86e7cd5479e2/services/service_manager/tests/shutdown/shutdown_unittest.cc
[delete] https://crrev.com/c8db9055c9821cd95d5a2276b6dd9f9d5da66fab/services/service_manager/tests/shutdown/shutdown_unittest_manifest.json

Project Member

Comment 8 by bugdroid1@chromium.org, Dec 21

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

commit 9f668264e85d349b8af957e13876276c22fb9c90
Author: Ken Rockot <rockot@google.com>
Date: Fri Dec 21 18:56:36 2018

Add presubmit coverage for C++ service manifests

Extends PRESUBMIT.py's IPC coverage checks to be concerned with C++
source and header files which match the filename patterns
*manifest.(cc|h) and *manifests.(cc|h), making an exception only for
*test_manifest.(cc|h) and *test_manifests.(cc|h).

Files which match according to filename are then additionally filtered
by contents, expecting at least one qualified reference to
service_manager::Manifest to be treated as a service manifest.

Bug: 895616
Change-Id: I7aae5a7535fb004e370569cc4672ad49c4c3752f
Reviewed-on: https://chromium-review.googlesource.com/c/1381248
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618563}
[modify] https://crrev.com/9f668264e85d349b8af957e13876276c22fb9c90/PRESUBMIT.py
[modify] https://crrev.com/9f668264e85d349b8af957e13876276c22fb9c90/PRESUBMIT_test.py

Project Member

Comment 9 by bugdroid1@chromium.org, Dec 21

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

commit 8f39a27195ed4e2152722a7fc4d710be18236939
Author: Ken Rockot <rockot@google.com>
Date: Fri Dec 21 23:38:35 2018

[SM] Use C++ Manifests for SM embedders

Right now the two Service Manager embedders -- Content and iOS -- are
both using catalog::ManifestProvider to support dynamic lookup of
service manifests when needed. This is kind of pointless since all
manifests are already known at initialization time. Furthermore, it
relies on using JSON/base::Value manifests, which are going away.

This CL changes both embedders to initialize the Service Manager with
a populated list of Manifest objects instead. In order to arrange this,
both ContentBrowserClient and iOS's WebClient API are updated to return
service manifest overlays as Manifest objects.

Parsing of the original base::Value manifest objects is pushed into
a new Manifest::FromValueDeprecated static helper which will be phased
out as these manifests are migrated to native code definitions.

Finally, Manifest itself had to be updated to use std::string everywhere
it was using const char*, because we can't realistically use C-style
strings if we're going to construct Manifest objects over unowned dynamic
string data. We can probably revert back to const char* when we remove
FromValueDeprecated.

TBR=sky@chromium.org

Bug: 895616
Change-Id: I6c9e8eebdcc3e51dbfef2b52dacffbded76afe47
Reviewed-on: https://chromium-review.googlesource.com/c/1383530
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618675}
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/android_webview/browser/aw_content_browser_client.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/android_webview/browser/aw_content_browser_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ash/shell/content/client/shell_content_browser_client.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ash/shell/content/client/shell_content_browser_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/chrome/browser/chrome_content_browser_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/chromecast/browser/cast_content_browser_client.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/chromecast/browser/cast_content_browser_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/content/public/browser/content_browser_client.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/content/public/browser/content_browser_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/content/shell/browser/shell_content_browser_client.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/content/shell/browser/shell_content_browser_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/headless/lib/browser/headless_content_browser_client.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/headless/lib/browser/headless_content_browser_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ios/chrome/browser/web/chrome_web_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ios/chrome/browser/web/chrome_web_client.mm
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ios/web/ios_web_resources.grd
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ios/web/public/web_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ios/web/service_manager_context.mm
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ios/web/shell/shell_web_client.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ios/web/shell/shell_web_client.mm
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/ios/web/web_client.mm
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/services/catalog/entry_cache.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/services/service_manager/public/cpp/BUILD.gn
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/services/service_manager/public/cpp/manifest.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/services/service_manager/public/cpp/manifest.h
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/services/service_manager/public/cpp/manifest_unittest.cc
[modify] https://crrev.com/8f39a27195ed4e2152722a7fc4d710be18236939/services/service_manager/service_manager.h

Project Member

Comment 10 by bugdroid1@chromium.org, Dec 22

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

commit f9b0441ab29926a03da75cfd646c7a6e520fe2ce
Author: Ken Rockot <rockot@google.com>
Date: Sat Dec 22 01:11:17 2018

Remove JSON manifest usage from Service Manager

This wipes out all code inside //services/service_manager and
//services/catalog for supporting base::Value-based service manifests.

All JSON manifests are now either used to generate compiled C++ Manifest
definitions at build time or are loaded from resources and parsed for
Manifest::FromValueDeprecated at runtime (namely for overlays).

Also wipes out some misc random crud that isn't used anymore, like
ManifestProvider and ServiceOverrides.

TBR=eugenebut@chromium.org

Bug: 895616
Change-Id: I6ae51893a9e68347ac2004fdb1202922082c22bd
Reviewed-on: https://chromium-review.googlesource.com/c/1388210
Reviewed-by: Ken Rockot <rockot@google.com>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Oksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#618702}
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/chrome/service/service_utility_process_host.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/app/content_service_manager_main_delegate.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/app/content_service_manager_main_delegate.h
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher.h
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher_helper.h
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher_helper_android.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher_helper_fuchsia.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher_helper_linux.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher_helper_mac.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher_helper_posix.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher_helper_posix.h
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/child_process_launcher_helper_win.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/ios/web/BUILD.gn
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/ios/web/service_manager_context.mm
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/mash/BUILD.gn
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/mash/runner/BUILD.gn
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/mash/runner/main.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/catalog/BUILD.gn
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/catalog/catalog.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/catalog/catalog.h
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/catalog/entry.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/catalog/entry.h
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/entry_unittest.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/catalog/instance.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/catalog/instance.h
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/manifest_provider.h
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/catalog/public/cpp/BUILD.gn
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/public/cpp/manifest_parsing_util.cc
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/public/cpp/manifest_parsing_util.h
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/test_data/connection_spec
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/test_data/instance
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/test_data/malformed
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/test_data/options
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/test_data/required_files
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/test_data/serialization
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/catalog/test_data/simple
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/BUILD.gn
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/background/background_service_manager.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/background/background_service_manager.h
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/embedder/BUILD.gn
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/embedder/main.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/embedder/main_delegate.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/embedder/main_delegate.h
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/service_manager/embedder/manifest_utils.cc
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/service_manager/embedder/manifest_utils.h
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/service_manager/embedder/manifest_utils_unittest.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/service_manager.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/service_manager.h
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/service_manager/service_overrides.cc
[delete] https://crrev.com/6b6debfc317059bbe69de528507b9b397333a612/services/service_manager/service_overrides.h
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/standalone/context.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/standalone/context.h
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/tests/BUILD.gn
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc
[modify] https://crrev.com/f9b0441ab29926a03da75cfd646c7a6e520fe2ce/ui/views/test/platform_test_helper_mus.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Dec 22

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

commit 8f244ddf12deeba44682599bb4dd4150f5ff5f31
Author: Ken Rockot <rockot@google.com>
Date: Sat Dec 22 02:52:43 2018

[SM] Generate C++ sources for all manifest targets

Changes the service_manifest target to emit C++ sources for that
specific Manifest definition. Previously we only generated sources
for catalog_cpp_source targets, which aggregated JSON data from
multiple service_manifest targets.

Every service_manifest GN template thus now emits two artifacts:
the same collated JSON as before (including packaged services and
overlays), since embedders use this to generate runtime
manifest resources; and a new source_set target which expresses the
same manifest in terms of C++ sources, with proper dependencies
on each dependency manifest's source_set.

The point of this is to make it possible for incremental migration away
from generated code and over to code that lives in the source tree.
For example, many implementations of ContentBrowserClient override
GetServiceManifestOverlay() and use parsed JSON resources at runtime
to construct a Manifest object. After this change, any of those
cases can be individually converted to use the generated source_set
instead of the generated JSON, and the JSON resource can be deleted.

Once this lands, catalog targets can also be eliminated and replaced by
helpers in the tree which return the same lists of manifests that the
catalog-generated code returns now. Finally, after all that, remaining
service manifests can be (mostly) independently pulled out of generated
code. The end result will be: no more JSON manifests anywhere, no more
catalog() or catalog_cpp_source() GN targets, and no more
service_manifest() GN targets.

TBR=sky@chromium.org

Bug: 895616
Change-Id: Ie3d53a96ac79952383e473f23d390583306be2fa
Reviewed-on: https://chromium-review.googlesource.com/c/1388158
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Ken Rockot <rockot@google.com>
Reviewed-by: Oksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618718}
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/BUILD.gn
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/chrome/BUILD.gn
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/chrome/app/BUILD.gn
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/content/BUILD.gn
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/content/content_resources.grd
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/mash/BUILD.gn
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/mash/example/BUILD.gn
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/services/audio/BUILD.gn
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/services/catalog/BUILD.gn
[delete] https://crrev.com/d9b0450c06d71e4b2f2fa1bbab7d10f681059a14/services/catalog/manifest.json
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/services/catalog/public/tools/catalog.cc.tmpl
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/services/catalog/public/tools/catalog.gni
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/services/catalog/public/tools/catalog.h.tmpl
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/services/catalog/public/tools/sourcify_manifest.py
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/services/service_manager/public/cpp/manifest.cc
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/services/service_manager/public/cpp/manifest.h
[modify] https://crrev.com/8f244ddf12deeba44682599bb4dd4150f5ff5f31/services/service_manager/public/service_manifest.gni

Project Member

Comment 12 by bugdroid1@chromium.org, Dec 24

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

commit b720e3db980a26d19b2d26bf37b62cab99960dbb
Author: Avi Drissman <avi@chromium.org>
Date: Mon Dec 24 18:49:01 2018

Revert "[SM] Generate C++ sources for all manifest targets"

This reverts commit 8f244ddf12deeba44682599bb4dd4150f5ff5f31.

Reason for revert: Must revert, sorry, as a dependent CL broke the tree. Nothing personal.

Original change's description:
> [SM] Generate C++ sources for all manifest targets
> 
> Changes the service_manifest target to emit C++ sources for that
> specific Manifest definition. Previously we only generated sources
> for catalog_cpp_source targets, which aggregated JSON data from
> multiple service_manifest targets.
> 
> Every service_manifest GN template thus now emits two artifacts:
> the same collated JSON as before (including packaged services and
> overlays), since embedders use this to generate runtime
> manifest resources; and a new source_set target which expresses the
> same manifest in terms of C++ sources, with proper dependencies
> on each dependency manifest's source_set.
> 
> The point of this is to make it possible for incremental migration away
> from generated code and over to code that lives in the source tree.
> For example, many implementations of ContentBrowserClient override
> GetServiceManifestOverlay() and use parsed JSON resources at runtime
> to construct a Manifest object. After this change, any of those
> cases can be individually converted to use the generated source_set
> instead of the generated JSON, and the JSON resource can be deleted.
> 
> Once this lands, catalog targets can also be eliminated and replaced by
> helpers in the tree which return the same lists of manifests that the
> catalog-generated code returns now. Finally, after all that, remaining
> service manifests can be (mostly) independently pulled out of generated
> code. The end result will be: no more JSON manifests anywhere, no more
> catalog() or catalog_cpp_source() GN targets, and no more
> service_manifest() GN targets.
> 
> TBR=sky@chromium.org
> 
> Bug: 895616
> Change-Id: Ie3d53a96ac79952383e473f23d390583306be2fa
> Reviewed-on: https://chromium-review.googlesource.com/c/1388158
> Commit-Queue: Ken Rockot <rockot@google.com>
> Reviewed-by: Ken Rockot <rockot@google.com>
> Reviewed-by: Oksana Zhuravlova <oksamyt@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#618718}

TBR=sky@chromium.org,rockot@google.com,dpranke@chromium.org,oksamyt@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 895616
Change-Id: Ie6ad50dc8d84101380d79db2d1e43135a9adde4e
Reviewed-on: https://chromium-review.googlesource.com/c/1390429
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618829}
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/BUILD.gn
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/chrome/BUILD.gn
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/chrome/app/BUILD.gn
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/content/BUILD.gn
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/content/content_resources.grd
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/mash/BUILD.gn
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/mash/example/BUILD.gn
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/audio/BUILD.gn
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/catalog/BUILD.gn
[add] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/catalog/manifest.json
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/catalog/public/tools/catalog.cc.tmpl
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/catalog/public/tools/catalog.gni
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/catalog/public/tools/catalog.h.tmpl
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/catalog/public/tools/sourcify_manifest.py
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/service_manager/public/cpp/manifest.cc
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/service_manager/public/cpp/manifest.h
[modify] https://crrev.com/b720e3db980a26d19b2d26bf37b62cab99960dbb/services/service_manager/public/service_manifest.gni

Project Member

Comment 13 by bugdroid1@chromium.org, Dec 24

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

commit 69e86b8d189706242c428eb91abdac1e85a02ca0
Author: Avi Drissman <avi@chromium.org>
Date: Mon Dec 24 21:09:29 2018

Revert "Remove JSON manifest usage from Service Manager"

This reverts commit f9b0441ab29926a03da75cfd646c7a6e520fe2ce.

Reason for revert: Must revert, sorry, as a dependent CL broke the tree. Nothing personal.

Original change's description:
> Remove JSON manifest usage from Service Manager
> 
> This wipes out all code inside //services/service_manager and
> //services/catalog for supporting base::Value-based service manifests.
> 
> All JSON manifests are now either used to generate compiled C++ Manifest
> definitions at build time or are loaded from resources and parsed for
> Manifest::FromValueDeprecated at runtime (namely for overlays).
> 
> Also wipes out some misc random crud that isn't used anymore, like
> ManifestProvider and ServiceOverrides.
> 
> TBR=eugenebut@chromium.org
> 
> Bug: 895616
> Change-Id: I6ae51893a9e68347ac2004fdb1202922082c22bd
> Reviewed-on: https://chromium-review.googlesource.com/c/1388210
> Reviewed-by: Ken Rockot <rockot@google.com>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Oksana Zhuravlova <oksamyt@chromium.org>
> Reviewed-by: Avi Drissman <avi@chromium.org>
> Commit-Queue: Ken Rockot <rockot@google.com>
> Cr-Commit-Position: refs/heads/master@{#618702}

TBR=avi@chromium.org,sky@chromium.org,rockot@google.com,eugenebut@chromium.org,oksamyt@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 895616
Change-Id: If5c9fe4573846d727d2727d2a24485f3e91b0744
Reviewed-on: https://chromium-review.googlesource.com/c/1390428
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618833}
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/chrome/service/service_utility_process_host.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/app/content_service_manager_main_delegate.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/app/content_service_manager_main_delegate.h
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher.h
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher_helper.h
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher_helper_android.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher_helper_fuchsia.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher_helper_linux.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher_helper_mac.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher_helper_posix.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher_helper_posix.h
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/child_process_launcher_helper_win.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/ios/web/BUILD.gn
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/ios/web/service_manager_context.mm
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/mash/BUILD.gn
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/mash/runner/BUILD.gn
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/mash/runner/main.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/BUILD.gn
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/catalog.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/catalog.h
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/entry.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/entry.h
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/entry_unittest.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/instance.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/instance.h
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/manifest_provider.h
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/public/cpp/BUILD.gn
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/public/cpp/manifest_parsing_util.cc
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/public/cpp/manifest_parsing_util.h
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/test_data/connection_spec
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/test_data/instance
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/test_data/malformed
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/test_data/options
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/test_data/required_files
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/test_data/serialization
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/catalog/test_data/simple
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/BUILD.gn
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/background/background_service_manager.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/background/background_service_manager.h
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/embedder/BUILD.gn
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/embedder/main.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/embedder/main_delegate.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/embedder/main_delegate.h
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/embedder/manifest_utils.cc
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/embedder/manifest_utils.h
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/embedder/manifest_utils_unittest.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/service_manager.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/service_manager.h
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/service_overrides.cc
[add] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/service_overrides.h
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/standalone/context.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/standalone/context.h
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/tests/BUILD.gn
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc
[modify] https://crrev.com/69e86b8d189706242c428eb91abdac1e85a02ca0/ui/views/test/platform_test_helper_mus.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Dec 26

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

commit 57bd51104441d5c915f5fc83b18761c512004e5b
Author: Ken Rockot <rockot@google.com>
Date: Wed Dec 26 06:48:56 2018

Remove JSON manifest usage from Service Manager

This is a reland if r618702, rebased after the revert of a busted CL
that this depended on. This was only reverted so that other
(unrelated) CL could be reverted.

This wipes out all code inside //services/service_manager and
//services/catalog for supporting base::Value-based service manifests.

All JSON manifests are now either used to generate compiled C++ Manifest
definitions at build time or are loaded from resources and parsed for
Manifest::FromValueDeprecated at runtime (namely for overlays).

Also wipes out some misc random crud that isn't used anymore, like
ManifestProvider and ServiceOverrides.

TBR=avi@chromium.org
TBR=eugenebut@chromium.org
TBR=oksamyt@chromium.org
TBR=sky@chromium.org

Bug: 895616
Change-Id: Ic9e02a0f9a130222f54ce95eaa4702f08f939261
Reviewed-on: https://chromium-review.googlesource.com/c/1390767
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#618908}
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/chrome/service/service_utility_process_host.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/app/content_service_manager_main_delegate.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/app/content_service_manager_main_delegate.h
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher.h
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher_helper.h
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher_helper_android.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher_helper_fuchsia.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher_helper_linux.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher_helper_mac.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher_helper_posix.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher_helper_posix.h
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/child_process_launcher_helper_win.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/ios/web/BUILD.gn
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/ios/web/service_manager_context.mm
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/mash/BUILD.gn
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/mash/runner/BUILD.gn
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/mash/runner/main.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/catalog/BUILD.gn
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/catalog/catalog.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/catalog/catalog.h
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/catalog/entry.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/catalog/entry.h
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/entry_unittest.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/catalog/instance.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/catalog/instance.h
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/manifest_provider.h
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/catalog/public/cpp/BUILD.gn
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/public/cpp/manifest_parsing_util.cc
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/public/cpp/manifest_parsing_util.h
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/test_data/connection_spec
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/test_data/instance
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/test_data/malformed
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/test_data/options
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/test_data/required_files
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/test_data/serialization
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/catalog/test_data/simple
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/BUILD.gn
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/background/background_service_manager.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/background/background_service_manager.h
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/embedder/BUILD.gn
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/embedder/main.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/embedder/main_delegate.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/embedder/main_delegate.h
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/service_manager/embedder/manifest_utils.cc
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/service_manager/embedder/manifest_utils.h
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/service_manager/embedder/manifest_utils_unittest.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/service_manager.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/service_manager.h
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/service_manager/service_overrides.cc
[delete] https://crrev.com/5c3c2b0eac6ae1651979cce34a2d98a16602280b/services/service_manager/service_overrides.h
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/standalone/context.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/standalone/context.h
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/tests/BUILD.gn
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc
[modify] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/ui/views/mus/views_mus_test_suite.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Dec 26

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

commit f87b01cf88a3386492681247d327f61addd12752
Author: Ken Rockot <rockot@google.com>
Date: Wed Dec 26 06:52:26 2018

[SM] Generate C++ sources for all manifest targets

Reland of r618718, unchanged. Was reverted so that an unrelated
dependency CL could be reverted.

Changes the service_manifest target to emit C++ sources for that
specific Manifest definition. Previously we only generated sources
for catalog_cpp_source targets, which aggregated JSON data from
multiple service_manifest targets.

Every service_manifest GN template thus now emits two artifacts:
the same collated JSON as before (including packaged services and
overlays), since embedders use this to generate runtime
manifest resources; and a new source_set target which expresses the
same manifest in terms of C++ sources, with proper dependencies
on each dependency manifest's source_set.

The point of this is to make it possible for incremental migration away
from generated code and over to code that lives in the source tree.
For example, many implementations of ContentBrowserClient override
GetServiceManifestOverlay() and use parsed JSON resources at runtime
to construct a Manifest object. After this change, any of those
cases can be individually converted to use the generated source_set
instead of the generated JSON, and the JSON resource can be deleted.

Once this lands, catalog targets can also be eliminated and replaced by
helpers in the tree which return the same lists of manifests that the
catalog-generated code returns now. Finally, after all that, remaining
service manifests can be (mostly) independently pulled out of generated
code. The end result will be: no more JSON manifests anywhere, no more
catalog() or catalog_cpp_source() GN targets, and no more
service_manifest() GN targets.

TBR=dpranke@chromium.org
TBR=oksamyt@chromium.org
TBR=sky@chromium.org

Bug: 895616
Change-Id: I67a4fd11d6ebb2585dd7897c777458d5b31b1961
Reviewed-on: https://chromium-review.googlesource.com/c/1390768
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#618909}
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/BUILD.gn
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/chrome/BUILD.gn
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/chrome/app/BUILD.gn
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/content/BUILD.gn
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/content/content_resources.grd
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/mash/BUILD.gn
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/mash/example/BUILD.gn
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/services/audio/BUILD.gn
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/services/catalog/BUILD.gn
[delete] https://crrev.com/57bd51104441d5c915f5fc83b18761c512004e5b/services/catalog/manifest.json
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/services/catalog/public/tools/catalog.cc.tmpl
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/services/catalog/public/tools/catalog.gni
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/services/catalog/public/tools/catalog.h.tmpl
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/services/catalog/public/tools/sourcify_manifest.py
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/services/service_manager/public/cpp/manifest.cc
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/services/service_manager/public/cpp/manifest.h
[modify] https://crrev.com/f87b01cf88a3386492681247d327f61addd12752/services/service_manager/public/service_manifest.gni

Project Member

Comment 16 by bugdroid1@chromium.org, Jan 11

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

commit 341089f274d224f5355e466aa0304a4b4a8aefe0
Author: Ken Rockot <rockot@chromium.org>
Date: Fri Jan 11 23:11:58 2019

Convert Chrome manifest overlays to C++

This deletes Chrome's JSON service manifest overlays and builds them
instead as C++ Manifest objects.

Bug: 895616
Change-Id: I86f7a58c555239d97f809e2ae9f05c429b2bfe2f
Reviewed-on: https://chromium-review.googlesource.com/c/1401507
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#622200}
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/BUILD.gn
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/DEPS
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/OWNERS
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_content_browser_overlay_manifest.cc
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_content_browser_overlay_manifest.h
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_content_gpu_overlay_manifest.cc
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_content_gpu_overlay_manifest.h
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_content_renderer_overlay_manifest.cc
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_content_renderer_overlay_manifest.h
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_content_utility_overlay_manifest.cc
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_content_utility_overlay_manifest.h
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/app/chrome_manifest.json
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_packaged_service_manifests.cc
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_packaged_service_manifests.h
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_renderer_manifest.cc
[add] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/app/chrome_renderer_manifest.h
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/app/chrome_renderer_manifest.json
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/browser/BUILD.gn
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/browser/OWNERS
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/browser/android/download/OWNERS
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/browser/android/download/manifest.json
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/browser/browser_resources.grd
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/chrome/browser/chrome_content_browser_client.cc
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/browser/chrome_content_browser_manifest_overlay.json
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/browser/chrome_content_browser_manifest_test_overlay.json
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/browser/chrome_content_gpu_manifest_overlay.json
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/browser/chrome_content_packaged_services_manifest_overlay.json
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/browser/chrome_content_plugin_manifest_overlay.json
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/browser/chrome_content_renderer_manifest_overlay.json
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/browser/chrome_content_utility_manifest_overlay.json
[delete] https://crrev.com/32f7091391f457d8315821a0329239d319324a35/chrome/browser/chrome_test_browser_overlay.json
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/341089f274d224f5355e466aa0304a4b4a8aefe0/content/public/browser/content_browser_client.h

Project Member

Comment 17 by bugdroid1@chromium.org, Jan 17 (5 days ago)

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

commit 547f9832ec7fa6c4aae2f52e673f150ddf05a070
Author: Ken Rockot <rockot@google.com>
Date: Thu Jan 17 18:44:22 2019

Convert Android WebView manifest overlays to C++

Removes JSON manifest overlays from android_webview/browser and
replaces them with C++ Manifest object definitions.

TBR: estade@chromium.org
Bug: 895616
Change-Id: I7fb46141f9c43349cf4b98011014eaea7b717eab
Reviewed-on: https://chromium-review.googlesource.com/c/1404750
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623766}
[modify] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/BUILD.gn
[modify] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/browser/DEPS
[modify] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/browser/OWNERS
[delete] https://crrev.com/d8b0755c159cf0035eac1a15268c9b14f6c185a3/android_webview/browser/aw_browser_manifest_overlay.json
[modify] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/browser/aw_content_browser_client.cc
[add] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/browser/aw_content_browser_overlay_manifest.cc
[add] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/browser/aw_content_browser_overlay_manifest.h
[add] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/browser/aw_content_renderer_overlay_manifest.cc
[add] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/browser/aw_content_renderer_overlay_manifest.h
[add] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/browser/aw_content_utility_overlay_manifest.cc
[add] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/browser/aw_content_utility_overlay_manifest.h
[delete] https://crrev.com/d8b0755c159cf0035eac1a15268c9b14f6c185a3/android_webview/browser/aw_renderer_manifest_overlay.json
[delete] https://crrev.com/d8b0755c159cf0035eac1a15268c9b14f6c185a3/android_webview/browser/aw_utility_manifest_overlay.json
[modify] https://crrev.com/547f9832ec7fa6c4aae2f52e673f150ddf05a070/android_webview/ui/aw_resources.grd

Project Member

Comment 18 by bugdroid1@chromium.org, Jan 17 (5 days ago)

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

commit 99a849cd6b59954802be5a72c417027714ab9a9e
Author: Ken Rockot <rockot@google.com>
Date: Thu Jan 17 19:40:28 2019

Convert all iOS service manifests to C++

Removes usage of deprecated JSON service manifests and overlays from
//ios and replaces them with C++ Manifest objects.

Bug: 895616
Change-Id: Ie55c1dfe0a1d960c1d83206fdc6e1e540e1cdefb
Reviewed-on: https://chromium-review.googlesource.com/c/1416094
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623803}
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/app/BUILD.gn
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/app/resources/BUILD.gn
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/app/resources/ios_resources.grd
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/browser/OWNERS
[delete] https://crrev.com/b8adf6b390d23707ba4667eb3a2c6a7efc09afc8/ios/chrome/browser/chrome_browser_manifest_overlay.json
[delete] https://crrev.com/b8adf6b390d23707ba4667eb3a2c6a7efc09afc8/ios/chrome/browser/chrome_packaged_services_manifest_overlay.json
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/browser/web/BUILD.gn
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/browser/web/DEPS
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/browser/web/OWNERS
[add] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/browser/web/chrome_overlay_manifests.cc
[add] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/browser/web/chrome_overlay_manifests.h
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/chrome/browser/web/chrome_web_client.mm
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/BUILD.gn
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/OWNERS
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/ios_web_resources.grd
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/public/app/BUILD.gn
[delete] https://crrev.com/b8adf6b390d23707ba4667eb3a2c6a7efc09afc8/ios/web/public/app/mojo/OWNERS
[delete] https://crrev.com/b8adf6b390d23707ba4667eb3a2c6a7efc09afc8/ios/web/public/app/mojo/web_browser_manifest.json
[delete] https://crrev.com/b8adf6b390d23707ba4667eb3a2c6a7efc09afc8/ios/web/public/app/mojo/web_packaged_services_manifest.json
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/public/service_names.mojom
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/service_manager_context.mm
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/shell/BUILD.gn
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/shell/OWNERS
[delete] https://crrev.com/b8adf6b390d23707ba4667eb3a2c6a7efc09afc8/ios/web/shell/shell_resources.grd
[modify] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/shell/shell_web_client.mm
[delete] https://crrev.com/b8adf6b390d23707ba4667eb3a2c6a7efc09afc8/ios/web/shell/web_shell_browser_manifest_overlay.json
[delete] https://crrev.com/b8adf6b390d23707ba4667eb3a2c6a7efc09afc8/ios/web/shell/web_shell_packaged_services_manifest_overlay.json
[add] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/web_browser_manifest.h
[add] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/web_browser_manifest.mm
[add] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/web_packaged_services_manifest.h
[add] https://crrev.com/99a849cd6b59954802be5a72c417027714ab9a9e/ios/web/web_packaged_services_manifest.mm

Comment 19 by rockot@google.com, Jan 17 (5 days ago)

Blocking: 904240
Project Member

Comment 20 by bugdroid1@chromium.org, Jan 17 (5 days ago)

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

commit 6479d508e866a695957537771cb743754e04fbc2
Author: Ken Rockot <rockot@google.com>
Date: Thu Jan 17 22:54:45 2019

Convert headless service manifest overlays to C++

Removes deprecated JSON manifest overlays and replaces them with C++
Manifest objects.

Bug: 895616
Change-Id: I39d9239dfec360f99154d1c1dfa6edba7ca3fe0a
Reviewed-on: https://chromium-review.googlesource.com/c/1415950
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#623887}
[modify] https://crrev.com/6479d508e866a695957537771cb743754e04fbc2/headless/BUILD.gn
[modify] https://crrev.com/6479d508e866a695957537771cb743754e04fbc2/headless/lib/browser/DEPS
[modify] https://crrev.com/6479d508e866a695957537771cb743754e04fbc2/headless/lib/browser/OWNERS
[delete] https://crrev.com/1f290a68fc2b9acb1496cc09a7f29521e3398b45/headless/lib/browser/headless_browser_manifest_overlay.json
[modify] https://crrev.com/6479d508e866a695957537771cb743754e04fbc2/headless/lib/browser/headless_content_browser_client.cc
[add] https://crrev.com/6479d508e866a695957537771cb743754e04fbc2/headless/lib/browser/headless_overlay_manifests.cc
[add] https://crrev.com/6479d508e866a695957537771cb743754e04fbc2/headless/lib/browser/headless_overlay_manifests.h
[delete] https://crrev.com/1f290a68fc2b9acb1496cc09a7f29521e3398b45/headless/lib/browser/headless_packaged_services_manifest_overlay.json
[delete] https://crrev.com/1f290a68fc2b9acb1496cc09a7f29521e3398b45/headless/lib/renderer/OWNERS
[delete] https://crrev.com/1f290a68fc2b9acb1496cc09a7f29521e3398b45/headless/lib/renderer/headless_renderer_manifest_overlay.json
[modify] https://crrev.com/6479d508e866a695957537771cb743754e04fbc2/headless/lib/resources/headless_lib_resources.grd

Project Member

Comment 21 by bugdroid1@chromium.org, Jan 18 (5 days ago)

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

commit 7be4fbea52dd7592bba71d78187bc717651c311a
Author: Ken Rockot <rockot@google.com>
Date: Fri Jan 18 03:15:44 2019

Convert Ash/Content Shell manifest overlays to C++

Converts all JSON manifest overlays defined by Content Shell and Ash
Shell+Content to C++ Manifest structures.

Bug: 895616
Change-Id: I124aee96c08a0be5f46943a48dc3eed75e6960c3
Reviewed-on: https://chromium-review.googlesource.com/c/1415918
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623985}
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/ash/BUILD.gn
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/ash/resources/BUILD.gn
[delete] https://crrev.com/7bc86423ba2bdd56b15a5cf44089043142326dda/ash/shell/BUILD.gn
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/ash/shell/OWNERS
[delete] https://crrev.com/7bc86423ba2bdd56b15a5cf44089043142326dda/ash/shell/ash_content_browser_manifest_overlay.json
[delete] https://crrev.com/7bc86423ba2bdd56b15a5cf44089043142326dda/ash/shell/ash_content_packaged_services_manifest_overlay.json
[delete] https://crrev.com/7bc86423ba2bdd56b15a5cf44089043142326dda/ash/shell/ash_shell_resources.grd
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/ash/shell/content/client/DEPS
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/ash/shell/content/client/shell_content_browser_client.cc
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/ash/shell/content/client/shell_content_browser_client.h
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/content/shell/BUILD.gn
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/content/shell/browser/DEPS
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/content/shell/browser/OWNERS
[delete] https://crrev.com/7bc86423ba2bdd56b15a5cf44089043142326dda/content/shell/browser/content_shell_browser_manifest_overlay.json
[delete] https://crrev.com/7bc86423ba2bdd56b15a5cf44089043142326dda/content/shell/browser/content_shell_gpu_manifest_overlay.json
[delete] https://crrev.com/7bc86423ba2bdd56b15a5cf44089043142326dda/content/shell/browser/content_shell_packaged_services_manifest_overlay.json
[delete] https://crrev.com/7bc86423ba2bdd56b15a5cf44089043142326dda/content/shell/browser/content_shell_renderer_manifest_overlay.json
[delete] https://crrev.com/7bc86423ba2bdd56b15a5cf44089043142326dda/content/shell/browser/content_shell_utility_manifest_overlay.json
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/content/shell/browser/shell_content_browser_client.cc
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/content/shell/shell_resources.grd
[modify] https://crrev.com/7be4fbea52dd7592bba71d78187bc717651c311a/services/service_manager/public/cpp/manifest.h

Project Member

Comment 22 by bugdroid1@chromium.org, Jan 18 (4 days ago)

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

commit 8655a7fd593731920c184ce3582b59c665f6a6d7
Author: Ken Rockot <rockot@google.com>
Date: Fri Jan 18 08:52:01 2019

Convert Cast service manifest overlays to C++

Removes JSON manifest overlays in favor of C++ definitions.

Bug: 895616
Change-Id: I4e0982cd4082b8a47a90fa519c306ad279012450
Reviewed-on: https://chromium-review.googlesource.com/c/1405987
Reviewed-by: Luke Halliwell <halliwell@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#624040}
[modify] https://crrev.com/8655a7fd593731920c184ce3582b59c665f6a6d7/chromecast/BUILD.gn
[modify] https://crrev.com/8655a7fd593731920c184ce3582b59c665f6a6d7/chromecast/browser/BUILD.gn
[modify] https://crrev.com/8655a7fd593731920c184ce3582b59c665f6a6d7/chromecast/browser/DEPS
[modify] https://crrev.com/8655a7fd593731920c184ce3582b59c665f6a6d7/chromecast/browser/OWNERS
[delete] https://crrev.com/dc500102fb9320bfcfcf996ccd6cb5524e14b7d2/chromecast/browser/cast_browser_resources.grd
[modify] https://crrev.com/8655a7fd593731920c184ce3582b59c665f6a6d7/chromecast/browser/cast_content_browser_client.cc
[delete] https://crrev.com/dc500102fb9320bfcfcf996ccd6cb5524e14b7d2/chromecast/browser/cast_content_browser_manifest_overlay.json
[delete] https://crrev.com/dc500102fb9320bfcfcf996ccd6cb5524e14b7d2/chromecast/browser/cast_content_packaged_services_manifest_overlay.json
[delete] https://crrev.com/dc500102fb9320bfcfcf996ccd6cb5524e14b7d2/chromecast/browser/cast_content_renderer_manifest_overlay.json
[add] https://crrev.com/8655a7fd593731920c184ce3582b59c665f6a6d7/chromecast/browser/cast_overlay_manifests.cc
[add] https://crrev.com/8655a7fd593731920c184ce3582b59c665f6a6d7/chromecast/browser/cast_overlay_manifests.h

Sign in to add a comment