Index: chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java |
index 4df5b74cd86d632b251cb45fb308f93686472b9b..2df7a4496523ac4405e40cae8b9abd3a0e3bf4d2 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java |
@@ -326,18 +326,24 @@ public class AutofillTestHelper { |
} |
private void registerDataObserver() { |
- ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
- @Override |
- public void run() { |
- PersonalDataManager.getInstance().registerDataObserver( |
- new PersonalDataManagerObserver() { |
- @Override |
- public void onPersonalDataChanged() { |
- mOnPersonalDataChangedHelper.notifyCalled(); |
- } |
- } |
- ); |
- } |
- }); |
+ try { |
+ int callCount = mOnPersonalDataChangedHelper.getCallCount(); |
+ boolean isDataLoaded = ThreadUtils.runOnUiThreadBlocking(new Callable<Boolean>() { |
+ @Override |
+ public Boolean call() { |
+ return PersonalDataManager.getInstance().registerDataObserver( |
+ new PersonalDataManagerObserver() { |
+ @Override |
+ public void onPersonalDataChanged() { |
+ mOnPersonalDataChangedHelper.notifyCalled(); |
+ } |
+ }); |
+ } |
+ }); |
+ if (isDataLoaded) return; |
+ mOnPersonalDataChangedHelper.waitForCallback(callCount); |
+ } catch (TimeoutException | InterruptedException | ExecutionException e) { |
+ throw new AssertionError(e); |
+ } |
} |
} |