Similarly to how the Service Manager is currently embedded in //content, we need to embed it in //ios/web to make services available to embedders of //ios/web.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bcd0fb5e6755bdfd4b8bc96b6ef70258b96b9ac4 commit bcd0fb5e6755bdfd4b8bc96b6ef70258b96b9ac4 Author: Colin Blundell <blundell@chromium.org> Date: Fri Jun 23 15:05:59 2017 Bundle //ios/web resources in web shell Upcoming work that will embed Service Manager in //ios/web will add usage of //ios/web/resources; I will test this embedding via an EG test that exercises web_shell and thus will need web_shell to bundle these resources. Bug: 731588 Change-Id: I1767d02ab13f6960811d80f516cc807f6ad486a1 Reviewed-on: https://chromium-review.googlesource.com/544310 Reviewed-by: Sylvain Defresne <sdefresne@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/master@{#481887} [modify] https://crrev.com/bcd0fb5e6755bdfd4b8bc96b6ef70258b96b9ac4/ios/web/shell/BUILD.gn [modify] https://crrev.com/bcd0fb5e6755bdfd4b8bc96b6ef70258b96b9ac4/ios/web/shell/shell_web_client.h [modify] https://crrev.com/bcd0fb5e6755bdfd4b8bc96b6ef70258b96b9ac4/ios/web/shell/shell_web_client.mm [modify] https://crrev.com/bcd0fb5e6755bdfd4b8bc96b6ef70258b96b9ac4/ios/web/shell/shell_web_main_parts.h [modify] https://crrev.com/bcd0fb5e6755bdfd4b8bc96b6ef70258b96b9ac4/ios/web/shell/shell_web_main_parts.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/29d682c92068cd88424d3e3a9a27efe65575d8b0 commit 29d682c92068cd88424d3e3a9a27efe65575d8b0 Author: Colin Blundell <blundell@chromium.org> Date: Tue Jun 27 08:55:04 2017 [Services] Add echo service for use in testing contexts This CL adds a test-only echo service that can be used as a simple example service to connect to in end-to-end testing contexts. This service will shortly be used in an end-to-end test of the embedding of the Service Manager in //ios/web. The addition of the service is split out into this CL to avoid that CL growing further. Bug: 731588 Change-Id: I4949685f12e23fc482e33ebfdc71f45a396ef482 Reviewed-on: https://chromium-review.googlesource.com/548395 Reviewed-by: Ken Rockot <rockot@chromium.org> Reviewed-by: Mike West <mkwst@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/master@{#482575} [add] https://crrev.com/29d682c92068cd88424d3e3a9a27efe65575d8b0/services/test/echo/BUILD.gn [add] https://crrev.com/29d682c92068cd88424d3e3a9a27efe65575d8b0/services/test/echo/README.md [add] https://crrev.com/29d682c92068cd88424d3e3a9a27efe65575d8b0/services/test/echo/echo_service.cc [add] https://crrev.com/29d682c92068cd88424d3e3a9a27efe65575d8b0/services/test/echo/echo_service.h [add] https://crrev.com/29d682c92068cd88424d3e3a9a27efe65575d8b0/services/test/echo/manifest.json [add] https://crrev.com/29d682c92068cd88424d3e3a9a27efe65575d8b0/services/test/echo/public/interfaces/BUILD.gn [add] https://crrev.com/29d682c92068cd88424d3e3a9a27efe65575d8b0/services/test/echo/public/interfaces/OWNERS [add] https://crrev.com/29d682c92068cd88424d3e3a9a27efe65575d8b0/services/test/echo/public/interfaces/echo.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/812ec680264fbf200c17379271a386435a3c68ac commit 812ec680264fbf200c17379271a386435a3c68ac Author: Colin Blundell <blundell@chromium.org> Date: Wed Jun 28 08:56:58 2017 [Services] Make embedder files available for reuse by iOS This CL moves ServiceManager embedder files that will be reused by iOS out of //content and into //services_manager/embedder. These files are conceptually lower-level than the //content embedder as exemplified by the fact that they'll be reused as-is on iOS. Bug: 731588 Change-Id: I02e72cd1fef8f50137900400eb55f916b1ba8b68 Reviewed-on: https://chromium-review.googlesource.com/548456 Reviewed-by: Ken Rockot <rockot@chromium.org> Reviewed-by: John Abd-El-Malek <jam@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/master@{#482922} [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/chrome/browser/chrome_content_browser_client.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/chrome/browser/profiles/off_the_record_profile_impl.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/chrome/browser/profiles/profile_impl.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/chrome/utility/DEPS [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/chrome/utility/chrome_content_utility_client.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/chromecast/browser/cast_content_browser_client.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/browser/browser_context.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/browser/service_manager/service_manager_context.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/child/service_factory.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/child/service_factory.h [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/common/BUILD.gn [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/common/service_manager/service_manager_connection_impl.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/common/service_manager/service_manager_connection_impl.h [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/common/service_manager/service_manager_connection_impl_unittest.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/gpu/gpu_service_factory.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/public/browser/browser_context.h [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/public/browser/content_browser_client.h [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/public/common/BUILD.gn [delete] https://crrev.com/0eee229999881656e25a1ebc6093caa2831535b9/content/public/common/service_info.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/public/common/service_manager_connection.h [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/public/utility/content_utility_client.h [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/shell/browser/shell_content_browser_client.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/shell/utility/shell_content_utility_client.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/content/utility/utility_service_factory.cc [modify] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/services/service_manager/embedder/BUILD.gn [add] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/services/service_manager/embedder/embedded_service_info.cc [rename] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/services/service_manager/embedder/embedded_service_info.h [rename] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/services/service_manager/embedder/embedded_service_runner.cc [rename] https://crrev.com/812ec680264fbf200c17379271a386435a3c68ac/services/service_manager/embedder/embedded_service_runner.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d316d4a7dc44df9d85862e654b70a2a5d39e6333 commit d316d4a7dc44df9d85862e654b70a2a5d39e6333 Author: Colin Blundell <blundell@chromium.org> Date: Thu Jun 29 16:57:27 2017 Embed Service Manager in //ios/web This CL adds an embedding of the Service Manager in //ios/web, such that it is now possible to host and connect to services in //ios/{web, chrome}. The infrastructure is based on that for //content but simplified and adapted to the context of //ios, where: - Multiprocess does not exist. - Connection filters are not relevant, as Chrome IPC is not relevant. - There is no short-term plan to migrate to using ServiceManager's main function. Concretely, this CL does the following things: (1) Adds ServiceManagerConnection as an //ios/web public interface. This is the gateway for connecting to services from //ios. (2) Adds ServiceManagerContext, which embeds an in-process ServiceManager. (3) Adds ServiceManagerConnectionImpl, which gets a connection to the ServiceManager. (4) Adds the ability for //ios/web and its clients to register global services. (5) Adds an Earl Grey test in //ios/web/shell that hosts the echo service and tests the ability to connect to that service. This test also serves as an example usage of the infrastructure added in this CL. (6) Adds shell grit resources in order to allow the shell to package overlays of service manifests. Support for per-user services will be added in a followup CL. Bug: 731588 Change-Id: I90321de772a753c84fa4c28ad7021f084dd3e75a Reviewed-on: https://chromium-review.googlesource.com/549461 Reviewed-by: Sylvain Defresne <sdefresne@chromium.org> Reviewed-by: Eugene But <eugenebut@chromium.org> Reviewed-by: Ken Rockot <rockot@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/master@{#483392} [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/chrome/app/main_controller.mm [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/BUILD.gn [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/DEPS [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/app/BUILD.gn [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/app/web_main_loop.h [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/app/web_main_loop.mm [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/app/web_main_runner.mm [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/ios_web_resources.grd [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/DEPS [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/OWNERS [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/app/BUILD.gn [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/app/mojo/OWNERS [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/app/mojo/web_browser_manifest.json [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/app/mojo/web_packaged_services_manifest.json [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/service_manager_connection.h [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/service_names.mojom [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/web_client.h [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/public/web_client.mm [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/service_manager_connection_impl.cc [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/service_manager_connection_impl.h [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/service_manager_connection_impl_unittest.cc [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/service_manager_context.h [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/service_manager_context.mm [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/shell/BUILD.gn [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/shell/DEPS [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/shell/shell_resources.grd [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/shell/shell_web_client.h [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/shell/shell_web_client.mm [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/shell/test/BUILD.gn [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/shell/test/service_manager_egtest.mm [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/shell/web_shell_browser_manifest_overlay.json [add] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/ios/web/shell/web_shell_packaged_services_manifest_overlay.json [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/services/service_manager/embedder/BUILD.gn [modify] https://crrev.com/d316d4a7dc44df9d85862e654b70a2a5d39e6333/tools/gritsettings/resource_ids
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/aff4cf93dc0f34ba94204d5af26f55d837d983d9 commit aff4cf93dc0f34ba94204d5af26f55d837d983d9 Author: Rohit Rao <rohitrao@chromium.org> Date: Thu Jun 29 17:42:04 2017 Revert "Embed Service Manager in //ios/web" This reverts commit d316d4a7dc44df9d85862e654b70a2a5d39e6333. Reason for revert: Crashes ios_web_view_inttests: [0629/100820.039796:FATAL:service_manager_context.mm(59)] Check failed: !contents.empty(). Original change's description: > Embed Service Manager in //ios/web > > This CL adds an embedding of the Service Manager in //ios/web, such that > it is now possible to host and connect to services in //ios/{web, chrome}. > > The infrastructure is based on that for //content but simplified and > adapted to the context of //ios, where: > - Multiprocess does not exist. > - Connection filters are not relevant, as Chrome IPC is not relevant. > - There is no short-term plan to migrate to using ServiceManager's main > function. > > Concretely, this CL does the following things: > (1) Adds ServiceManagerConnection as an //ios/web public interface. This > is the gateway for connecting to services from //ios. > (2) Adds ServiceManagerContext, which embeds an in-process ServiceManager. > (3) Adds ServiceManagerConnectionImpl, which gets a connection to the > ServiceManager. > (4) Adds the ability for //ios/web and its clients to register global > services. > (5) Adds an Earl Grey test in //ios/web/shell that hosts the echo service > and tests the ability to connect to that service. This test also serves > as an example usage of the infrastructure added in this CL. > (6) Adds shell grit resources in order to allow the shell to package > overlays of service manifests. > > Support for per-user services will be added in a followup CL. > > Bug: 731588 > Change-Id: I90321de772a753c84fa4c28ad7021f084dd3e75a > Reviewed-on: https://chromium-review.googlesource.com/549461 > Reviewed-by: Sylvain Defresne <sdefresne@chromium.org> > Reviewed-by: Eugene But <eugenebut@chromium.org> > Reviewed-by: Ken Rockot <rockot@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Reviewed-by: Tom Sepez <tsepez@chromium.org> > Commit-Queue: Colin Blundell <blundell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#483392} TBR=thakis@chromium.org,rockot@chromium.org,blundell@chromium.org,sdefresne@chromium.org,tsepez@chromium.org,eugenebut@chromium.org Change-Id: Icc07e272e490ef2636083c3e77fc129520a0710f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 731588 Reviewed-on: https://chromium-review.googlesource.com/556133 Reviewed-by: Rohit Rao <rohitrao@chromium.org> Commit-Queue: Rohit Rao <rohitrao@chromium.org> Cr-Commit-Position: refs/heads/master@{#483410} [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/chrome/app/main_controller.mm [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/BUILD.gn [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/DEPS [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/app/BUILD.gn [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/app/web_main_loop.h [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/app/web_main_loop.mm [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/app/web_main_runner.mm [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/ios_web_resources.grd [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/public/DEPS [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/public/OWNERS [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/public/app/BUILD.gn [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/public/app/mojo/OWNERS [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/public/app/mojo/web_browser_manifest.json [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/public/app/mojo/web_packaged_services_manifest.json [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/public/service_manager_connection.h [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/public/service_names.mojom [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/public/web_client.h [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/public/web_client.mm [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/service_manager_connection_impl.cc [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/service_manager_connection_impl.h [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/service_manager_connection_impl_unittest.cc [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/service_manager_context.h [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/service_manager_context.mm [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/shell/BUILD.gn [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/shell/DEPS [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/shell/shell_resources.grd [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/shell/shell_web_client.h [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/shell/shell_web_client.mm [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/ios/web/shell/test/BUILD.gn [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/shell/test/service_manager_egtest.mm [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/shell/web_shell_browser_manifest_overlay.json [delete] https://crrev.com/2a248c59c211c4c7cdc1a09b3f615e40a21e9345/ios/web/shell/web_shell_packaged_services_manifest_overlay.json [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/services/service_manager/embedder/BUILD.gn [modify] https://crrev.com/aff4cf93dc0f34ba94204d5af26f55d837d983d9/tools/gritsettings/resource_ids
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/acd6be00d8f5dc8b460f0e2da16b317ecd4072d3 commit acd6be00d8f5dc8b460f0e2da16b317ecd4072d3 Author: Colin Blundell <blundell@chromium.org> Date: Fri Jun 30 16:58:59 2017 [iOS] Have Web View expose data resources to web Web View is bundling resources but until now was not exposing them to //ios/web via WebClient. This exposure will be necessary for the upcoming embedding of ServiceManager in //ios/web. Bug: 731588 Change-Id: I6484e170066a34e697aa53aa480f35b0a3fa634d Reviewed-on: https://chromium-review.googlesource.com/558084 Reviewed-by: Eugene But <eugenebut@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/master@{#483737} [modify] https://crrev.com/acd6be00d8f5dc8b460f0e2da16b317ecd4072d3/ios/web_view/internal/web_view_web_client.h [modify] https://crrev.com/acd6be00d8f5dc8b460f0e2da16b317ecd4072d3/ios/web_view/internal/web_view_web_client.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/24db7f894712ddf164e41314f99b4a54f84c18f7 commit 24db7f894712ddf164e41314f99b4a54f84c18f7 Author: Colin Blundell <blundell@chromium.org> Date: Mon Jul 03 15:54:21 2017 [iOS] Have showcase bundle web resources //ios/web, like //content, has a general assumption that it should be able to get at its own internal resources via WebClient::GetDataResource(). This is currently not true among all //ios/web embedders, but an upcoming CL will rely on this functionality. This CL adds bundling of iOS web resources into Showcase and makes those resources available to //ios/web. In an ideal world, it seems that Showcase wouldn't be an //ios/web embedder at all, in which case these requirements would become irrelevant for Showcase. Bug: 731588 Change-Id: I19b2f9b103bfe5674ee3e2100cb40174cd30dc4c Reviewed-on: https://chromium-review.googlesource.com/558063 Commit-Queue: Colin Blundell <blundell@chromium.org> Reviewed-by: Mark Cogan <marq@chromium.org> Cr-Commit-Position: refs/heads/master@{#484010} [modify] https://crrev.com/24db7f894712ddf164e41314f99b4a54f84c18f7/ios/showcase/BUILD.gn [modify] https://crrev.com/24db7f894712ddf164e41314f99b4a54f84c18f7/ios/showcase/DEPS [modify] https://crrev.com/24db7f894712ddf164e41314f99b4a54f84c18f7/ios/showcase/core/BUILD.gn [modify] https://crrev.com/24db7f894712ddf164e41314f99b4a54f84c18f7/ios/showcase/core/app_delegate.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/285e5bbcf8a594cfb6d646252e87e8b44c53fddc commit 285e5bbcf8a594cfb6d646252e87e8b44c53fddc Author: Colin Blundell <blundell@chromium.org> Date: Tue Jul 04 09:10:32 2017 Embed Service Manager in //ios/web This CL adds an embedding of the Service Manager in //ios/web, such that it is now possible to host and connect to services in //ios/{web, chrome}. The infrastructure is based on that for //content but simplified and adapted to the context of //ios, where: - Multiprocess does not exist. - Connection filters are not relevant, as Chrome IPC is not relevant. - There is no short-term plan to migrate to using ServiceManager's main function. Concretely, this CL does the following things: (1) Adds ServiceManagerConnection as an //ios/web public interface. This is the gateway for connecting to services from //ios. (2) Adds ServiceManagerContext, which embeds an in-process ServiceManager. (3) Adds ServiceManagerConnectionImpl, which gets a connection to the ServiceManager. (4) Adds the ability for //ios/web and its clients to register global services. (5) Adds an Earl Grey test in //ios/web/shell that hosts the echo service and tests the ability to connect to that service. This test also serves as an example usage of the infrastructure added in this CL. (6) Adds shell grit resources in order to allow the shell to package overlays of service manifests. Support for per-user services will be added in a followup CL. NOTE: This is an unchanged reland of the initial CL; in the meantime, I've landed CLs that bundle web resources in all //ios/web embedders, ensuring that the addition of this CL doesn't cause those embedders to crash. TBR=eugenebut@chromium.org Bug: 731588 Change-Id: Ie3c69fbce710c3ef0683297cd5d073228a49c9c9 Reviewed-on: https://chromium-review.googlesource.com/558977 Reviewed-by: Colin Blundell <blundell@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/master@{#484073} [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/chrome/app/main_controller.mm [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/BUILD.gn [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/DEPS [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/app/BUILD.gn [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/app/web_main_loop.h [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/app/web_main_loop.mm [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/app/web_main_runner.mm [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/ios_web_resources.grd [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/DEPS [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/OWNERS [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/app/BUILD.gn [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/app/mojo/OWNERS [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/app/mojo/web_browser_manifest.json [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/app/mojo/web_packaged_services_manifest.json [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/service_manager_connection.h [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/service_names.mojom [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/web_client.h [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/public/web_client.mm [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/service_manager_connection_impl.cc [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/service_manager_connection_impl.h [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/service_manager_connection_impl_unittest.cc [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/service_manager_context.h [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/service_manager_context.mm [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/shell/BUILD.gn [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/shell/DEPS [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/shell/shell_resources.grd [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/shell/shell_web_client.h [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/shell/shell_web_client.mm [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/shell/test/BUILD.gn [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/shell/test/service_manager_egtest.mm [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/shell/web_shell_browser_manifest_overlay.json [add] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/ios/web/shell/web_shell_packaged_services_manifest_overlay.json [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/services/service_manager/embedder/BUILD.gn [modify] https://crrev.com/285e5bbcf8a594cfb6d646252e87e8b44c53fddc/tools/gritsettings/resource_ids
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/30a166fe661cd548c4d11cb5ace170e9eb99ff46 commit 30a166fe661cd548c4d11cb5ace170e9eb99ff46 Author: Colin Blundell <blundell@chromium.org> Date: Fri Jul 07 10:38:36 2017 [services] Add UserId test service This service will be used in an upcoming integration test of the embedding of per-user services in //ios/web. It is a per-user service that simply exposes the ability to get its user id. Bug: 731588 Change-Id: I7eb9bfc308e4f13146ecc2621695b58c27efb7a9 Reviewed-on: https://chromium-review.googlesource.com/559678 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Ken Rockot <rockot@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/master@{#484878} [add] https://crrev.com/30a166fe661cd548c4d11cb5ace170e9eb99ff46/services/test/user_id/BUILD.gn [add] https://crrev.com/30a166fe661cd548c4d11cb5ace170e9eb99ff46/services/test/user_id/README.md [add] https://crrev.com/30a166fe661cd548c4d11cb5ace170e9eb99ff46/services/test/user_id/manifest.json [add] https://crrev.com/30a166fe661cd548c4d11cb5ace170e9eb99ff46/services/test/user_id/public/interfaces/BUILD.gn [add] https://crrev.com/30a166fe661cd548c4d11cb5ace170e9eb99ff46/services/test/user_id/public/interfaces/OWNERS [add] https://crrev.com/30a166fe661cd548c4d11cb5ace170e9eb99ff46/services/test/user_id/public/interfaces/user_id.mojom [add] https://crrev.com/30a166fe661cd548c4d11cb5ace170e9eb99ff46/services/test/user_id/user_id_service.cc [add] https://crrev.com/30a166fe661cd548c4d11cb5ace170e9eb99ff46/services/test/user_id/user_id_service.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d4c96c75e47934596a2dbe44a946a294453cb1d4 commit d4c96c75e47934596a2dbe44a946a294453cb1d4 Author: Colin Blundell <blundell@chromium.org> Date: Tue Jul 11 07:24:12 2017 [iOS] Bring up support for per-user services on iOS This CL augments the existing ServiceManager embedding on iOS with support for per-user embedded services. A "per-user" service is one that has one instance per user, rather than a shared instance for all users. Concretely, each BrowserState has a unique UserID, and there is one instance of a per-user service per UserID. Essentially, one can think of per-user services as the equivalent of profile-keyed services in the services world. The support added in this CL closely follows that of //content: - Public APIs are identical - Implementation in BrowserState follows that of BrowserContext with minor changes: - iOS doesn't use File Service at this time - No client of //ios/web needs to override how a user ID is generated This CL adds an Earl Grey test of web_shell that a per-user service can be embedded and if connected to from a given BrowserState, has its user ID properly associated with that of the BrowserState. Finally, this added support requires that all BrowserState subclasses call BrowserState::Initialize(). This is also done in this CL. Bug: 731588 Change-Id: Ie3bb79d4f754aecddd9c35c72576262dfc87cb55 Reviewed-on: https://chromium-review.googlesource.com/559529 Reviewed-by: Ken Rockot <rockot@chromium.org> Reviewed-by: Eugene But <eugenebut@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Sylvain Defresne <sdefresne@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/master@{#485547} [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/chrome/browser/browser_state/chrome_browser_state_impl.cc [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.cc [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/chrome/browser/browser_state/test_chrome_browser_state.mm [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/browser_state.mm [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/public/app/mojo/web_browser_manifest.json [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/public/browser_state.h [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/public/test/fakes/test_browser_state.cc [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/service_manager_connection_impl.cc [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/shell/BUILD.gn [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/shell/DEPS [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/shell/shell_browser_state.h [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/shell/shell_browser_state.mm [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/shell/test/BUILD.gn [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/shell/test/service_manager_egtest.mm [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web/shell/web_shell_browser_manifest_overlay.json [modify] https://crrev.com/d4c96c75e47934596a2dbe44a946a294453cb1d4/ios/web_view/internal/web_view_browser_state.mm
Comment 1 by blundell@chromium.org
, Jun 9 2017