Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / mojo / services / view_manager / window_manager_access_policy.h
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.
4
5 #ifndef MOJO_SERVICES_VIEW_MANAGER_WINDOW_MANAGER_ACCESS_POLICY_H_
6 #define MOJO_SERVICES_VIEW_MANAGER_WINDOW_MANAGER_ACCESS_POLICY_H_
7
8 #include "base/basictypes.h"
9 #include "mojo/services/view_manager/access_policy.h"
10
11 namespace mojo {
12 namespace service {
13
14 class AccessPolicyDelegate;
15
16 class WindowManagerAccessPolicy : public AccessPolicy {
17  public:
18   WindowManagerAccessPolicy(ConnectionSpecificId connection_id,
19                             AccessPolicyDelegate* delegate);
20   virtual ~WindowManagerAccessPolicy();
21
22   // AccessPolicy:
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;
41
42  private:
43   bool IsViewKnown(const ServerView* view) const;
44
45   const ConnectionSpecificId connection_id_;
46   AccessPolicyDelegate* delegate_;
47
48   DISALLOW_COPY_AND_ASSIGN(WindowManagerAccessPolicy);
49 };
50
51 }  // namespace service
52 }  // namespace mojo
53
54 #endif  // MOJO_SERVICES_VIEW_MANAGER_WINDOW_MANAGER_ACCESS_POLICY_H_