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

Side by Side Diff: cc/scheduler/scheduler_unittest.cc

Issue 822933004: cc: Trigger deadline immediately when commit is aborted. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/scheduler/scheduler.h" 5 #include "cc/scheduler/scheduler.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 2182 matching lines...) Expand 10 before | Expand all | Expand 10 after
2193 // Disable auto-advancing of now_src 2193 // Disable auto-advancing of now_src
2194 client.task_runner().SetAutoAdvanceNowToPendingTasks(false); 2194 client.task_runner().SetAutoAdvanceNowToPendingTasks(false);
2195 2195
2196 // Deadline task is pending 2196 // Deadline task is pending
2197 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); 2197 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
2198 client.task_runner().RunPendingTasks(); 2198 client.task_runner().RunPendingTasks();
2199 // Deadline task runs immediately 2199 // Deadline task runs immediately
2200 EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); 2200 EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending());
2201 } 2201 }
2202 2202
2203 TEST(SchedulerTest, BeginMainFrameAbortedTriggersImmediateDeadline) {
brianderson 2015/01/09 23:54:22 Does this test fail before this patch?
sunnyps 2015/01/13 19:36:01 Yes, it does.
2204 FakeSchedulerClient client;
2205 SchedulerSettings settings;
2206 settings.use_external_begin_frame_source = true;
2207
2208 CREATE_SCHEDULER_AND_INIT_SURFACE(settings);
2209
2210 scheduler->SetNeedsCommit();
2211 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client);
2212 client.Reset();
2213
2214 client.AdvanceFrame();
2215 EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
2216 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2);
2217 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
2218 client.Reset();
2219
2220 client.task_runner().RunUntilTime(client.now_src()->Now());
2221 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
2222
2223 scheduler->BeginMainFrameAborted(CommitEarlyOutReason::ABORTED_NOT_VISIBLE);
2224
2225 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
2226 client.task_runner().RunUntilTime(client.now_src()->Now());
2227 EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending());
2228
2229 EXPECT_NO_ACTION(client);
2230 }
2231
2203 } // namespace 2232 } // namespace
2204 } // namespace cc 2233 } // namespace cc
OLDNEW
« cc/scheduler/scheduler_state_machine.cc ('K') | « cc/scheduler/scheduler_state_machine_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698