Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1919)

Unified Diff: content/public/common/connection_filter.h

Issue 2766263009: Convert content ConnectionFilter to OnBindInterface (Closed)
Patch Set: . Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/common/connection_filter.h
diff --git a/content/public/common/connection_filter.h b/content/public/common/connection_filter.h
index dac258d3512abec1ace38e5a8a96fae4845a0121..4673d2cd1071f2009595d41d62dc853a3c145dad 100644
--- a/content/public/common/connection_filter.h
+++ b/content/public/common/connection_filter.h
@@ -6,38 +6,29 @@
#define CONTENT_PUBLIC_COMMON_CONNECTION_FILTER_H_
#include "content/common/content_export.h"
+#include "mojo/public/cpp/system/message_pipe.h"
namespace service_manager {
class Connector;
-class Identity;
-class InterfaceRegistry;
+struct ServiceInfo;
}
namespace content {
-// A ConnectionFilter may be used to conditionally expose interfaces on inbound
-// connections accepted by ServiceManagerConnection. ConnectionFilters are used
-// exclusively on the IO thread. See
-// ServiceManagerConnection::AddConnectionFilter for details.
+// TODO(beng): Rename to InterfaceBinder?
+// See ServiceManagerConnection::AddConnectionFilter().
class CONTENT_EXPORT ConnectionFilter {
public:
virtual ~ConnectionFilter() {}
- // Called for every new connection accepted. Implementations may add
- // interfaces to |registry|, in which case they should return |true|.
- // |connector| is a corresponding outgoing Connector that may be used by any
- // interfaces added to the connection. Note that references to |connector|
- // must not be retained, but an owned copy may be obtained by calling
- // |connector->Clone()|.
- //
- // If a ConnectionFilter is not interested in an incoming connection, it
- // should return |false|.
- //
- // NOTE: This ConnectionFilter is NOT guaranteed to outlive |registry|, so you
- // must not attach unsafe references to |this|, e.g., via AddInterface().
- virtual bool OnConnect(const service_manager::Identity& remote_identity,
- service_manager::InterfaceRegistry* registry,
- service_manager::Connector* connector) = 0;
+ // Provides the ConnectionFilter with the option of binding an interface
+ // request from a remote service. The interface request is in
+ // |interface_pipe|, which is taken by the binding action. If the interface
+ // request is bound, subsequent ConnectionFilters are not consulted.
+ virtual void OnBindInterface(const service_manager::ServiceInfo& source_info,
+ const std::string& interface_name,
+ mojo::ScopedMessagePipeHandle* interface_pipe,
+ service_manager::Connector* connector) = 0;
};
} // namespace content
« no previous file with comments | « content/public/common/child_process_host_delegate.cc ('k') | content/public/common/service_manager_connection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698