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

Unified Diff: mojo/services/view_manager/view_manager_service_impl.h

Issue 415793003: Changes access policy for embedded nodes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 6 years, 5 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: 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;
« no previous file with comments | « mojo/services/view_manager/root_node_manager.cc ('k') | mojo/services/view_manager/view_manager_service_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698