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
3 // found in the LICENSE file.
5 #ifndef MOJO_SERVICES_VIEW_MANAGER_WINDOW_MANAGER_ACCESS_POLICY_H_
6 #define MOJO_SERVICES_VIEW_MANAGER_WINDOW_MANAGER_ACCESS_POLICY_H_
8 #include "base/basictypes.h"
9 #include "mojo/services/view_manager/access_policy.h"
14 class AccessPolicyDelegate;
16 class WindowManagerAccessPolicy : public AccessPolicy {
18 WindowManagerAccessPolicy(ConnectionSpecificId connection_id,
19 AccessPolicyDelegate* delegate);
20 virtual ~WindowManagerAccessPolicy();
23 virtual bool CanRemoveViewFromParent(const ServerView* view) const OVERRIDE;
24 virtual bool CanAddView(const ServerView* parent,
25 const ServerView* child) const OVERRIDE;
26 virtual bool CanReorderView(const ServerView* view,
27 const ServerView* relative_view,
28 OrderDirection direction) const OVERRIDE;
29 virtual bool CanDeleteView(const ServerView* view) const OVERRIDE;
30 virtual bool CanGetViewTree(const ServerView* view) const OVERRIDE;
31 virtual bool CanDescendIntoViewForViewTree(
32 const ServerView* view) const OVERRIDE;
33 virtual bool CanEmbed(const ServerView* view) const OVERRIDE;
34 virtual bool CanChangeViewVisibility(const ServerView* view) const OVERRIDE;
35 virtual bool CanSetViewSurfaceId(const ServerView* view) const OVERRIDE;
36 virtual bool CanSetViewBounds(const ServerView* view) const OVERRIDE;
37 virtual bool ShouldNotifyOnHierarchyChange(
38 const ServerView* view,
39 const ServerView** new_parent,
40 const ServerView** old_parent) const OVERRIDE;
43 bool IsViewKnown(const ServerView* view) const;
45 const ConnectionSpecificId connection_id_;
46 AccessPolicyDelegate* delegate_;
48 DISALLOW_COPY_AND_ASSIGN(WindowManagerAccessPolicy);
51 } // namespace service
54 #endif // MOJO_SERVICES_VIEW_MANAGER_WINDOW_MANAGER_ACCESS_POLICY_H_