summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkustermann <kustermann@google.com>2014-10-14 06:06:29 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-14 13:06:46 +0000
commit0c972cb5f080fff7b82b86a4445f0faa4393bbc2 (patch)
treea814c41f4e7adb5ce37d5e7273f244f75fd4aa0d
parentf5a59db3377b727b61f3cc6d18c9a921320d75bb (diff)
downloadchromium_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}
-rw-r--r--cc/scheduler/scheduler_state_machine.cc12
-rw-r--r--cc/scheduler/scheduler_state_machine_unittest.cc52
-rw-r--r--cc/scheduler/scheduler_unittest.cc18
-rw-r--r--chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc4
-rw-r--r--chrome/browser/chromeos/net/network_portal_detector_impl_browsertest.cc3
-rw-r--r--chrome/browser/chromeos/preferences_browsertest.cc3
-rw-r--r--chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc4
-rw-r--r--chrome/browser/ui/webui/signin/inline_login_ui_browsertest.cc8
-rw-r--r--extensions/browser/guest_view/web_view/web_view_apitest.cc8
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 =