Commit 99973117 authored by Ken Rockot's avatar Ken Rockot Committed by Commit Bot

[service-manager] Move EmbeddedServiceInfo etc

This pulls EmbeddedInstanceManager, EmbeddedServiceRunner, and
EmbeddedServiceInfo out of the //services/service_manager/embedder
target and into the client library, where they belong. These types
are used only by client code to facilitate embedding services within
other services and they require no linkage to the Service Manager
implementation.

Bug: 895022
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: I180d9eff440c2b3a06e62b8784bdd2747822842d
Reviewed-on: https://chromium-review.googlesource.com/c/1279327Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Reviewed-by: default avatarEugene But <eugenebut@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599797}
parent 6a13bd00
......@@ -1338,7 +1338,7 @@ component("ash") {
"//components/discardable_memory/public/interfaces",
"//mojo/public/cpp/system",
"//services/device/public/mojom",
"//services/service_manager/embedder",
"//services/service_manager/public/cpp",
"//services/ws:host",
"//services/ws:lib",
"//services/ws/common",
......@@ -2401,6 +2401,7 @@ static_library("interactive_ui_test_support") {
deps = [
":test_support_with_content",
"//base",
"//mojo/core/embedder",
"//skia",
"//testing/gtest",
"//ui/aura",
......
......@@ -28,7 +28,6 @@ include_rules = [
"+services/catalog/public",
"+services/content/public",
"+services/preferences/public",
"+services/service_manager/embedder",
"+services/service_manager/public",
"+services/viz/public",
"+services/ws",
......
......@@ -28,8 +28,8 @@
#include "components/viz/host/host_frame_sink_manager.h"
#include "device/bluetooth/bluetooth_adapter_factory.h"
#include "device/bluetooth/dbus/bluez_dbus_manager.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/connector.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "services/service_manager/public/cpp/service_context.h"
#include "services/ws/gpu_host/gpu_host.h"
#include "services/ws/host_context_factory.h"
......
......@@ -238,6 +238,7 @@ test("vr_android_unittests") {
"//components/translate/core/language_detection:language_detection",
"//device/vr:fakes",
"//device/vr/public/mojom",
"//mojo/core/embedder",
"//mojo/public/cpp/bindings",
"//services/network:test_support",
"//testing/android/native_test:native_test_native_code",
......
......@@ -7,7 +7,7 @@
#include "base/no_destructor.h"
#include "mojo/public/cpp/system/message_pipe.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
namespace service_manager {
class Connector;
......
......@@ -29,8 +29,8 @@
#include "device/vr/buildflags/buildflags.h"
#include "extensions/buildflags/buildflags.h"
#include "services/network/public/cpp/features.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/binder_registry.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "services/service_manager/sandbox/switches.h"
#include "ui/base/ui_features.h"
......
......@@ -149,6 +149,7 @@ jumbo_source_set("browser") {
"//services/resource_coordinator:lib",
"//services/resource_coordinator/public/cpp:resource_coordinator_cpp",
"//services/service_manager",
"//services/service_manager/embedder",
"//services/service_manager/embedder:embedder_result_codes",
"//services/service_manager/public/cpp",
"//services/service_manager/public/mojom",
......
......@@ -8,7 +8,7 @@
#include "base/bind.h"
#include "content/public/common/content_client.h"
#include "services/service_manager/embedder/embedded_service_runner.h"
#include "services/service_manager/public/cpp/embedded_service_runner.h"
namespace content {
......
......@@ -9,7 +9,7 @@
#include <memory>
#include "base/macros.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "services/service_manager/public/mojom/service.mojom.h"
#include "services/service_manager/public/mojom/service_factory.mojom.h"
......
......@@ -281,6 +281,7 @@ source_set("common") {
"//gpu/command_buffer/common",
"//ipc",
"//services/network:network_service",
"//services/service_manager/public/cpp",
"//services/service_manager/sandbox",
"//third_party/blink/public:blink_headers",
"//third_party/blink/public/common",
......@@ -328,9 +329,6 @@ source_set("common") {
"//services/network/public/cpp",
"//services/network/public/mojom",
"//services/resource_coordinator/public/cpp/memory_instrumentation",
"//services/service_manager",
"//services/service_manager/embedder",
"//services/service_manager/public/cpp",
"//services/service_manager/public/mojom",
"//services/service_manager/runner/common",
"//services/service_manager/zygote:zygote_buildflags",
......
......@@ -23,7 +23,7 @@
#include "content/public/common/service_names.mojom.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/system/message_pipe.h"
#include "services/service_manager/embedder/embedded_service_runner.h"
#include "services/service_manager/public/cpp/embedded_service_runner.h"
#include "services/service_manager/public/cpp/service.h"
#include "services/service_manager/public/cpp/service_context.h"
#include "services/service_manager/public/mojom/constants.mojom.h"
......
......@@ -75,6 +75,7 @@ target(link_target_type, "gpu_sources") {
"//components/viz/service/main",
"//media/gpu/ipc/service",
"//media/mojo/clients:clients",
"//services/service_manager/embedder",
"//services/service_manager/public/cpp",
"//services/service_manager/public/mojom",
"//services/service_manager/sandbox:chromecast_sandbox_whitelist_buildflags",
......
......@@ -21,7 +21,7 @@
#include "net/url_request/url_request_interceptor.h"
#include "net/url_request/url_request_job_factory.h"
#include "services/network/public/mojom/cors_origin_pattern.mojom.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "third_party/blink/public/mojom/blob/blob.mojom.h"
#if !defined(OS_ANDROID)
......
......@@ -41,8 +41,8 @@
#include "net/url_request/url_request_context_getter.h"
#include "services/network/public/mojom/network_context.mojom.h"
#include "services/network/public/mojom/websocket.mojom.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/binder_registry.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "services/service_manager/public/mojom/service.mojom.h"
#include "services/service_manager/sandbox/sandbox_type.h"
#include "storage/browser/fileapi/file_system_context.h"
......
......@@ -242,7 +242,6 @@ jumbo_source_set("common_sources") {
"//net",
"//services/network:network_service",
"//services/network/public/mojom",
"//services/service_manager/embedder",
"//services/service_manager/public/cpp",
"//services/service_manager/public/mojom",
"//third_party/blink/public:blink_headers",
......
......@@ -10,7 +10,7 @@
#include "base/callback_forward.h"
#include "base/sequenced_task_runner.h"
#include "content/common/content_export.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "services/service_manager/public/cpp/identity.h"
#include "services/service_manager/public/mojom/service.mojom.h"
......
......@@ -10,8 +10,8 @@
#include "base/callback_forward.h"
#include "content/public/common/content_client.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/binder_registry.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
namespace content {
......
......@@ -11,6 +11,6 @@ source_set("unzip") {
"//base",
"//components/services/unzip:lib",
"//ios/web/public",
"//services/service_manager/embedder",
"//services/service_manager/public/cpp",
]
}
include_rules = [
"+components/services/unzip",
"+services/service_manager/embedder",
]
......@@ -8,7 +8,7 @@
#include "base/threading/thread_task_runner_handle.h"
#include "components/services/unzip/public/interfaces/constants.mojom.h"
#include "components/services/unzip/unzip_service.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
void RegisterUnzipService(web::BrowserState::StaticServiceMap* services) {
service_manager::EmbeddedServiceInfo unzip_info;
......
......@@ -52,7 +52,7 @@ source_set("web") {
"//services/network/public/mojom",
"//services/service_manager",
"//services/service_manager/embedder",
"//services/service_manager/runner/common",
"//services/service_manager/public/cpp",
]
sources = [
......
......@@ -13,7 +13,7 @@ source_set("public") {
]
deps = [
"//services/service_manager/embedder",
"//services/service_manager/public/cpp",
"//ui/base",
]
......
......@@ -3,7 +3,6 @@ include_rules = [
"-ios/web",
"+ios/web/public",
"+services/network/public/mojom",
"+services/service_manager/embedder/runner",
]
specific_include_rules = {
......
......@@ -12,7 +12,7 @@
#include "services/network/public/mojom/network_service.mojom.h"
#include "services/network/public/mojom/proxy_resolving_socket.mojom.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
namespace base {
class FilePath;
......
......@@ -9,7 +9,7 @@
#include "base/callback_forward.h"
#include "base/sequenced_task_runner.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "services/service_manager/public/cpp/identity.h"
#include "services/service_manager/public/mojom/service.mojom.h"
......
......@@ -17,7 +17,7 @@
#include "base/values.h"
#include "ios/web/public/user_agent.h"
#include "mojo/public/cpp/system/message_pipe.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "ui/base/layout.h"
#include "url/url_util.h"
......
......@@ -18,12 +18,11 @@
#include "ios/web/public/web_thread.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/system/message_pipe.h"
#include "services/service_manager/embedder/embedded_service_runner.h"
#include "services/service_manager/public/cpp/embedded_service_runner.h"
#include "services/service_manager/public/cpp/service.h"
#include "services/service_manager/public/cpp/service_context.h"
#include "services/service_manager/public/mojom/constants.mojom.h"
#include "services/service_manager/public/mojom/service_factory.mojom.h"
#include "services/service_manager/runner/common/client_util.h"
namespace web {
namespace {
......
......@@ -33,7 +33,6 @@
#include "services/service_manager/public/cpp/connector.h"
#include "services/service_manager/public/cpp/service.h"
#include "services/service_manager/public/mojom/service.mojom.h"
#include "services/service_manager/runner/common/client_util.h"
#include "services/service_manager/service_manager.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
......@@ -150,7 +149,6 @@ class ServiceManagerContext::InProcessServiceManagerContext
ServiceManagerContext::ServiceManagerContext() {
service_manager::mojom::ServiceRequest packaged_services_request;
DCHECK(!service_manager::ServiceManagerIsRemote());
std::unique_ptr<BuiltinManifestProvider> manifest_provider =
std::make_unique<BuiltinManifestProvider>();
......
......@@ -11,7 +11,8 @@ source_set("webui") {
"//ios/web:resources_grit",
"//ios/web/public",
"//ios/web/web_state:web_state_impl_header",
"//services/service_manager/runner/common",
"//mojo/public/cpp/system",
"//services/service_manager/public/mojom",
"//ui/base",
"//ui/resources",
"//url",
......
......@@ -4,16 +4,10 @@
component("embedder") {
public = [
"embedded_service_info.h",
"embedded_service_runner.h",
"manifest_utils.h",
]
sources = [
"embedded_instance_manager.cc",
"embedded_instance_manager.h",
"embedded_service_info.cc",
"embedded_service_runner.cc",
"manifest_utils.cc",
"service_manager_embedder_export.h",
]
......@@ -103,17 +97,13 @@ source_set("unittests") {
testonly = true
sources = [
"embedded_instance_manager_unittest.cc",
"manifest_utils_unittest.cc",
]
# These headers are duplicated here so that they can remain private in the
# "embedder" target. See http://crbug.com/732993 for a way to make it
# unnecessary to do this.
sources += [
"embedded_instance_manager.h",
"service_manager_embedder_export.h",
]
sources += [ "service_manager_embedder_export.h" ]
deps = [
":embedder",
......
......@@ -10,6 +10,12 @@ component("cpp") {
"connect.h",
"connector.cc",
"connector.h",
"embedded_instance_manager.cc",
"embedded_instance_manager.h",
"embedded_service_info.cc",
"embedded_service_info.h",
"embedded_service_runner.cc",
"embedded_service_runner.h",
"export.h",
"interface_binder.h",
"interface_provider.cc",
......@@ -98,3 +104,16 @@ static_library("service_test_support") {
data_deps = []
}
source_set("tests") {
testonly = true
sources = [
"embedded_instance_manager_unittest.cc",
]
deps = [
":cpp",
"//base",
"//base/test:test_support",
"//testing/gtest",
]
}
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/service_manager/embedder/embedded_instance_manager.h"
#include "services/service_manager/public/cpp/embedded_instance_manager.h"
#include "base/bind.h"
#include "base/single_thread_task_runner.h"
......
......@@ -2,21 +2,21 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_SERVICE_MANAGER_EMBEDDER_EMBEDDED_INSTANCE_MANAGER_H_
#define SERVICES_SERVICE_MANAGER_EMBEDDER_EMBEDDED_INSTANCE_MANAGER_H_
#ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_EMBEDDED_INSTANCE_MANAGER_H_
#define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_EMBEDDED_INSTANCE_MANAGER_H_
#include <map>
#include <memory>
#include <string>
#include "base/callback_forward.h"
#include "base/component_export.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/string_piece.h"
#include "base/threading/thread_checker.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/embedder/service_manager_embedder_export.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "services/service_manager/public/cpp/service_context.h"
namespace base {
......@@ -33,7 +33,7 @@ class EmbeddedInstanceManagerTestApi;
// EmbeddedInstanceManager is an implementation detail of EmbeddedServiceRunner.
// Outside of tests there is no need to use it directly.
class SERVICE_MANAGER_EMBEDDER_EXPORT EmbeddedInstanceManager
class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) EmbeddedInstanceManager
: public base::RefCountedThreadSafe<EmbeddedInstanceManager> {
public:
EmbeddedInstanceManager(const base::StringPiece& name,
......@@ -98,4 +98,4 @@ class SERVICE_MANAGER_EMBEDDER_EXPORT EmbeddedInstanceManager
} // namespace service_manager
#endif // SERVICES_SERVICE_MANAGER_EMBEDDER_EMBEDDED_INSTANCE_MANAGER_H_
#endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_EMBEDDED_INSTANCE_MANAGER_H_
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/service_manager/embedder/embedded_instance_manager.h"
#include "services/service_manager/public/cpp/embedded_instance_manager.h"
#include <memory>
......@@ -11,7 +11,7 @@
#include "base/single_thread_task_runner.h"
#include "base/test/scoped_task_environment.h"
#include "base/threading/thread.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace service_manager {
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "base/callback.h"
#include "services/service_manager/public/cpp/service.h"
......
......@@ -2,26 +2,26 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_SERVICE_MANAGER_EMBEDDER_EMBEDDED_SERVICE_INFO_H_
#define SERVICES_SERVICE_MANAGER_EMBEDDER_EMBEDDED_SERVICE_INFO_H_
#ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_EMBEDDED_SERVICE_INFO_H_
#define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_EMBEDDED_SERVICE_INFO_H_
#include <memory>
#include "base/callback.h"
#include "base/component_export.h"
#include "base/memory/ref_counted.h"
#include "base/message_loop/message_loop.h"
#include "base/optional.h"
#include "base/sequenced_task_runner.h"
#include "base/single_thread_task_runner.h"
#include "base/threading/platform_thread.h"
#include "services/service_manager/embedder/service_manager_embedder_export.h"
namespace service_manager {
class Service;
// EmbeddedServiceInfo provides details necessary to construct and bind new
// instances of embedded services.
struct SERVICE_MANAGER_EMBEDDER_EXPORT EmbeddedServiceInfo {
struct COMPONENT_EXPORT(SERVICE_MANAGER_CPP) EmbeddedServiceInfo {
using ServiceFactory =
base::RepeatingCallback<std::unique_ptr<service_manager::Service>()>;
......@@ -62,4 +62,4 @@ struct SERVICE_MANAGER_EMBEDDER_EXPORT EmbeddedServiceInfo {
} // namespace service_manager
#endif // SERVICES_SERVICE_MANAGER_EMBEDDER_EMBEDDED_SERVICE_INFO_H_
#endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_EMBEDDED_SERVICE_INFO_H_
......@@ -2,15 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/service_manager/embedder/embedded_service_runner.h"
#include "services/service_manager/public/cpp/embedded_service_runner.h"
#include "base/bind.h"
#include "services/service_manager/embedder/embedded_instance_manager.h"
#include "services/service_manager/public/cpp/embedded_instance_manager.h"
#include "services/service_manager/public/cpp/service_context.h"
namespace service_manager {
EmbeddedServiceRunner::EmbeddedServiceRunner(const base::StringPiece& name,
const EmbeddedServiceInfo& info)
: weak_factory_(this) {
......
......@@ -2,19 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_SERVICE_MANAGER_EMBEDDER_EMBEDDED_SERVICE_RUNNER_H_
#define SERVICES_SERVICE_MANAGER_EMBEDDER_EMBEDDED_SERVICE_RUNNER_H_
#ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_EMBEDDED_SERVICE_RUNNER_H_
#define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_EMBEDDED_SERVICE_RUNNER_H_
#include <memory>
#include "base/callback.h"
#include "base/component_export.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/string_piece.h"
#include "services/service_manager/embedder/embedded_service_info.h"
#include "services/service_manager/embedder/service_manager_embedder_export.h"
#include "services/service_manager/public/cpp/embedded_service_info.h"
#include "services/service_manager/public/cpp/service.h"
#include "services/service_manager/public/mojom/service.mojom.h"
......@@ -23,7 +23,7 @@ namespace service_manager {
class EmbeddedInstanceManager;
// Hosts in-process service instances for a given service.
class SERVICE_MANAGER_EMBEDDER_EXPORT EmbeddedServiceRunner {
class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) EmbeddedServiceRunner {
public:
// Constructs a runner for a service. Every new instance started by the
// Service Manager for this service will invoke the factory function on |info|
......@@ -56,4 +56,4 @@ class SERVICE_MANAGER_EMBEDDER_EXPORT EmbeddedServiceRunner {
} // namespace service_manager
#endif // SERVICES_SERVICE_MANAGER_EMBEDDER_EMBEDDED_SERVICE_RUNNER_H_
#endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_EMBEDDED_SERVICE_RUNNER_H_
......@@ -35,6 +35,7 @@ service_test("service_manager_unittests") {
"//services/service_manager/background/tests:unittests",
"//services/service_manager/embedder:unittests",
"//services/service_manager/public/cpp",
"//services/service_manager/public/cpp:tests",
"//services/service_manager/public/cpp/test:test_support",
"//services/service_manager/public/mojom",
"//services/service_manager/runner/host:unittests",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment