OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_ | 5 #ifndef MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_ |
6 #define MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_ | 6 #define MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 28 matching lines...) Expand all Loading... |
39 | 39 |
40 // Manages a connection from the client. | 40 // Manages a connection from the client. |
41 class MOJO_VIEW_MANAGER_EXPORT ViewManagerServiceImpl | 41 class MOJO_VIEW_MANAGER_EXPORT ViewManagerServiceImpl |
42 : public InterfaceImpl<ViewManagerService>, | 42 : public InterfaceImpl<ViewManagerService>, |
43 public AccessPolicyDelegate { | 43 public AccessPolicyDelegate { |
44 public: | 44 public: |
45 ViewManagerServiceImpl(RootNodeManager* root_node_manager, | 45 ViewManagerServiceImpl(RootNodeManager* root_node_manager, |
46 ConnectionSpecificId creator_id, | 46 ConnectionSpecificId creator_id, |
47 const std::string& creator_url, | 47 const std::string& creator_url, |
48 const std::string& url, | 48 const std::string& url, |
49 const NodeId& root_id); | 49 const NodeId& root_id, |
| 50 InterfaceRequest<ServiceProvider> service_provider); |
50 virtual ~ViewManagerServiceImpl(); | 51 virtual ~ViewManagerServiceImpl(); |
51 | 52 |
52 // Used to mark this connection as originating from a call to | 53 // Used to mark this connection as originating from a call to |
53 // ViewManagerService::Connect(). When set OnConnectionError() deletes |this|. | 54 // ViewManagerService::Connect(). When set OnConnectionError() deletes |this|. |
54 void set_delete_on_connection_error() { delete_on_connection_error_ = true; } | 55 void set_delete_on_connection_error() { delete_on_connection_error_ = true; } |
55 | 56 |
56 ConnectionSpecificId id() const { return id_; } | 57 ConnectionSpecificId id() const { return id_; } |
57 ConnectionSpecificId creator_id() const { return creator_id_; } | 58 ConnectionSpecificId creator_id() const { return creator_id_; } |
58 const std::string& url() const { return url_; } | 59 const std::string& url() const { return url_; } |
59 | 60 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 // to |nodes|, marks |node| as known and recurses. | 136 // to |nodes|, marks |node| as known and recurses. |
136 void GetUnknownNodesFrom(const Node* node, std::vector<const Node*>* nodes); | 137 void GetUnknownNodesFrom(const Node* node, std::vector<const Node*>* nodes); |
137 | 138 |
138 // Removes |node| and all its descendants from |known_nodes_|. This does not | 139 // Removes |node| and all its descendants from |known_nodes_|. This does not |
139 // recurse through nodes that were created by this connection. All nodes owned | 140 // recurse through nodes that were created by this connection. All nodes owned |
140 // by this connection are added to |local_nodes|. | 141 // by this connection are added to |local_nodes|. |
141 void RemoveFromKnown(const Node* node, std::vector<Node*>* local_nodes); | 142 void RemoveFromKnown(const Node* node, std::vector<Node*>* local_nodes); |
142 | 143 |
143 // Adds |node_id| to the set of roots this connection knows about. The caller | 144 // Adds |node_id| to the set of roots this connection knows about. The caller |
144 // should have verified |node_id| is not among the roots of this connection. | 145 // should have verified |node_id| is not among the roots of this connection. |
145 void AddRoot(const NodeId& node_id); | 146 void AddRoot(const NodeId& node_id, |
| 147 InterfaceRequest<ServiceProvider> service_provider); |
146 | 148 |
147 // Removes |node_id| from the set of roots this connection knows about. | 149 // Removes |node_id| from the set of roots this connection knows about. |
148 void RemoveRoot(const NodeId& node_id); | 150 void RemoveRoot(const NodeId& node_id); |
149 | 151 |
150 void RemoveChildrenAsPartOfEmbed(const NodeId& node_id); | 152 void RemoveChildrenAsPartOfEmbed(const NodeId& node_id); |
151 | 153 |
152 // Converts Node(s) to NodeData(s) for transport. This assumes all the nodes | 154 // Converts Node(s) to NodeData(s) for transport. This assumes all the nodes |
153 // are valid for the client. The parent of nodes the client is not allowed to | 155 // are valid for the client. The parent of nodes the client is not allowed to |
154 // see are set to NULL (in the returned NodeData(s)). | 156 // see are set to NULL (in the returned NodeData(s)). |
155 Array<NodeDataPtr> NodesToNodeDatas(const std::vector<const Node*>& nodes); | 157 Array<NodeDataPtr> NodesToNodeDatas(const std::vector<const Node*>& nodes); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 virtual void SetFocus(Id node_id, | 193 virtual void SetFocus(Id node_id, |
192 const Callback<void(bool)> & callback) OVERRIDE; | 194 const Callback<void(bool)> & callback) OVERRIDE; |
193 virtual void SetNodeBounds(Id node_id, | 195 virtual void SetNodeBounds(Id node_id, |
194 RectPtr bounds, | 196 RectPtr bounds, |
195 const Callback<void(bool)>& callback) OVERRIDE; | 197 const Callback<void(bool)>& callback) OVERRIDE; |
196 virtual void SetNodeVisibility(Id transport_node_id, | 198 virtual void SetNodeVisibility(Id transport_node_id, |
197 bool visible, | 199 bool visible, |
198 const Callback<void(bool)>& callback) OVERRIDE; | 200 const Callback<void(bool)>& callback) OVERRIDE; |
199 virtual void Embed(const String& url, | 201 virtual void Embed(const String& url, |
200 Id transport_node_id, | 202 Id transport_node_id, |
| 203 ServiceProviderPtr service_provider, |
201 const Callback<void(bool)>& callback) OVERRIDE; | 204 const Callback<void(bool)>& callback) OVERRIDE; |
202 virtual void DispatchOnViewInputEvent(Id transport_view_id, | 205 virtual void DispatchOnViewInputEvent(Id transport_view_id, |
203 EventPtr event) OVERRIDE; | 206 EventPtr event) OVERRIDE; |
204 | 207 |
205 // InterfaceImpl: | 208 // InterfaceImpl: |
206 virtual void OnConnectionEstablished() MOJO_OVERRIDE; | 209 virtual void OnConnectionEstablished() MOJO_OVERRIDE; |
207 | 210 |
208 // AccessPolicyDelegate: | 211 // AccessPolicyDelegate: |
209 virtual const base::hash_set<Id>& GetRootsForAccessPolicy() const OVERRIDE; | 212 virtual const base::hash_set<Id>& GetRootsForAccessPolicy() const OVERRIDE; |
210 virtual bool IsNodeKnownForAccessPolicy(const Node* node) const OVERRIDE; | 213 virtual bool IsNodeKnownForAccessPolicy(const Node* node) const OVERRIDE; |
(...skipping 29 matching lines...) Expand all Loading... |
240 // Embed() is invoked the id of the node is added to this set for the child | 243 // Embed() is invoked the id of the node is added to this set for the child |
241 // connection. The connection Embed() was invoked on (the parent) doesn't | 244 // connection. The connection Embed() was invoked on (the parent) doesn't |
242 // directly track which connections are attached to which of its nodes. That | 245 // directly track which connections are attached to which of its nodes. That |
243 // information can be found by looking through the |roots_| of all | 246 // information can be found by looking through the |roots_| of all |
244 // connections. | 247 // connections. |
245 NodeIdSet roots_; | 248 NodeIdSet roots_; |
246 | 249 |
247 // See description above setter. | 250 // See description above setter. |
248 bool delete_on_connection_error_; | 251 bool delete_on_connection_error_; |
249 | 252 |
| 253 InterfaceRequest<ServiceProvider> service_provider_; |
| 254 |
250 DISALLOW_COPY_AND_ASSIGN(ViewManagerServiceImpl); | 255 DISALLOW_COPY_AND_ASSIGN(ViewManagerServiceImpl); |
251 }; | 256 }; |
252 | 257 |
253 #if defined(OS_WIN) | 258 #if defined(OS_WIN) |
254 #pragma warning(pop) | 259 #pragma warning(pop) |
255 #endif | 260 #endif |
256 | 261 |
257 } // namespace service | 262 } // namespace service |
258 } // namespace mojo | 263 } // namespace mojo |
259 | 264 |
260 #endif // MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_ | 265 #endif // MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_ |
OLD | NEW |