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

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

Issue 1028333002: Chromium -> Mojo roll. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 9 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/logging.h" 10 #include "base/logging.h"
(...skipping 1734 matching lines...) Expand 10 before | Expand all | Expand 10 after
1745 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_); 1745 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_);
1746 1746
1747 client_->Reset(); 1747 client_->Reset();
1748 EXPECT_SCOPED(AdvanceFrame()); 1748 EXPECT_SCOPED(AdvanceFrame());
1749 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2); 1749 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2);
1750 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2); 1750 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2);
1751 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending()); 1751 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending());
1752 1752
1753 client_->Reset(); 1753 client_->Reset();
1754 scheduler_->DidLoseOutputSurface(); 1754 scheduler_->DidLoseOutputSurface();
1755 // Do nothing when impl frame is in deadine pending state. 1755 // SetNeedsBeginFrames(false) is not called until the end of the frame.
1756 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 0, 2); 1756 EXPECT_NO_ACTION(client_);
1757 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 1, 2);
1758 1757
1759 client_->Reset(); 1758 client_->Reset();
1760 scheduler_->NotifyBeginMainFrameStarted(); 1759 scheduler_->NotifyBeginMainFrameStarted();
1761 scheduler_->NotifyReadyToCommit(); 1760 scheduler_->NotifyReadyToCommit();
1762 EXPECT_ACTION("ScheduledActionCommit", client_, 0, 1); 1761 EXPECT_ACTION("ScheduledActionCommit", client_, 0, 1);
1763 1762
1764 client_->Reset(); 1763 client_->Reset();
1765 task_runner().RunPendingTasks(); // Run posted deadline. 1764 task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true));
1766 EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_); 1765 EXPECT_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_, 0, 3);
1766 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3);
1767 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 2, 3);
1767 } 1768 }
1768 1769
1769 void SchedulerTest::DidLoseOutputSurfaceAfterBeginFrameStartedWithHighLatency( 1770 void SchedulerTest::DidLoseOutputSurfaceAfterBeginFrameStartedWithHighLatency(
1770 bool impl_side_painting) { 1771 bool impl_side_painting) {
1771 scheduler_settings_.impl_side_painting = impl_side_painting; 1772 scheduler_settings_.impl_side_painting = impl_side_painting;
1772 scheduler_settings_.use_external_begin_frame_source = true; 1773 scheduler_settings_.use_external_begin_frame_source = true;
1773 SetUpScheduler(true); 1774 SetUpScheduler(true);
1774 1775
1775 // SetNeedsCommit should begin the frame. 1776 // SetNeedsCommit should begin the frame.
1776 scheduler_->SetNeedsCommit(); 1777 scheduler_->SetNeedsCommit();
1777 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_); 1778 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_);
1778 1779
1779 client_->Reset(); 1780 client_->Reset();
1780 EXPECT_SCOPED(AdvanceFrame()); 1781 EXPECT_SCOPED(AdvanceFrame());
1781 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2); 1782 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2);
1782 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2); 1783 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2);
1783 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending()); 1784 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending());
1784 1785
1785 client_->Reset(); 1786 client_->Reset();
1786 scheduler_->DidLoseOutputSurface(); 1787 scheduler_->DidLoseOutputSurface();
1787 // Do nothing when impl frame is in deadine pending state. 1788 // Do nothing when impl frame is in deadine pending state.
1788 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 0, 2); 1789 EXPECT_NO_ACTION(client_);
1789 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 1, 2);
1790 1790
1791 client_->Reset(); 1791 client_->Reset();
1792 // Run posted deadline. 1792 // Run posted deadline.
1793 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending()); 1793 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending());
1794 task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true)); 1794 task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true));
1795 // OnBeginImplFrameDeadline didn't schedule any actions because main frame is 1795 // OnBeginImplFrameDeadline didn't schedule output surface creation because
1796 // not yet completed. 1796 // main frame is not yet completed.
1797 EXPECT_NO_ACTION(client_); 1797 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 0, 2);
1798 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 1, 2);
1798 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); 1799 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending());
1799 1800
1800 // BeginImplFrame is not started. 1801 // BeginImplFrame is not started.
1802 client_->Reset();
1801 task_runner().RunUntilTime(now_src()->Now() + 1803 task_runner().RunUntilTime(now_src()->Now() +
1802 base::TimeDelta::FromMilliseconds(10)); 1804 base::TimeDelta::FromMilliseconds(10));
1803 EXPECT_NO_ACTION(client_); 1805 EXPECT_NO_ACTION(client_);
1804 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); 1806 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending());
1805 1807
1806 client_->Reset(); 1808 client_->Reset();
1807 scheduler_->NotifyBeginMainFrameStarted(); 1809 scheduler_->NotifyBeginMainFrameStarted();
1808 scheduler_->NotifyReadyToCommit(); 1810 scheduler_->NotifyReadyToCommit();
1809 if (impl_side_painting) { 1811 if (impl_side_painting) {
1810 EXPECT_ACTION("ScheduledActionCommit", client_, 0, 3); 1812 EXPECT_ACTION("ScheduledActionCommit", client_, 0, 3);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1844 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2); 1846 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2);
1845 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending()); 1847 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending());
1846 1848
1847 client_->Reset(); 1849 client_->Reset();
1848 scheduler_->NotifyBeginMainFrameStarted(); 1850 scheduler_->NotifyBeginMainFrameStarted();
1849 scheduler_->NotifyReadyToCommit(); 1851 scheduler_->NotifyReadyToCommit();
1850 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client_); 1852 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client_);
1851 1853
1852 client_->Reset(); 1854 client_->Reset();
1853 scheduler_->DidLoseOutputSurface(); 1855 scheduler_->DidLoseOutputSurface();
1856 // SetNeedsBeginFrames(false) is not called until the end of the frame.
1854 if (impl_side_painting) { 1857 if (impl_side_painting) {
1855 // Sync tree should be forced to activate. 1858 // Sync tree should be forced to activate.
1856 EXPECT_ACTION("ScheduledActionActivateSyncTree", client_, 0, 3); 1859 EXPECT_SINGLE_ACTION("ScheduledActionActivateSyncTree", client_);
1857 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3);
1858 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 2, 3);
1859 } else { 1860 } else {
1860 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 0, 2); 1861 EXPECT_NO_ACTION(client_);
1861 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 1, 2);
1862 } 1862 }
1863 1863
1864 client_->Reset(); 1864 client_->Reset();
1865 task_runner().RunPendingTasks(); // Run posted deadline. 1865 task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true));
1866 EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_); 1866 EXPECT_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_, 0, 3);
1867 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3);
1868 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 2, 3);
1867 } 1869 }
1868 1870
1869 TEST_F(SchedulerTest, DidLoseOutputSurfaceAfterReadyToCommit) { 1871 TEST_F(SchedulerTest, DidLoseOutputSurfaceAfterReadyToCommit) {
1870 DidLoseOutputSurfaceAfterReadyToCommit(false); 1872 DidLoseOutputSurfaceAfterReadyToCommit(false);
1871 } 1873 }
1872 1874
1873 TEST_F(SchedulerTest, DidLoseOutputSurfaceAfterReadyToCommitWithImplPainting) { 1875 TEST_F(SchedulerTest, DidLoseOutputSurfaceAfterReadyToCommitWithImplPainting) {
1874 DidLoseOutputSurfaceAfterReadyToCommit(true); 1876 DidLoseOutputSurfaceAfterReadyToCommit(true);
1875 } 1877 }
1876 1878
1877 TEST_F(SchedulerTest, DidLoseOutputSurfaceAfterSetNeedsPrepareTiles) { 1879 TEST_F(SchedulerTest, DidLoseOutputSurfaceAfterSetNeedsPrepareTiles) {
1878 scheduler_settings_.use_external_begin_frame_source = true; 1880 scheduler_settings_.use_external_begin_frame_source = true;
1879 SetUpScheduler(true); 1881 SetUpScheduler(true);
1880 1882
1881 scheduler_->SetNeedsPrepareTiles(); 1883 scheduler_->SetNeedsPrepareTiles();
1882 scheduler_->SetNeedsRedraw(); 1884 scheduler_->SetNeedsRedraw();
1883 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_); 1885 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_);
1884 1886
1885 client_->Reset(); 1887 client_->Reset();
1886 EXPECT_SCOPED(AdvanceFrame()); 1888 EXPECT_SCOPED(AdvanceFrame());
1887 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2); 1889 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2);
1888 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 2); 1890 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 2);
1889 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending()); 1891 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending());
1890 1892
1891 client_->Reset(); 1893 client_->Reset();
1892 scheduler_->DidLoseOutputSurface(); 1894 scheduler_->DidLoseOutputSurface();
1893 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 0, 2); 1895 // SetNeedsBeginFrames(false) is not called until the end of the frame.
1894 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 1, 2); 1896 EXPECT_NO_ACTION(client_);
1895 1897
1896 client_->Reset(); 1898 client_->Reset();
1897 task_runner().RunPendingTasks(); // Run posted deadline. 1899 task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true));
1898 EXPECT_ACTION("ScheduledActionPrepareTiles", client_, 0, 2); 1900 EXPECT_ACTION("ScheduledActionPrepareTiles", client_, 0, 4);
1899 EXPECT_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_, 1, 2); 1901 EXPECT_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_, 1, 4);
1902 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 2, 4);
1903 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 3, 4);
1900 } 1904 }
1901 1905
1902 TEST_F(SchedulerTest, DidLoseOutputSurfaceAfterBeginRetroFramePosted) { 1906 TEST_F(SchedulerTest, DidLoseOutputSurfaceAfterBeginRetroFramePosted) {
1903 scheduler_settings_.use_external_begin_frame_source = true; 1907 scheduler_settings_.use_external_begin_frame_source = true;
1904 SetUpScheduler(true); 1908 SetUpScheduler(true);
1905 1909
1906 // SetNeedsCommit should begin the frame on the next BeginImplFrame. 1910 // SetNeedsCommit should begin the frame on the next BeginImplFrame.
1907 scheduler_->SetNeedsCommit(); 1911 scheduler_->SetNeedsCommit();
1908 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_); 1912 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_);
1909 1913
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
1997 client_->Reset(); 2001 client_->Reset();
1998 task_runner().RunPendingTasks(); // Run posted BeginRetroFrame. 2002 task_runner().RunPendingTasks(); // Run posted BeginRetroFrame.
1999 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2); 2003 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2);
2000 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 2); 2004 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 2);
2001 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending()); 2005 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending());
2002 EXPECT_TRUE(client_->needs_begin_frames()); 2006 EXPECT_TRUE(client_->needs_begin_frames());
2003 2007
2004 client_->Reset(); 2008 client_->Reset();
2005 EXPECT_FALSE(scheduler_->IsBeginRetroFrameArgsEmpty()); 2009 EXPECT_FALSE(scheduler_->IsBeginRetroFrameArgsEmpty());
2006 scheduler_->DidLoseOutputSurface(); 2010 scheduler_->DidLoseOutputSurface();
2007 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 0, 2); 2011 EXPECT_NO_ACTION(client_);
2008 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 1, 2);
2009 EXPECT_TRUE(scheduler_->IsBeginRetroFrameArgsEmpty()); 2012 EXPECT_TRUE(scheduler_->IsBeginRetroFrameArgsEmpty());
2010 2013
2011 // BeginImplFrame deadline should abort drawing. 2014 // BeginImplFrame deadline should abort drawing.
2012 client_->Reset(); 2015 client_->Reset();
2013 task_runner().RunPendingTasks(); // Run posted deadline. 2016 task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true));
2014 EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_); 2017 EXPECT_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_, 0, 3);
2018 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3);
2019 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 2, 3);
2015 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); 2020 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending());
2016 EXPECT_FALSE(client_->needs_begin_frames()); 2021 EXPECT_FALSE(client_->needs_begin_frames());
2017 2022
2018 // No more BeginRetroFrame because BeginRetroFrame queue is cleared. 2023 // No more BeginRetroFrame because BeginRetroFrame queue is cleared.
2019 client_->Reset(); 2024 client_->Reset();
2020 task_runner().RunPendingTasks(); 2025 task_runner().RunPendingTasks();
2021 EXPECT_NO_ACTION(client_); 2026 EXPECT_NO_ACTION(client_);
2022 } 2027 }
2023 2028
2024 TEST_F(SchedulerTest, 2029 TEST_F(SchedulerTest, DidLoseOutputSurfaceWithSyntheticBeginFrameSource) {
2025 StopBeginFrameAfterDidLoseOutputSurfaceWithSyntheticBeginFrameSource) {
2026 SetUpScheduler(true); 2030 SetUpScheduler(true);
2027 2031
2028 // SetNeedsCommit should begin the frame on the next BeginImplFrame. 2032 // SetNeedsCommit should begin the frame on the next BeginImplFrame.
2029 EXPECT_FALSE(scheduler_->frame_source().NeedsBeginFrames()); 2033 EXPECT_FALSE(scheduler_->frame_source().NeedsBeginFrames());
2030 scheduler_->SetNeedsCommit(); 2034 scheduler_->SetNeedsCommit();
2031 EXPECT_TRUE(scheduler_->frame_source().NeedsBeginFrames()); 2035 EXPECT_TRUE(scheduler_->frame_source().NeedsBeginFrames());
2032 2036
2033 client_->Reset(); 2037 client_->Reset();
2034 task_runner().RunPendingTasks(); // Run posted Tick. 2038 AdvanceFrame();
2035 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2); 2039 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2);
2036 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2); 2040 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2);
2037 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending()); 2041 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending());
2038 EXPECT_TRUE(scheduler_->frame_source().NeedsBeginFrames()); 2042 EXPECT_TRUE(scheduler_->frame_source().NeedsBeginFrames());
2039 2043
2040 // NotifyReadyToCommit should trigger the commit. 2044 // NotifyReadyToCommit should trigger the commit.
2041 client_->Reset(); 2045 client_->Reset();
2042 scheduler_->NotifyBeginMainFrameStarted(); 2046 scheduler_->NotifyBeginMainFrameStarted();
2043 scheduler_->NotifyReadyToCommit(); 2047 scheduler_->NotifyReadyToCommit();
2044 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client_); 2048 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client_);
2045 EXPECT_TRUE(scheduler_->frame_source().NeedsBeginFrames()); 2049 EXPECT_TRUE(scheduler_->frame_source().NeedsBeginFrames());
2046 2050
2047 client_->Reset(); 2051 client_->Reset();
2048 scheduler_->DidLoseOutputSurface(); 2052 scheduler_->DidLoseOutputSurface();
2049 EXPECT_SINGLE_ACTION("SendBeginMainFrameNotExpectedSoon", client_); 2053 // SetNeedsBeginFrames(false) is not called until the end of the frame.
2050 EXPECT_FALSE(scheduler_->frame_source().NeedsBeginFrames()); 2054 EXPECT_NO_ACTION(client_);
2055 EXPECT_TRUE(scheduler_->frame_source().NeedsBeginFrames());
2051 2056
2052 client_->Reset(); 2057 client_->Reset();
2053 task_runner().RunPendingTasks(); // Run posted deadline. 2058 task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true));
2054 EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_); 2059 EXPECT_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_, 0, 2);
2060 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 1, 2);
2055 EXPECT_FALSE(scheduler_->frame_source().NeedsBeginFrames()); 2061 EXPECT_FALSE(scheduler_->frame_source().NeedsBeginFrames());
2056 } 2062 }
2057 2063
2064 TEST_F(SchedulerTest, DidLoseOutputSurfaceWhenIdle) {
2065 scheduler_settings_.use_external_begin_frame_source = true;
2066 SetUpScheduler(true);
2067
2068 // SetNeedsCommit should begin the frame.
2069 scheduler_->SetNeedsCommit();
2070 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_);
2071
2072 client_->Reset();
2073 EXPECT_SCOPED(AdvanceFrame());
2074 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2);
2075 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2);
2076 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending());
2077
2078 client_->Reset();
2079 scheduler_->NotifyBeginMainFrameStarted();
2080 scheduler_->NotifyReadyToCommit();
2081 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client_);
2082
2083 client_->Reset();
2084 task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(true));
2085 EXPECT_ACTION("ScheduledActionAnimate", client_, 0, 2);
2086 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client_, 1, 2);
2087
2088 // Idle time between BeginFrames.
2089 client_->Reset();
2090 scheduler_->DidLoseOutputSurface();
2091 EXPECT_ACTION("ScheduledActionBeginOutputSurfaceCreation", client_, 0, 3);
2092 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3);
2093 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 2, 3);
2094 }
2095
2058 TEST_F(SchedulerTest, ScheduledActionActivateAfterBecomingInvisible) { 2096 TEST_F(SchedulerTest, ScheduledActionActivateAfterBecomingInvisible) {
2059 scheduler_settings_.impl_side_painting = true; 2097 scheduler_settings_.impl_side_painting = true;
2060 scheduler_settings_.use_external_begin_frame_source = true; 2098 scheduler_settings_.use_external_begin_frame_source = true;
2061 SetUpScheduler(true); 2099 SetUpScheduler(true);
2062 2100
2063 // SetNeedsCommit should begin the frame. 2101 // SetNeedsCommit should begin the frame.
2064 scheduler_->SetNeedsCommit(); 2102 scheduler_->SetNeedsCommit();
2065 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_); 2103 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_);
2066 2104
2067 client_->Reset(); 2105 client_->Reset();
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
2229 client_->Reset(); 2267 client_->Reset();
2230 2268
2231 task_runner().RunPendingTasks(); // Run posted deadline. 2269 task_runner().RunPendingTasks(); // Run posted deadline.
2232 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 0, 2); 2270 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 0, 2);
2233 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 1, 2); 2271 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 1, 2);
2234 client_->Reset(); 2272 client_->Reset();
2235 } 2273 }
2236 2274
2237 } // namespace 2275 } // namespace
2238 } // namespace cc 2276 } // namespace cc
OLDNEW
« no previous file with comments | « cc/scheduler/scheduler_state_machine_unittest.cc ('k') | cc/surfaces/surface_display_output_surface.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698