// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_ASSOCIATED_INTERFACES_ASSOCIATED_INTERFACE_PROVIDER_H_ #define THIRD_PARTY_BLINK_PUBLIC_COMMON_ASSOCIATED_INTERFACES_ASSOCIATED_INTERFACE_PROVIDER_H_ #include <string> #include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h" #include "mojo/public/cpp/bindings/associated_remote.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_remote.h" #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h" #include "third_party/blink/public/common/common_export.h" #include "third_party/blink/public/mojom/associated_interfaces/associated_interfaces.mojom.h" namespace blink { // A helper interface for connecting to remote Channel-associated interfaces. // // This is analogous to service_manager::InterfaceProvider in that it provides a // means of binding proxies to remote interfaces, but this is specifically for // interfaces which must be associated with an IPC::Channel, i.e. retain FIFO // message ordering with respect to legacy IPC messages. // // The Channel with which the remote interfaces are associated depends on the // configuration of the specific AssociatedInterfaceProvider instance. For // example, RenderFrameHost exposes an instance of this class for which all // interfaces are associated with the IPC::ChannelProxy to the render process // which hosts its corresponding RenderFrame. class BLINK_COMMON_EXPORT AssociatedInterfaceProvider { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_ASSOCIATED_INTERFACES_ASSOCIATED_INTERFACE_PROVIDER_H_