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

Unified Diff: third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc

Issue 2708963002: Fix potential DCHECK in TaskQueueThrottler::IncreaseThrottleRefCount (Closed)
Patch Set: Addressing review comments. Created 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc
index 79cef1c6244f84d61a0c8960f4472ce81d3869ff..a884b48aeb81be63a156531fe1ce02754be0025a 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc
@@ -26,6 +26,20 @@
using testing::ElementsAre;
+namespace {
+bool MessageLoopTaskCounter(size_t* count) {
+ *count = *count + 1;
+ return true;
+}
+
+void NopTask() {}
+
+void AddOneTask(size_t* count) {
+ (*count)++;
+}
+
+} // namespace
+
namespace blink {
namespace scheduler {
@@ -248,6 +262,55 @@ TEST_F(TaskQueueThrottlerTest,
EXPECT_TRUE(task_queue_throttler_->task_runner()->IsEmpty());
}
+TEST_F(TaskQueueThrottlerTest, OnTimeDomainHasImmediateWork_EnabledQueue) {
+ task_queue_throttler_->OnTimeDomainHasImmediateWork(timer_queue_.get());
+ // Check PostPumpThrottledTasksLocked was called.
+ EXPECT_FALSE(task_queue_throttler_->task_runner()->IsEmpty());
+}
+
+TEST_F(TaskQueueThrottlerTest, OnTimeDomainHasImmediateWork_DisabledQueue) {
+ std::unique_ptr<TaskQueue::QueueEnabledVoter> voter =
+ timer_queue_->CreateQueueEnabledVoter();
+ voter->SetQueueEnabled(false);
+
+ task_queue_throttler_->OnTimeDomainHasImmediateWork(timer_queue_.get());
+ // Check PostPumpThrottledTasksLocked was not called.
+ EXPECT_TRUE(task_queue_throttler_->task_runner()->IsEmpty());
+}
+
+TEST_F(TaskQueueThrottlerTest,
+ ThrottlingADisabledQueueDoesNotPostPumpThrottledTasks) {
+ timer_queue_->PostTask(FROM_HERE, base::Bind(&NopTask));
+
+ std::unique_ptr<TaskQueue::QueueEnabledVoter> voter =
+ timer_queue_->CreateQueueEnabledVoter();
+ voter->SetQueueEnabled(false);
+
+ task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get());
+ EXPECT_TRUE(task_queue_throttler_->task_runner()->IsEmpty());
+
+ // Enabling it should trigger a call to PostPumpThrottledTasksLocked.
+ voter->SetQueueEnabled(true);
+ EXPECT_FALSE(task_queue_throttler_->task_runner()->IsEmpty());
+}
+
+TEST_F(TaskQueueThrottlerTest,
+ ThrottlingADisabledQueueDoesNotPostPumpThrottledTasks_DelayedTask) {
+ timer_queue_->PostDelayedTask(FROM_HERE, base::Bind(&NopTask),
+ base::TimeDelta::FromMilliseconds(1));
+
+ std::unique_ptr<TaskQueue::QueueEnabledVoter> voter =
+ timer_queue_->CreateQueueEnabledVoter();
+ voter->SetQueueEnabled(false);
+
+ task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get());
+ EXPECT_TRUE(task_queue_throttler_->task_runner()->IsEmpty());
+
+ // Enabling it should trigger a call to PostPumpThrottledTasksLocked.
+ voter->SetQueueEnabled(true);
+ EXPECT_FALSE(task_queue_throttler_->task_runner()->IsEmpty());
+}
+
TEST_F(TaskQueueThrottlerTest, WakeUpForNonDelayedTask) {
std::vector<base::TimeTicks> run_times;
@@ -281,20 +344,6 @@ TEST_F(TaskQueueThrottlerTest, WakeUpForDelayedTask) {
base::TimeDelta::FromMilliseconds(2000.0)));
}
-namespace {
-bool MessageLoopTaskCounter(size_t* count) {
- *count = *count + 1;
- return true;
-}
-
-void NopTask() {}
-
-void AddOneTask(size_t* count) {
- (*count)++;
-}
-
-} // namespace
-
TEST_F(TaskQueueThrottlerTest,
SingleThrottledTaskPumpedAndRunWithNoExtraneousMessageLoopTasks) {
task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get());
« no previous file with comments | « third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698