OLD | NEW |
| (Empty) |
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 COMPONENTS_MUS_WS_DEFAULT_ACCESS_POLICY_H_ | |
6 #define COMPONENTS_MUS_WS_DEFAULT_ACCESS_POLICY_H_ | |
7 | |
8 #include <stdint.h> | |
9 | |
10 #include "base/macros.h" | |
11 #include "components/mus/ws/access_policy.h" | |
12 | |
13 namespace mus { | |
14 namespace ws { | |
15 | |
16 class AccessPolicyDelegate; | |
17 | |
18 // AccessPolicy for all clients, except the window manager. | |
19 class DefaultAccessPolicy : public AccessPolicy { | |
20 public: | |
21 DefaultAccessPolicy(); | |
22 ~DefaultAccessPolicy() override; | |
23 | |
24 // AccessPolicy: | |
25 void Init(ClientSpecificId client_id, | |
26 AccessPolicyDelegate* delegate) override; | |
27 bool CanRemoveWindowFromParent(const ServerWindow* window) const override; | |
28 bool CanAddWindow(const ServerWindow* parent, | |
29 const ServerWindow* child) const override; | |
30 bool CanAddTransientWindow(const ServerWindow* parent, | |
31 const ServerWindow* child) const override; | |
32 bool CanRemoveTransientWindowFromParent( | |
33 const ServerWindow* window) const override; | |
34 bool CanSetModal(const ServerWindow* window) const override; | |
35 bool CanReorderWindow(const ServerWindow* window, | |
36 const ServerWindow* relative_window, | |
37 mojom::OrderDirection direction) const override; | |
38 bool CanDeleteWindow(const ServerWindow* window) const override; | |
39 bool CanGetWindowTree(const ServerWindow* window) const override; | |
40 bool CanDescendIntoWindowForWindowTree( | |
41 const ServerWindow* window) const override; | |
42 bool CanEmbed(const ServerWindow* window) const override; | |
43 bool CanChangeWindowVisibility(const ServerWindow* window) const override; | |
44 bool CanChangeWindowOpacity(const ServerWindow* window) const override; | |
45 bool CanSetWindowSurface(const ServerWindow* window, | |
46 mus::mojom::SurfaceType surface_type) const override; | |
47 bool CanSetWindowBounds(const ServerWindow* window) const override; | |
48 bool CanSetWindowProperties(const ServerWindow* window) const override; | |
49 bool CanSetWindowTextInputState(const ServerWindow* window) const override; | |
50 bool CanSetCapture(const ServerWindow* window) const override; | |
51 bool CanSetFocus(const ServerWindow* window) const override; | |
52 bool CanSetClientArea(const ServerWindow* window) const override; | |
53 bool CanSetHitTestMask(const ServerWindow* window) const override; | |
54 bool CanSetCursorProperties(const ServerWindow* window) const override; | |
55 bool ShouldNotifyOnHierarchyChange( | |
56 const ServerWindow* window, | |
57 const ServerWindow** new_parent, | |
58 const ServerWindow** old_parent) const override; | |
59 const ServerWindow* GetWindowForFocusChange( | |
60 const ServerWindow* focused) override; | |
61 bool CanSetWindowManager() const override; | |
62 bool IsValidIdForNewWindow(const ClientWindowId& id) const override; | |
63 | |
64 private: | |
65 bool WasCreatedByThisClient(const ServerWindow* window) const; | |
66 | |
67 ClientSpecificId client_id_ = 0u; | |
68 AccessPolicyDelegate* delegate_ = nullptr; | |
69 | |
70 DISALLOW_COPY_AND_ASSIGN(DefaultAccessPolicy); | |
71 }; | |
72 | |
73 } // namespace ws | |
74 } // namespace mus | |
75 | |
76 #endif // COMPONENTS_MUS_WS_DEFAULT_ACCESS_POLICY_H_ | |
OLD | NEW |