Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1051)

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationTest.java

Issue 178253002: Revert of Use Display changes for screen orientation changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@orientation_tests
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationTest.java b/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationTest.java
index 375eca694bdb13a9a108492fb8f8321907c427bf..a8376470948fe66cdd2b2b8580d5ffd52434c264 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationTest.java
@@ -5,12 +5,17 @@
package org.chromium.content.browser;
import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
+import android.graphics.Canvas;
import android.test.suitebuilder.annotation.MediumTest;
import android.test.suitebuilder.annotation.SmallTest;
-import android.view.Surface;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.View;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.UrlUtils;
+import org.chromium.content.browser.ContentViewCore.InternalAccessDelegate;
import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper;
import org.chromium.content.browser.test.util.JavaScriptUtils;
@@ -29,70 +34,103 @@
UrlUtils.encodeHtmlDataUri("<html><body>foo</body></html>");
/**
- * Whether we should allow 0 degrees when expecting 180 degrees.
- * Try server bots, for some yet unknown reasons, rotate to 0 degrees angle
- * when they should rotate to 180 degrees. See http://crbug.com/344461
- */
- private static final boolean ALLOW_0_FOR_180 = true;
+ * Class that is used to get notified when the activity configuration
+ * changes.
+ */
+ private static class ConfigurationChangeAccessDelegate
+ implements InternalAccessDelegate {
+
+ private interface ConfigurationChangedListener {
+ public void onConfigurationChanged();
+ }
+
+ private ConfigurationChangedListener mListener = null;
+
+ private void setListener(ConfigurationChangedListener listener) {
+ mListener = listener;
+ }
+
+ @Override
+ public boolean drawChild(Canvas canvas, View child, long drawingTime) {
+ return false;
+ }
+
+ @Override
+ public boolean super_onKeyUp(int keyCode, KeyEvent event) {
+ return false;
+ }
+
+ @Override
+ public boolean super_dispatchKeyEventPreIme(KeyEvent event) {
+ return false;
+ }
+
+ @Override
+ public boolean super_dispatchKeyEvent(KeyEvent event) {
+ return false;
+ }
+
+ @Override
+ public boolean super_onGenericMotionEvent(MotionEvent event) {
+ return false;
+ }
+
+ @Override
+ public void super_onConfigurationChanged(Configuration newConfig) {
+ if (mListener != null)
+ mListener.onConfigurationChanged();
+ }
+
+ @Override
+ public void onScrollChanged(int lPix, int tPix, int oldlPix, int oldtPix) {
+ }
+
+ @Override
+ public boolean awakenScrollBars() {
+ return false;
+ }
+
+ @Override
+ public boolean super_awakenScrollBars(int startDelay, boolean invalidate) {
+ return false;
+ }
+ }
/**
* Criteria used to know when an orientation change happens.
*/
- private class OrientationChangeListenerCriteria implements Criteria {
-
- private final int mTargetOrientation;
-
- private OrientationChangeListenerCriteria(int targetOrientation) {
- mTargetOrientation = targetOrientation;
+ private static class OrientationChangeListenerCriteria implements Criteria {
+
+ private boolean mSatisfied = false;
+
+ private ConfigurationChangeAccessDelegate mAccessDelegate;
+
+ private OrientationChangeListenerCriteria(
+ ConfigurationChangeAccessDelegate accessDelegate) {
+ mAccessDelegate = accessDelegate;
+ mAccessDelegate.setListener(
+ new ConfigurationChangeAccessDelegate.ConfigurationChangedListener() {
+ @Override
+ public void onConfigurationChanged() {
+ mSatisfied = true;
+ }
+ });
}
@Override
public boolean isSatisfied() {
- return getOrientationAngle() == mTargetOrientation;
+ if (mSatisfied) {
+ mAccessDelegate.setListener(null);
+ return true;
+ }
+
+ return false;
}
}
private ContentView mContentView;
- /**
- * Returns the current device orientation angle.
- */
- private int getOrientationAngle() {
- switch (getActivity().getWindowManager().getDefaultDisplay()
- .getRotation()) {
- case Surface.ROTATION_90:
- return 90;
- case Surface.ROTATION_180:
- return 180;
- case Surface.ROTATION_270:
- return 270;
- case Surface.ROTATION_0:
- return 0;
- default:
- fail("Should not be there!");
- return 0;
- }
- }
-
- /**
- * Returns the expected orientation angle for a specific orientation type as
- * defined in ActivityInfor.screenOrientation.
- */
- private static int orientationTypeToAngle(int orientation) {
- switch (orientation) {
- case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT:
- return 0;
- case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE:
- return 90;
- case ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT:
- return 180;
- case ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE:
- return 270;
- default:
- fail("Should not be there!");
- return 0;
- }
- }
+ private ConfigurationChangeAccessDelegate mConfChangeAccessDelegate;
/**
* Locks the screen orientation to the predefined orientation type.
@@ -116,7 +154,7 @@
private boolean lockOrientationAndWait(int orientation)
throws InterruptedException {
OrientationChangeListenerCriteria listenerCriteria =
- new OrientationChangeListenerCriteria(orientationTypeToAngle(orientation));
+ new OrientationChangeListenerCriteria(mConfChangeAccessDelegate);
lockOrientation(orientation);
@@ -142,6 +180,10 @@
ContentShellActivity activity = launchContentShellWithUrl(DEFAULT_URL);
waitForActiveShellToBeDoneLoading();
mContentView = activity.getActiveContentView();
+
+ mConfChangeAccessDelegate = new ConfigurationChangeAccessDelegate();
+ getContentViewCore().
+ setContainerViewInternals(mConfChangeAccessDelegate);
}
@Override
@@ -159,45 +201,19 @@
@MediumTest
@Feature({"ScreenOrientation", "Main"})
public void testChanges() throws Throwable {
+ lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ assertEquals(90, getWindowOrientation());
+
lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
assertEquals(0, getWindowOrientation());
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- assertEquals(90, getWindowOrientation());
-
lockOrientationAndWait(
- ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
- int orientation = getWindowOrientation();
- assertTrue(180 == orientation || (0 == orientation && ALLOW_0_FOR_180));
-
- lockOrientationAndWait(
- ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
+ ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
assertEquals(-90, getWindowOrientation());
-
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- assertEquals(0, getWindowOrientation());
- }
-
- @MediumTest
- @Feature({"ScreenOrientation", "Main"})
- public void testFlipChangePortrait() throws Throwable {
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- assertEquals(0, getWindowOrientation());
lockOrientationAndWait(
ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
int orientation = getWindowOrientation();
- assertTrue(180 == orientation || (0 == orientation && ALLOW_0_FOR_180));
- }
-
- @MediumTest
- @Feature({"ScreenOrientation", "Main"})
- public void testFlipChangeLandscape() throws Throwable {
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- assertEquals(90, getWindowOrientation());
-
- lockOrientationAndWait(
- ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
- assertEquals(-90, getWindowOrientation());
+ assertTrue(orientation == 0 || orientation == 180);
}
}
« no previous file with comments | « content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698