| Index: components/mus/ws/window_manager_access_policy.cc
|
| diff --git a/components/mus/ws/window_manager_access_policy.cc b/components/mus/ws/window_manager_access_policy.cc
|
| index c8c0c34c4b2cc8699da5b2942686e5531e1b44ae..8834801a19754104c3d5c08632264d614cf7559b 100644
|
| --- a/components/mus/ws/window_manager_access_policy.cc
|
| +++ b/components/mus/ws/window_manager_access_policy.cc
|
| @@ -55,7 +55,7 @@ bool WindowManagerAccessPolicy::CanReorderWindow(
|
|
|
| bool WindowManagerAccessPolicy::CanDeleteWindow(
|
| const ServerWindow* window) const {
|
| - return window->id().connection_id == connection_id_;
|
| + return WasCreatedByThisConnection(window);
|
| }
|
|
|
| bool WindowManagerAccessPolicy::CanGetWindowTree(
|
| @@ -74,7 +74,7 @@ bool WindowManagerAccessPolicy::CanEmbed(const ServerWindow* window) const {
|
|
|
| bool WindowManagerAccessPolicy::CanChangeWindowVisibility(
|
| const ServerWindow* window) const {
|
| - if (window->id().connection_id == connection_id_)
|
| + if (WasCreatedByThisConnection(window))
|
| return true;
|
| // The WindowManager can change the visibility of the WindowManager root.
|
| const ServerWindow* root = window->GetRoot();
|
| @@ -83,39 +83,39 @@ bool WindowManagerAccessPolicy::CanChangeWindowVisibility(
|
|
|
| bool WindowManagerAccessPolicy::CanChangeWindowOpacity(
|
| const ServerWindow* window) const {
|
| - return window->id().connection_id == connection_id_;
|
| + return WasCreatedByThisConnection(window);
|
| }
|
|
|
| bool WindowManagerAccessPolicy::CanSetWindowSurface(
|
| const ServerWindow* window,
|
| mus::mojom::SurfaceType surface_type) const {
|
| if (surface_type == mojom::SurfaceType::UNDERLAY)
|
| - return window->id().connection_id == connection_id_;
|
| + return WasCreatedByThisConnection(window);
|
|
|
| if (delegate_->IsWindowRootOfAnotherTreeForAccessPolicy(window))
|
| return false;
|
| - return window->id().connection_id == connection_id_ ||
|
| + return WasCreatedByThisConnection(window) ||
|
| (delegate_->HasRootForAccessPolicy(window));
|
| }
|
|
|
| bool WindowManagerAccessPolicy::CanSetWindowBounds(
|
| const ServerWindow* window) const {
|
| - return window->id().connection_id == connection_id_;
|
| + return WasCreatedByThisConnection(window);
|
| }
|
|
|
| bool WindowManagerAccessPolicy::CanSetWindowProperties(
|
| const ServerWindow* window) const {
|
| - return window->id().connection_id == connection_id_;
|
| + return WasCreatedByThisConnection(window);
|
| }
|
|
|
| bool WindowManagerAccessPolicy::CanSetWindowTextInputState(
|
| const ServerWindow* window) const {
|
| - return window->id().connection_id == connection_id_;
|
| + return WasCreatedByThisConnection(window);
|
| }
|
|
|
| bool WindowManagerAccessPolicy::CanSetCapture(
|
| const ServerWindow* window) const {
|
| - return window->id().connection_id == connection_id_;
|
| + return WasCreatedByThisConnection(window);
|
| }
|
|
|
| bool WindowManagerAccessPolicy::CanSetFocus(const ServerWindow* window) const {
|
| @@ -124,13 +124,19 @@ bool WindowManagerAccessPolicy::CanSetFocus(const ServerWindow* window) const {
|
|
|
| bool WindowManagerAccessPolicy::CanSetClientArea(
|
| const ServerWindow* window) const {
|
| - return window->id().connection_id == connection_id_ ||
|
| + return WasCreatedByThisConnection(window) ||
|
| + delegate_->HasRootForAccessPolicy(window);
|
| +}
|
| +
|
| +bool WindowManagerAccessPolicy::CanSetHitTestMask(
|
| + const ServerWindow* window) const {
|
| + return WasCreatedByThisConnection(window) ||
|
| delegate_->HasRootForAccessPolicy(window);
|
| }
|
|
|
| bool WindowManagerAccessPolicy::CanSetCursorProperties(
|
| const ServerWindow* window) const {
|
| - return window->id().connection_id == connection_id_ ||
|
| + return WasCreatedByThisConnection(window) ||
|
| delegate_->HasRootForAccessPolicy(window);
|
| }
|
|
|
| @@ -169,5 +175,10 @@ bool WindowManagerAccessPolicy::IsValidIdForNewWindow(
|
| return WindowIdFromTransportId(id.id).connection_id == connection_id_;
|
| }
|
|
|
| +bool WindowManagerAccessPolicy::WasCreatedByThisConnection(
|
| + const ServerWindow* window) const {
|
| + return window->id().connection_id == connection_id_;
|
| +}
|
| +
|
| } // namespace ws
|
| } // namespace mus
|
|
|