| Index: chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
|
| diff --git a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
|
| index e68e396813f89c8887068eae0321690f4d01e1b7..b971d5264642726baaa0a0507e88a70e3031801f 100644
|
| --- a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
|
| +++ b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
|
| @@ -45,6 +45,23 @@ public class ChromeShellActivity extends Activity implements AppMenuPropertiesDe
|
| private static final String TAG = "ChromeShellActivity";
|
| private static final String CHROME_DISTILLER_SCHEME = "chrome-distiller";
|
|
|
| + /**
|
| + * Factory used to set up a mock ActivityWindowAndroid for testing.
|
| + */
|
| + public interface WindowAndroidFactoryForTest {
|
| + /**
|
| + * @return ActivityWindowAndroid for the given activity.
|
| + */
|
| + public ActivityWindowAndroid getActivityWindowAndroid(Activity activity);
|
| + }
|
| +
|
| + private static WindowAndroidFactoryForTest sWindowAndroidFactory =
|
| + new WindowAndroidFactoryForTest() {
|
| + @Override
|
| + public ActivityWindowAndroid getActivityWindowAndroid(Activity activity) {
|
| + return new ActivityWindowAndroid(activity);
|
| + }
|
| + };
|
| private WindowAndroid mWindow;
|
| private TabManager mTabManager;
|
| private DevToolsServer mDevToolsServer;
|
| @@ -80,8 +97,7 @@ public class ChromeShellActivity extends Activity implements AppMenuPropertiesDe
|
| };
|
| try {
|
| BrowserStartupController.get(this).startBrowserProcessesAsync(callback);
|
| - }
|
| - catch (ProcessInitException e) {
|
| + } catch (ProcessInitException e) {
|
| Log.e(TAG, "Unable to load native library.", e);
|
| System.exit(-1);
|
| }
|
| @@ -91,7 +107,7 @@ public class ChromeShellActivity extends Activity implements AppMenuPropertiesDe
|
| setContentView(R.layout.testshell_activity);
|
| mTabManager = (TabManager) findViewById(R.id.tab_manager);
|
|
|
| - mWindow = new ActivityWindowAndroid(this);
|
| + mWindow = sWindowAndroidFactory.getActivityWindowAndroid(this);
|
| mWindow.restoreInstanceState(savedInstanceState);
|
| mTabManager.initialize(mWindow, new ActivityContentVideoViewClient(this));
|
|
|
| @@ -315,4 +331,9 @@ public class ChromeShellActivity extends Activity implements AppMenuPropertiesDe
|
| a.recycle();
|
| return itemRowHeight;
|
| }
|
| +
|
| + @VisibleForTesting
|
| + public static void setActivityWindowAndroidFactory(WindowAndroidFactoryForTest factory) {
|
| + sWindowAndroidFactory = factory;
|
| + }
|
| }
|
|
|