Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java |
| index 6ce844fcf5c4c4c90433cf73e2a93ab3895ca534..3c435a8da4b2c753d8dd67cce9f2ad353ff5ada0 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java |
| @@ -36,6 +36,7 @@ public class IncognitoTabModel implements TabModel { |
| private final ObserverList<TabModelObserver> mObservers = new ObserverList<TabModelObserver>(); |
| private TabModel mDelegateModel; |
| private boolean mIsAddingTab; |
| + private boolean mMayAddTab; |
| /** |
| * Constructor for IncognitoTabModel. |
| @@ -72,7 +73,7 @@ public class IncognitoTabModel implements TabModel { |
| */ |
| protected void destroyIncognitoIfNecessary() { |
| ThreadUtils.assertOnUiThread(); |
| - if (!isEmpty() || mDelegateModel instanceof EmptyTabModel || mIsAddingTab) { |
| + if (!isEmpty() || mDelegateModel instanceof EmptyTabModel || mIsAddingTab || mMayAddTab) { |
| return; |
| } |
| @@ -212,6 +213,7 @@ public class IncognitoTabModel implements TabModel { |
| @Override |
| public void addTab(Tab tab, int index, TabLaunchType type) { |
| mIsAddingTab = true; |
| + mMayAddTab = false; |
| ensureTabModelImpl(); |
| mDelegateModel.addTab(tab, index, type); |
| mIsAddingTab = false; |
| @@ -241,4 +243,13 @@ public class IncognitoTabModel implements TabModel { |
| public void openMostRecentlyClosedTab() { |
| } |
| + @Override |
| + public void setMayAddTab(boolean mayAddTab) { |
|
Ted C
2017/05/23 23:50:17
What happens if you are multi-window, you open two
Theresa
2017/05/24 16:52:08
That path was causing issues (crashes on a segfaul
|
| + mMayAddTab = mayAddTab; |
| + if (mMayAddTab) { |
| + ensureTabModelImpl(); |
| + } else { |
| + destroyIncognitoIfNecessary(); |
| + } |
| + } |
| } |