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

Side by Side Diff: content/renderer/scheduler/renderer_scheduler_impl_unittest.cc

Issue 902783003: MouseMove when the mouse is down to signal compositor priority (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 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 "content/renderer/scheduler/renderer_scheduler_impl.h" 5 #include "content/renderer/scheduler/renderer_scheduler_impl.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "cc/output/begin_frame_args.h" 8 #include "cc/output/begin_frame_args.h"
9 #include "cc/test/ordered_simple_task_runner.h" 9 #include "cc/test/ordered_simple_task_runner.h"
10 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 378
379 scheduler_->DidAnimateForInputOnCompositorThread(); 379 scheduler_->DidAnimateForInputOnCompositorThread();
380 EnableIdleTasks(); 380 EnableIdleTasks();
381 RunUntilIdle(); 381 RunUntilIdle();
382 EXPECT_THAT(order, testing::ElementsAre(std::string("C1"), std::string("C2"), 382 EXPECT_THAT(order, testing::ElementsAre(std::string("C1"), std::string("C2"),
383 std::string("D1"), std::string("D2"), 383 std::string("D1"), std::string("D2"),
384 std::string("I1"))); 384 std::string("I1")));
385 } 385 }
386 386
387 TEST_F(RendererSchedulerImplTest, 387 TEST_F(RendererSchedulerImplTest,
388 DidReceiveInputEventOnCompositorThread_IgnoresMouseEvents) { 388 DidReceiveInputEventOnCompositorThread_IgnoresMouseMove_InIsolation) {
389 std::vector<std::string> order; 389 std::vector<std::string> order;
390 390
391 idle_task_runner_->PostIdleTask( 391 idle_task_runner_->PostIdleTask(
392 FROM_HERE, 392 FROM_HERE,
393 base::Bind(&AppendToVectorIdleTestTask, &order, std::string("I1"))); 393 base::Bind(&AppendToVectorIdleTestTask, &order, std::string("I1")));
394 default_task_runner_->PostTask( 394 default_task_runner_->PostTask(
395 FROM_HERE, 395 FROM_HERE,
396 base::Bind(&AppendToVectorTestTask, &order, std::string("D1"))); 396 base::Bind(&AppendToVectorTestTask, &order, std::string("D1")));
397 compositor_task_runner_->PostTask( 397 compositor_task_runner_->PostTask(
398 FROM_HERE, 398 FROM_HERE,
399 base::Bind(&AppendToVectorTestTask, &order, std::string("C1"))); 399 base::Bind(&AppendToVectorTestTask, &order, std::string("C1")));
400 default_task_runner_->PostTask( 400 default_task_runner_->PostTask(
401 FROM_HERE, 401 FROM_HERE,
402 base::Bind(&AppendToVectorTestTask, &order, std::string("D2"))); 402 base::Bind(&AppendToVectorTestTask, &order, std::string("D2")));
403 compositor_task_runner_->PostTask( 403 compositor_task_runner_->PostTask(
404 FROM_HERE, 404 FROM_HERE,
405 base::Bind(&AppendToVectorTestTask, &order, std::string("C2"))); 405 base::Bind(&AppendToVectorTestTask, &order, std::string("C2")));
406 406
407 scheduler_->DidReceiveInputEventOnCompositorThread( 407 scheduler_->DidReceiveInputEventOnCompositorThread(
408 blink::WebInputEvent::MouseMove); 408 blink::WebInputEvent::MouseMove);
409 EnableIdleTasks(); 409 EnableIdleTasks();
410 RunUntilIdle(); 410 RunUntilIdle();
411 // Note compositor tasks are not prioritized. 411 // Note compositor tasks are not prioritized.
412 EXPECT_THAT(order, testing::ElementsAre(std::string("D1"), std::string("C1"), 412 EXPECT_THAT(order, testing::ElementsAre(std::string("D1"), std::string("C1"),
413 std::string("D2"), std::string("C2"), 413 std::string("D2"), std::string("C2"),
414 std::string("I1"))); 414 std::string("I1")));
415 } 415 }
416 416
417 TEST_F(RendererSchedulerImplTest, 417 TEST_F(RendererSchedulerImplTest,
418 DidReceiveInputEventOnCompositorThread_IgnoresMouseMove_WhenMouseUp) {
419 std::vector<std::string> order;
420
421 idle_task_runner_->PostIdleTask(
422 FROM_HERE,
423 base::Bind(&AppendToVectorIdleTestTask, &order, std::string("I1")));
424 default_task_runner_->PostTask(
425 FROM_HERE,
426 base::Bind(&AppendToVectorTestTask, &order, std::string("D1")));
427 compositor_task_runner_->PostTask(
428 FROM_HERE,
429 base::Bind(&AppendToVectorTestTask, &order, std::string("C1")));
430 default_task_runner_->PostTask(
431 FROM_HERE,
432 base::Bind(&AppendToVectorTestTask, &order, std::string("D2")));
433 compositor_task_runner_->PostTask(
434 FROM_HERE,
435 base::Bind(&AppendToVectorTestTask, &order, std::string("C2")));
436
437 scheduler_->DidReceiveInputEventOnCompositorThread(
438 blink::WebInputEvent::MouseDown);
439 scheduler_->DidReceiveInputEventOnCompositorThread(
440 blink::WebInputEvent::MouseUp);
441 scheduler_->DidReceiveInputEventOnCompositorThread(
442 blink::WebInputEvent::MouseMove);
443 EnableIdleTasks();
444 RunUntilIdle();
445 // Note compositor tasks are not prioritized.
446 EXPECT_THAT(order, testing::ElementsAre(std::string("D1"), std::string("C1"),
447 std::string("D2"), std::string("C2"),
448 std::string("I1")));
449 }
450
451 TEST_F(RendererSchedulerImplTest,
452 DidReceiveInputEventOnCompositorThread_MouseMove_WhenMouseDown) {
453 std::vector<std::string> order;
454
455 idle_task_runner_->PostIdleTask(
456 FROM_HERE,
457 base::Bind(&AppendToVectorIdleTestTask, &order, std::string("I1")));
458 default_task_runner_->PostTask(
459 FROM_HERE,
460 base::Bind(&AppendToVectorTestTask, &order, std::string("D1")));
461 compositor_task_runner_->PostTask(
462 FROM_HERE,
463 base::Bind(&AppendToVectorTestTask, &order, std::string("C1")));
464 default_task_runner_->PostTask(
465 FROM_HERE,
466 base::Bind(&AppendToVectorTestTask, &order, std::string("D2")));
467 compositor_task_runner_->PostTask(
468 FROM_HERE,
469 base::Bind(&AppendToVectorTestTask, &order, std::string("C2")));
470
471 scheduler_->DidReceiveInputEventOnCompositorThread(
472 blink::WebInputEvent::MouseDown);
473 scheduler_->DidReceiveInputEventOnCompositorThread(
474 blink::WebInputEvent::MouseMove);
475 EnableIdleTasks();
476 RunUntilIdle();
477 // Note compositor tasks are not prioritized.
478 EXPECT_THAT(order, testing::ElementsAre(std::string("C1"), std::string("C2"),
479 std::string("D1"), std::string("D2"),
480 std::string("I1")));
481 }
482
483 TEST_F(RendererSchedulerImplTest,
418 DidReceiveInputEventOnCompositorThread_IgnoresKeyboardEvents) { 484 DidReceiveInputEventOnCompositorThread_IgnoresKeyboardEvents) {
419 std::vector<std::string> order; 485 std::vector<std::string> order;
420 486
421 idle_task_runner_->PostIdleTask( 487 idle_task_runner_->PostIdleTask(
422 FROM_HERE, 488 FROM_HERE,
423 base::Bind(&AppendToVectorIdleTestTask, &order, std::string("I1"))); 489 base::Bind(&AppendToVectorIdleTestTask, &order, std::string("I1")));
424 default_task_runner_->PostTask( 490 default_task_runner_->PostTask(
425 FROM_HERE, 491 FROM_HERE,
426 base::Bind(&AppendToVectorTestTask, &order, std::string("D1"))); 492 base::Bind(&AppendToVectorTestTask, &order, std::string("D1")));
427 compositor_task_runner_->PostTask( 493 compositor_task_runner_->PostTask(
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 FROM_HERE, base::Bind(&PostingYieldingTestTask, scheduler_.get(), 647 FROM_HERE, base::Bind(&PostingYieldingTestTask, scheduler_.get(),
582 compositor_task_runner_, true, &should_yield_before, 648 compositor_task_runner_, true, &should_yield_before,
583 &should_yield_after)); 649 &should_yield_after));
584 RunUntilIdle(); 650 RunUntilIdle();
585 // We should be able to switch to compositor priority mid-task. 651 // We should be able to switch to compositor priority mid-task.
586 EXPECT_FALSE(should_yield_before); 652 EXPECT_FALSE(should_yield_before);
587 EXPECT_TRUE(should_yield_after); 653 EXPECT_TRUE(should_yield_after);
588 } 654 }
589 655
590 } // namespace content 656 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698