Commit 4d87b1a9 authored by Lijin Shen's avatar Lijin Shen Committed by Commit Bot

Remove the incorrect assumption about PseudoTab

Remove the incorrect assumption which causes consistent assertion
failure on multi-instance tab merging.

Bug: 1100460, 1080810
Change-Id: Ief512fa3450e0999fdd9588a5ec6b7b6536691d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2318446Reviewed-by: default avatarWei-Yin Chen (陳威尹) <wychen@chromium.org>
Commit-Queue: Lijin Shen <lazzzis@google.com>
Cr-Commit-Position: refs/heads/master@{#798179}
parent 7cfb2e1f
......@@ -86,8 +86,13 @@ public class PseudoTab {
synchronized (sLock) {
PseudoTab cached = sAllTabs.get(tab.getId());
if (cached != null && cached.hasRealTab()) {
assert cached.getTab() == tab;
return cached;
if (cached.getTab() == tab) {
return cached;
} else {
assert cached.getTab().getWebContents() == null
|| cached.getTab().getWebContents().getTopLevelNativeWindow() == null;
return new PseudoTab(tab);
}
}
// We need to upgrade a pre-native Tab to a post-native Tab.
return new PseudoTab(tab);
......
......@@ -70,6 +70,7 @@ public class PseudoTabUnitTest {
private TabImpl mTab1;
private TabImpl mTab2;
private TabImpl mTab3;
private TabImpl mTab1Copy;
@Before
public void setUp() {
......@@ -78,6 +79,7 @@ public class PseudoTabUnitTest {
mTab1 = TabUiUnitTestUtils.prepareTab(TAB1_ID, mCriticalPersistedTabData);
mTab2 = TabUiUnitTestUtils.prepareTab(TAB2_ID, mCriticalPersistedTabData);
mTab3 = TabUiUnitTestUtils.prepareTab(TAB3_ID, mCriticalPersistedTabData);
mTab1Copy = TabUiUnitTestUtils.prepareTab(TAB1_ID, mCriticalPersistedTabData);
doReturn(mTabModelFilterProvider).when(mTabModelSelector).getTabModelFilterProvider();
}
......@@ -139,6 +141,14 @@ public class PseudoTabUnitTest {
Assert.assertEquals(tab1, tab1prime);
}
@Test
public void fromTab_obsoleteCache() {
PseudoTab tab1 = PseudoTab.fromTab(mTab1);
PseudoTab tab1copy = PseudoTab.fromTab(mTab1Copy);
Assert.assertNotEquals(tab1, tab1copy);
Assert.assertEquals(tab1.getId(), tab1copy.getId());
}
@Test
public void fromTab_cached_upgrade() {
PseudoTab tab1 = PseudoTab.fromTabId(TAB1_ID);
......
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