summaryrefslogtreecommitdiffstats
path: root/browser/components/backup/resources/SessionStoreBackupResource.sys.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/backup/resources/SessionStoreBackupResource.sys.mjs')
-rw-r--r--browser/components/backup/resources/SessionStoreBackupResource.sys.mjs26
1 files changed, 26 insertions, 0 deletions
diff --git a/browser/components/backup/resources/SessionStoreBackupResource.sys.mjs b/browser/components/backup/resources/SessionStoreBackupResource.sys.mjs
index fa5dcca848..d28598944f 100644
--- a/browser/components/backup/resources/SessionStoreBackupResource.sys.mjs
+++ b/browser/components/backup/resources/SessionStoreBackupResource.sys.mjs
@@ -28,6 +28,32 @@ export class SessionStoreBackupResource extends BackupResource {
return false;
}
+ async backup(stagingPath, profilePath = PathUtils.profileDir) {
+ let sessionStoreState = lazy.SessionStore.getCurrentState(true);
+ let sessionStorePath = PathUtils.join(stagingPath, "sessionstore.jsonlz4");
+
+ /* Bug 1891854 - remove cookies from session store state if the backup file is
+ * not encrypted. */
+
+ await IOUtils.writeJSON(sessionStorePath, sessionStoreState, {
+ compress: true,
+ });
+ await BackupResource.copyFiles(profilePath, stagingPath, [
+ "sessionstore-backups",
+ ]);
+
+ return null;
+ }
+
+ async recover(_manifestEntry, recoveryPath, destProfilePath) {
+ await BackupResource.copyFiles(recoveryPath, destProfilePath, [
+ "sessionstore.jsonlz4",
+ "sessionstore-backups",
+ ]);
+
+ return null;
+ }
+
async measure(profilePath = PathUtils.profileDir) {
// Get the current state of the session store JSON and
// measure it's uncompressed size.