Index: mojo/shell/public/cpp/shell.h |
diff --git a/mojo/shell/public/cpp/shell.h b/mojo/shell/public/cpp/shell.h |
index f513f40d35a0f9425bd99833acec95311488e0ca..d333acb4e94611a215a52523706fc0af2a2ae6cd 100644 |
--- a/mojo/shell/public/cpp/shell.h |
+++ b/mojo/shell/public/cpp/shell.h |
@@ -6,16 +6,12 @@ |
#define MOJO_SHELL_PUBLIC_CPP_SHELL_H_ |
#include "mojo/shell/public/cpp/connection.h" |
+#include "mojo/shell/public/cpp/connector.h" |
#include "mojo/shell/public/interfaces/shell.mojom.h" |
-#include "mojo/shell/public/interfaces/shell_client.mojom.h" |
#include "url/gurl.h" |
namespace mojo { |
-shell::mojom::CapabilityFilterPtr CreatePermissiveCapabilityFilter(); |
- |
-using ShellClientRequest = InterfaceRequest<shell::mojom::ShellClient>; |
- |
// An interface implementation can keep this object as a member variable to |
// hold a reference to the ShellConnection, keeping it alive as long as the |
// bound implementation exists. |
@@ -35,39 +31,17 @@ class AppRefCount { |
// ShellConnection, this is the primary interface exposed to clients. |
class Shell { |
public: |
- class ConnectParams { |
- public: |
- explicit ConnectParams(const std::string& url); |
- ~ConnectParams(); |
- |
- const GURL& url() { return url_; } |
- shell::mojom::CapabilityFilterPtr TakeFilter() { |
- return std::move(filter_); |
- } |
- void set_filter(shell::mojom::CapabilityFilterPtr filter) { |
- filter_ = std::move(filter); |
- } |
- void set_user_id(uint32_t user_id) { user_id_ = user_id; } |
- uint32_t user_id() const { return user_id_; } |
- |
- private: |
- GURL url_; |
- shell::mojom::CapabilityFilterPtr filter_; |
- uint32_t user_id_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ConnectParams); |
- }; |
- |
// Requests a new connection to an application. Returns a pointer to the |
// connection if the connection is permitted by this application's delegate, |
// or nullptr otherwise. Caller takes ownership. |
virtual scoped_ptr<Connection> Connect(const std::string& url) = 0; |
- virtual scoped_ptr<Connection> Connect(ConnectParams* params) = 0; |
+ virtual scoped_ptr<Connection> Connect(Connector::ConnectParams* params) = 0; |
// Connect to application identified by |request->url| and connect to the |
// service implementation of the interface identified by |Interface|. |
template <typename Interface> |
- void ConnectToInterface(ConnectParams* params, InterfacePtr<Interface>* ptr) { |
+ void ConnectToInterface(Connector::ConnectParams* params, |
+ InterfacePtr<Interface>* ptr) { |
scoped_ptr<Connection> connection = Connect(params); |
if (connection) |
connection->GetInterface(ptr); |
@@ -75,11 +49,15 @@ class Shell { |
template <typename Interface> |
void ConnectToInterface(const std::string& url, |
InterfacePtr<Interface>* ptr) { |
- ConnectParams params(url); |
+ Connector::ConnectParams params(url); |
params.set_filter(CreatePermissiveCapabilityFilter()); |
return ConnectToInterface(¶ms, ptr); |
} |
+ // Returns a clone of the ShellConnection's Connector that can be passed to |
+ // other threads. |
+ virtual scoped_ptr<Connector> CloneConnector() const = 0; |
+ |
// Initiate shutdown of this application. This may involve a round trip to the |
// Shell to ensure there are no inbound service requests. |
virtual void Quit() = 0; |