Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java |
index ab584e856826b29e0fe2e0cf4f289c63a10ab569..62b3f080718751dfadf4f21c5b843e2078048975 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java |
@@ -119,11 +119,10 @@ public class DocumentModeAssassin { |
} |
/** IDs of Tabs that have had their TabState files copied between directories successfully. */ |
- private final Set<Integer> mMigratedTabIds = new HashSet<Integer>(); |
+ private final Set<Integer> mMigratedTabIds = new HashSet<>(); |
/** Observers of the migration pipeline. */ |
- private final ObserverList<DocumentModeAssassinObserver> mObservers = |
- new ObserverList<DocumentModeAssassinObserver>(); |
+ private final ObserverList<DocumentModeAssassinObserver> mObservers = new ObserverList<>(); |
/** Current stage of the migration. */ |
private int mStage = STAGE_UNINITIALIZED; |
@@ -342,6 +341,14 @@ public class DocumentModeAssassin { |
@Override |
protected Boolean doInBackground(Void... params) { |
if (mSerializedMetadata != null) { |
+ // If an old tab state file still exists when we run migration in TPS, then it |
+ // will overwrite the new tab state file that our document tabs migrated to. |
+ File oldMetadataFile = new File( |
+ getTabbedDataDirectory(), TabPersistentStore.SAVED_STATE_FILE); |
+ if (oldMetadataFile.exists() && !oldMetadataFile.delete()) { |
+ Log.e(TAG, "Failed to delete old tab state file: " + oldMetadataFile); |
+ } |
+ |
TabPersistentStore.saveListToFile( |
getTabbedDataDirectory(), TAB_MODEL_INDEX, mSerializedMetadata); |
return true; |