Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(206)

Side by Side Diff: services/ui/ws/window_manager_state_unittest.cc

Issue 2582823002: WIP: Surface Synchronization System
Patch Set: Only create ClientSurfaceEmbedder if window is visible. Trash it otherwise. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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_manager_state.h" 5 #include "services/ui/ws/window_manager_state.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 WindowTreeTestApi(window_tree()).AckOldestEvent(); 210 WindowTreeTestApi(window_tree()).AckOldestEvent();
211 EXPECT_TRUE(window_manager()->on_accelerator_called()); 211 EXPECT_TRUE(window_manager()->on_accelerator_called());
212 EXPECT_EQ(accelerator->id(), window_manager()->on_accelerator_id()); 212 EXPECT_EQ(accelerator->id(), window_manager()->on_accelerator_id());
213 } 213 }
214 214
215 // Tests that if a pre target accelerator consumes the event no other processing 215 // Tests that if a pre target accelerator consumes the event no other processing
216 // is done. 216 // is done.
217 TEST_F(WindowManagerStateTest, PreTargetConsumed) { 217 TEST_F(WindowManagerStateTest, PreTargetConsumed) {
218 // Set up two trees with focus on a child in the second. 218 // Set up two trees with focus on a child in the second.
219 const ClientWindowId child_window_id(11); 219 const ClientWindowId child_window_id(11);
220 window_tree()->NewWindow(child_window_id, ServerWindow::Properties()); 220 window_tree()->NewWindow(child_window_id, ServerWindow::Properties(),
221 cc::LocalFrameId());
221 ServerWindow* child_window = 222 ServerWindow* child_window =
222 window_tree()->GetWindowByClientId(child_window_id); 223 window_tree()->GetWindowByClientId(child_window_id);
223 window_tree()->AddWindow(FirstRootId(window_tree()), child_window_id); 224 window_tree()->AddWindow(FirstRootId(window_tree()), child_window_id);
224 child_window->SetVisible(true); 225 child_window->SetVisible(true);
225 SetCanFocusUp(child_window); 226 SetCanFocusUp(child_window);
226 tree()->GetDisplay(child_window)->AddActivationParent(child_window->parent()); 227 tree()->GetDisplay(child_window)->AddActivationParent(child_window->parent());
227 ASSERT_TRUE(window_tree()->SetFocus(child_window_id)); 228 ASSERT_TRUE(window_tree()->SetFocus(child_window_id));
228 229
229 // Register a pre-accelerator. 230 // Register a pre-accelerator.
230 uint32_t accelerator_id = 11; 231 uint32_t accelerator_id = 11;
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 OnEventAckTimeout(window()->id().client_id); 420 OnEventAckTimeout(window()->id().client_id);
420 EXPECT_TRUE(window_manager()->on_accelerator_called()); 421 EXPECT_TRUE(window_manager()->on_accelerator_called());
421 EXPECT_EQ(accelerator->id(), window_manager()->on_accelerator_id()); 422 EXPECT_EQ(accelerator->id(), window_manager()->on_accelerator_id());
422 } 423 }
423 424
424 TEST_F(WindowManagerStateTest, InterceptingEmbedderReceivesEvents) { 425 TEST_F(WindowManagerStateTest, InterceptingEmbedderReceivesEvents) {
425 WindowTree* embedder_tree = tree(); 426 WindowTree* embedder_tree = tree();
426 ServerWindow* embedder_root = window(); 427 ServerWindow* embedder_root = window();
427 const ClientWindowId embed_window_id( 428 const ClientWindowId embed_window_id(
428 WindowIdToTransportId(WindowId(embedder_tree->id(), 12))); 429 WindowIdToTransportId(WindowId(embedder_tree->id(), 12)));
429 embedder_tree->NewWindow(embed_window_id, ServerWindow::Properties()); 430 embedder_tree->NewWindow(embed_window_id, ServerWindow::Properties(),
431 cc::LocalFrameId());
430 ServerWindow* embedder_window = 432 ServerWindow* embedder_window =
431 embedder_tree->GetWindowByClientId(embed_window_id); 433 embedder_tree->GetWindowByClientId(embed_window_id);
432 ASSERT_TRUE(embedder_tree->AddWindow( 434 ASSERT_TRUE(embedder_tree->AddWindow(
433 ClientWindowId(WindowIdToTransportId(embedder_root->id())), 435 ClientWindowId(WindowIdToTransportId(embedder_root->id())),
434 embed_window_id)); 436 embed_window_id));
435 437
436 TestWindowTreeClient* embedder_client = wm_client(); 438 TestWindowTreeClient* embedder_client = wm_client();
437 439
438 { 440 {
439 // Do a normal embed. 441 // Do a normal embed.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 ASSERT_EQ(1u, embedder_client->tracker()->changes()->size()); 477 ASSERT_EQ(1u, embedder_client->tracker()->changes()->size());
476 EXPECT_EQ(CHANGE_TYPE_INPUT_EVENT, 478 EXPECT_EQ(CHANGE_TYPE_INPUT_EVENT,
477 (*embedder_client->tracker()->changes())[0].type); 479 (*embedder_client->tracker()->changes())[0].type);
478 WindowTreeTestApi(embedder_tree) 480 WindowTreeTestApi(embedder_tree)
479 .AckLastEvent(mojom::EventResult::UNHANDLED); 481 .AckLastEvent(mojom::EventResult::UNHANDLED);
480 embedder_client->tracker()->changes()->clear(); 482 embedder_client->tracker()->changes()->clear();
481 483
482 // Embed another tree in the embedded tree. 484 // Embed another tree in the embedded tree.
483 const ClientWindowId nested_embed_window_id( 485 const ClientWindowId nested_embed_window_id(
484 WindowIdToTransportId(WindowId(embed_tree->id(), 23))); 486 WindowIdToTransportId(WindowId(embed_tree->id(), 23)));
485 embed_tree->NewWindow(nested_embed_window_id, ServerWindow::Properties()); 487 embed_tree->NewWindow(nested_embed_window_id, ServerWindow::Properties(),
488 cc::LocalFrameId());
486 const ClientWindowId embed_root_id( 489 const ClientWindowId embed_root_id(
487 WindowIdToTransportId((*embed_tree->roots().begin())->id())); 490 WindowIdToTransportId((*embed_tree->roots().begin())->id()));
488 ASSERT_TRUE(embed_tree->AddWindow(embed_root_id, nested_embed_window_id)); 491 ASSERT_TRUE(embed_tree->AddWindow(embed_root_id, nested_embed_window_id));
489 492
490 WindowTree* nested_embed_tree = nullptr; 493 WindowTree* nested_embed_tree = nullptr;
491 TestWindowTreeClient* nested_embed_client_proxy = nullptr; 494 TestWindowTreeClient* nested_embed_client_proxy = nullptr;
492 EmbedAt(embed_tree, nested_embed_window_id, embed_flags, &nested_embed_tree, 495 EmbedAt(embed_tree, nested_embed_window_id, embed_flags, &nested_embed_tree,
493 &nested_embed_client_proxy); 496 &nested_embed_client_proxy);
494 ASSERT_TRUE(nested_embed_client_proxy); 497 ASSERT_TRUE(nested_embed_client_proxy);
495 embed_client_proxy->tracker()->changes()->clear(); 498 embed_client_proxy->tracker()->changes()->clear();
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 ASSERT_EQ(1u, tree->roots().size()); 566 ASSERT_EQ(1u, tree->roots().size());
564 ClientWindowId root_client_id; 567 ClientWindowId root_client_id;
565 ASSERT_TRUE(tree->IsWindowKnown(*(tree->roots().begin()), &root_client_id)); 568 ASSERT_TRUE(tree->IsWindowKnown(*(tree->roots().begin()), &root_client_id));
566 EXPECT_TRUE(tree->DeleteWindow(root_client_id)); 569 EXPECT_TRUE(tree->DeleteWindow(root_client_id));
567 window_server->DestroyTree(tree); 570 window_server->DestroyTree(tree);
568 } 571 }
569 572
570 } // namespace test 573 } // namespace test
571 } // namespace ws 574 } // namespace ws
572 } // namespace ui 575 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698