| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "services/ui/ws/window_tree.h" | 5 #include "services/ui/ws/window_tree.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 created_window_map_[window_id] = window; | 276 created_window_map_[window_id] = window; |
| 277 client_id_to_window_id_map_[client_window_id] = window_id; | 277 client_id_to_window_id_map_[client_window_id] = window_id; |
| 278 window_id_to_client_id_map_[window_id] = client_window_id; | 278 window_id_to_client_id_map_[window_id] = client_window_id; |
| 279 return true; | 279 return true; |
| 280 } | 280 } |
| 281 | 281 |
| 282 bool WindowTree::AddWindow(const ClientWindowId& parent_id, | 282 bool WindowTree::AddWindow(const ClientWindowId& parent_id, |
| 283 const ClientWindowId& child_id) { | 283 const ClientWindowId& child_id) { |
| 284 ServerWindow* parent = GetWindowByClientId(parent_id); | 284 ServerWindow* parent = GetWindowByClientId(parent_id); |
| 285 ServerWindow* child = GetWindowByClientId(child_id); | 285 ServerWindow* child = GetWindowByClientId(child_id); |
| 286 if (parent && child && child->parent() != parent && | 286 DVLOG(3) << "add window client=" << id_ |
| 287 !child->Contains(parent) && access_policy_->CanAddWindow(parent, child)) { | 287 << " client parent window_id=" << parent_id.id |
| 288 Operation op(this, window_server_, OperationType::ADD_WINDOW); | 288 << " global window_id=" |
| 289 parent->Add(child); | 289 << (parent ? WindowIdToTransportId(parent->id()) : 0) |
| 290 return true; | 290 << " client child window_id= " << child_id.id << " global window_id=" |
| 291 << (child ? WindowIdToTransportId(child->id()) : 0); |
| 292 if (!parent) { |
| 293 DVLOG(1) << "add failed, no parent"; |
| 294 return false; |
| 291 } | 295 } |
| 292 return false; | 296 if (!child) { |
| 297 DVLOG(1) << "add failed, no child"; |
| 298 return false; |
| 299 } |
| 300 if (child->parent() == parent) { |
| 301 DVLOG(1) << "add failed, already has parent"; |
| 302 return false; |
| 303 } |
| 304 if (child->Contains(parent)) { |
| 305 DVLOG(1) << "add failed, child contains parent"; |
| 306 return false; |
| 307 } |
| 308 if (!access_policy_->CanAddWindow(parent, child)) { |
| 309 DVLOG(1) << "add failed, access policy denied add"; |
| 310 return false; |
| 311 } |
| 312 Operation op(this, window_server_, OperationType::ADD_WINDOW); |
| 313 parent->Add(child); |
| 314 return true; |
| 293 } | 315 } |
| 294 | 316 |
| 295 bool WindowTree::AddTransientWindow(const ClientWindowId& window_id, | 317 bool WindowTree::AddTransientWindow(const ClientWindowId& window_id, |
| 296 const ClientWindowId& transient_window_id) { | 318 const ClientWindowId& transient_window_id) { |
| 297 ServerWindow* window = GetWindowByClientId(window_id); | 319 ServerWindow* window = GetWindowByClientId(window_id); |
| 298 ServerWindow* transient_window = GetWindowByClientId(transient_window_id); | 320 ServerWindow* transient_window = GetWindowByClientId(transient_window_id); |
| 299 if (window && transient_window && !transient_window->Contains(window) && | 321 if (window && transient_window && !transient_window->Contains(window) && |
| 300 access_policy_->CanAddTransientWindow(window, transient_window)) { | 322 access_policy_->CanAddTransientWindow(window, transient_window)) { |
| 301 Operation op(this, window_server_, OperationType::ADD_TRANSIENT_WINDOW); | 323 Operation op(this, window_server_, OperationType::ADD_TRANSIENT_WINDOW); |
| 302 return window->AddTransientWindow(transient_window); | 324 return window->AddTransientWindow(transient_window); |
| (...skipping 1691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1994 client()->OnCompleteDrop(client_window_id.id, event_flags, cursor_offset, | 2016 client()->OnCompleteDrop(client_window_id.id, event_flags, cursor_offset, |
| 1995 effect_bitmask, callback); | 2017 effect_bitmask, callback); |
| 1996 } | 2018 } |
| 1997 | 2019 |
| 1998 void WindowTree::PerformOnDragDropDone() { | 2020 void WindowTree::PerformOnDragDropDone() { |
| 1999 client()->OnDragDropDone(); | 2021 client()->OnDragDropDone(); |
| 2000 } | 2022 } |
| 2001 | 2023 |
| 2002 } // namespace ws | 2024 } // namespace ws |
| 2003 } // namespace ui | 2025 } // namespace ui |
| OLD | NEW |