Commit e3348e71 authored by Lijin Shen's avatar Lijin Shen Committed by Commit Bot

Revert "Merge tabs of multi-instance when display is changed."

This reverts commit 5c5957c7.

Reason for revert: testMergeOnMultiDisplay_OnDisplayChanged failing on test-n-phone
https://ci.chromium.org/p/chrome/builders/ci/test-n-phone

Original change's description:
> Merge tabs of multi-instance when display is changed.
> 
> On partner foldable phones, when the secondary display is off, there
> is only one targetable displays and only #onDisplayChanged is called.
> This CL tries to merge tabs #onDisplayChanged as well.
> 
> Bug: 1088202
> Change-Id: Id21960b40bceb4b04fce7a2718c0e33bee0f4920
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2272131
> Reviewed-by: Theresa  <twellington@chromium.org>
> Commit-Queue: Lijin Shen <lazzzis@google.com>
> Cr-Commit-Position: refs/heads/master@{#786055}

TBR=tedchoc@chromium.org,twellington@chromium.org,lazzzis@google.com

Change-Id: I73c428b30eb6005f4e85171434dec16d54d4e419
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1088202
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2288809Reviewed-by: default avatarLijin Shen <lazzzis@google.com>
Reviewed-by: default avatarNatalie Chouinard <chouinard@chromium.org>
Commit-Queue: Natalie Chouinard <chouinard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#786487}
parent 7067506b
......@@ -20,7 +20,6 @@ import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import org.chromium.base.ActivityState;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.CommandLine;
import org.chromium.base.metrics.RecordUserAction;
......@@ -86,7 +85,6 @@ public class MultiInstanceManager
private boolean mShouldMergeOnConfigurationChange;
private boolean mIsRecreating;
private int mDisplayId;
private static List<Integer> sTestDisplayIds;
/**
* Create a new {@link MultiInstanceManager}.
......@@ -222,13 +220,7 @@ public class MultiInstanceManager
@Override
public void onDisplayChanged(int displayId) {
if (displayId == mDisplayId) return;
List<Integer> ids = sTestDisplayIds != null
? sTestDisplayIds
: ApiCompatibilityUtils.getTargetableDisplayIds(mActivity);
if (ids.size() == 1 && ids.get(0).equals(mDisplayId)) {
maybeMergeTabs();
}
// TODO(crbug.com/824954): try to merge tabs sharing logic w/ onDisplayRemoved
}
};
displayManager.registerDisplayListener(mDisplayListener, null);
......@@ -441,9 +433,4 @@ public class MultiInstanceManager
public DisplayManager.DisplayListener getDisplayListenerForTesting() {
return mDisplayListener;
}
@VisibleForTesting
public static void setTestDisplayIds(List<Integer> testDisplayIds) {
sTestDisplayIds = testDisplayIds;
}
}
......@@ -55,7 +55,6 @@ import org.chromium.content_public.browser.test.util.CriteriaHelper;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.ui.test.util.UiRestriction;
import java.util.Collections;
import java.util.concurrent.TimeoutException;
/**
......@@ -540,45 +539,4 @@ public class TabModelMergingTest {
mActivity1.finishAndRemoveTask();
mActivity2.finishAndRemoveTask();
}
@Test
@LargeTest
@EnableFeatures(ChromeFeatureList.ANDROID_MULTIPLE_DISPLAY)
public void testMergeOnMultiDisplay_OnDisplayChanged() throws TimeoutException {
TestThreadUtils.runOnUiThreadBlocking(() -> {
mActivity1.saveState();
mActivity2.saveState();
});
MultiInstanceManager m1 = mActivity1.getMultiInstanceMangerForTesting();
MultiInstanceManager m2 = mActivity2.getMultiInstanceMangerForTesting();
// Ensure Activity 1 is resumed on the front.
Intent intent = new Intent(mActivity1, mActivity1.getClass());
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
mActivity1.startActivity(intent);
waitForActivityStateChange(ActivityState.RESUMED, mActivity2, false);
waitForActivityStateChange(ActivityState.RESUMED, mActivity1, true);
MultiInstanceManager.setTestDisplayIds(Collections.singletonList(0));
m1.setCurrentDisplayIdForTesting(0);
m2.setCurrentDisplayIdForTesting(1);
TestThreadUtils.runOnUiThreadBlocking(() -> {
m1.getDisplayListenerForTesting().onDisplayChanged(1);
m2.getDisplayListenerForTesting().onDisplayChanged(1);
});
CriteriaHelper.pollUiThread(() -> {
Criteria.checkThat("Total tab count incorrect.",
mActivity1.getTabModelSelector().getTotalTabCount(), Matchers.is(7));
});
CriteriaHelper.pollUiThread(() -> {
Criteria.checkThat("CTA should not be destroyed", mActivity1State,
Matchers.not(ActivityState.DESTROYED));
Criteria.checkThat("CTA2 should be destroyed", mActivity2State,
Matchers.is(ActivityState.DESTROYED));
});
mActivity1.finishAndRemoveTask();
mActivity2.finishAndRemoveTask();
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment