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; |
+ } |
} |