Index: content/public/test/android/javatests/src/org/chromium/content/browser/test/util/UiUtils.java |
diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/UiUtils.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/UiUtils.java |
index 7bfa2f96f3f910e3a6b98d8c287b553c32e0bb43..c0915f07222fb7ef600afc226f333b7ad1abc038 100644 |
--- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/UiUtils.java |
+++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/UiUtils.java |
@@ -4,50 +4,20 @@ |
package org.chromium.content.browser.test.util; |
-import android.app.Activity; |
import android.app.Instrumentation; |
-import junit.framework.Assert; |
- |
-import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout; |
- |
-import java.util.concurrent.Semaphore; |
-import java.util.concurrent.TimeUnit; |
- |
/** |
* Collection of UI utilities. |
*/ |
public class UiUtils { |
- // timeout to wait for runOnUiThread() |
- private static final long WAIT_FOR_RESPONSE_MS = scaleTimeout(10000); |
- |
- /** |
- * Runs the runnable on the UI thread. |
- * |
- * @param activity The activity on which the runnable must run. |
- * @param runnable The runnable to run. |
- */ |
- public static void runOnUiThread(Activity activity, final Runnable runnable) { |
- final Semaphore finishedSemaphore = new Semaphore(0); |
- activity.runOnUiThread(new Runnable() { |
- @Override |
- public void run() { |
- runnable.run(); |
- finishedSemaphore.release(); |
- } |
- }); |
- try { |
- Assert.assertTrue(finishedSemaphore.tryAcquire(1, WAIT_FOR_RESPONSE_MS, |
- TimeUnit.MILLISECONDS)); |
- } catch (InterruptedException ignored) { |
- Assert.assertTrue("Interrupted while waiting for main thread Runnable", false); |
- } |
- } |
/** |
- * Waits for the UI thread to settle down. |
+ * Waits for the UI thread to settle down and then waits for another second. |
* <p> |
- * Waits for an extra period of time after the UI loop is idle. |
+ * Avoid this method like the plague. It's a fantastically evil source of flakiness in tests. |
+ * Instead, you should either: |
+ * - Use an observer interface if possible (preferred), or |
+ * - Use CriteriaHelper to poll for the desired condition becoming true |
* |
* @param instrumentation Instrumentation object used by the test. |
*/ |