OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MOJO_SHELL_CONNECT_TO_APPLICATION_PARAMS_H_ | 5 #ifndef MOJO_SHELL_CONNECT_TO_APPLICATION_PARAMS_H_ |
6 #define MOJO_SHELL_CONNECT_TO_APPLICATION_PARAMS_H_ | 6 #define MOJO_SHELL_CONNECT_TO_APPLICATION_PARAMS_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
11 #include "mojo/application/public/interfaces/service_provider.mojom.h" | 11 #include "mojo/application/public/interfaces/service_provider.mojom.h" |
12 #include "mojo/application/public/interfaces/shell.mojom.h" | 12 #include "mojo/application/public/interfaces/shell.mojom.h" |
13 #include "mojo/public/cpp/bindings/interface_request.h" | 13 #include "mojo/public/cpp/bindings/interface_request.h" |
14 #include "mojo/services/network/public/interfaces/url_loader.mojom.h" | 14 #include "mojo/services/network/public/interfaces/url_loader.mojom.h" |
15 #include "mojo/shell/capability_filter.h" | |
16 #include "mojo/shell/identity.h" | 15 #include "mojo/shell/identity.h" |
17 #include "url/gurl.h" | 16 #include "url/gurl.h" |
18 | 17 |
19 namespace mojo { | 18 namespace mojo { |
20 namespace shell { | 19 namespace shell { |
21 | 20 |
22 class ApplicationInstance; | 21 class ApplicationInstance; |
23 | 22 |
24 // This class represents a request for the application manager to connect to an | 23 // This class represents a request for the application manager to connect to an |
25 // application. | 24 // application. |
26 class ConnectToApplicationParams { | 25 class ConnectToApplicationParams { |
27 public: | 26 public: |
28 ConnectToApplicationParams(); | 27 ConnectToApplicationParams(); |
29 ~ConnectToApplicationParams(); | 28 ~ConnectToApplicationParams(); |
30 | 29 |
31 // Sets both |originator_identity_| and |originator_filter_|. If |originator| | 30 // Sets |source_|. If |source| is null, |source_| is reset. |
32 // is null, both fields are reset. | 31 void SetSource(ApplicationInstance* source); |
33 void SetOriginatorInfo(ApplicationInstance* originator); | |
34 | 32 |
35 // Sets both |app_url_| and |app_url_request_|. | 33 // The following methods set both |target_| and |target_url_request_|. |
36 void SetURLInfo(const GURL& app_url); | 34 void SetTarget(const Identity& target); |
37 // Sets both |app_url_| and |app_url_request_|. | 35 void SetTargetURL(const GURL& target_url); |
38 void SetURLInfo(URLRequestPtr app_url_request); | 36 void SetTargetURLRequest(URLRequestPtr request); |
| 37 void SetTargetURLRequest(URLRequestPtr request, const Identity& target); |
39 | 38 |
40 void set_originator_identity(const Identity& value) { | 39 void set_source(const Identity& source) { source_ = source; } |
41 originator_identity_ = value; | 40 const Identity& source() const { return source_; } |
| 41 const Identity& target() const { return target_; } |
| 42 |
| 43 const URLRequest* target_url_request() const { |
| 44 return target_url_request_.get(); |
42 } | 45 } |
43 const Identity& originator_identity() const { return originator_identity_; } | 46 // NOTE: This doesn't reset |target_|. |
44 | 47 URLRequestPtr TakeTargetURLRequest() { return target_url_request_.Pass(); } |
45 void set_originator_filter(const CapabilityFilter& value) { | |
46 originator_filter_ = value; | |
47 } | |
48 const CapabilityFilter& originator_filter() const { | |
49 return originator_filter_; | |
50 } | |
51 | |
52 const GURL& app_url() const { return app_url_; } | |
53 | |
54 const URLRequest* app_url_request() const { return app_url_request_.get(); } | |
55 // NOTE: This doesn't reset |app_url_|. | |
56 URLRequestPtr TakeAppURLRequest() { return app_url_request_.Pass(); } | |
57 | |
58 void set_qualifier(const std::string& value) { qualifier_ = value; } | |
59 const std::string& qualifier() const { return qualifier_; } | |
60 | 48 |
61 void set_services(InterfaceRequest<ServiceProvider> value) { | 49 void set_services(InterfaceRequest<ServiceProvider> value) { |
62 services_ = value.Pass(); | 50 services_ = value.Pass(); |
63 } | 51 } |
64 InterfaceRequest<ServiceProvider> TakeServices() { return services_.Pass(); } | 52 InterfaceRequest<ServiceProvider> TakeServices() { return services_.Pass(); } |
65 | 53 |
66 void set_exposed_services(ServiceProviderPtr value) { | 54 void set_exposed_services(ServiceProviderPtr value) { |
67 exposed_services_ = value.Pass(); | 55 exposed_services_ = value.Pass(); |
68 } | 56 } |
69 ServiceProviderPtr TakeExposedServices() { return exposed_services_.Pass(); } | 57 ServiceProviderPtr TakeExposedServices() { return exposed_services_.Pass(); } |
70 | 58 |
71 void set_filter(const CapabilityFilter& value) { filter_ = value; } | |
72 const CapabilityFilter& filter() const { return filter_; } | |
73 | |
74 void set_on_application_end(const base::Closure& value) { | 59 void set_on_application_end(const base::Closure& value) { |
75 on_application_end_ = value; | 60 on_application_end_ = value; |
76 } | 61 } |
77 const base::Closure& on_application_end() const { | 62 const base::Closure& on_application_end() const { |
78 return on_application_end_; | 63 return on_application_end_; |
79 } | 64 } |
80 | 65 |
81 void set_connect_callback(const Shell::ConnectToApplicationCallback& value) { | 66 void set_connect_callback(const Shell::ConnectToApplicationCallback& value) { |
82 connect_callback_ = value; | 67 connect_callback_ = value; |
83 } | 68 } |
84 const Shell::ConnectToApplicationCallback& connect_callback() const { | 69 const Shell::ConnectToApplicationCallback& connect_callback() const { |
85 return connect_callback_; | 70 return connect_callback_; |
86 } | 71 } |
87 | 72 |
88 private: | 73 private: |
89 // It may be null (i.e., is_null() returns true) which indicates that there is | 74 // It may be null (i.e., is_null() returns true) which indicates that there is |
90 // no originator (e.g., for the first application or in tests). | 75 // no source (e.g., for the first application or in tests). |
91 Identity originator_identity_; | 76 Identity source_; |
92 // Should be ignored if |originator_identity_| is null. | 77 // The identity of the application being connected to. |
93 CapabilityFilter originator_filter_; | 78 Identity target_; |
94 // The URL of the application that is being connected to. | |
95 GURL app_url_; | |
96 // The URL request to fetch the application. It may contain more information | 79 // The URL request to fetch the application. It may contain more information |
97 // than |app_url_| (e.g., headers, request body). When it is taken, |app_url_| | 80 // than |target_| (e.g., headers, request body). When it is taken, |target_| |
98 // remains unchanged. | 81 // remains unchanged. |
99 URLRequestPtr app_url_request_; | 82 URLRequestPtr target_url_request_; |
100 // Please see the comments in identity.h for the exact meaning of qualifier. | 83 |
101 std::string qualifier_; | |
102 InterfaceRequest<ServiceProvider> services_; | 84 InterfaceRequest<ServiceProvider> services_; |
103 ServiceProviderPtr exposed_services_; | 85 ServiceProviderPtr exposed_services_; |
104 CapabilityFilter filter_; | |
105 base::Closure on_application_end_; | 86 base::Closure on_application_end_; |
106 Shell::ConnectToApplicationCallback connect_callback_; | 87 Shell::ConnectToApplicationCallback connect_callback_; |
107 | 88 |
108 DISALLOW_COPY_AND_ASSIGN(ConnectToApplicationParams); | 89 DISALLOW_COPY_AND_ASSIGN(ConnectToApplicationParams); |
109 }; | 90 }; |
110 | 91 |
111 } // namespace shell | 92 } // namespace shell |
112 } // namespace mojo | 93 } // namespace mojo |
113 | 94 |
114 #endif // MOJO_SHELL_CONNECT_TO_APPLICATION_PARAMS_H_ | 95 #endif // MOJO_SHELL_CONNECT_TO_APPLICATION_PARAMS_H_ |
OLD | NEW |