// 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_REGISTRY_H_ #define THIRD_PARTY_BLINK_PUBLIC_COMMON_ASSOCIATED_INTERFACES_ASSOCIATED_INTERFACE_REGISTRY_H_ #include <map> #include <string> #include <type_traits> #include <vector> #include "base/functional/bind.h" #include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h" #include "third_party/blink/public/common/common_export.h" namespace blink { // An AssociatedInterfaceRegistry is a collection of associated interface- // binding callbacks mapped by interface name. // // This is used to register binding callbacks for interfaces which must be // associated with some IPC::ChannelProxy, meaning that messages on the // interface retain FIFO with respect to legacy Chrome IPC messages sent or // dispatched on the channel. // // The channel with which a registered interface is associated depends on the // configuration of the specific AssociatedInterfaceRegistry instance. For // example, RenderFrame exposes an instance of this class for which all // interfaces are associated with the IPC::SyncChannel to the browser. class BLINK_COMMON_EXPORT AssociatedInterfaceRegistry { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_ASSOCIATED_INTERFACES_ASSOCIATED_INTERFACE_REGISTRY_H_