Index: mojo/services/view_manager/view_manager_service_impl.h |
diff --git a/mojo/services/view_manager/view_manager_service_impl.h b/mojo/services/view_manager/view_manager_service_impl.h |
index 3c0eb71177a5530c0af42e2d57618fe21de9c876..568aab831322f4667df34750361fea140843a79a 100644 |
--- a/mojo/services/view_manager/view_manager_service_impl.h |
+++ b/mojo/services/view_manager/view_manager_service_impl.h |
@@ -123,6 +123,9 @@ class MOJO_VIEW_MANAGER_EXPORT ViewManagerServiceImpl |
bool CanGetNodeTree(const Node* node) const; |
bool CanEmbed(Id transport_node_id) const; |
bool CanSetNodeVisibility(const Node* node, bool visible) const; |
+ // Used during GetNodeTreeImpl() to decide if we should descend into |node| |
+ // when building the results of GetNodeTree(). |
+ bool CanDescendIntoNodeForNodeTree(const Node* node) const; |
// Deletes a node owned by this connection. Returns true on success. |source| |
// is the connection that originated the change. |
@@ -139,6 +142,10 @@ class MOJO_VIEW_MANAGER_EXPORT ViewManagerServiceImpl |
// to |nodes|, marks |node| as known and recurses. |
void GetUnknownNodesFrom(const Node* node, std::vector<const Node*>* nodes); |
+ // Returns true if node (or one of its ancestors) is embedded in another |
+ // connection. |
+ bool IsNodeEmbeddedInAnotherConnection(const Node* node) const; |
+ |
// Removes |node| and all its descendants from |known_nodes_|. This does not |
// recurse through nodes that were created by this connection. All nodes owned |
// by this connection are added to |local_nodes|. |
@@ -151,6 +158,8 @@ class MOJO_VIEW_MANAGER_EXPORT ViewManagerServiceImpl |
// Removes |node_id| from the set of roots this connection knows about. |
void RemoveRoot(const NodeId& node_id); |
+ void RemoveChildrenAsPartOfEmbed(const NodeId& node_id); |
+ |
// Returns true if |node| is a non-null and a descendant of |roots_| (or |
// |roots_| is empty). |
bool IsNodeDescendantOfRoots(const Node* node) const; |
@@ -168,6 +177,10 @@ class MOJO_VIEW_MANAGER_EXPORT ViewManagerServiceImpl |
// are set to NULL (in the returned NodeDatas). |
Array<NodeDataPtr> NodesToNodeDatas(const std::vector<const Node*>& nodes); |
+ // Implementation of GetNodeTree(). Adds |node| to |nodes| and recurses if |
+ // CanDescendIntoNodeForNodeTree() returns true. |
+ void GetNodeTreeImpl(const Node* node, std::vector<const Node*>* nodes) const; |
+ |
// ViewManagerService: |
virtual void CreateNode(Id transport_node_id, |
const Callback<void(ErrorCode)>& callback) OVERRIDE; |