From bb551f12072ebf7a9af6df26a51d125f90078453 Mon Sep 17 00:00:00 2001 From: Gyuyoung Kim Date: Thu, 2 Jul 2020 00:12:00 +0000 Subject: [PATCH] Convert mojom::ServiceRequest to PendingReceiver There are many uses of mojom::ServiceRequest. This CL migrates them to PendingReceiver. Besides that, ServiceBinding is renamed to ServiceReceiver and the variable name is also changed from |binding_| to |receiver_| or |service_binding_| to |service_receiver_|. Bug: 955171 Change-Id: I1ae084512b307b76956d10ffd21dcf441e7fed2b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2274485 Reviewed-by: Hidehiko Abe Reviewed-by: Kenneth MacKay Reviewed-by: Ken Rockot Reviewed-by: Kinuko Yasuda Reviewed-by: Xiyuan Xia Commit-Queue: Gyuyoung Kim Cr-Commit-Position: refs/heads/master@{#784627} --- .../arc_input_method_manager_bridge_impl.cc | 1 - .../print_spooler/arc_print_spooler_bridge.cc | 1 - .../ui/ash/chrome_new_window_client.cc | 1 - ...ontent_browser_client_receiver_bindings.cc | 4 +- .../broker_service/broker_service.cc | 7 ++- .../broker_service/broker_service.h | 8 ++- .../chromium_service.cc | 1 - .../public/cpp/external_mojo_broker.cc | 6 +- .../service_manager_connection_impl.cc | 43 ++++++------- .../service_manager_connection_impl.h | 3 +- ...ervice_manager_connection_impl_unittest.cc | 9 +-- .../common/service_manager_connection.h | 15 ++--- content/public/test/test_service.cc | 5 +- content/public/test/test_service.h | 7 ++- .../public/utility/content_utility_client.cc | 2 +- .../public/utility/content_utility_client.h | 2 +- .../utility/shell_content_utility_client.cc | 4 +- .../utility/shell_content_utility_client.h | 3 +- content/utility/utility_service_factory.cc | 5 +- services/service_manager/public/cpp/BUILD.gn | 4 +- services/service_manager/public/cpp/service.h | 2 +- .../service_executable_environment.cc | 4 +- .../service_executable_environment.h | 3 +- .../cpp/service_executable/service_main.h | 3 +- .../public/cpp/service_executable/switches.cc | 5 +- .../public/cpp/service_keepalive.cc | 12 ++-- .../public/cpp/service_keepalive.h | 16 ++--- ...service_binding.cc => service_receiver.cc} | 34 +++++------ .../{service_binding.h => service_receiver.h} | 61 ++++++++++--------- .../public/cpp/test/test_service.cc | 6 +- .../public/cpp/test/test_service.h | 8 +-- .../public/cpp/test/test_service_manager.cc | 6 +- .../public/cpp/test/test_service_manager.h | 11 ++-- services/service_manager/service_manager.cc | 2 +- services/service_manager/service_manager.h | 4 +- ...round_service_manager_test_service_main.cc | 15 ++--- .../background_service_manager_unittest.cc | 11 ++-- .../tests/connect/connect_test_app.cc | 29 ++++----- .../tests/connect/connect_test_class_app.cc | 17 +++--- .../tests/connect/connect_test_exe.cc | 16 ++--- .../tests/connect/connect_test_package.cc | 51 ++++++++-------- .../connect/connect_test_singleton_app.cc | 9 ++- .../tests/connect/connect_unittest.cc | 25 ++++---- .../service_manager/tests/lifecycle/app.cc | 5 +- .../tests/lifecycle/app_client.cc | 22 ++++--- .../tests/lifecycle/app_client.h | 7 ++- .../tests/lifecycle/lifecycle_unittest.cc | 8 +-- .../tests/lifecycle/package.cc | 34 ++++++----- .../service_manager/tests/lifecycle/parent.cc | 13 ++-- .../tests/service_manager/embedder.cc | 25 ++++---- .../service_manager_listener_unittest.cc | 25 ++++---- .../service_manager_unittest.cc | 20 +++--- .../tests/service_manager/target.cc | 18 +++--- ...vice_process_launcher_test_service_main.cc | 5 +- .../tests/shutdown/shutdown_client_app.cc | 15 ++--- .../tests/shutdown/shutdown_service_app.cc | 14 +++-- .../tests/shutdown/shutdown_unittest.cc | 8 +-- .../tests/test_support_unittest.cc | 14 ++--- services/test/user_id/user_id_service.cc | 8 ++- services/test/user_id/user_id_service.h | 7 ++- 60 files changed, 389 insertions(+), 340 deletions(-) rename services/service_manager/public/cpp/{service_binding.cc => service_receiver.cc} (76%) rename services/service_manager/public/cpp/{service_binding.h => service_receiver.h} (72%) diff --git a/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_bridge_impl.cc b/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_bridge_impl.cc index b9691167f1985b..d6592b4f690ce6 100644 --- a/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_bridge_impl.cc +++ b/chrome/browser/chromeos/arc/input_method_manager/arc_input_method_manager_bridge_impl.cc @@ -7,7 +7,6 @@ #include #include "components/arc/session/arc_bridge_service.h" -#include "mojo/public/cpp/bindings/interface_ptr.h" namespace arc { diff --git a/chrome/browser/chromeos/arc/print_spooler/arc_print_spooler_bridge.cc b/chrome/browser/chromeos/arc/print_spooler/arc_print_spooler_bridge.cc index c73959c631d4ed..691859063a78ba 100644 --- a/chrome/browser/chromeos/arc/print_spooler/arc_print_spooler_bridge.cc +++ b/chrome/browser/chromeos/arc/print_spooler/arc_print_spooler_bridge.cc @@ -23,7 +23,6 @@ #include "components/arc/session/arc_bridge_service.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/web_contents.h" -#include "mojo/public/cpp/bindings/interface_ptr.h" #include "net/base/filename_util.h" #include "ui/aura/window.h" #include "url/gurl.h" diff --git a/chrome/browser/ui/ash/chrome_new_window_client.cc b/chrome/browser/ui/ash/chrome_new_window_client.cc index a531f10ed03b61..f6952fdb58119f 100644 --- a/chrome/browser/ui/ash/chrome_new_window_client.cc +++ b/chrome/browser/ui/ash/chrome_new_window_client.cc @@ -64,7 +64,6 @@ #include "extensions/browser/extension_registry.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" -#include "mojo/public/cpp/bindings/interface_ptr.h" #include "ui/aura/window.h" #include "ui/base/base_window.h" #include "ui/base/page_transition_types.h" diff --git a/chromecast/browser/cast_content_browser_client_receiver_bindings.cc b/chromecast/browser/cast_content_browser_client_receiver_bindings.cc index 4abba0214d2495..39a6b2e2d0f3a5 100644 --- a/chromecast/browser/cast_content_browser_client_receiver_bindings.cc +++ b/chromecast/browser/cast_content_browser_client_receiver_bindings.cc @@ -82,9 +82,9 @@ void CreateMediaDrmStorage( #if BUILDFLAG(ENABLE_EXTERNAL_MOJO_SERVICES) void StartExternalMojoBrokerService( - service_manager::mojom::ServiceRequest request) { + mojo::PendingReceiver receiver) { service_manager::Service::RunAsyncUntilTermination( - std::make_unique(std::move(request))); + std::make_unique(std::move(receiver))); } #endif // BUILDFLAG(ENABLE_EXTERNAL_MOJO_SERVICES) diff --git a/chromecast/external_mojo/broker_service/broker_service.cc b/chromecast/external_mojo/broker_service/broker_service.cc index e804c6cdd048c6..77c5deb13805de 100644 --- a/chromecast/external_mojo/broker_service/broker_service.cc +++ b/chromecast/external_mojo/broker_service/broker_service.cc @@ -58,8 +58,9 @@ service_manager::Manifest MakePackagedServices( } // namespace -BrokerService::BrokerService(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { +BrokerService::BrokerService( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { io_thread_ = std::make_unique("external_mojo"); io_thread_->StartWithOptions( base::Thread::Options(base::MessagePumpType::IO, 0)); @@ -72,7 +73,7 @@ BrokerService::BrokerService(service_manager::mojom::ServiceRequest request) broker_ = base::SequenceBound(io_thread_->task_runner(), GetBrokerPath()); broker_.Post(FROM_HERE, &ExternalMojoBroker::InitializeChromium, - service_binding_.GetConnector()->Clone(), + service_receiver_.GetConnector()->Clone(), external_services_to_proxy); } diff --git a/chromecast/external_mojo/broker_service/broker_service.h b/chromecast/external_mojo/broker_service/broker_service.h index 563aa35f474d2c..f1b5653baef8cf 100644 --- a/chromecast/external_mojo/broker_service/broker_service.h +++ b/chromecast/external_mojo/broker_service/broker_service.h @@ -11,9 +11,10 @@ #include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/threading/sequence_bound.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/service_manager/public/cpp/manifest.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" namespace base { @@ -44,11 +45,12 @@ class BrokerService : public ::service_manager::Service { // Returns the manifest for this service. static const service_manager::Manifest& GetManifest(); - explicit BrokerService(service_manager::mojom::ServiceRequest request); + explicit BrokerService( + mojo::PendingReceiver receiver); ~BrokerService() override; private: - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; std::unique_ptr io_thread_; scoped_refptr io_task_runner_; diff --git a/chromecast/external_mojo/external_service_support/chromium_service.cc b/chromecast/external_mojo/external_service_support/chromium_service.cc index ff66472e281003..f1dd937a79cca1 100644 --- a/chromecast/external_mojo/external_service_support/chromium_service.cc +++ b/chromecast/external_mojo/external_service_support/chromium_service.cc @@ -10,7 +10,6 @@ #include "base/check.h" #include "base/token.h" #include "chromecast/external_mojo/external_service_support/external_connector.h" -#include "mojo/public/cpp/bindings/interface_request.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/remote.h" diff --git a/chromecast/external_mojo/public/cpp/external_mojo_broker.cc b/chromecast/external_mojo/public/cpp/external_mojo_broker.cc index 0dfe0d91166491..a2145d5e34ae9a 100644 --- a/chromecast/external_mojo/public/cpp/external_mojo_broker.cc +++ b/chromecast/external_mojo/public/cpp/external_mojo_broker.cc @@ -35,8 +35,8 @@ #include "services/service_manager/public/cpp/constants.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_filter.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/connector.mojom.h" #include "services/service_manager/public/mojom/service.mojom.h" @@ -92,7 +92,7 @@ class ExternalMojoBroker::ConnectorImpl : public mojom::ExternalConnector { mojo::PendingReceiver<::service_manager::mojom::Service> receiver) : connector_(connector), service_name_(std::move(service_name)), - service_binding_(this, std::move(receiver)) { + service_receiver_(this, std::move(receiver)) { DCHECK(connector_); } @@ -107,7 +107,7 @@ class ExternalMojoBroker::ConnectorImpl : public mojom::ExternalConnector { ConnectorImpl* const connector_; const std::string service_name_; - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; DISALLOW_COPY_AND_ASSIGN(ExternalServiceProxy); }; diff --git a/content/common/service_manager/service_manager_connection_impl.cc b/content/common/service_manager/service_manager_connection_impl.cc index c36c475e21e40f..7c2140a571060f 100644 --- a/content/common/service_manager/service_manager_connection_impl.cc +++ b/content/common/service_manager/service_manager_connection_impl.cc @@ -23,7 +23,7 @@ #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/system/message_pipe.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/constants.mojom.h" #if defined(OS_ANDROID) @@ -50,11 +50,12 @@ class ServiceManagerConnectionImpl::IOThreadContext : public base::RefCountedThreadSafe, public service_manager::Service { public: - IOThreadContext(service_manager::mojom::ServiceRequest service_request, - scoped_refptr io_task_runner, - mojo::PendingReceiver - connector_receiver) - : pending_service_request_(std::move(service_request)), + IOThreadContext( + mojo::PendingReceiver service_receiver, + scoped_refptr io_task_runner, + mojo::PendingReceiver + connector_receiver) + : pending_service_receiver_(std::move(service_receiver)), io_task_runner_(io_task_runner), pending_connector_receiver_(std::move(connector_receiver)) { // This will be reattached by any of the IO thread functions on first call. @@ -155,18 +156,18 @@ class ServiceManagerConnectionImpl::IOThreadContext static void WrapServiceRequestHandlerNoCallback( const ServiceRequestHandler& handler, - service_manager::mojom::ServiceRequest request, + mojo::PendingReceiver receiver, CreatePackagedServiceInstanceCallback callback) { - handler.Run(std::move(request)); + handler.Run(std::move(receiver)); std::move(callback).Run(base::GetCurrentProcId()); } void StartOnIOThread() { // Should bind |io_thread_checker_| to the context's thread. DCHECK(io_thread_checker_.CalledOnValidThread()); - service_binding_ = std::make_unique( - this, std::move(pending_service_request_)); - service_binding_->GetConnector()->BindConnectorReceiver( + service_receiver_ = std::make_unique( + this, std::move(pending_service_receiver_)); + service_receiver_->GetConnector()->BindConnectorReceiver( std::move(pending_connector_receiver_)); // MessageLoopObserver owns itself. @@ -196,7 +197,7 @@ class ServiceManagerConnectionImpl::IOThreadContext // unwinds. scoped_refptr keepalive(this); - service_binding_.reset(); + service_receiver_.reset(); StopOnIOThread(); } @@ -222,20 +223,19 @@ class ServiceManagerConnectionImpl::IOThreadContext mojo::PendingReceiver receiver, CreatePackagedServiceInstanceCallback callback) override { DCHECK(io_thread_checker_.CalledOnValidThread()); - service_manager::mojom::ServiceRequest request(std::move(receiver)); auto it = request_handlers_.find(service_name); if (it == request_handlers_.end()) { if (default_request_handler_) { callback_task_runner_->PostTask( FROM_HERE, base::BindOnce(default_request_handler_, service_name, - std::move(request))); + std::move(receiver))); } else { LOG(ERROR) << "Can't create service " << service_name << ". No handler found."; } std::move(callback).Run(base::nullopt); } else { - it->second.Run(std::move(request), std::move(callback)); + it->second.Run(std::move(receiver), std::move(callback)); } } @@ -251,7 +251,8 @@ class ServiceManagerConnectionImpl::IOThreadContext // Temporary state established on construction and consumed on the IO thread // once the connection is started. - service_manager::mojom::ServiceRequest pending_service_request_; + mojo::PendingReceiver + pending_service_receiver_; scoped_refptr io_task_runner_; mojo::PendingReceiver pending_connector_receiver_; @@ -263,7 +264,7 @@ class ServiceManagerConnectionImpl::IOThreadContext // Callback to run if the service is stopped by the service manager. base::OnceClosure stop_callback_; - std::unique_ptr service_binding_; + std::unique_ptr service_receiver_; // Not owned. MessageLoopObserver* message_loop_observer_ = nullptr; @@ -321,11 +322,11 @@ void ServiceManagerConnection::SetFactoryForTest(Factory* factory) { // static std::unique_ptr ServiceManagerConnection::Create( - service_manager::mojom::ServiceRequest request, + mojo::PendingReceiver receiver, scoped_refptr io_task_runner) { if (service_manager_connection_factory) return service_manager_connection_factory->Run(); - return std::make_unique(std::move(request), + return std::make_unique(std::move(receiver), io_task_runner); } @@ -335,11 +336,11 @@ ServiceManagerConnection::~ServiceManagerConnection() {} // ServiceManagerConnectionImpl, public: ServiceManagerConnectionImpl::ServiceManagerConnectionImpl( - service_manager::mojom::ServiceRequest request, + mojo::PendingReceiver receiver, scoped_refptr io_task_runner) { mojo::PendingReceiver connector_receiver; connector_ = service_manager::Connector::Create(&connector_receiver); - context_ = new IOThreadContext(std::move(request), io_task_runner, + context_ = new IOThreadContext(std::move(receiver), io_task_runner, std::move(connector_receiver)); } diff --git a/content/common/service_manager/service_manager_connection_impl.h b/content/common/service_manager/service_manager_connection_impl.h index 38bdd6186fe71c..642323846f8487 100644 --- a/content/common/service_manager/service_manager_connection_impl.h +++ b/content/common/service_manager/service_manager_connection_impl.h @@ -13,6 +13,7 @@ #include "base/sequenced_task_runner.h" #include "content/common/content_export.h" #include "content/public/common/service_manager_connection.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/system/message_pipe.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/mojom/service.mojom.h" @@ -27,7 +28,7 @@ class CONTENT_EXPORT ServiceManagerConnectionImpl : public ServiceManagerConnection { public: explicit ServiceManagerConnectionImpl( - service_manager::mojom::ServiceRequest request, + mojo::PendingReceiver receiver, scoped_refptr io_task_runner); ~ServiceManagerConnectionImpl() override; diff --git a/content/common/service_manager/service_manager_connection_impl_unittest.cc b/content/common/service_manager/service_manager_connection_impl_unittest.cc index 47d7312fc3c77f..608488a675cdc4 100644 --- a/content/common/service_manager/service_manager_connection_impl_unittest.cc +++ b/content/common/service_manager/service_manager_connection_impl_unittest.cc @@ -34,10 +34,11 @@ TEST(ServiceManagerConnectionImplTest, ServiceLaunchThreading) { base::WaitableEvent event(base::WaitableEvent::ResetPolicy::MANUAL, base::WaitableEvent::InitialState::NOT_SIGNALED); connection.AddServiceRequestHandler( - kTestServiceName, base::BindLambdaForTesting( - [&event](service_manager::mojom::ServiceRequest) { - event.Signal(); - })); + kTestServiceName, + base::BindLambdaForTesting( + [&event](mojo::PendingReceiver) { + event.Signal(); + })); connection.Start(); mojo::PendingRemote packaged_service; diff --git a/content/public/common/service_manager_connection.h b/content/public/common/service_manager_connection.h index ed9772780850a1..88aa2911b89a90 100644 --- a/content/public/common/service_manager_connection.h +++ b/content/public/common/service_manager_connection.h @@ -10,6 +10,7 @@ #include "base/callback_forward.h" #include "base/sequenced_task_runner.h" #include "content/common/content_export.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/service.h" #include "services/service_manager/public/mojom/connector.mojom-forward.h" @@ -33,10 +34,10 @@ namespace content { // ContentBrowserClient::RegisterInProcessServices(). class CONTENT_EXPORT ServiceManagerConnection { public: - using ServiceRequestHandler = - base::RepeatingCallback; + using ServiceRequestHandler = base::RepeatingCallback)>; using ServiceRequestHandlerWithCallback = base::RepeatingCallback, service_manager::Service::CreatePackagedServiceInstanceCallback)>; using Factory = base::RepeatingCallback(void)>; @@ -65,7 +66,7 @@ class CONTENT_EXPORT ServiceManagerConnection { // its interfaces and accept new connections on |io_task_runner| only. Note // that no incoming connections are accepted until Start() is called. static std::unique_ptr Create( - service_manager::mojom::ServiceRequest request, + mojo::PendingReceiver receiver, scoped_refptr io_task_runner); // Begins accepting incoming connections. @@ -100,9 +101,9 @@ class CONTENT_EXPORT ServiceManagerConnection { // Sets a request handler to use if no registered handlers were interested in // an incoming service request. Must be called before |Start()|. - using DefaultServiceRequestHandler = - base::RepeatingCallback; + using DefaultServiceRequestHandler = base::RepeatingCallback)>; virtual void SetDefaultServiceRequestHandler( const DefaultServiceRequestHandler& handler) = 0; }; diff --git a/content/public/test/test_service.cc b/content/public/test/test_service.cc index 8230c1c7857fe4..945472e6f34f72 100644 --- a/content/public/test/test_service.cc +++ b/content/public/test/test_service.cc @@ -16,8 +16,9 @@ namespace content { const char kTestServiceUrl[] = "system:content_test_service"; -TestService::TestService(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { +TestService::TestService( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface( base::BindRepeating(&TestService::Create, base::Unretained(this))); } diff --git a/content/public/test/test_service.h b/content/public/test/test_service.h index 6e8ec599d21567..cb31881b4fe82a 100644 --- a/content/public/test/test_service.h +++ b/content/public/test/test_service.h @@ -13,7 +13,7 @@ #include "mojo/public/cpp/bindings/receiver.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" namespace content { @@ -24,7 +24,8 @@ extern const char kTestServiceUrl[]; // terminates itself after its TestService fulfills a single DoSomething call. class TestService : public service_manager::Service, public mojom::TestService { public: - explicit TestService(service_manager::mojom::ServiceRequest request); + explicit TestService( + mojo::PendingReceiver receiver); ~TestService() override; private: @@ -52,7 +53,7 @@ class TestService : public service_manager::Service, public mojom::TestService { CreateUnsafeSharedMemoryRegionCallback callback) override; void IsProcessSandboxed(IsProcessSandboxedCallback callback) override; - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; service_manager::BinderRegistry registry_; mojo::Receiver receiver_{this}; diff --git a/content/public/utility/content_utility_client.cc b/content/public/utility/content_utility_client.cc index 29a4c17604dc60..d1cafbea903148 100644 --- a/content/public/utility/content_utility_client.cc +++ b/content/public/utility/content_utility_client.cc @@ -12,7 +12,7 @@ bool ContentUtilityClient::OnMessageReceived(const IPC::Message& message) { bool ContentUtilityClient::HandleServiceRequest( const std::string& service_name, - service_manager::mojom::ServiceRequest request) { + mojo::PendingReceiver receiver) { return false; } diff --git a/content/public/utility/content_utility_client.h b/content/public/utility/content_utility_client.h index 672a774c983ebd..1a9a1cf688a9e5 100644 --- a/content/public/utility/content_utility_client.h +++ b/content/public/utility/content_utility_client.h @@ -60,7 +60,7 @@ class CONTENT_EXPORT ContentUtilityClient { // If the embedder returns |false| this process is terminated immediately. virtual bool HandleServiceRequest( const std::string& service_name, - service_manager::mojom::ServiceRequest request); + mojo::PendingReceiver receiver); // Allows the embedder to handle an incoming service interface request to run // a service on the IO thread. Should return a ServiceFactory instance which diff --git a/content/shell/utility/shell_content_utility_client.cc b/content/shell/utility/shell_content_utility_client.cc index 14c0019bbb35ee..bb540e6ffa39b1 100644 --- a/content/shell/utility/shell_content_utility_client.cc +++ b/content/shell/utility/shell_content_utility_client.cc @@ -155,10 +155,10 @@ void ShellContentUtilityClient::ExposeInterfacesToBrowser( bool ShellContentUtilityClient::HandleServiceRequest( const std::string& service_name, - service_manager::mojom::ServiceRequest request) { + mojo::PendingReceiver receiver) { std::unique_ptr service; if (service_name == kTestServiceUrl) { - service = std::make_unique(std::move(request)); + service = std::make_unique(std::move(receiver)); } if (service) { diff --git a/content/shell/utility/shell_content_utility_client.h b/content/shell/utility/shell_content_utility_client.h index b2bb994dd2aceb..df7adadc575084 100644 --- a/content/shell/utility/shell_content_utility_client.h +++ b/content/shell/utility/shell_content_utility_client.h @@ -9,6 +9,7 @@ #include "content/public/test/audio_service_test_helper.h" #include "content/public/test/network_service_test_helper.h" #include "content/public/utility/content_utility_client.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" namespace content { @@ -21,7 +22,7 @@ class ShellContentUtilityClient : public ContentUtilityClient { void ExposeInterfacesToBrowser(mojo::BinderMap* binders) override; bool HandleServiceRequest( const std::string& service_name, - service_manager::mojom::ServiceRequest request) override; + mojo::PendingReceiver receiver) override; mojo::ServiceFactory* GetIOThreadServiceFactory() override; void RegisterNetworkBinders( service_manager::BinderRegistry* registry) override; diff --git a/content/utility/utility_service_factory.cc b/content/utility/utility_service_factory.cc index 130eb3e9203c8e..5ada187f8172fb 100644 --- a/content/utility/utility_service_factory.cc +++ b/content/utility/utility_service_factory.cc @@ -24,7 +24,6 @@ UtilityServiceFactory::~UtilityServiceFactory() = default; void UtilityServiceFactory::RunService( const std::string& service_name, mojo::PendingReceiver receiver) { - auto request = service_manager::mojom::ServiceRequest(std::move(receiver)); auto* trace_log = base::trace_event::TraceLog::GetInstance(); if (trace_log->IsProcessNameEmpty()) trace_log->set_process_name("Service: " + service_name); @@ -35,8 +34,8 @@ void UtilityServiceFactory::RunService( std::unique_ptr service; - if (GetContentClient()->utility()->HandleServiceRequest(service_name, - std::move(request))) { + if (GetContentClient()->utility()->HandleServiceRequest( + service_name, std::move(receiver))) { return; } diff --git a/services/service_manager/public/cpp/BUILD.gn b/services/service_manager/public/cpp/BUILD.gn index e7d0f383a25a29..5220a379e5f997 100644 --- a/services/service_manager/public/cpp/BUILD.gn +++ b/services/service_manager/public/cpp/BUILD.gn @@ -25,11 +25,11 @@ component("cpp") { "manifest_builder.h", "service.cc", "service.h", - "service_binding.cc", - "service_binding.h", "service_context_ref.h", "service_keepalive.cc", "service_keepalive.h", + "service_receiver.cc", + "service_receiver.h", "standalone_connector_impl.cc", "standalone_connector_impl.h", ] diff --git a/services/service_manager/public/cpp/service.h b/services/service_manager/public/cpp/service.h index 9316c3aa4b167a..38fb7950b51abe 100644 --- a/services/service_manager/public/cpp/service.h +++ b/services/service_manager/public/cpp/service.h @@ -32,7 +32,7 @@ class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) Service { // default implementation of |OnDisconnected()|. // // This should really only be called on a Service instance that has a bound - // connection to the Service Manager, e.g. a functioning ServiceBinding. If + // connection to the Service Manager, e.g. a functioning ServiceReceiver. If // the service never calls |Terminate()|, it will effectively leak. // // If |callback| is non-null, it will be invoked after |service| is destroyed. diff --git a/services/service_manager/public/cpp/service_executable/service_executable_environment.cc b/services/service_manager/public/cpp/service_executable/service_executable_environment.cc index 7d660a916fb4d7..cfb5cc47a77588 100644 --- a/services/service_manager/public/cpp/service_executable/service_executable_environment.cc +++ b/services/service_manager/public/cpp/service_executable/service_executable_environment.cc @@ -64,12 +64,12 @@ ServiceExecutableEnvironment::ServiceExecutableEnvironment() ServiceExecutableEnvironment::~ServiceExecutableEnvironment() = default; -mojom::ServiceRequest +mojo::PendingReceiver ServiceExecutableEnvironment::TakeServiceRequestFromCommandLine() { auto invitation = mojo::IncomingInvitation::Accept( mojo::PlatformChannel::RecoverPassedEndpointFromCommandLine( *base::CommandLine::ForCurrentProcess())); - return mojom::ServiceRequest(invitation.ExtractMessagePipe( + return mojo::PendingReceiver(invitation.ExtractMessagePipe( base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( switches::kServiceRequestAttachmentName))); } diff --git a/services/service_manager/public/cpp/service_executable/service_executable_environment.h b/services/service_manager/public/cpp/service_executable/service_executable_environment.h index f5265705ed0942..0183aa0d2dad47 100644 --- a/services/service_manager/public/cpp/service_executable/service_executable_environment.h +++ b/services/service_manager/public/cpp/service_executable/service_executable_environment.h @@ -9,6 +9,7 @@ #include "base/optional.h" #include "base/threading/thread.h" #include "mojo/core/embedder/scoped_ipc_support.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" namespace service_manager { @@ -32,7 +33,7 @@ class ServiceExecutableEnvironment { // Returns a ServiceRequest which should be passed to the Service // implementation which will run within the extent of this environment. - mojom::ServiceRequest TakeServiceRequestFromCommandLine(); + mojo::PendingReceiver TakeServiceRequestFromCommandLine(); private: base::Thread ipc_thread_; diff --git a/services/service_manager/public/cpp/service_executable/service_main.h b/services/service_manager/public/cpp/service_executable/service_main.h index cdf2dc0e46bf45..534a1274cd5ef9 100644 --- a/services/service_manager/public/cpp/service_executable/service_main.h +++ b/services/service_manager/public/cpp/service_executable/service_main.h @@ -10,6 +10,7 @@ // Service executables linking against the // "//services/service_manager/public/cpp/service_executable:main" target must // implement this function as their entry point. -void ServiceMain(service_manager::mojom::ServiceRequest request); +void ServiceMain( + mojo::PendingReceiver receiver); #endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_STANDALONE_SERVICE_SERVICE_MAIN_H_ diff --git a/services/service_manager/public/cpp/service_executable/switches.cc b/services/service_manager/public/cpp/service_executable/switches.cc index 9a84d6c9faa1e1..88be354d542741 100644 --- a/services/service_manager/public/cpp/service_executable/switches.cc +++ b/services/service_manager/public/cpp/service_executable/switches.cc @@ -12,8 +12,9 @@ namespace switches { // different services. const char kServiceName[] = "service-name"; -// The name of the |service_manager::mojom::ServiceRequest| message pipe handle -// that is attached to the incoming Mojo invitation received by the service. +// The name of the |mojo::PendingReceiver| +// message pipe handle that is attached to the incoming Mojo invitation received +// by the service. const char kServiceRequestAttachmentName[] = "service-request-attachment-name"; } // namespace switches diff --git a/services/service_manager/public/cpp/service_keepalive.cc b/services/service_manager/public/cpp/service_keepalive.cc index a4e53956313726..0e02994a207a9f 100644 --- a/services/service_manager/public/cpp/service_keepalive.cc +++ b/services/service_manager/public/cpp/service_keepalive.cc @@ -6,7 +6,7 @@ #include "base/bind.h" #include "base/task/post_task.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" namespace service_manager { @@ -56,9 +56,9 @@ class ServiceKeepaliveRefImpl : public ServiceKeepaliveRef { DISALLOW_COPY_AND_ASSIGN(ServiceKeepaliveRefImpl); }; -ServiceKeepalive::ServiceKeepalive(ServiceBinding* binding, +ServiceKeepalive::ServiceKeepalive(ServiceReceiver* receiver, base::Optional idle_timeout) - : binding_(binding), idle_timeout_(idle_timeout) {} + : receiver_(receiver), idle_timeout_(idle_timeout) {} ServiceKeepalive::~ServiceKeepalive() = default; @@ -111,10 +111,10 @@ void ServiceKeepalive::OnTimerExpired() { for (auto& observer : observers_) observer.OnIdleTimeout(); - // NOTE: We allow for a null |binding_| because it's convenient in some + // NOTE: We allow for a null |receiver_| because it's convenient in some // testing scenarios and adds no real complexity to this implementation. - if (binding_) - binding_->RequestClose(); + if (receiver_) + receiver_->RequestClose(); } } // namespace service_manager diff --git a/services/service_manager/public/cpp/service_keepalive.h b/services/service_manager/public/cpp/service_keepalive.h index 6a1488993d76ed..70ab6ff9964463 100644 --- a/services/service_manager/public/cpp/service_keepalive.h +++ b/services/service_manager/public/cpp/service_keepalive.h @@ -15,12 +15,12 @@ namespace service_manager { -class ServiceBinding; +class ServiceReceiver; class ServiceKeepaliveRef; // Service implementations are responsible for managing their own lifetime and -// as such are expected to call |ServiceBinding::RequestClose()| on their own -// ServiceBinding when they are no longer in use by any clients and otherwise +// as such are expected to call |ServiceReceiver::RequestClose()| on their own +// ServiceReceiver when they are no longer in use by any clients and otherwise // have no reason to keep running (e.g. no active UI visible). // // ServiceKeepalive helps Service implementations accomplish this by vending @@ -32,7 +32,7 @@ class ServiceKeepaliveRef; // If the ServiceKeepalive's number of living ServiceKeepaliveRef instances goes // to zero, the service is considered idle. If the ServiceKeepalive is // configured with an idle timeout, it will automatically invoke -// |ServiceBinding::RequestClose()| on its associated ServiceBinding once the +// |ServiceReceiver::RequestClose()| on its associated ServiceReceiver once the // service has remained idle for that continuous duration. // // Services can use this mechanism to vend ServiceKeepaliveRefs to various parts @@ -55,10 +55,10 @@ class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceKeepalive { }; // Constructs a ServiceKeepalive to control the lifetime behavior of - // |*binding|. Note that if either |binding| or |idle_timeout| is null, this + // |*receiver|. Note that if either |receiver| or |idle_timeout| is null, this // object will not do any automatic lifetime management and will instead only // maintain an internal ref-count which the consumer can query. - ServiceKeepalive(ServiceBinding* binding, + ServiceKeepalive(ServiceReceiver* receiver, base::Optional idle_timeout); ~ServiceKeepalive(); @@ -82,7 +82,7 @@ class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceKeepalive { void OnTimerExpired(); - ServiceBinding* const binding_; + ServiceReceiver* const receiver_; const base::Optional idle_timeout_; base::Optional idle_timer_; base::ObserverList observers_; @@ -93,7 +93,7 @@ class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceKeepalive { }; // Objects which can be created by a |ServiceKeepalive| and cloned from each -// other. The ServiceBinding referenced by a ServiceKeepalive is considered +// other. The ServiceReceiver referenced by a ServiceKeepalive is considered // active as long as one of these objects exists and is associated with that // ServiceKeepalive. class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceKeepaliveRef { diff --git a/services/service_manager/public/cpp/service_binding.cc b/services/service_manager/public/cpp/service_receiver.cc similarity index 76% rename from services/service_manager/public/cpp/service_binding.cc rename to services/service_manager/public/cpp/service_receiver.cc index 83ba02795308e7..18ac3893fa5bd7 100644 --- a/services/service_manager/public/cpp/service_binding.cc +++ b/services/service_manager/public/cpp/service_receiver.cc @@ -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/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include @@ -14,35 +14,35 @@ namespace service_manager { -ServiceBinding::ServiceBinding(service_manager::Service* service) +ServiceReceiver::ServiceReceiver(service_manager::Service* service) : service_(service) { DCHECK(service_); } -ServiceBinding::ServiceBinding(service_manager::Service* service, - mojo::PendingReceiver receiver) - : ServiceBinding(service) { +ServiceReceiver::ServiceReceiver(service_manager::Service* service, + mojo::PendingReceiver receiver) + : ServiceReceiver(service) { if (receiver.is_valid()) Bind(std::move(receiver)); } -ServiceBinding::~ServiceBinding() = default; +ServiceReceiver::~ServiceReceiver() = default; -Connector* ServiceBinding::GetConnector() { +Connector* ServiceReceiver::GetConnector() { if (!connector_) connector_ = Connector::Create(&pending_connector_receiver_); return connector_.get(); } -void ServiceBinding::Bind(mojo::PendingReceiver receiver) { +void ServiceReceiver::Bind(mojo::PendingReceiver receiver) { DCHECK(!is_bound()); receiver_.Bind(std::move(receiver)); receiver_.set_disconnect_handler(base::BindOnce( - &ServiceBinding::OnConnectionError, base::Unretained(this))); + &ServiceReceiver::OnConnectionError, base::Unretained(this))); } -void ServiceBinding::RequestClose() { - // We allow for innoccuous RequestClose() calls on unbound ServiceBindings. +void ServiceReceiver::RequestClose() { + // We allow for innoccuous RequestClose() calls on unbound ServiceReceivers. // This may occur e.g. when running a service in-process. if (!is_bound()) return; @@ -58,19 +58,19 @@ void ServiceBinding::RequestClose() { } } -void ServiceBinding::Close() { +void ServiceReceiver::Close() { DCHECK(is_bound()); receiver_.reset(); service_control_.reset(); connector_.reset(); } -void ServiceBinding::OnConnectionError() { +void ServiceReceiver::OnConnectionError() { service_->OnDisconnected(); } -void ServiceBinding::OnStart(const Identity& identity, - OnStartCallback callback) { +void ServiceReceiver::OnStart(const Identity& identity, + OnStartCallback callback) { identity_ = identity; if (!pending_connector_receiver_.is_valid()) @@ -85,7 +85,7 @@ void ServiceBinding::OnStart(const Identity& identity, service_control_->RequestQuit(); } -void ServiceBinding::OnBindInterface( +void ServiceReceiver::OnBindInterface( const BindSourceInfo& source_info, const std::string& interface_name, mojo::ScopedMessagePipeHandle interface_pipe, @@ -96,7 +96,7 @@ void ServiceBinding::OnBindInterface( service_->OnConnect(source_info, interface_name, std::move(interface_pipe)); } -void ServiceBinding::CreatePackagedServiceInstance( +void ServiceReceiver::CreatePackagedServiceInstance( const Identity& identity, mojo::PendingReceiver receiver, mojo::PendingRemote metadata) { diff --git a/services/service_manager/public/cpp/service_binding.h b/services/service_manager/public/cpp/service_receiver.h similarity index 72% rename from services/service_manager/public/cpp/service_binding.h rename to services/service_manager/public/cpp/service_receiver.h index 6a2f6c6f14e63a..c80300876f1518 100644 --- a/services/service_manager/public/cpp/service_binding.h +++ b/services/service_manager/public/cpp/service_receiver.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_BINDING_H_ -#define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_BINDING_H_ +#ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_RECEIVER_H_ +#define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_RECEIVER_H_ #include @@ -30,13 +30,14 @@ class Service; // implementation, while also exposing a working Connector interface the service // can use to make outgoing interface requests. // -// A ServiceBinding is considered to be "bound" after |Bind()| is invoked with a -// valid Service receiver (or the equivalent constructor is used -- see below). -// Upon connection error or an explicit call to |Close()|, the ServiceBinding -// will be considered "unbound" until another call to |Bind()| is made. +// A ServiceReceiver is considered to be "bound" after |Bind()| is invoked with +// a valid Service receiver (or the equivalent constructor is used -- see +// below). Upon connection error or an explicit call to |Close()|, the +// ServiceReceiver will be considered "unbound" until another call to |Bind()| +// is made. // -// NOTE: A well-behaved service should aim to always close its ServiceBinding -// gracefully by calling |RequestClose()|. Closing a ServiceBinding abruptly +// NOTE: A well-behaved service should aim to always close its ServiceReceiver +// gracefully by calling |RequestClose()|. Closing a ServiceReceiver abruptly // (by either destroying it or explicitly calling |Close()|) introduces inherent // flakiness into the system unless the Service's |OnDisconnected()| has already // been invoked, because otherwise the Service Manager may have in-flight @@ -44,45 +45,45 @@ class Service; // dropped to the dismay of the service instance which issued them. Exceptions // can reasonably be made for system-wide shutdown situations where even the // Service Manager itself will be imminently torn down. -class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceBinding +class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceReceiver : public mojom::Service { public: - // Creates a new ServiceBinding bound to |service|. The service will not + // Creates a new ServiceReceiver bound to |service|. The service will not // receive any Service interface calls until |Bind()| is called, but its // |connector()| is usable immediately upon construction. // - // |service| is not owned and must outlive this ServiceBinding. - explicit ServiceBinding(service_manager::Service* service); + // |service| is not owned and must outlive this ServiceReceiver. + explicit ServiceReceiver(service_manager::Service* service); // Same as above, but behaves as if |Bind(receiver)| is also called // immediately after construction. See below. - ServiceBinding(service_manager::Service* service, - mojo::PendingReceiver receiver); + ServiceReceiver(service_manager::Service* service, + mojo::PendingReceiver receiver); - ~ServiceBinding() override; + ~ServiceReceiver() override; bool is_bound() const { return receiver_.is_bound(); } const Identity& identity() const { return identity_; } // Returns a usable Connector which can make outgoing interface requests - // identifying as the service to which this ServiceBinding is bound. + // identifying as the service to which this ServiceReceiver is bound. Connector* GetConnector(); - // Binds this ServiceBinding to a new Service receiver. Once a ServiceBinding - // is bound, its target Service will begin receiving Service events. The - // order of events received is: + // Binds this ServiceReceiver to a new Service receiver. Once a + // ServiceReceiver is bound, its target Service will begin receiving Service + // events. The order of events received is: // // - OnStart() exactly once // - OnIdentityKnown() exactly once // - OnBindInterface() zero or more times // // The target Service will be able to receive these events until this - // ServiceBinding is either unbound or destroyed. + // ServiceReceiver is either unbound or destroyed. // // If |receiver| is invalid, this call does nothing. // - // Must only be called on an unbound ServiceBinding. + // Must only be called on an unbound ServiceReceiver. void Bind(mojo::PendingReceiver receiver); // Asks the Service Manager nicely if it's OK for this service instance to @@ -90,16 +91,16 @@ class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceBinding // binding's connection, ultimately triggering an |OnDisconnected()| call on // the bound Service object. // - // Must only be called on a bound ServiceBinding. + // Must only be called on a bound ServiceReceiver. void RequestClose(); // Immediately severs the connection to the Service Manager. No further - // incoming interface requests will be received until this ServiceBinding is + // incoming interface requests will be received until this ServiceReceiver is // bound again. Always prefer |RequestClose()| under normal circumstances, // unless |OnDisconnected()| has already been invoked on the Service. See the // note in the class documentation above regarding graceful binding closure. // - // Must only be called on a bound ServiceBinding. + // Must only be called on a bound ServiceReceiver. void Close(); private: @@ -118,13 +119,13 @@ class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceBinding // The Service instance to which all incoming events from the Service Manager // should be directed. Typically this is the object which owns this - // ServiceBinding. + // ServiceReceiver. service_manager::Service* const service_; // A pending Connector request which will eventually be passed to the Service - // Manager. Created preemptively by every unbound ServiceBinding so that + // Manager. Created preemptively by every unbound ServiceReceiver so that // |connector()| may begin pipelining outgoing requests even before the - // ServiceBinding is bound to a Service receiver. + // ServiceReceiver is bound to a Service receiver. mojo::PendingReceiver pending_connector_receiver_; mojo::Receiver receiver_{this}; @@ -136,13 +137,13 @@ class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceBinding mojo::AssociatedRemote service_control_; // Tracks whether |RequestClose()| has been called at least once prior to - // receiving |OnStart()| on a bound ServiceBinding. This ensures that the + // receiving |OnStart()| on a bound ServiceReceiver. This ensures that the // closure request is actually issued once |OnStart()| is invoked. bool request_closure_on_start_ = false; - DISALLOW_COPY_AND_ASSIGN(ServiceBinding); + DISALLOW_COPY_AND_ASSIGN(ServiceReceiver); }; } // namespace service_manager -#endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_CONTEXT_H_ +#endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_RECEIVER_H_ diff --git a/services/service_manager/public/cpp/test/test_service.cc b/services/service_manager/public/cpp/test/test_service.cc index 46afe69ba5c867..230afb87ee3522 100644 --- a/services/service_manager/public/cpp/test/test_service.cc +++ b/services/service_manager/public/cpp/test/test_service.cc @@ -9,12 +9,12 @@ namespace service_manager { -TestService::TestService(mojom::ServiceRequest request) - : binding_(this, std::move(request)) { +TestService::TestService(mojo::PendingReceiver receiver) + : receiver_(this, std::move(receiver)) { // Run until we have a functioning Connector end-to-end, in case e.g. the test // wants to making blocking calls on interfaces right away. mojo::Remote flushing_connector; - binding_.GetConnector()->BindConnectorReceiver( + receiver_.GetConnector()->BindConnectorReceiver( flushing_connector.BindNewPipeAndPassReceiver()); flushing_connector.FlushForTesting(); } diff --git a/services/service_manager/public/cpp/test/test_service.h b/services/service_manager/public/cpp/test/test_service.h index 0993c5c6657306..b40d0393dff6cc 100644 --- a/services/service_manager/public/cpp/test/test_service.h +++ b/services/service_manager/public/cpp/test/test_service.h @@ -8,7 +8,7 @@ #include "base/macros.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" namespace service_manager { @@ -44,13 +44,13 @@ namespace service_manager { // } class TestService : public Service { public: - explicit TestService(mojom::ServiceRequest request); + explicit TestService(mojo::PendingReceiver receiver); ~TestService() override; - Connector* connector() { return binding_.GetConnector(); } + Connector* connector() { return receiver_.GetConnector(); } private: - ServiceBinding binding_; + ServiceReceiver receiver_; DISALLOW_COPY_AND_ASSIGN(TestService); }; diff --git a/services/service_manager/public/cpp/test/test_service_manager.cc b/services/service_manager/public/cpp/test/test_service_manager.cc index a05a3bfc0c559c..0edc402bb66f27 100644 --- a/services/service_manager/public/cpp/test/test_service_manager.cc +++ b/services/service_manager/public/cpp/test/test_service_manager.cc @@ -19,19 +19,19 @@ TestServiceManager::TestServiceManager(const std::vector& manifests) TestServiceManager::~TestServiceManager() = default; -mojom::ServiceRequest TestServiceManager::RegisterTestInstance( +mojo::PendingReceiver TestServiceManager::RegisterTestInstance( const std::string& service_name) { return RegisterInstance(Identity{service_name, base::Token::CreateRandom(), base::Token{}, base::Token::CreateRandom()}); } -mojom::ServiceRequest TestServiceManager::RegisterInstance( +mojo::PendingReceiver TestServiceManager::RegisterInstance( const Identity& identity) { mojo::PendingRemote service; auto receiver = service.InitWithNewPipeAndPassReceiver(); background_service_manager_->RegisterService(identity, std::move(service), mojo::NullReceiver()); - return std::move(receiver); + return receiver; } } // namespace service_manager diff --git a/services/service_manager/public/cpp/test/test_service_manager.h b/services/service_manager/public/cpp/test/test_service_manager.h index c3023cda81f1bb..4735a97b319c90 100644 --- a/services/service_manager/public/cpp/test/test_service_manager.h +++ b/services/service_manager/public/cpp/test/test_service_manager.h @@ -9,6 +9,7 @@ #include #include "base/macros.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/manifest.h" #include "services/service_manager/public/mojom/service.mojom.h" @@ -36,18 +37,20 @@ class TestServiceManager { // Registers a new service instance with a random Identity including // |service_name|. Returns a ServiceRequest which the test fixture should - // bind to a ServiceBinding it owns. This allows each test to behave as a + // bind to a ServiceReceiver it owns. This allows each test to behave as a // unique service instance with capabilities tied to |service_name|'s entry // in the testing catalog. // // TODO(https://crbug.com/895616): Support the caller supplying a manifest // object directly rather than supplying a service name and consulting a // global catalog. - mojom::ServiceRequest RegisterTestInstance(const std::string& service_name); + mojo::PendingReceiver RegisterTestInstance( + const std::string& service_name); // Registers a service instance with a specific given Identity, returning a - // ServiceRequest which can be bound by some ServiceBinding. - mojom::ServiceRequest RegisterInstance(const Identity& identity); + // ServiceRequest which can be bound by some ServiceReceiver. + mojo::PendingReceiver RegisterInstance( + const Identity& identity); private: const std::unique_ptr background_service_manager_; diff --git a/services/service_manager/service_manager.cc b/services/service_manager/service_manager.cc index ceb1ea74f24226..528789a845e16e 100644 --- a/services/service_manager/service_manager.cc +++ b/services/service_manager/service_manager.cc @@ -160,7 +160,7 @@ ServiceManager::ServiceManager(const std::vector& manifests, service_manager_instance_->SetPID(GetCurrentPid()); mojo::PendingRemote remote; - service_binding_.Bind(remote.InitWithNewPipeAndPassReceiver()); + service_receiver_.Bind(remote.InitWithNewPipeAndPassReceiver()); service_manager_instance_->StartWithRemote(std::move(remote)); } diff --git a/services/service_manager/service_manager.h b/services/service_manager/service_manager.h index 4b456bed119c1e..c78304dfcef0b7 100644 --- a/services/service_manager/service_manager.h +++ b/services/service_manager/service_manager.h @@ -23,7 +23,7 @@ #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/manifest.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/connector.mojom.h" #include "services/service_manager/public/mojom/interface_provider.mojom.h" #include "services/service_manager/public/mojom/service.mojom.h" @@ -194,7 +194,7 @@ class ServiceManager : public Service { const std::unique_ptr delegate_; - ServiceBinding service_binding_{this}; + ServiceReceiver service_receiver_{this}; // Ownership of all ServiceInstances. using InstanceMap = diff --git a/services/service_manager/tests/background_service_manager_test_service_main.cc b/services/service_manager/tests/background_service_manager_test_service_main.cc index 83b450ecb58d87..a19523b9da25fd 100644 --- a/services/service_manager/tests/background_service_manager_test_service_main.cc +++ b/services/service_manager/tests/background_service_manager_test_service_main.cc @@ -9,7 +9,7 @@ #include "mojo/public/cpp/bindings/receiver_set.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/tests/background.test-mojom.h" @@ -19,8 +19,8 @@ namespace service_manager { // parent background service manager. class TestClient : public Service, public mojom::TestService { public: - TestClient(mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { + explicit TestClient(mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface(base::BindRepeating( &TestClient::BindTestServiceReceiver, base::Unretained(this))); } @@ -43,9 +43,9 @@ class TestClient : public Service, public mojom::TestService { receivers_.Add(this, std::move(receiver)); } - void Quit() override { service_binding_.RequestClose(); } + void Quit() override { service_receiver_.RequestClose(); } - ServiceBinding service_binding_; + ServiceReceiver service_receiver_; BinderRegistry registry_; mojo::ReceiverSet receivers_; @@ -54,7 +54,8 @@ class TestClient : public Service, public mojom::TestService { } // namespace service_manager -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - service_manager::TestClient(std::move(request)).RunUntilTermination(); + service_manager::TestClient(std::move(receiver)).RunUntilTermination(); } diff --git a/services/service_manager/tests/background_service_manager_unittest.cc b/services/service_manager/tests/background_service_manager_unittest.cc index f8dcc5d39bd8f6..7c5a16159b30ce 100644 --- a/services/service_manager/tests/background_service_manager_unittest.cc +++ b/services/service_manager/tests/background_service_manager_unittest.cc @@ -13,6 +13,7 @@ #include "base/test/task_environment.h" #include "base/values.h" #include "build/build_config.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" #include "services/service_manager/public/cpp/connector.h" @@ -20,7 +21,7 @@ #include "services/service_manager/public/cpp/manifest.h" #include "services/service_manager/public/cpp/manifest_builder.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/tests/background.test-mojom.h" #include "testing/gtest/include/gtest/gtest.h" @@ -54,14 +55,14 @@ const std::vector& GetTestManifests() { // The parent unit test suite service, not the underlying test service. class ServiceImpl : public Service { public: - explicit ServiceImpl(mojom::ServiceRequest request) - : binding_(this, std::move(request)) {} + explicit ServiceImpl(mojo::PendingReceiver receiver) + : receiver_(this, std::move(receiver)) {} ~ServiceImpl() override = default; - Connector* connector() { return binding_.GetConnector(); } + Connector* connector() { return receiver_.GetConnector(); } private: - ServiceBinding binding_; + ServiceReceiver receiver_; DISALLOW_COPY_AND_ASSIGN(ServiceImpl); }; diff --git a/services/service_manager/tests/connect/connect_test_app.cc b/services/service_manager/tests/connect/connect_test_app.cc index a84f97ab4cae46..f72e3028bf6252 100644 --- a/services/service_manager/tests/connect/connect_test_app.cc +++ b/services/service_manager/tests/connect/connect_test_app.cc @@ -16,7 +16,7 @@ #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/connector.mojom.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/tests/connect/connect.test-mojom.h" @@ -50,8 +50,8 @@ class ConnectTestApp : public Service, public test::mojom::BlockedInterface, public test::mojom::IdentityTest { public: - explicit ConnectTestApp(mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) {} + explicit ConnectTestApp(mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) {} ~ConnectTestApp() override = default; @@ -88,12 +88,12 @@ class ConnectTestApp : public Service, state->connection_remote_name = source_info.identity.name(); state->connection_remote_instance_group = source_info.identity.instance_group(); - state->initialize_local_name = service_binding_.identity().name(); + state->initialize_local_name = service_receiver_.identity().name(); state->initialize_local_instance_group = - service_binding_.identity().instance_group(); + service_receiver_.identity().instance_group(); caller_.reset(); - service_binding_.GetConnector()->Connect( + service_receiver_.GetConnector()->Connect( source_info.identity, caller_.BindNewPipeAndPassReceiver()); caller_->ConnectionAccepted(std::move(state)); } @@ -122,7 +122,7 @@ class ConnectTestApp : public Service, } void GetInstanceId(GetInstanceIdCallback callback) override { - std::move(callback).Run(service_binding_.identity().instance_id()); + std::move(callback).Run(service_receiver_.identity().instance_id()); } // test::mojom::StandaloneApp: @@ -130,7 +130,7 @@ class ConnectTestApp : public Service, ConnectToAllowedAppInBlockedPackageCallback callback) override { base::RunLoop run_loop{base::RunLoop::Type::kNestableTasksAllowed}; mojo::Remote test_service; - service_binding_.GetConnector()->Connect( + service_receiver_.GetConnector()->Connect( "connect_test_a", test_service.BindNewPipeAndPassReceiver()); test_service.set_disconnect_handler(base::BindOnce( &ConnectTestApp::OnGotTitle, base::Unretained(this), @@ -147,7 +147,7 @@ class ConnectTestApp : public Service, void ConnectToClassInterface( ConnectToClassInterfaceCallback callback) override { mojo::Remote class_interface; - service_binding_.GetConnector()->Connect( + service_receiver_.GetConnector()->Connect( "connect_test_class_app", class_interface.BindNewPipeAndPassReceiver()); std::string ping_response; { @@ -157,7 +157,7 @@ class ConnectTestApp : public Service, loop.Run(); } mojo::Remote service; - service_binding_.GetConnector()->Connect( + service_receiver_.GetConnector()->Connect( "connect_test_class_app", service.BindNewPipeAndPassReceiver()); std::string title_response; { @@ -181,7 +181,7 @@ class ConnectTestApp : public Service, mojom::ConnectResult result; base::Optional resolved_identity; base::RunLoop loop{base::RunLoop::Type::kNestableTasksAllowed}; - service_binding_.GetConnector()->WarmService( + service_receiver_.GetConnector()->WarmService( filter, base::BindOnce(&OnConnectResult, loop.QuitClosure(), &result, &resolved_identity)); loop.Run(); @@ -200,7 +200,7 @@ class ConnectTestApp : public Service, Terminate(); } - ServiceBinding service_binding_; + ServiceReceiver service_receiver_; BinderRegistryWithArgs registry_; mojo::ReceiverSet receivers_; mojo::ReceiverSet standalone_receivers_; @@ -213,7 +213,8 @@ class ConnectTestApp : public Service, } // namespace service_manager -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - service_manager::ConnectTestApp(std::move(request)).RunUntilTermination(); + service_manager::ConnectTestApp(std::move(receiver)).RunUntilTermination(); } diff --git a/services/service_manager/tests/connect/connect_test_class_app.cc b/services/service_manager/tests/connect/connect_test_class_app.cc index fb23f9a23c9493..9630a4aac511fe 100644 --- a/services/service_manager/tests/connect/connect_test_class_app.cc +++ b/services/service_manager/tests/connect/connect_test_class_app.cc @@ -10,9 +10,9 @@ #include "mojo/public/cpp/bindings/receiver_set.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" #include "services/service_manager/public/cpp/service_keepalive.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/connector.mojom.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/tests/connect/connect.test-mojom.h" @@ -23,9 +23,9 @@ class ConnectTestClassApp : public Service, public test::mojom::ConnectTestService, public test::mojom::ClassInterface { public: - explicit ConnectTestClassApp(mojom::ServiceRequest request) - : service_binding_(this, std::move(request)), - service_keepalive_(&service_binding_, base::TimeDelta()) { + explicit ConnectTestClassApp(mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)), + service_keepalive_(&service_receiver_, base::TimeDelta()) { receivers_.set_disconnect_handler(base::BindRepeating( &ConnectTestClassApp::HandleInterfaceClose, base::Unretained(this))); class_interface_receivers_.set_disconnect_handler(base::BindRepeating( @@ -66,7 +66,7 @@ class ConnectTestClassApp : public Service, } void GetInstanceId(GetInstanceIdCallback callback) override { - std::move(callback).Run(service_binding_.identity().instance_id()); + std::move(callback).Run(service_receiver_.identity().instance_id()); } // test::mojom::ClassInterface: @@ -74,7 +74,7 @@ class ConnectTestClassApp : public Service, void HandleInterfaceClose() { refs_.pop_back(); } - ServiceBinding service_binding_; + ServiceReceiver service_receiver_; ServiceKeepalive service_keepalive_; std::vector> refs_; @@ -87,8 +87,9 @@ class ConnectTestClassApp : public Service, } // namespace service_manager -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - service_manager::ConnectTestClassApp(std::move(request)) + service_manager::ConnectTestClassApp(std::move(receiver)) .RunUntilTermination(); } diff --git a/services/service_manager/tests/connect/connect_test_exe.cc b/services/service_manager/tests/connect/connect_test_exe.cc index 8672fbe4fe9c12..4af392ca2ae7ea 100644 --- a/services/service_manager/tests/connect/connect_test_exe.cc +++ b/services/service_manager/tests/connect/connect_test_exe.cc @@ -12,8 +12,8 @@ #include "mojo/public/cpp/bindings/remote.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/tests/connect/connect.test-mojom.h" @@ -24,8 +24,9 @@ namespace { class Target : public service_manager::Service, public ConnectTestService { public: - explicit Target(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { + explicit Target( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface( base::BindRepeating(&Target::Create, base::Unretained(this))); } @@ -50,10 +51,10 @@ class Target : public service_manager::Service, } void GetInstanceId(GetInstanceIdCallback callback) override { - std::move(callback).Run(service_binding_.identity().instance_id()); + std::move(callback).Run(service_receiver_.identity().instance_id()); } - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; service_manager::BinderRegistry registry_; mojo::ReceiverSet receivers_; @@ -62,7 +63,8 @@ class Target : public service_manager::Service, } // namespace -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor executor; - Target(std::move(request)).RunUntilTermination(); + Target(std::move(receiver)).RunUntilTermination(); } diff --git a/services/service_manager/tests/connect/connect_test_package.cc b/services/service_manager/tests/connect/connect_test_package.cc index a6a96f8f7ec4c8..453c86788c7e6d 100644 --- a/services/service_manager/tests/connect/connect_test_package.cc +++ b/services/service_manager/tests/connect/connect_test_package.cc @@ -20,8 +20,8 @@ #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/tests/connect/connect.test-mojom.h" // Tests that multiple services can be packaged in a single service by @@ -52,10 +52,11 @@ class ProvidedService : public Service, public test::mojom::IdentityTest, public base::SimpleThread { public: - ProvidedService(const std::string& title, mojom::ServiceRequest request) + ProvidedService(const std::string& title, + mojo::PendingReceiver receiver) : base::SimpleThread(title), title_(title), - request_(std::move(request)) { + receiver_(std::move(receiver)) { Start(); } @@ -90,7 +91,7 @@ class ProvidedService : public Service, } void OnDisconnected() override { - service_binding_.Close(); + service_receiver_.Close(); run_loop_->Quit(); } @@ -102,11 +103,11 @@ class ProvidedService : public Service, state->connection_remote_name = source_info.identity.name(); state->connection_remote_instance_group = source_info.identity.instance_group(); - state->initialize_local_name = service_binding_.identity().name(); + state->initialize_local_name = service_receiver_.identity().name(); state->initialize_local_instance_group = - service_binding_.identity().instance_group(); + service_receiver_.identity().instance_group(); - service_binding_.GetConnector()->Connect( + service_receiver_.GetConnector()->Connect( source_info.identity, caller_.BindNewPipeAndPassReceiver()); caller_->ConnectionAccepted(std::move(state)); } @@ -135,7 +136,7 @@ class ProvidedService : public Service, } void GetInstanceId(GetInstanceIdCallback callback) override { - std::move(callback).Run(service_binding_.identity().instance_id()); + std::move(callback).Run(service_receiver_.identity().instance_id()); } // test::mojom::BlockedInterface: @@ -155,7 +156,7 @@ class ProvidedService : public Service, mojom::ConnectResult result; base::Optional resolved_identity; base::RunLoop loop(base::RunLoop::Type::kNestableTasksAllowed); - service_binding_.GetConnector()->WarmService( + service_receiver_.GetConnector()->WarmService( filter, base::BindOnce(&QuitLoop, &loop, &result, &resolved_identity)); loop.Run(); std::move(callback).Run(static_cast(result), resolved_identity); @@ -166,7 +167,7 @@ class ProvidedService : public Service, base::SingleThreadTaskExecutor main_task_executor; base::RunLoop run_loop; run_loop_ = &run_loop; - service_binding_.Bind(std::move(request_)); + service_receiver_.Bind(std::move(receiver_)); run_loop.Run(); run_loop_ = nullptr; @@ -179,16 +180,16 @@ class ProvidedService : public Service, void OnMojoDisconnect() { if (receivers_.empty()) { - if (service_binding_.is_bound()) - service_binding_.Close(); + if (service_receiver_.is_bound()) + service_receiver_.Close(); run_loop_->Quit(); } } base::RunLoop* run_loop_; - service_manager::ServiceBinding service_binding_{this}; + service_manager::ServiceReceiver service_receiver_{this}; const std::string title_; - mojom::ServiceRequest request_; + mojo::PendingReceiver receiver_; mojo::Remote caller_; BinderRegistryWithArgs registry_; mojo::ReceiverSet receivers_; @@ -203,8 +204,9 @@ class ProvidedService : public Service, class ConnectTestService : public Service, public test::mojom::ConnectTestService { public: - explicit ConnectTestService(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) {} + explicit ConnectTestService( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) {} ~ConnectTestService() override = default; private: @@ -228,13 +230,12 @@ class ConnectTestService : public Service, const std::string& service_name, mojo::PendingReceiver receiver, CreatePackagedServiceInstanceCallback callback) override { - service_manager::mojom::ServiceRequest request(std::move(receiver)); if (service_name == "connect_test_a") { provided_services_.emplace_back( - std::make_unique("A", std::move(request))); + std::make_unique("A", std::move(receiver))); } else if (service_name == "connect_test_b") { provided_services_.emplace_back( - std::make_unique("B", std::move(request))); + std::make_unique("B", std::move(receiver))); } std::move(callback).Run(base::GetCurrentProcId()); } @@ -255,15 +256,15 @@ class ConnectTestService : public Service, } void GetInstanceId(GetInstanceIdCallback callback) override { - std::move(callback).Run(service_binding_.identity().instance_id()); + std::move(callback).Run(service_receiver_.identity().instance_id()); } void OnMojoDisconnect() { if (receivers_.empty()) - service_binding_.RequestClose(); + service_receiver_.RequestClose(); } - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; std::vector> delegates_; BinderRegistry registry_; mojo::ReceiverSet receivers_; @@ -274,7 +275,9 @@ class ConnectTestService : public Service, } // namespace service_manager -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - service_manager::ConnectTestService(std::move(request)).RunUntilTermination(); + service_manager::ConnectTestService(std::move(receiver)) + .RunUntilTermination(); } diff --git a/services/service_manager/tests/connect/connect_test_singleton_app.cc b/services/service_manager/tests/connect/connect_test_singleton_app.cc index b8785f52b7de7a..81fd49439b01e0 100644 --- a/services/service_manager/tests/connect/connect_test_singleton_app.cc +++ b/services/service_manager/tests/connect/connect_test_singleton_app.cc @@ -4,14 +4,17 @@ #include "base/macros.h" #include "base/task/single_thread_task_executor.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; service_manager::Service service; - service_manager::ServiceBinding binding(&service, std::move(request)); + service_manager::ServiceReceiver service_receiver(&service, + std::move(receiver)); service.RunUntilTermination(); } diff --git a/services/service_manager/tests/connect/connect_unittest.cc b/services/service_manager/tests/connect/connect_unittest.cc index 284d4df5fbb3df..c41c01f36b499b 100644 --- a/services/service_manager/tests/connect/connect_unittest.cc +++ b/services/service_manager/tests/connect/connect_unittest.cc @@ -22,6 +22,7 @@ #include "base/test/task_environment.h" #include "base/test/test_suite.h" #include "base/token.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/service_manager/public/cpp/binder_registry.h" @@ -29,7 +30,7 @@ #include "services/service_manager/public/cpp/manifest.h" #include "services/service_manager/public/cpp/manifest_builder.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/cpp/test/test_service_manager.h" #include "services/service_manager/public/mojom/service_manager.mojom.h" #include "services/service_manager/tests/connect/connect.test-mojom.h" @@ -233,12 +234,12 @@ void QuitLoop(base::RunLoop* loop) { class TestTargetService : public Service { public: - explicit TestTargetService(mojom::ServiceRequest request) - : binding_(this, std::move(request)) {} + explicit TestTargetService(mojo::PendingReceiver receiver) + : receiver_(this, std::move(receiver)) {} ~TestTargetService() override = default; - const Identity& identity() const { return binding_.identity(); } - Connector* connector() { return binding_.GetConnector(); } + const Identity& identity() const { return receiver_.identity(); } + Connector* connector() { return receiver_.GetConnector(); } void CallOnNextBindInterface(base::OnceClosure callback) { next_bind_interface_callback_ = std::move(callback); @@ -252,7 +253,7 @@ class TestTargetService : public Service { } void QuitGracefullyAndWait() { - binding_.RequestClose(); + receiver_.RequestClose(); wait_for_disconnect_loop_.Run(); } @@ -269,7 +270,7 @@ class TestTargetService : public Service { } void OnDisconnected() override { wait_for_disconnect_loop_.Quit(); } - ServiceBinding binding_; + ServiceReceiver receiver_; base::RunLoop wait_for_start_loop_; base::RunLoop wait_for_disconnect_loop_; base::Optional wait_for_bind_interface_loop_; @@ -285,7 +286,7 @@ class ConnectTest : public testing::Test, ConnectTest() : test_service_manager_(GetTestManifests()) {} ~ConnectTest() override = default; - Connector* connector() { return service_binding_.GetConnector(); } + Connector* connector() { return service_receiver_.GetConnector(); } protected: void CompareConnectionState( @@ -303,17 +304,17 @@ class ConnectTest : public testing::Test, connection_state_->initialize_local_instance_group); } - mojom::ServiceRequest RegisterServiceInstance( + mojo::PendingReceiver RegisterServiceInstance( const std::string& service_name) { return test_service_manager_.RegisterInstance( - Identity{service_name, service_binding_.identity().instance_group(), + Identity{service_name, service_receiver_.identity().instance_group(), base::Token{}, base::Token::CreateRandom()}); } private: // testing::Test: void SetUp() override { - service_binding_.Bind( + service_receiver_.Bind( test_service_manager_.RegisterTestInstance(kTestServiceName)); mojo::Remote root_service; @@ -343,7 +344,7 @@ class ConnectTest : public testing::Test, base::test::TaskEnvironment task_environment_; TestServiceManager test_service_manager_; - ServiceBinding service_binding_{this}; + ServiceReceiver service_receiver_{this}; mojo::ReceiverSet receivers_; test::mojom::ConnectionStatePtr connection_state_; diff --git a/services/service_manager/tests/lifecycle/app.cc b/services/service_manager/tests/lifecycle/app.cc index b1af2696f3d575..18310a118fc19b 100644 --- a/services/service_manager/tests/lifecycle/app.cc +++ b/services/service_manager/tests/lifecycle/app.cc @@ -6,7 +6,8 @@ #include "services/service_manager/public/cpp/service_executable/service_main.h" #include "services/service_manager/tests/lifecycle/app_client.h" -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - service_manager::test::AppClient(std::move(request)).RunUntilTermination(); + service_manager::test::AppClient(std::move(receiver)).RunUntilTermination(); } diff --git a/services/service_manager/tests/lifecycle/app_client.cc b/services/service_manager/tests/lifecycle/app_client.cc index 52474e15822a48..418a9e04a27c94 100644 --- a/services/service_manager/tests/lifecycle/app_client.cc +++ b/services/service_manager/tests/lifecycle/app_client.cc @@ -6,13 +6,15 @@ #include "base/macros.h" #include "base/run_loop.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "services/service_manager/public/cpp/service_receiver.h" namespace service_manager { namespace test { -AppClient::AppClient(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { +AppClient::AppClient( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { receivers_.set_disconnect_handler(base::BindRepeating( &AppClient::LifecycleControlBindingLost, base::Unretained(this))); @@ -29,8 +31,8 @@ void AppClient::OnBindInterface(const BindSourceInfo& source_info, } void AppClient::OnDisconnected() { - DCHECK(service_binding_.is_bound()); - service_binding_.Close(); + DCHECK(service_receiver_.is_bound()); + service_receiver_.Close(); Terminate(); } @@ -44,8 +46,8 @@ void AppClient::Ping(PingCallback callback) { } void AppClient::GracefulQuit() { - if (service_binding_.is_bound()) - service_binding_.RequestClose(); + if (service_receiver_.is_bound()) + service_receiver_.RequestClose(); else Terminate(); } @@ -58,12 +60,12 @@ void AppClient::Crash() { } void AppClient::CloseServiceManagerConnection() { - if (service_binding_.is_bound()) - service_binding_.Close(); + if (service_receiver_.is_bound()) + service_receiver_.Close(); } void AppClient::LifecycleControlBindingLost() { - if (!service_binding_.is_bound() && receivers_.empty()) + if (!service_receiver_.is_bound() && receivers_.empty()) Terminate(); } diff --git a/services/service_manager/tests/lifecycle/app_client.h b/services/service_manager/tests/lifecycle/app_client.h index ccbe5bb745c90b..5928e4f40c88c4 100644 --- a/services/service_manager/tests/lifecycle/app_client.h +++ b/services/service_manager/tests/lifecycle/app_client.h @@ -14,7 +14,7 @@ #include "mojo/public/cpp/bindings/receiver_set.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/tests/lifecycle/lifecycle.test-mojom.h" @@ -24,7 +24,8 @@ namespace test { class AppClient : public Service, public mojom::LifecycleControl { public: - explicit AppClient(service_manager::mojom::ServiceRequest request); + explicit AppClient( + mojo::PendingReceiver receiver); ~AppClient() override; // Service: @@ -44,7 +45,7 @@ class AppClient : public Service, private: void LifecycleControlBindingLost(); - ServiceBinding service_binding_; + ServiceReceiver service_receiver_; BinderRegistry registry_; mojo::ReceiverSet receivers_; diff --git a/services/service_manager/tests/lifecycle/lifecycle_unittest.cc b/services/service_manager/tests/lifecycle/lifecycle_unittest.cc index ca7b205c3ecf6b..0fb24166c3c83a 100644 --- a/services/service_manager/tests/lifecycle/lifecycle_unittest.cc +++ b/services/service_manager/tests/lifecycle/lifecycle_unittest.cc @@ -24,7 +24,7 @@ #include "services/service_manager/public/cpp/manifest.h" #include "services/service_manager/public/cpp/manifest_builder.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/cpp/test/test_service_manager.h" #include "services/service_manager/public/mojom/constants.mojom.h" #include "services/service_manager/public/mojom/service_manager.mojom.h" @@ -205,7 +205,7 @@ class LifecycleTest : public testing::Test { public: LifecycleTest() : test_service_manager_(GetTestManifests()), - test_service_binding_( + test_service_receiver_( &test_service_, test_service_manager_.RegisterInstance( Identity{kTestName, kSystemInstanceGroup, base::Token{}, @@ -213,7 +213,7 @@ class LifecycleTest : public testing::Test { ~LifecycleTest() override {} - Connector* connector() { return test_service_binding_.GetConnector(); } + Connector* connector() { return test_service_receiver_.GetConnector(); } protected: void SetUp() override { @@ -261,7 +261,7 @@ class LifecycleTest : public testing::Test { base::test::TaskEnvironment task_environment_; TestServiceManager test_service_manager_; Service test_service_; - ServiceBinding test_service_binding_; + ServiceReceiver test_service_receiver_; std::unique_ptr instances_; DISALLOW_COPY_AND_ASSIGN(LifecycleTest); diff --git a/services/service_manager/tests/lifecycle/package.cc b/services/service_manager/tests/lifecycle/package.cc index adaa4fe449743e..5bf6228100b701 100644 --- a/services/service_manager/tests/lifecycle/package.cc +++ b/services/service_manager/tests/lifecycle/package.cc @@ -8,10 +8,11 @@ #include "base/bind.h" #include "base/macros.h" #include "base/task/single_thread_task_executor.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "services/service_manager/public/cpp/binder_registry.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/tests/lifecycle/app_client.h" #include "services/service_manager/tests/lifecycle/lifecycle.test-mojom.h" @@ -20,10 +21,10 @@ namespace { class PackagedApp : public service_manager::Service, public service_manager::test::mojom::LifecycleControl { public: - PackagedApp(service_manager::mojom::ServiceRequest request, + PackagedApp(mojo::PendingReceiver receiver, base::OnceClosure service_manager_connection_closed_callback, base::OnceClosure destruct_callback) - : service_binding_(this, std::move(request)), + : service_receiver_(this, std::move(receiver)), service_manager_connection_closed_callback_( std::move(service_manager_connection_closed_callback)), destruct_callback_(std::move(destruct_callback)) { @@ -57,7 +58,7 @@ class PackagedApp : public service_manager::Service, // LifecycleControl: void Ping(PingCallback callback) override { std::move(callback).Run(); } - void GracefulQuit() override { service_binding_.RequestClose(); } + void GracefulQuit() override { service_receiver_.RequestClose(); } void Crash() override { // When multiple instances are vended from the same package instance, this @@ -68,8 +69,8 @@ class PackagedApp : public service_manager::Service, void CloseServiceManagerConnection() override { std::move(service_manager_connection_closed_callback_).Run(); - if (service_binding_.is_bound()) - service_binding_.Close(); + if (service_receiver_.is_bound()) + service_receiver_.Close(); // This only closed our relationship with the service manager, existing // |receivers_| remain active. @@ -77,14 +78,14 @@ class PackagedApp : public service_manager::Service, } void MaybeQuit() { - if (service_binding_.is_bound() || !receivers_.empty()) + if (service_receiver_.is_bound() || !receivers_.empty()) return; // Deletes |this|. std::move(destruct_callback_).Run(); } - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; service_manager::BinderRegistry registry_; mojo::ReceiverSet receivers_; @@ -99,8 +100,10 @@ class PackagedApp : public service_manager::Service, class Package : public service_manager::Service { public: - explicit Package(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)), app_client_(nullptr) { + explicit Package( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)), + app_client_(mojo::NullReceiver()) { app_client_.set_termination_closure( base::BindOnce(&Package::Terminate, base::Unretained(this))); } @@ -123,7 +126,7 @@ class Package : public service_manager::Service { ++service_manager_connection_refcount_; int id = next_id_++; auto app = std::make_unique( - service_manager::mojom::ServiceRequest(std::move(receiver)), + std::move(receiver), base::BindOnce(&Package::OnAppInstanceDisconnected, base::Unretained(this)), base::BindOnce(&Package::DestroyAppInstance, base::Unretained(this), @@ -134,7 +137,7 @@ class Package : public service_manager::Service { void OnAppInstanceDisconnected() { if (--service_manager_connection_refcount_ == 0) - service_binding_.RequestClose(); + service_receiver_.RequestClose(); } void DestroyAppInstance(int id) { @@ -143,7 +146,7 @@ class Package : public service_manager::Service { Terminate(); } - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; service_manager::test::AppClient app_client_; int service_manager_connection_refcount_ = 0; @@ -155,7 +158,8 @@ class Package : public service_manager::Service { } // namespace -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - Package(std::move(request)).RunUntilTermination(); + Package(std::move(receiver)).RunUntilTermination(); } diff --git a/services/service_manager/tests/lifecycle/parent.cc b/services/service_manager/tests/lifecycle/parent.cc index a8c40bd164585a..b880d1c453bb18 100644 --- a/services/service_manager/tests/lifecycle/parent.cc +++ b/services/service_manager/tests/lifecycle/parent.cc @@ -13,8 +13,8 @@ #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/tests/lifecycle/lifecycle.test-mojom.h" @@ -25,7 +25,7 @@ class Parent : public service_manager::Service, public: explicit Parent( mojo::PendingReceiver receiver) - : service_binding_(this, std::move(receiver)) { + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface( base::BindRepeating(&Parent::Create, base::Unretained(this))); } @@ -48,7 +48,7 @@ class Parent : public service_manager::Service, // service_manager::test::mojom::Parent: void ConnectToChild(ConnectToChildCallback callback) override { mojo::Remote lifecycle; - service_binding_.GetConnector()->BindInterface( + service_receiver_.GetConnector()->BindInterface( "lifecycle_unittest_app", lifecycle.BindNewPipeAndPassReceiver()); base::RunLoop loop(base::RunLoop::Type::kNestableTasksAllowed); @@ -60,7 +60,7 @@ class Parent : public service_manager::Service, void Quit() override { Terminate(); } - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; service_manager::BinderRegistry registry_; mojo::ReceiverSet parent_receivers_; @@ -69,7 +69,8 @@ class Parent : public service_manager::Service, } // namespace -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - Parent(std::move(request)).RunUntilTermination(); + Parent(std::move(receiver)).RunUntilTermination(); } diff --git a/services/service_manager/tests/service_manager/embedder.cc b/services/service_manager/tests/service_manager/embedder.cc index 403e48b1243bc8..dae68c65f143d1 100644 --- a/services/service_manager/tests/service_manager/embedder.cc +++ b/services/service_manager/tests/service_manager/embedder.cc @@ -8,8 +8,8 @@ #include "base/macros.h" #include "base/task/single_thread_task_executor.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/tests/service_manager/test_manifests.h" @@ -17,20 +17,22 @@ namespace { class PackagedService : public service_manager::Service { public: - explicit PackagedService(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) {} + explicit PackagedService( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) {} ~PackagedService() override = default; private: - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; DISALLOW_COPY_AND_ASSIGN(PackagedService); }; class Embedder : public service_manager::Service { public: - explicit Embedder(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) {} + explicit Embedder( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) {} ~Embedder() override = default; private: @@ -42,8 +44,8 @@ class Embedder : public service_manager::Service { if (service_name == service_manager::kTestRegularServiceName || service_name == service_manager::kTestSharedServiceName || service_name == service_manager::kTestSingletonServiceName) { - packaged_service_ = std::make_unique( - service_manager::mojom::ServiceRequest(std::move(receiver))); + packaged_service_ = + std::make_unique(std::move(receiver)); std::move(callback).Run(base::GetCurrentProcId()); } else { LOG(ERROR) << "Failed to create unknown service " << service_name; @@ -51,7 +53,7 @@ class Embedder : public service_manager::Service { } } - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; std::unique_ptr packaged_service_; DISALLOW_COPY_AND_ASSIGN(Embedder); @@ -59,7 +61,8 @@ class Embedder : public service_manager::Service { } // namespace -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - Embedder(std::move(request)).RunUntilTermination(); + Embedder(std::move(receiver)).RunUntilTermination(); } diff --git a/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc b/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc index e22cec098c301d..3d6c489e41060b 100644 --- a/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc +++ b/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc @@ -15,7 +15,7 @@ #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/constants.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/public/mojom/service_manager.mojom.h" #include "services/service_manager/service_manager.h" @@ -77,18 +77,18 @@ class TestListener : public mojom::ServiceManagerListener { class TestTargetService : public Service { public: - explicit TestTargetService(mojom::ServiceRequest request) - : binding_(this, std::move(request)) {} + explicit TestTargetService(mojo::PendingReceiver receiver) + : receiver_(this, std::move(receiver)) {} ~TestTargetService() override = default; - Connector* connector() { return binding_.GetConnector(); } + Connector* connector() { return receiver_.GetConnector(); } // Tells the Service Manager this instance wants to die, and waits for ack. // When this returns, we can be sure the Service Manager is no longer keeping // this instance's Identity reserved and we may reuse it (modulo a new // globally unique ID) for another instance. void QuitGracefullyAndWait() { - binding_.RequestClose(); + receiver_.RequestClose(); wait_for_disconnect_loop_.Run(); } @@ -96,7 +96,7 @@ class TestTargetService : public Service { // Service: void OnDisconnected() override { wait_for_disconnect_loop_.Quit(); } - ServiceBinding binding_; + ServiceReceiver receiver_; base::RunLoop wait_for_disconnect_loop_; DISALLOW_COPY_AND_ASSIGN(TestTargetService); @@ -109,10 +109,10 @@ class ServiceManagerListenerTest : public testing::Test, public Service { ServiceManager::ServiceExecutablePolicy::kSupported) {} ~ServiceManagerListenerTest() override = default; - Connector* connector() { return service_binding_.GetConnector(); } + Connector* connector() { return service_receiver_.GetConnector(); } void SetUp() override { - service_binding_.Bind( + service_receiver_.Bind( RegisterServiceInstance(kTestServiceName, kTestSelfPid)); mojo::Remote service_manager; @@ -126,8 +126,9 @@ class ServiceManagerListenerTest : public testing::Test, public Service { listener_->WaitForInit(); } - mojom::ServiceRequest RegisterServiceInstance(const std::string& service_name, - uint32_t fake_pid) { + mojo::PendingReceiver RegisterServiceInstance( + const std::string& service_name, + uint32_t fake_pid) { mojo::PendingRemote service; auto receiver = service.InitWithNewPipeAndPassReceiver(); mojo::Remote metadata; @@ -136,7 +137,7 @@ class ServiceManagerListenerTest : public testing::Test, public Service { base::Token::CreateRandom()), std::move(service), metadata.BindNewPipeAndPassReceiver()); metadata->SetPID(fake_pid); - return std::move(receiver); + return receiver; } void WaitForServiceStarted(Identity* out_identity, uint32_t* out_pid) { @@ -146,7 +147,7 @@ class ServiceManagerListenerTest : public testing::Test, public Service { private: base::test::TaskEnvironment task_environment_; ServiceManager service_manager_; - ServiceBinding service_binding_{this}; + ServiceReceiver service_receiver_{this}; std::unique_ptr listener_; DISALLOW_COPY_AND_ASSIGN(ServiceManagerListenerTest); diff --git a/services/service_manager/tests/service_manager/service_manager_unittest.cc b/services/service_manager/tests/service_manager/service_manager_unittest.cc index 36855ee1b07d7c..57cffb1de3a35b 100644 --- a/services/service_manager/tests/service_manager/service_manager_unittest.cc +++ b/services/service_manager/tests/service_manager/service_manager_unittest.cc @@ -33,7 +33,7 @@ #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/constants.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/cpp/test/test_service_manager.h" #include "services/service_manager/public/mojom/service_manager.mojom.h" #include "services/service_manager/service_process_launcher.h" @@ -73,8 +73,8 @@ void OnServicePIDReceivedCallback(std::string* service_name, class TestService : public Service, public test::mojom::CreateInstanceTest { public: - explicit TestService(mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { + explicit TestService(mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface( base::BindRepeating(&TestService::Create, base::Unretained(this))); } @@ -87,7 +87,7 @@ class TestService : public Service, public test::mojom::CreateInstanceTest { wait_for_target_identity_loop_->Run(); } - Connector* connector() { return service_binding_.GetConnector(); } + Connector* connector() { return service_receiver_.GetConnector(); } private: // Service: @@ -110,7 +110,7 @@ class TestService : public Service, public test::mojom::CreateInstanceTest { wait_for_target_identity_loop_->Quit(); } - ServiceBinding service_binding_; + ServiceReceiver service_receiver_; Identity target_identity_; std::unique_ptr wait_for_target_identity_loop_; @@ -122,11 +122,11 @@ class TestService : public Service, public test::mojom::CreateInstanceTest { class SimpleService : public Service { public: - explicit SimpleService(mojom::ServiceRequest request) - : binding_(this, std::move(request)) {} - ~SimpleService() override {} + explicit SimpleService(mojo::PendingReceiver receiver) + : receiver_(this, std::move(receiver)) {} + ~SimpleService() override = default; - Connector* connector() { return binding_.GetConnector(); } + Connector* connector() { return receiver_.GetConnector(); } void WaitForDisconnect() { base::RunLoop loop; @@ -142,7 +142,7 @@ class SimpleService : public Service { Terminate(); } - ServiceBinding binding_; + ServiceReceiver receiver_; base::OnceClosure connection_lost_closure_; DISALLOW_COPY_AND_ASSIGN(SimpleService); diff --git a/services/service_manager/tests/service_manager/target.cc b/services/service_manager/tests/service_manager/target.cc index 605883a6041ee8..f094ad44c64565 100644 --- a/services/service_manager/tests/service_manager/target.cc +++ b/services/service_manager/tests/service_manager/target.cc @@ -7,8 +7,8 @@ #include "mojo/public/cpp/bindings/remote.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/tests/service_manager/service_manager.test-mojom.h" #include "services/service_manager/tests/service_manager/test_manifests.h" @@ -17,28 +17,30 @@ namespace { class Target : public service_manager::Service { public: - explicit Target(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) {} + explicit Target( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) {} ~Target() override = default; private: // service_manager::Service: void OnStart() override { mojo::Remote service; - service_binding_.GetConnector()->BindInterface( + service_receiver_.GetConnector()->BindInterface( service_manager::kTestServiceName, service.BindNewPipeAndPassReceiver()); - service->SetTargetIdentity(service_binding_.identity()); + service->SetTargetIdentity(service_receiver_.identity()); } - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; DISALLOW_COPY_AND_ASSIGN(Target); }; } // namespace -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - Target(std::move(request)).RunUntilTermination(); + Target(std::move(receiver)).RunUntilTermination(); } diff --git a/services/service_manager/tests/service_process_launcher_test_service_main.cc b/services/service_manager/tests/service_process_launcher_test_service_main.cc index d8aeac829788e5..84ddb70390ab58 100644 --- a/services/service_manager/tests/service_process_launcher_test_service_main.cc +++ b/services/service_manager/tests/service_process_launcher_test_service_main.cc @@ -4,4 +4,7 @@ #include "services/service_manager/public/cpp/service_executable/service_main.h" -void ServiceMain(service_manager::mojom::ServiceRequest request) {} +#include "mojo/public/cpp/bindings/pending_receiver.h" + +void ServiceMain( + mojo::PendingReceiver receiver) {} diff --git a/services/service_manager/tests/shutdown/shutdown_client_app.cc b/services/service_manager/tests/shutdown/shutdown_client_app.cc index ec01e794618f66..c5cdfe78647818 100644 --- a/services/service_manager/tests/shutdown/shutdown_client_app.cc +++ b/services/service_manager/tests/shutdown/shutdown_client_app.cc @@ -13,8 +13,8 @@ #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/tests/shutdown/shutdown.test-mojom.h" namespace service_manager { @@ -23,8 +23,8 @@ class ShutdownClientApp : public Service, public mojom::ShutdownTestClientController, public mojom::ShutdownTestClient { public: - explicit ShutdownClientApp(mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { + explicit ShutdownClientApp(mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface( base::BindRepeating(&ShutdownClientApp::Create, base::Unretained(this))); @@ -47,7 +47,7 @@ class ShutdownClientApp : public Service, // mojom::ShutdownTestClientController: void ConnectAndWait(ConnectAndWaitCallback callback) override { mojo::Remote service; - service_binding_.GetConnector()->BindInterface( + service_receiver_.GetConnector()->BindInterface( "shutdown_service", service.BindNewPipeAndPassReceiver()); mojo::Receiver client_receiver(this); @@ -61,7 +61,7 @@ class ShutdownClientApp : public Service, std::move(callback).Run(); } - ServiceBinding service_binding_; + ServiceReceiver service_receiver_; BinderRegistry registry_; mojo::ReceiverSet receivers_; @@ -70,7 +70,8 @@ class ShutdownClientApp : public Service, } // namespace service_manager -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - service_manager::ShutdownClientApp(std::move(request)).RunUntilTermination(); + service_manager::ShutdownClientApp(std::move(receiver)).RunUntilTermination(); } diff --git a/services/service_manager/tests/shutdown/shutdown_service_app.cc b/services/service_manager/tests/shutdown/shutdown_service_app.cc index b19757a5572b55..19c28a2d8e81ba 100644 --- a/services/service_manager/tests/shutdown/shutdown_service_app.cc +++ b/services/service_manager/tests/shutdown/shutdown_service_app.cc @@ -10,8 +10,8 @@ #include "mojo/public/cpp/bindings/receiver_set.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_executable/service_main.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/tests/shutdown/shutdown.test-mojom.h" @@ -20,8 +20,8 @@ namespace { class ShutdownServiceApp : public Service, public mojom::ShutdownTestService { public: - explicit ShutdownServiceApp(mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { + explicit ShutdownServiceApp(mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface(base::BindRepeating( &ShutdownServiceApp::Create, base::Unretained(this))); } @@ -45,7 +45,7 @@ class ShutdownServiceApp : public Service, public mojom::ShutdownTestService { receivers_.Add(this, std::move(receiver)); } - ServiceBinding service_binding_; + ServiceReceiver service_receiver_; BinderRegistry registry_; mojo::ReceiverSet receivers_; @@ -55,7 +55,9 @@ class ShutdownServiceApp : public Service, public mojom::ShutdownTestService { } // namespace } // namespace service_manager -void ServiceMain(service_manager::mojom::ServiceRequest request) { +void ServiceMain( + mojo::PendingReceiver receiver) { base::SingleThreadTaskExecutor main_task_executor; - service_manager::ShutdownServiceApp(std::move(request)).RunUntilTermination(); + service_manager::ShutdownServiceApp(std::move(receiver)) + .RunUntilTermination(); } diff --git a/services/service_manager/tests/shutdown/shutdown_unittest.cc b/services/service_manager/tests/shutdown/shutdown_unittest.cc index fb86f689c75847..3d0dbda383b23b 100644 --- a/services/service_manager/tests/shutdown/shutdown_unittest.cc +++ b/services/service_manager/tests/shutdown/shutdown_unittest.cc @@ -12,7 +12,7 @@ #include "services/service_manager/public/cpp/manifest.h" #include "services/service_manager/public/cpp/manifest_builder.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/cpp/test/test_service_manager.h" #include "services/service_manager/public/mojom/constants.mojom.h" #include "services/service_manager/tests/shutdown/shutdown.test-mojom.h" @@ -71,18 +71,18 @@ class ShutdownTest : public testing::Test { public: ShutdownTest() : test_service_manager_(GetTestManifests()), - test_service_binding_( + test_service_receiver_( &test_service_, test_service_manager_.RegisterTestInstance(kTestServiceName)) {} ~ShutdownTest() override = default; - Connector* connector() { return test_service_binding_.GetConnector(); } + Connector* connector() { return test_service_receiver_.GetConnector(); } private: base::test::TaskEnvironment task_environment_; TestServiceManager test_service_manager_; Service test_service_; - ServiceBinding test_service_binding_; + ServiceReceiver test_service_receiver_; DISALLOW_COPY_AND_ASSIGN(ShutdownTest); }; diff --git a/services/service_manager/tests/test_support_unittest.cc b/services/service_manager/tests/test_support_unittest.cc index 07face05c92d5a..580c2724aa2d56 100644 --- a/services/service_manager/tests/test_support_unittest.cc +++ b/services/service_manager/tests/test_support_unittest.cc @@ -14,7 +14,7 @@ #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/cpp/test/test_connector_factory.h" #include "services/service_manager/tests/test_support.test-mojom.h" #include "testing/gtest/include/gtest/gtest.h" @@ -62,8 +62,8 @@ void OnTestCReceiver(mojo::PendingReceiver receiver) { class TestBServiceImpl : public Service { public: - TestBServiceImpl(mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { + explicit TestBServiceImpl(mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface(base::BindRepeating(&OnTestBReceiver)); } @@ -77,7 +77,7 @@ class TestBServiceImpl : public Service { registry_.BindInterface(interface_name, std::move(interface_pipe)); } - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; service_manager::BinderRegistry registry_; DISALLOW_COPY_AND_ASSIGN(TestBServiceImpl); @@ -85,8 +85,8 @@ class TestBServiceImpl : public Service { class TestCServiceImpl : public Service { public: - TestCServiceImpl(mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { + explicit TestCServiceImpl(mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface(base::BindRepeating(&OnTestCReceiver)); } @@ -100,7 +100,7 @@ class TestCServiceImpl : public Service { registry_.BindInterface(interface_name, std::move(interface_pipe)); } - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; service_manager::BinderRegistry registry_; DISALLOW_COPY_AND_ASSIGN(TestCServiceImpl); diff --git a/services/test/user_id/user_id_service.cc b/services/test/user_id/user_id_service.cc index 822bd95ed6c3e2..d1b5e638bf5b2a 100644 --- a/services/test/user_id/user_id_service.cc +++ b/services/test/user_id/user_id_service.cc @@ -4,11 +4,13 @@ #include "services/test/user_id/user_id_service.h" #include "base/bind.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" namespace user_id { -UserIdService::UserIdService(service_manager::mojom::ServiceRequest request) - : service_binding_(this, std::move(request)) { +UserIdService::UserIdService( + mojo::PendingReceiver receiver) + : service_receiver_(this, std::move(receiver)) { registry_.AddInterface(base::BindRepeating( &UserIdService::BindUserIdReceiver, base::Unretained(this))); } @@ -28,7 +30,7 @@ void UserIdService::BindUserIdReceiver( } void UserIdService::GetInstanceGroup(GetInstanceGroupCallback callback) { - std::move(callback).Run(service_binding_.identity().instance_group()); + std::move(callback).Run(service_receiver_.identity().instance_group()); } } // namespace user_id diff --git a/services/test/user_id/user_id_service.h b/services/test/user_id/user_id_service.h index 94a56f205029bf..7c4d30441bcb60 100644 --- a/services/test/user_id/user_id_service.h +++ b/services/test/user_id/user_id_service.h @@ -9,7 +9,7 @@ #include "mojo/public/cpp/bindings/receiver_set.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/cpp/service_binding.h" +#include "services/service_manager/public/cpp/service_receiver.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/test/user_id/public/mojom/user_id.mojom.h" @@ -17,7 +17,8 @@ namespace user_id { class UserIdService : public service_manager::Service, public mojom::UserId { public: - explicit UserIdService(service_manager::mojom::ServiceRequest request); + explicit UserIdService( + mojo::PenidngReceiver receiver); ~UserIdService() override; private: @@ -31,7 +32,7 @@ class UserIdService : public service_manager::Service, public mojom::UserId { void BindUserIdReceiver(mojo::PendingReceiver receiver); - service_manager::ServiceBinding service_binding_; + service_manager::ServiceReceiver service_receiver_; service_manager::BinderRegistry registry_; mojo::ReceiverSet receivers_;