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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java

Issue 2658903002: Implement detaching the TabModelSelector from the CompositorViewHolder (Closed)
Patch Set: Created 3 years, 11 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 | « chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/MockLayoutHost.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java
index f388f6b686cf994c298aa77365bb85d67f603438..47cb9e5d2fd54fc2470bb302205abe4cdd66cdc3 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java
@@ -9,14 +9,26 @@ import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_N
import android.content.pm.ActivityInfo;
import android.support.test.filters.MediumTest;
+import android.support.test.filters.SmallTest;
+import android.view.ViewGroup;
import org.chromium.base.ThreadUtils;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.Restriction;
+import org.chromium.base.test.util.RetryOnFailure;
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.compositor.CompositorViewHolder;
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.test.ChromeTabbedActivityTestBase;
import org.chromium.chrome.test.util.RenderUtils.ViewRenderer;
+import org.chromium.content.browser.ContentViewCore;
+import org.chromium.content.browser.test.util.Criteria;
+import org.chromium.content.browser.test.util.CriteriaHelper;
import java.io.IOException;
+import java.util.concurrent.Callable;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicReference;
/**
* Instrumentation tests for VR Shell (Chrome VR)
@@ -147,4 +159,62 @@ public class VrShellTest extends ChromeTabbedActivityTestBase {
public void testEnterExitVrModeUnsupportedImage() throws IOException {
testEnterExitVrModeImage(false);
}
+
+ /**
+ * Verify that resizing the CompositorViewHolder does not cause the current tab to resize while
+ * the CompositorViewHolder is detached from the TabModelSelector. See crbug.com/680240.
+ * @throws InterruptedException
+ * @throws TimeoutException
+ */
+ @SmallTest
+ @RetryOnFailure
+ public void testResizeWithCompositorViewHolderDetached()
+ throws InterruptedException, TimeoutException {
+ final AtomicReference<TabModelSelector> selector = new AtomicReference<>();
+ final AtomicReference<Integer> oldWidth = new AtomicReference<>();
+ final int testWidth = 123;
+ final ContentViewCore cvc = getActivity().getActivityTab().getActiveContentViewCore();
+
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ CompositorViewHolder compositorViewHolder = (CompositorViewHolder)
+ getActivity().findViewById(R.id.compositor_view_holder);
+ selector.set(compositorViewHolder.detachForVR());
+ oldWidth.set(cvc.getViewportWidthPix());
+
+ ViewGroup.LayoutParams layoutParams = compositorViewHolder.getLayoutParams();
+ layoutParams.width = testWidth;
+ layoutParams.height = 456;
+ compositorViewHolder.requestLayout();
+ }
+ });
+ CriteriaHelper.pollUiThread(Criteria.equals(testWidth, new Callable<Integer>() {
+ @Override
+ public Integer call() {
+ return getActivity().findViewById(R.id.compositor_view_holder).getMeasuredWidth();
+ }
+ }));
+
+ assertEquals("Viewport width should not have changed when resizing a detached "
+ + "CompositorViewHolder",
+ cvc.getViewportWidthPix(),
+ oldWidth.get().intValue());
+
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ CompositorViewHolder compositorViewHolder = (CompositorViewHolder) getActivity()
+ .findViewById(R.id.compositor_view_holder);
+ compositorViewHolder.onExitVR(selector.get());
+ }
+ });
+
+ CriteriaHelper.pollUiThread(Criteria.equals(testWidth, new Callable<Integer>() {
+ @Override
+ public Integer call() {
+ return cvc.getViewportWidthPix();
+ }
+ }));
+ }
}
« no previous file with comments | « chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/MockLayoutHost.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698