diff options
author | kustermann <kustermann@google.com> | 2014-10-14 06:06:29 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-14 13:06:46 +0000 |
commit | 0c972cb5f080fff7b82b86a4445f0faa4393bbc2 (patch) | |
tree | a814c41f4e7adb5ce37d5e7273f244f75fd4aa0d | |
parent | f5a59db3377b727b61f3cc6d18c9a921320d75bb (diff) | |
download | chromium_src-0c972cb5f080fff7b82b86a4445f0faa4393bbc2.zip chromium_src-0c972cb5f080fff7b82b86a4445f0faa4393bbc2.tar.gz chromium_src-0c972cb5f080fff7b82b86a4445f0faa4393bbc2.tar.bz2 |
Attempt to fix flaky ChromeOS test timeouts.
Bisecting the UserAddingScreenTest.ScreenVisibility test timeouts
seems to have identified the causing CL.
This reverts the causing CL
4c6917e303938f0be7beb244abdfbf4723c2162f -- "cc:: Remove SwapAck throttling from Scheduler."
and enables tests again:
reverts 497a57a9b9c372cd58e3e1261d79916e4ca247c2 -- "Disable flaky timeout InlineLoginUIBrowserTest.DifferentStorageId on linux"
reverts ffc3747adcd49ca0185670dd6bc78078b4721544 -- "Disable WebViewAPITest.AcceptTouchEvents on Linux."
reverts efbbf859cec94c1a8d671499d190158fbdce3599 -- "Disabling UserImageManagerTest.SaveUserImageFromProfileImage.".
reverts f827c03bbf5971e2f24e32bd90ce4c40f5ee8f1c -- "Disable SharedOptionsTest.ScreenLockPreferencePrimary."
reverts 6e402f141ae341c5df18ca81e892089c47fae54f -- "Disable PreferencesTest.MultiProfiles."
reverts d65f70589ef04c62678b3e96d674689cbd3fd0c2 -- "Disable NetworkPortalDetectorImplBrowserTest.InSessionDetection."
BUG=423332,423094,423077,423053,423015,422998,422868
TBR=orglofch
Review URL: https://codereview.chromium.org/655783002
Cr-Commit-Position: refs/heads/master@{#299468}
9 files changed, 33 insertions, 79 deletions
diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc index 4f6d43f..a6904ae 100644 --- a/cc/scheduler/scheduler_state_machine.cc +++ b/cc/scheduler/scheduler_state_machine.cc @@ -320,7 +320,7 @@ bool SchedulerStateMachine::ShouldBeginOutputSurfaceCreation() const { if (begin_impl_frame_state_ != BEGIN_IMPL_FRAME_STATE_IDLE) return false; - // We want to clear the pipeline of any pending draws and activations + // We want to clear the pipline of any pending draws and activations // before starting output surface initialization. This allows us to avoid // weird corner cases where we abort draws or force activation while we // are initializing the output surface. @@ -335,7 +335,7 @@ bool SchedulerStateMachine::ShouldBeginOutputSurfaceCreation() const { bool SchedulerStateMachine::ShouldDraw() const { // If we need to abort draws, we should do so ASAP since the draw could // be blocking other important actions (like output surface initialization), - // from occurring. If we are waiting for the first draw, then perform the + // from occuring. If we are waiting for the first draw, then perfom the // aborted draw to keep things moving. If we are not waiting for the first // draw however, we don't want to abort for no reason. if (PendingDrawsShouldBeAborted()) @@ -474,6 +474,14 @@ bool SchedulerStateMachine::ShouldSendBeginMainFrame() const { if (!HasInitializedOutputSurface()) return false; + // SwapAck throttle the BeginMainFrames unless we just swapped. + // TODO(brianderson): Remove this restriction to improve throughput. + bool just_swapped_in_deadline = + begin_impl_frame_state_ == BEGIN_IMPL_FRAME_STATE_INSIDE_DEADLINE && + HasSwappedThisFrame(); + if (pending_swaps_ >= max_pending_swaps_ && !just_swapped_in_deadline) + return false; + if (skip_begin_main_frame_to_reduce_latency_) return false; diff --git a/cc/scheduler/scheduler_state_machine_unittest.cc b/cc/scheduler/scheduler_state_machine_unittest.cc index e3976d5..fc82fb6 100644 --- a/cc/scheduler/scheduler_state_machine_unittest.cc +++ b/cc/scheduler/scheduler_state_machine_unittest.cc @@ -1673,9 +1673,16 @@ TEST(SchedulerStateMachineTest, TestImplLatencyTakesPriority) { // Finish the previous commit and draw it. FinishPreviousCommitAndDrawWithoutExitingDeadline(&state); + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); + + // Verify we do not send another BeginMainFrame if was are swap throttled + // and did not just swap. state.SetNeedsCommit(); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); + state.OnBeginImplFrame(CreateBeginFrameArgsForTesting()); + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); + EXPECT_FALSE(state.ShouldTriggerBeginImplFrameDeadlineEarly()); + state.OnBeginImplFrameDeadline(); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); } @@ -1781,46 +1788,5 @@ TEST(SchedulerStateMachineTest, TestSetNeedsAnimateAfterAnimate) { SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); } -TEST(SchedulerStateMachineTest, TestBeginMainFrameNotSwapThrottled) { - SchedulerSettings settings; - settings.impl_side_painting = true; - StateMachine state(settings); - state.SetCanStart(); - state.UpdateState(state.NextAction()); - state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); - state.SetVisible(true); - state.SetCanDraw(true); - state.SetNeedsCommit(); - - // Begin frame and finish without interruption; - state.OnBeginImplFrame(CreateBeginFrameArgsForTesting()); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - state.NotifyBeginMainFrameStarted(); - state.NotifyReadyToCommit(); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - state.NotifyReadyToActivate(); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - state.OnBeginImplFrameDeadline(); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - - // Make sure we're not swap throttled - state.DidSwapBuffers(); - state.DidSwapBuffersComplete(); - - // Verify we send another begin frame - state.SetNeedsCommit(); - state.OnBeginImplFrame(CreateBeginFrameArgsForTesting()); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); -} - } // namespace } // namespace cc diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc index 9c459b5..add50ca 100644 --- a/cc/scheduler/scheduler_unittest.cc +++ b/cc/scheduler/scheduler_unittest.cc @@ -1331,12 +1331,11 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) { EXPECT_TRUE(client.needs_begin_frames()); client.Reset(); - // While swap throttled, BeginRetroFrames should trigger BeginImplFrames and - // BeginMainFrame, but not draw. + // While swap throttled, BeginRetroFrames should trigger BeginImplFrames + // but not a BeginMainFrame or draw. scheduler->SetNeedsCommit(); client.task_runner().RunPendingTasks(); // Run posted BeginRetroFrame. - EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); - EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); + EXPECT_ACTION("WillBeginImplFrame", client, 0, 1); EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); EXPECT_TRUE(client.needs_begin_frames()); client.Reset(); @@ -1351,7 +1350,7 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) { // Take us out of a swap throttled state. scheduler->DidSwapBuffersComplete(); - EXPECT_EQ(0, client.num_actions_()); + EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 0, 1); EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); EXPECT_TRUE(client.needs_begin_frames()); client.Reset(); @@ -1511,19 +1510,18 @@ void BeginFramesNotFromClient_SwapThrottled(bool begin_frame_scheduling_enabled, EXPECT_FALSE(client.needs_begin_frames()); client.Reset(); - // While swap throttled, BeginFrames should trigger BeginImplFrames and - // BeginMainFrame, but not draw. + // While swap throttled, BeginFrames should trigger BeginImplFrames, + // but not a BeginMainFrame or draw. scheduler->SetNeedsCommit(); client.task_runner().RunPendingTasks(); // Run posted BeginFrame. - EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); - EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); + EXPECT_ACTION("WillBeginImplFrame", client, 0, 1); EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); EXPECT_FALSE(client.needs_begin_frames()); client.Reset(); // Take us out of a swap throttled state. scheduler->DidSwapBuffersComplete(); - EXPECT_EQ(0, client.num_actions_()); + EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 0, 1); EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); EXPECT_FALSE(client.needs_begin_frames()); client.Reset(); diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc b/chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc index b3bc4e5..d4f0e7b 100644 --- a/chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc +++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc @@ -516,9 +516,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, // Verifies that SaveUserImageFromProfileImage() correctly downloads, sets and // persists the chosen user image. -// Disabled for timeouts. https://crbug.com/423015 -IN_PROC_BROWSER_TEST_F(UserImageManagerTest, - DISABLED_SaveUserImageFromProfileImage) { +IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromProfileImage) { const user_manager::User* user = user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); diff --git a/chrome/browser/chromeos/net/network_portal_detector_impl_browsertest.cc b/chrome/browser/chromeos/net/network_portal_detector_impl_browsertest.cc index af71a12..e749594 100644 --- a/chrome/browser/chromeos/net/network_portal_detector_impl_browsertest.cc +++ b/chrome/browser/chromeos/net/network_portal_detector_impl_browsertest.cc @@ -154,9 +154,8 @@ IN_PROC_BROWSER_TEST_F(NetworkPortalDetectorImplBrowserTest, ASSERT_EQ(PortalDetectorStrategy::STRATEGY_ID_LOGIN_SCREEN, strategy()->Id()); } -// Disabled for flaky timeouts. http://crbug.com/423094 IN_PROC_BROWSER_TEST_F(NetworkPortalDetectorImplBrowserTest, - DISABLED_InSessionDetection) { + InSessionDetection) { typedef NetworkPortalNotificationController Controller; TestObserver observer; diff --git a/chrome/browser/chromeos/preferences_browsertest.cc b/chrome/browser/chromeos/preferences_browsertest.cc index b04be56..bf12c33 100644 --- a/chrome/browser/chromeos/preferences_browsertest.cc +++ b/chrome/browser/chromeos/preferences_browsertest.cc @@ -140,8 +140,7 @@ IN_PROC_BROWSER_TEST_F(PreferencesTest, PRE_MultiProfiles) { chromeos::StartupUtils::MarkOobeCompleted(); } -// Disabled for flaky timeouts. https://crbug.com/423077 -IN_PROC_BROWSER_TEST_F(PreferencesTest, DISABLED_MultiProfiles) { +IN_PROC_BROWSER_TEST_F(PreferencesTest, MultiProfiles) { user_manager::UserManager* user_manager = user_manager::UserManager::Get(); // Add first user and init its preferences. Check that corresponding diff --git a/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc b/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc index 7c4651c..fbe345c 100644 --- a/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc +++ b/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc @@ -298,9 +298,7 @@ IN_PROC_BROWSER_TEST_F(SharedOptionsTest, PRE_ScreenLockPreferencePrimary) { // (The checkbox is unset if the current user's preference is false, but if any // other signed-in user has enabled this preference, the shared setting // indicator explains this.) -// Disabled due to flaky timeouts. https://crbug.com/423053 -IN_PROC_BROWSER_TEST_F(SharedOptionsTest, - DISABLED_ScreenLockPreferencePrimary) { +IN_PROC_BROWSER_TEST_F(SharedOptionsTest, ScreenLockPreferencePrimary) { LoginUser(kTestOwner); UserAddingScreen::Get()->Start(); content::RunAllPendingInMessageLoop(); diff --git a/chrome/browser/ui/webui/signin/inline_login_ui_browsertest.cc b/chrome/browser/ui/webui/signin/inline_login_ui_browsertest.cc index ab41e2c..bec62eb 100644 --- a/chrome/browser/ui/webui/signin/inline_login_ui_browsertest.cc +++ b/chrome/browser/ui/webui/signin/inline_login_ui_browsertest.cc @@ -91,13 +91,7 @@ class InlineLoginUIBrowserTest : public InProcessBrowserTest { InlineLoginUIBrowserTest() {} }; -#if defined(OS_LINUX) -// crbug.com/422868 -#define MAYBE_DifferentStorageId DISABLED_DifferentStorageId -#else -#define MAYBE_DifferentStorageId DifferentStorageId -#endif -IN_PROC_BROWSER_TEST_F(InlineLoginUIBrowserTest, MAYBE_DifferentStorageId) { +IN_PROC_BROWSER_TEST_F(InlineLoginUIBrowserTest, DifferentStorageId) { GURL test_url = ui_test_utils::GetTestUrl( base::FilePath(base::FilePath::kCurrentDirectory), base::FilePath(FILE_PATH_LITERAL("title1.html"))); diff --git a/extensions/browser/guest_view/web_view/web_view_apitest.cc b/extensions/browser/guest_view/web_view/web_view_apitest.cc index e7c3dbe..bad7930 100644 --- a/extensions/browser/guest_view/web_view/web_view_apitest.cc +++ b/extensions/browser/guest_view/web_view/web_view_apitest.cc @@ -271,13 +271,7 @@ content::WebContents* WebViewAPITest::GetGuestWebContents() { return GetGuestViewManager()->WaitForSingleGuestCreated(); } -// Occasionally hits NOTIMPLEMENTED on Linux. https://crbug.com/422998 -#if defined(OS_LINUX) -#define MAYBE_AcceptTouchEvents DISABLED_AcceptTouchEvents -#else -#define MAYBE_AcceptTouchEvents AcceptTouchEvents -#endif -IN_PROC_BROWSER_TEST_F(WebViewAPITest, MAYBE_AcceptTouchEvents) { +IN_PROC_BROWSER_TEST_F(WebViewAPITest, AcceptTouchEvents) { LaunchApp("web_view/accept_touch_events"); content::RenderViewHost* embedder_rvh = |