Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java |
index 53cc679efa5e8810e0268f28fe7a388528ab37d8..8126adb8b952f402fd165c959ebad2db4b201168 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java |
@@ -612,7 +612,16 @@ public class TabPersistentStore extends TabPersister { |
// selected. TODO(twellington): The first tab will always be selected. Instead, the tab that |
// was selected in the other model before the merge should be selected after the merge. |
if (setAsActive || (tabToRestore.fromMerge && restoredIndex == 0)) { |
+ boolean wasIncognitoTabModelSelected = mTabModelSelector.isIncognitoSelected(); |
TabModelUtils.setIndex(model, TabModelUtils.getTabIndexById(model, tabId)); |
+ boolean isIncognitoTabModelSelected = mTabModelSelector.isIncognitoSelected(); |
+ |
+ // Setting the index will cause the tab's model to be selected. Set it back to the model |
+ // that was selected before setting the index if the index is being set during a merge. |
+ if (tabToRestore.fromMerge |
+ && wasIncognitoTabModelSelected != isIncognitoTabModelSelected) { |
+ mTabModelSelector.selectModel(wasIncognitoTabModelSelected); |
+ } |
} |
restoredTabs.put(tabToRestore.originalIndex, tabId); |
} |