| Index: chrome/test/android/javatests/src/org/chromium/chrome/test/util/TabUtils.java
|
| diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/TabUtils.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/TabUtils.java
|
| index 7c395107178c7706d00c8538bf15d320281427d8..861180890af52c51c3954ef5f32e4b911479d553 100644
|
| --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/TabUtils.java
|
| +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/TabUtils.java
|
| @@ -6,6 +6,7 @@ package org.chromium.chrome.test.util;
|
|
|
| import android.view.ContextMenu;
|
|
|
| +import org.chromium.base.ThreadUtils;
|
| import org.chromium.chrome.browser.EmptyTabObserver;
|
| import org.chromium.chrome.browser.Tab;
|
| import org.chromium.content.browser.ContentViewClient;
|
| @@ -16,6 +17,7 @@ import org.chromium.content.browser.test.util.TestContentViewClientWrapper;
|
| import org.chromium.content.browser.test.util.TestWebContentsObserver;
|
|
|
| import java.lang.ref.WeakReference;
|
| +import java.util.concurrent.atomic.AtomicReference;
|
|
|
| /**
|
| * A utility class that contains methods generic to all Tabs tests.
|
| @@ -37,7 +39,7 @@ public class TabUtils {
|
| private final CallbackHelper mOnCloseTabHelper;
|
| private final OnContextMenuShownHelper mOnContextMenuShownHelper;
|
|
|
| - public TestCallbackHelperContainerForTab(Tab tab) {
|
| + private TestCallbackHelperContainerForTab(Tab tab) {
|
| super(createTestContentViewClientForTab(tab),
|
| new TestWebContentsObserver(tab.getContentViewCore()));
|
| mOnCloseTabHelper = new CallbackHelper();
|
| @@ -84,7 +86,21 @@ public class TabUtils {
|
| /**
|
| * Creates, binds and returns a TestCallbackHelperContainer for a given Tab.
|
| */
|
| - public static TestCallbackHelperContainerForTab getTestCallbackHelperContainer(Tab tab) {
|
| - return tab == null ? null : new TestCallbackHelperContainerForTab(tab);
|
| + public static TestCallbackHelperContainerForTab getTestCallbackHelperContainer(final Tab tab) {
|
| + if (tab == null) {
|
| + return null;
|
| + }
|
| + final AtomicReference<TestCallbackHelperContainerForTab> result =
|
| + new AtomicReference<TestCallbackHelperContainerForTab>();
|
| + // TODO(yfriedman): Change callers to be executed on the UI thread. Unfortunately this is
|
| + // super convenient as the caller is nearly always on the test thread which is fine to block
|
| + // and it's cumbersome to keep bouncing to the UI thread.
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + result.set(new TestCallbackHelperContainerForTab(tab));
|
| + }
|
| + });
|
| + return result.get();
|
| }
|
| }
|
|
|