Bug 1893485 - Add the profileGroupID to the backup manifest. r=backup-reviewers,kpatenio
This is a BackupManifest schema change that will break recovering from any backups created before this change. However, considering that we haven't released this feature yet, I figured it wasn't worth the effort of doing a schema version bump or handling of the prior version. I'm making the field optional in the BackupManifest because in the event that we decide to backport the backup component to ESR 115, we need to handle the fact that ESR 115 has no notion of a profile group ID (and is unlikely to ever have such a notion). Differential Revision: https://phabricator.services.mozilla.com/D218976
This commit is contained in:
@@ -2307,6 +2307,7 @@ export class BackupService extends EventTarget {
|
||||
osName: Services.sysinfo.getProperty("name"),
|
||||
osVersion: Services.sysinfo.getProperty("version"),
|
||||
legacyClientID: await lazy.ClientID.getClientID(),
|
||||
profileGroupID: await lazy.ClientID.getProfileGroupID(),
|
||||
};
|
||||
|
||||
let fxaState = lazy.UIState.get();
|
||||
|
||||
@@ -53,6 +53,10 @@
|
||||
"legacyClientID": {
|
||||
"type": "string",
|
||||
"description": "The legacy telemetry client ID for the profile that the backup was created on."
|
||||
},
|
||||
"profileGroupID": {
|
||||
"type": "string",
|
||||
"description": "The ID for the profile group that the backup was created on. Optional."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
|
||||
@@ -62,7 +62,7 @@ Content-Type: multipart/mixed; boundary="----=_Part_1721146477166_dneaick9cm_9c7
|
||||
------=_Part_1721146477166_dneaick9cm_9c70553ysr
|
||||
Content-Type: application/json; charset=utf-8
|
||||
Content-Disposition: attachment; filename="archive.json"
|
||||
Content-Length: 3324
|
||||
Content-Length: 3380
|
||||
|
||||
{"version":1,"encConfig":{"wrappedSecrets":"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","wrappedArchiveKeyMaterial":"gphveRF4QOkyCTgxT6+O/aAQyNDwNPrMDC8XdZ3X8rDRVoTtXOq19m2A0SI00yYv73I4NKYrSnp95tILahSc/OHtqmWk8l6uGrwO+hfAIXBs9kFMZhRDtijmcvldUm3LEVrnc5ZOc2OLvDwB13D0jNr3sc7BzBUxV9/I8wx2B6SanbL55V73AEa5pLmMFJzrlmayZ7CPICnUsnJPT8xAwBBCAKZ8RaDnrDTq9qtw78K5qYQqyGkofuzmlpvIWyZAKAEt/lzFP7art1/6B9jzfj//yaQ7/GHMf6eeQsSGBliWLLftkZfjZPVMxLVpWOxcUlr4rm+MZM0kTSCDCQJ07g==","salt":"2lyQ78RKFja17bBGjI+puW3TuLIYawRDl59Z+k2OM3piYWNrdXBrZXktdjE=","nonce":"CScM46fJSfDRNlArPwBZw/QxSsnevLTAvrR3H1KNLPkEHVX7RKpGNyrfh9YWiLO1vC0AOwFYpx2gByRx/v1w2RTJR926Wl/Si0+SWUPSJhN4Jd9w8Qo8e+MVE+d2ZrCY","confirmation":"L7+bpdPiR0dgQwOpmz8cMUYh6JL+EFltwvNhoF8HUv8="},"meta":{"date":"2024-06-07T00:00:00+00:00","appName":"firefox","appVersion":"128.0","buildID":"20240604133346","profileName":"profile-default","machineName":"A super cool machine","osName":"Windows_NT","osVersion":"10.0","legacyClientID":"decafbad-0cd1-0cd2-0cd3-decafbad1000","accountID":"","accountEmail":""}}
|
||||
{"version":1,"encConfig":{"wrappedSecrets":"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","wrappedArchiveKeyMaterial":"gphveRF4QOkyCTgxT6+O/aAQyNDwNPrMDC8XdZ3X8rDRVoTtXOq19m2A0SI00yYv73I4NKYrSnp95tILahSc/OHtqmWk8l6uGrwO+hfAIXBs9kFMZhRDtijmcvldUm3LEVrnc5ZOc2OLvDwB13D0jNr3sc7BzBUxV9/I8wx2B6SanbL55V73AEa5pLmMFJzrlmayZ7CPICnUsnJPT8xAwBBCAKZ8RaDnrDTq9qtw78K5qYQqyGkofuzmlpvIWyZAKAEt/lzFP7art1/6B9jzfj//yaQ7/GHMf6eeQsSGBliWLLftkZfjZPVMxLVpWOxcUlr4rm+MZM0kTSCDCQJ07g==","salt":"2lyQ78RKFja17bBGjI+puW3TuLIYawRDl59Z+k2OM3piYWNrdXBrZXktdjE=","nonce":"CScM46fJSfDRNlArPwBZw/QxSsnevLTAvrR3H1KNLPkEHVX7RKpGNyrfh9YWiLO1vC0AOwFYpx2gByRx/v1w2RTJR926Wl/Si0+SWUPSJhN4Jd9w8Qo8e+MVE+d2ZrCY","confirmation":"L7+bpdPiR0dgQwOpmz8cMUYh6JL+EFltwvNhoF8HUv8="},"meta":{"date":"2024-06-07T00:00:00+00:00","appName":"firefox","appVersion":"128.0","buildID":"20240604133346","profileName":"profile-default","machineName":"A super cool machine","osName":"Windows_NT","osVersion":"10.0","legacyClientID":"decafbad-0cd1-0cd2-0cd3-decafbad1000","accountID":"","accountEmail":"","profileGroupID":"decafbad-0cd1-0cd2-0cd3-decafbad2000"}}
|
||||
---- End inline MIME -->
|
||||
|
||||
@@ -12,9 +12,9 @@ Content-Type: multipart/mixed; boundary="----=_Part_1721146477166_dneaick9cm_9c7
|
||||
------=_Part_1721146477166_dneaick9cm_9c70553ysr
|
||||
Content-Type: application/json; charset=utf-8
|
||||
Content-Disposition: attachment; filename="archive.json"
|
||||
Content-Length: 342
|
||||
Content-Length: 398
|
||||
|
||||
{"version":1,"encConfig": null,"meta":{"date":"2024-06-07T00:00:00+00:00","appName":"firefox","appVersion":"128.0","buildID":"20240604133346","profileName":"profile-default","machineName":"A super cool machine","osName":"Windows_NT","osVersion":"10.0","legacyClientID":"decafbad-0cd1-0cd2-0cd3-decafbad1000","accountID":"","accountEmail":""}}
|
||||
{"version":1,"encConfig": null,"meta":{"date":"2024-06-07T00:00:00+00:00","appName":"firefox","appVersion":"128.0","buildID":"20240604133346","profileName":"profile-default","machineName":"A super cool machine","osName":"Windows_NT","osVersion":"10.0","legacyClientID":"decafbad-0cd1-0cd2-0cd3-decafbad1000","accountID":"","accountEmail":"","profileGroupID":"decafbad-0cd1-0cd2-0cd3-decafbad2000"}}
|
||||
|
||||
------=_Part_1721146477166_dneaick9cm_9c70553ysr
|
||||
---- End inline MIME -->
|
||||
|
||||
@@ -77,6 +77,7 @@ const FAKE_METADATA = {
|
||||
osName: "Windows_NT",
|
||||
osVersion: "10.0",
|
||||
legacyClientID: "decafbad-0cd1-0cd2-0cd3-decafbad1000",
|
||||
profileGroupID: "decafbad-0cd1-0cd2-0cd3-decafbad2000",
|
||||
accountID: "",
|
||||
accountEmail: "",
|
||||
};
|
||||
|
||||
@@ -102,6 +102,7 @@ async function testCreateBackupHelper(sandbox, taskFn) {
|
||||
);
|
||||
|
||||
const EXPECTED_CLIENT_ID = await ClientID.getClientID();
|
||||
const EXPECTED_PROFILE_GROUP_ID = await ClientID.getProfileGroupID();
|
||||
|
||||
let fake1ManifestEntry = { fake1: "hello from 1" };
|
||||
sandbox
|
||||
@@ -272,6 +273,11 @@ async function testCreateBackupHelper(sandbox, taskFn) {
|
||||
EXPECTED_CLIENT_ID,
|
||||
"The client ID was stored properly."
|
||||
);
|
||||
Assert.equal(
|
||||
manifest.meta.profileGroupID,
|
||||
EXPECTED_PROFILE_GROUP_ID,
|
||||
"The profile group ID was stored properly."
|
||||
);
|
||||
Assert.equal(
|
||||
manifest.meta.profileName,
|
||||
currentProfile.name,
|
||||
|
||||
@@ -118,6 +118,7 @@ add_task(async function test_hostile_metadata() {
|
||||
osName: "<script>alert('test');</script>",
|
||||
osVersion: "<script>alert('test');</script>",
|
||||
legacyClientID: "<script>alert('test');</script>",
|
||||
profileGroupID: "<script>alert('test');</script>",
|
||||
accountID: "<script>alert('test');</script>",
|
||||
accountEmail: "<script>alert('test');</script>",
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user