| Index: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java
|
| index aea13ca1ef181728514f03bf35d6c398dabbbf9c..210d053bd0776eb3a97d498f6a9ab4ad6fa6fcbd 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java
|
| @@ -7,9 +7,9 @@ package org.chromium.chrome.browser.customtabs;
|
| import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
|
|
|
| import android.app.Activity;
|
| -import android.app.Instrumentation;
|
| import android.content.Intent;
|
|
|
| +import org.chromium.base.ApplicationStatus;
|
| import org.chromium.base.test.util.CallbackHelper;
|
| import org.chromium.chrome.browser.DeferredStartupHandler;
|
| import org.chromium.chrome.browser.tab.EmptyTabObserver;
|
| @@ -18,6 +18,8 @@ import org.chromium.chrome.test.ChromeActivityTestCaseBase;
|
| import org.chromium.content.browser.test.util.Criteria;
|
| import org.chromium.content.browser.test.util.CriteriaHelper;
|
|
|
| +import java.lang.ref.WeakReference;
|
| +import java.util.List;
|
| import java.util.concurrent.TimeUnit;
|
| import java.util.concurrent.TimeoutException;
|
|
|
| @@ -40,15 +42,23 @@ public abstract class CustomTabActivityTestBase extends
|
|
|
| @Override
|
| protected void startActivityCompletely(Intent intent) {
|
| - Instrumentation.ActivityMonitor monitor = getInstrumentation().addMonitor(
|
| - CustomTabActivity.class.getName(), null, false);
|
| Activity activity = getInstrumentation().startActivitySync(intent);
|
| assertNotNull("Main activity did not start", activity);
|
| - CustomTabActivity customTabActivity =
|
| - (CustomTabActivity) monitor.waitForActivityWithTimeout(
|
| - ACTIVITY_START_TIMEOUT_MS);
|
| - assertNotNull("CustomTabActivity did not start", customTabActivity);
|
| - setActivity(customTabActivity);
|
| + CriteriaHelper.pollUiThread(new Criteria() {
|
| + @Override
|
| + public boolean isSatisfied() {
|
| + List<WeakReference<Activity>> list = ApplicationStatus.getRunningActivities();
|
| + for (WeakReference<Activity> ref : list) {
|
| + Activity activity = ref.get();
|
| + if (activity == null) continue;
|
| + if (activity instanceof CustomTabActivity) {
|
| + setActivity(activity);
|
| + return true;
|
| + }
|
| + }
|
| + return false;
|
| + }
|
| + });
|
| }
|
|
|
| /**
|
|
|