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

Side by Side Diff: third_party/WebKit/Source/platform/TimerTest.cpp

Issue 2812313002: [scheduler] Remove blink::scheduler::TaskQueue from public API. (Closed)
Patch Set: Rebased & addressed skyostil@'s comment Created 3 years, 8 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "platform/Timer.h" 5 #include "platform/Timer.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <queue> 8 #include <queue>
9 #include "platform/scheduler/base/task_queue_impl.h" 9 #include "platform/scheduler/base/task_queue_impl.h"
10 #include "platform/scheduler/child/web_task_runner_impl.h" 10 #include "platform/scheduler/child/web_task_runner_impl.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 EXPECT_GE(period, 0.0); 47 EXPECT_GE(period, 0.0);
48 platform_->RunForPeriodSeconds(period); 48 platform_->RunForPeriodSeconds(period);
49 } 49 }
50 50
51 // Returns false if there are no pending delayed tasks, otherwise sets |time| 51 // Returns false if there are no pending delayed tasks, otherwise sets |time|
52 // to the delay in seconds till the next pending delayed task is scheduled to 52 // to the delay in seconds till the next pending delayed task is scheduled to
53 // fire. 53 // fire.
54 bool TimeTillNextDelayedTask(double* time) const { 54 bool TimeTillNextDelayedTask(double* time) const {
55 base::TimeTicks next_run_time; 55 base::TimeTicks next_run_time;
56 if (!platform_->GetRendererScheduler() 56 if (!platform_->GetRendererScheduler()
57 ->TimerTaskRunner() 57 ->TimerTaskQueue()
58 ->GetTimeDomain() 58 ->GetTimeDomain()
59 ->NextScheduledRunTime(&next_run_time)) 59 ->NextScheduledRunTime(&next_run_time))
60 return false; 60 return false;
61 *time = (next_run_time - platform_->GetRendererScheduler() 61 *time = (next_run_time - platform_->GetRendererScheduler()
62 ->TimerTaskRunner() 62 ->TimerTaskQueue()
63 ->GetTimeDomain() 63 ->GetTimeDomain()
64 ->Now()) 64 ->Now())
65 .InSecondsF(); 65 .InSecondsF();
66 return true; 66 return true;
67 } 67 }
68 68
69 protected: 69 protected:
70 double start_time_; 70 double start_time_;
71 WTF::Vector<double> run_times_; 71 WTF::Vector<double> run_times_;
72 WTF::Vector<double> next_fire_times_; 72 WTF::Vector<double> next_fire_times_;
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 TimerForTest(RefPtr<WebTaskRunner> web_task_runner, 529 TimerForTest(RefPtr<WebTaskRunner> web_task_runner,
530 TimerFiredClass* timer_fired_class, 530 TimerFiredClass* timer_fired_class,
531 TimerFiredFunction timer_fired_function) 531 TimerFiredFunction timer_fired_function)
532 : TaskRunnerTimer<TimerFiredClass>(std::move(web_task_runner), 532 : TaskRunnerTimer<TimerFiredClass>(std::move(web_task_runner),
533 timer_fired_class, 533 timer_fired_class,
534 timer_fired_function) {} 534 timer_fired_function) {}
535 }; 535 };
536 536
537 TEST_F(TimerTest, UserSuppliedWebTaskRunner) { 537 TEST_F(TimerTest, UserSuppliedWebTaskRunner) {
538 scoped_refptr<scheduler::TaskQueue> task_runner( 538 scoped_refptr<scheduler::TaskQueue> task_runner(
539 platform_->GetRendererScheduler()->NewTimerTaskRunner( 539 platform_->GetRendererScheduler()->NewTimerTaskQueue(
540 scheduler::TaskQueue::QueueType::TEST)); 540 scheduler::TaskQueue::QueueType::TEST));
541 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner = 541 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner =
542 scheduler::WebTaskRunnerImpl::Create(task_runner); 542 scheduler::WebTaskRunnerImpl::Create(task_runner);
543 TimerForTest<TimerTest> timer(web_task_runner, this, 543 TimerForTest<TimerTest> timer(web_task_runner, this,
544 &TimerTest::CountingTask); 544 &TimerTest::CountingTask);
545 timer.StartOneShot(0, BLINK_FROM_HERE); 545 timer.StartOneShot(0, BLINK_FROM_HERE);
546 546
547 // Make sure the task was posted on taskRunner. 547 // Make sure the task was posted on taskRunner.
548 EXPECT_FALSE(task_runner->IsEmpty()); 548 EXPECT_FALSE(task_runner->IsEmpty());
549 } 549 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 RefPtr<WebTaskRunner> task_runner_; 617 RefPtr<WebTaskRunner> task_runner_;
618 std::vector<RefPtr<WebTaskRunner>>* run_order_; 618 std::vector<RefPtr<WebTaskRunner>>* run_order_;
619 }; 619 };
620 620
621 } // namespace 621 } // namespace
622 622
623 TEST_F(TimerTest, MoveToNewTaskRunnerOneShot) { 623 TEST_F(TimerTest, MoveToNewTaskRunnerOneShot) {
624 std::vector<RefPtr<WebTaskRunner>> run_order; 624 std::vector<RefPtr<WebTaskRunner>> run_order;
625 625
626 scoped_refptr<scheduler::TaskQueue> task_runner1( 626 scoped_refptr<scheduler::TaskQueue> task_runner1(
627 platform_->GetRendererScheduler()->NewTimerTaskRunner( 627 platform_->GetRendererScheduler()->NewTimerTaskQueue(
628 scheduler::TaskQueue::QueueType::TEST)); 628 scheduler::TaskQueue::QueueType::TEST));
629 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner1 = 629 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner1 =
630 scheduler::WebTaskRunnerImpl::Create(task_runner1); 630 scheduler::WebTaskRunnerImpl::Create(task_runner1);
631 TaskObserver task_observer1(web_task_runner1, &run_order); 631 TaskObserver task_observer1(web_task_runner1, &run_order);
632 task_runner1->AddTaskObserver(&task_observer1); 632 task_runner1->AddTaskObserver(&task_observer1);
633 633
634 scoped_refptr<scheduler::TaskQueue> task_runner2( 634 scoped_refptr<scheduler::TaskQueue> task_runner2(
635 platform_->GetRendererScheduler()->NewTimerTaskRunner( 635 platform_->GetRendererScheduler()->NewTimerTaskQueue(
636 scheduler::TaskQueue::QueueType::TEST)); 636 scheduler::TaskQueue::QueueType::TEST));
637 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner2 = 637 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner2 =
638 scheduler::WebTaskRunnerImpl::Create(task_runner2); 638 scheduler::WebTaskRunnerImpl::Create(task_runner2);
639 TaskObserver task_observer2(web_task_runner2, &run_order); 639 TaskObserver task_observer2(web_task_runner2, &run_order);
640 task_runner2->AddTaskObserver(&task_observer2); 640 task_runner2->AddTaskObserver(&task_observer2);
641 641
642 TimerForTest<TimerTest> timer(web_task_runner1, this, 642 TimerForTest<TimerTest> timer(web_task_runner1, this,
643 &TimerTest::CountingTask); 643 &TimerTest::CountingTask);
644 644
645 double start_time = MonotonicallyIncreasingTime(); 645 double start_time = MonotonicallyIncreasingTime();
(...skipping 11 matching lines...) Expand all
657 EXPECT_THAT(run_order, ElementsAre(web_task_runner2)); 657 EXPECT_THAT(run_order, ElementsAre(web_task_runner2));
658 658
659 EXPECT_TRUE(task_runner1->IsEmpty()); 659 EXPECT_TRUE(task_runner1->IsEmpty());
660 EXPECT_TRUE(task_runner2->IsEmpty()); 660 EXPECT_TRUE(task_runner2->IsEmpty());
661 } 661 }
662 662
663 TEST_F(TimerTest, MoveToNewTaskRunnerRepeating) { 663 TEST_F(TimerTest, MoveToNewTaskRunnerRepeating) {
664 std::vector<RefPtr<WebTaskRunner>> run_order; 664 std::vector<RefPtr<WebTaskRunner>> run_order;
665 665
666 scoped_refptr<scheduler::TaskQueue> task_runner1( 666 scoped_refptr<scheduler::TaskQueue> task_runner1(
667 platform_->GetRendererScheduler()->NewTimerTaskRunner( 667 platform_->GetRendererScheduler()->NewTimerTaskQueue(
668 scheduler::TaskQueue::QueueType::TEST)); 668 scheduler::TaskQueue::QueueType::TEST));
669 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner1 = 669 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner1 =
670 scheduler::WebTaskRunnerImpl::Create(task_runner1); 670 scheduler::WebTaskRunnerImpl::Create(task_runner1);
671 TaskObserver task_observer1(web_task_runner1, &run_order); 671 TaskObserver task_observer1(web_task_runner1, &run_order);
672 task_runner1->AddTaskObserver(&task_observer1); 672 task_runner1->AddTaskObserver(&task_observer1);
673 673
674 scoped_refptr<scheduler::TaskQueue> task_runner2( 674 scoped_refptr<scheduler::TaskQueue> task_runner2(
675 platform_->GetRendererScheduler()->NewTimerTaskRunner( 675 platform_->GetRendererScheduler()->NewTimerTaskQueue(
676 scheduler::TaskQueue::QueueType::TEST)); 676 scheduler::TaskQueue::QueueType::TEST));
677 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner2 = 677 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner2 =
678 scheduler::WebTaskRunnerImpl::Create(task_runner2); 678 scheduler::WebTaskRunnerImpl::Create(task_runner2);
679 TaskObserver task_observer2(web_task_runner2, &run_order); 679 TaskObserver task_observer2(web_task_runner2, &run_order);
680 task_runner2->AddTaskObserver(&task_observer2); 680 task_runner2->AddTaskObserver(&task_observer2);
681 681
682 TimerForTest<TimerTest> timer(web_task_runner1, this, 682 TimerForTest<TimerTest> timer(web_task_runner1, this,
683 &TimerTest::CountingTask); 683 &TimerTest::CountingTask);
684 684
685 double start_time = MonotonicallyIncreasingTime(); 685 double start_time = MonotonicallyIncreasingTime();
(...skipping 13 matching lines...) Expand all
699 web_task_runner2, web_task_runner2)); 699 web_task_runner2, web_task_runner2));
700 700
701 EXPECT_TRUE(task_runner1->IsEmpty()); 701 EXPECT_TRUE(task_runner1->IsEmpty());
702 EXPECT_FALSE(task_runner2->IsEmpty()); 702 EXPECT_FALSE(task_runner2->IsEmpty());
703 } 703 }
704 704
705 // This test checks that when inactive timer is moved to a different task 705 // This test checks that when inactive timer is moved to a different task
706 // runner it isn't activated. 706 // runner it isn't activated.
707 TEST_F(TimerTest, MoveToNewTaskRunnerWithoutTasks) { 707 TEST_F(TimerTest, MoveToNewTaskRunnerWithoutTasks) {
708 scoped_refptr<scheduler::TaskQueue> task_runner1( 708 scoped_refptr<scheduler::TaskQueue> task_runner1(
709 platform_->GetRendererScheduler()->NewTimerTaskRunner( 709 platform_->GetRendererScheduler()->NewTimerTaskQueue(
710 scheduler::TaskQueue::QueueType::TEST)); 710 scheduler::TaskQueue::QueueType::TEST));
711 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner1 = 711 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner1 =
712 scheduler::WebTaskRunnerImpl::Create(task_runner1); 712 scheduler::WebTaskRunnerImpl::Create(task_runner1);
713 713
714 scoped_refptr<scheduler::TaskQueue> task_runner2( 714 scoped_refptr<scheduler::TaskQueue> task_runner2(
715 platform_->GetRendererScheduler()->NewTimerTaskRunner( 715 platform_->GetRendererScheduler()->NewTimerTaskQueue(
716 scheduler::TaskQueue::QueueType::TEST)); 716 scheduler::TaskQueue::QueueType::TEST));
717 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner2 = 717 RefPtr<scheduler::WebTaskRunnerImpl> web_task_runner2 =
718 scheduler::WebTaskRunnerImpl::Create(task_runner2); 718 scheduler::WebTaskRunnerImpl::Create(task_runner2);
719 719
720 TimerForTest<TimerTest> timer(web_task_runner1, this, 720 TimerForTest<TimerTest> timer(web_task_runner1, this,
721 &TimerTest::CountingTask); 721 &TimerTest::CountingTask);
722 722
723 platform_->RunUntilIdle(); 723 platform_->RunUntilIdle();
724 EXPECT_TRUE(!run_times_.size()); 724 EXPECT_TRUE(!run_times_.size());
725 EXPECT_TRUE(task_runner1->IsEmpty()); 725 EXPECT_TRUE(task_runner1->IsEmpty());
726 EXPECT_TRUE(task_runner2->IsEmpty()); 726 EXPECT_TRUE(task_runner2->IsEmpty());
727 } 727 }
728 728
729 } // namespace 729 } // namespace
730 } // namespace blink 730 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698