Chromium Code Reviews| Index: cc/scheduler/begin_frame_source_unittest.cc |
| diff --git a/cc/scheduler/begin_frame_source_unittest.cc b/cc/scheduler/begin_frame_source_unittest.cc |
| index a4cf4b59268e9b5aa201c6ea9a58ef0adee4ed11..d1800460f842cd88409cdd36fd99867e65902dc3 100644 |
| --- a/cc/scheduler/begin_frame_source_unittest.cc |
| +++ b/cc/scheduler/begin_frame_source_unittest.cc |
| @@ -573,5 +573,31 @@ TEST_F(ExternalBeginFrameSourceTest, OnBeginFrameChecksBeginFrameContinuity) { |
| source2.OnBeginFrame(args); |
| } |
| +// https://crbug.com/730218: Avoid DCHECK crash in |
| +// ExternalBeginFrameSource::GetMissedBeginFrameArgs. |
| +TEST_F(ExternalBeginFrameSourceTest, GetMissedBeginFrameArgs) { |
| + BeginFrameArgs args = CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, |
| + 2, 10000, 10100, 100); |
| + source_->OnBeginFrame(args); |
| + |
| + EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false); |
| + EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, 0, 2, 10000, 10100, 100); |
| + source_->AddObserver(obs_.get()); |
| + source_->RemoveObserver(obs_.get()); |
| + |
| + // Out of order frame_time. This might not be valid but still shouldn't |
| + // cause a DCHECK in ExternalBeginFrameSource code. |
| + args = CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 0, 2, 9999, 10100, |
| + 101); |
| + source_->OnBeginFrame(args); |
| + |
| + EXPECT_CALL((*client_), OnNeedsBeginFrames(true)).Times(1); |
| + EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false); |
| + EXPECT_CALL(*obs_, OnBeginFrame(CreateBeginFrameArgsForTesting( |
|
sunnyps
2017/06/07 23:22:24
nit: EXPECT_CALL(*obs_, _) instead? We don't want
stanisc
2017/06/07 23:36:33
Done. I tried that initially but couldn't make it
|
| + BEGINFRAME_FROM_HERE, 0, 1, 9999, 10100, 101))) |
| + .Times(0); |
| + source_->AddObserver(obs_.get()); |
| +} |
| + |
| } // namespace |
| } // namespace cc |