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 11namespace mojo { 12namespace service { 13 14class AccessPolicyDelegate; 15 16class 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_ 55