Commit graph

71 commits

Author SHA1 Message Date
kpatenio
a39846bf34 Bug 1893277 - build initial UI for turning on scheduled backups. r=backup-reviewers,firefox-desktop-core-reviewers ,fluent-reviewers,mconley
backup-settings changes:
- adds a new button in the Backup section of about:preferences / about:settings
- shows the turn on dialog after pressing the button

Turn on dialog behaviour (implemented):
- pressing the cancel will close the dialog
- pressing the confirm button will set the pref browser.backup.scheduled.enabled=true and close the dialog
- pressing the passwords checkbox will show more options

Turn on dialog behaviour (not implemented):
- requiring a password for the backup (see Bug 1895981)
- modifying the save location and showing a file picker (see Bug 1895943)

Other changes:
- tests for backup-settings and the turn on dialog
- Storybook template for the turn on dialog

Lo-fi Figma designs: https://www.figma.com/design/vNbX4c0ws0L1qr0mxpKvsW/Fx-Backup?node-id=147-4558&t=PYLY0QMN1n8GR9vW-0

Differential Revision: https://phabricator.services.mozilla.com/D209769
2024-05-17 17:36:33 +00:00
Mike Conley
add5221d27 Bug 1892249 - Use nsIZipWriter to compress the staging folder. r=backup-reviewers,fchasen
This is an intermediary stage before the compressed archive gets (optionally)
encrypted and written into the container file. This is why there's not a whole
lot of testing for the compressed file - those tests will get added once it
completes its journey into the container file so that we can test both
extraction and decompression at the same time.

Differential Revision: https://phabricator.services.mozilla.com/D210311
2024-05-15 04:40:59 +00:00
Cristian Tuns
3e0499f290 Backed out changeset 6e2699724abd (bug 1892249) for causing marionette failures in PathUtils.cpp CLOSED TREE 2024-05-14 19:15:53 -04:00
Mike Conley
9244a0856d Bug 1892249 - Use nsIZipWriter to compress the staging folder. r=backup-reviewers,fchasen
This is an intermediary stage before the compressed archive gets (optionally)
encrypted and written into the container file. This is why there's not a whole
lot of testing for the compressed file - those tests will get added once it
completes its journey into the container file so that we can test both
extraction and decompression at the same time.

Differential Revision: https://phabricator.services.mozilla.com/D210311
2024-05-14 21:25:45 +00:00
Mike Conley
26bf957cd0 Bug 1893269 - Build out basic infrastructure for backup management UI. r=backup-reviewers,settings-reviewers,firefox-desktop-core-reviewers ,Gijs,fluent-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D209161
2024-05-09 21:34:35 +00:00
Mike Conley
48f3414572 Bug 1892959 - Stub out initial section for backup management within about:preferences. r=backup-reviewers,fluent-reviewers,settings-reviewers,desktop-theme-reviewers,flod,Gijs,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D209055
2024-05-08 20:37:04 +00:00
Sandor Molnar
20a7604314 Backed out changeset 5d2a72296044 (bug 1892959) for causing bc failures @ browser/components/preferences/tests/browser_bug731866.js CLOSED TREE 2024-05-08 19:44:06 +03:00
Mike Conley
826dcf2e18 Bug 1892959 - Stub out initial section for backup management within about:preferences. r=backup-reviewers,fluent-reviewers,settings-reviewers,desktop-theme-reviewers,flod,Gijs,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D209055
2024-05-08 15:21:37 +00:00
Mike Conley
79a2bf8aa0 Bug 1892771 - Clone the legacy client ID from the profile that initiated backup recovery. r=backup-reviewers,kpatenio
Data science wants us to copy the client IDs from whichever profile initiated recovery.
For legacy telemetry, the client ID is stored in a datareporting/state.json file.

This patch ensures that the client ID exists in the state.json file in the profile
that initiated recovery before then copying it over into the destination profile
for recovery.

This patch also updates the Marionette test to use a separate user profile to
initiate recovery from to ensure we get a unique client ID for it, compared to
the profile that the backup was created for.

Differential Revision: https://phabricator.services.mozilla.com/D209555
2024-05-07 13:10:28 +00:00
Mike Conley
cd028536ee Bug 1892479 - Add the legacy telemetry client ID to the backup manifest meta object. r=backup-reviewers,fchasen
Differential Revision: https://phabricator.services.mozilla.com/D209461
2024-05-07 13:10:28 +00:00
Mike Conley
b8f43c9efd Bug 1892312 - Copy times.json from profile that initiated recovery and record recovery time. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D209028
2024-05-06 16:47:00 +00:00
Mike Conley
74ebb5bd76 Bug 1892312 - Stop backing up times.json in MiscDataBackupResource. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D209026
2024-05-06 16:46:59 +00:00
Stanca Serban
046599f3d1 Backed out 4 changesets (bug 1892312) for causing linting opt failures.
Backed out changeset a471d91079ae (bug 1892312)
Backed out changeset 3c4d8db39a35 (bug 1892312)
Backed out changeset 197faa33654c (bug 1892312)
Backed out changeset 8510a0207087 (bug 1892312)
2024-05-06 19:17:04 +03:00
Mike Conley
ec400bfa62 Bug 1892312 - Copy times.json from profile that initiated recovery and record recovery time. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D209028
2024-05-06 15:18:40 +00:00
Mike Conley
38b02a34f2 Bug 1892312 - Stop backing up times.json in MiscDataBackupResource. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D209026
2024-05-06 15:18:39 +00:00
Nikki Sharpley
e900310aa3 Bug 1885894 - Remove sidebar persistence from XULStore r=sessionstore-reviewers,backup-reviewers,sidebar-reviewers,Gijs,mconley,sfoster,sclements
Since we are moving away from XUL for the revamped sidebar, remove persistence off of XULstore.
For now, this involves moving persistence of "sidebar-command" and "positionend" to SessionStore.

A follow up bug 1892033 for moving the style attribute to SessionStore has been filed. This is slightly more involved,
hence the separate patch.

Differential Revision: https://phabricator.services.mozilla.com/D207048
2024-05-06 15:11:20 +00:00
kpatenio
0ff602d0ba Bug 1888448 - Implement recover for SessionStoreBackupResource. r=backup-reviewers,mconley
Differential Revision: https://phabricator.services.mozilla.com/D209319
2024-05-03 21:05:55 +00:00
Fred Chasen
5ed4c181c5 Bug 1890297 - Implement recover for AddonsBackupResource. r=backup-reviewers,mconley
Differential Revision: https://phabricator.services.mozilla.com/D209174
2024-05-03 16:43:53 +00:00
Mike Conley
d46f8f0571 Bug 1892105 - Flesh out test_backup.py with some data to backup and recover. r=backup-reviewers,kpatenio
This patch updates test_backup.py to write some testing data into various data stores
that BackupService is backing up, create a backup, recover from that backup, and check
to see if the written data exists in the recovered profile.

This isn't exactly exhaustive - there are a number of data stores that aren't accounted
for here yet. Chiefly AddonsBackupResource and SessionStoreBackupResource (bug 1894004),
but also:

1. FxA sign-in status
2. Logins backups
3. Site Security Service State
4. ProfileAge data
5. WebRTC device ID mappings
6. Favicons
7. XUL Store data
8. Content preferences
9. Containers preferences
10. File handler preferences
11. Search preferences
12. user.js and chrome/ customizations

Still, this is a start, and certainly better than nothing. Bug 1894089 has been filed
to add more data to test the listed 12 items.

Differential Revision: https://phabricator.services.mozilla.com/D208939
2024-05-01 14:54:35 +00:00
Mike Conley
44105aba59 Bug 1892105 - Add a postRecoveryComplete Promise getter to BackupService. r=backup-reviewers,kpatenio
This Promise is mainly for use by Marionette tests to know when to check
data stores that might have been updated by postRecovery steps.

Differential Revision: https://phabricator.services.mozilla.com/D208938
2024-05-01 14:54:35 +00:00
Mike Conley
d1146ba51d Bug 1888440 - Implement recover for CookiesBackupResource. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D208894
2024-04-29 18:56:28 +00:00
kpatenio
7187cd351e Bug 1888446 - implement recover for PlacesBackupResource. r=backup-reviewers,places-reviewers,mconley,Standard8
Differential Revision: https://phabricator.services.mozilla.com/D208565
2024-04-29 17:17:02 +00:00
kpatenio
aa7e677f7b Bug 1888442 - import recover for CredentialsAndSecurityBackupResource. r=backup-reviewers,mconley
Differential Revision: https://phabricator.services.mozilla.com/D208806
2024-04-29 17:12:54 +00:00
Mike Conley
59189707f3 Bug 1888444 - Implement recover for FormHistoryBackupResource. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D208554
2024-04-25 16:59:09 +00:00
Mike Conley
7f6b5c9d4d Bug 1888445 - Implement recover and postRecovery for MiscDataBackupResource. r=backup-reviewers,fchasen
Differential Revision: https://phabricator.services.mozilla.com/D208372
2024-04-25 13:07:10 +00:00
Mike Conley
006fd0c04f Bug 1892335 - Have BackupService.init scan for and process a post-recovery.json file if it finds one. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D208203
2024-04-25 13:07:10 +00:00
Mike Conley
31c2867f20 Bug 1892304 - Add the FxA uid and email to the backup manifest if signed in when creating a backup. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D208191
2024-04-25 13:07:09 +00:00
Mike Conley
52d71266f3 Bug 1888447 - Implement recover for the PreferencesBackupResource. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D208162
2024-04-24 18:02:49 +00:00
Mike Conley
bc92f02a3f Bug 1891596 - Add initial recoverFromBackup method to BackupService. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D207929
2024-04-24 18:02:48 +00:00
Mike Conley
9dd96ec1eb Bug 1886614 - Write a marionette test for the BackupService.createBackup method. r=backup-reviewers,kpatenio
This test can be run via:

./mach marionette-test browser/components/backup/test/marionette/test_backup.py

This also makes it so that BackupResource.copySqliteDatabases does not throw if
one of the passed in database files doesn't exist - it'll just ignore it and
move on. This required me to update some tests in order to create some fake
SQLite databases to ensure that the fake Sqlite connection was made and the
backup stub was called for the SQLite databases being copied.

Finally, this also fixes something I noticed - some of our BackupResource's
weren't returning null or objects as their ManifestEntry. This fixes that
and adds tests to cover that case.

Differential Revision: https://phabricator.services.mozilla.com/D207811
2024-04-23 02:54:49 +00:00
Fred Chasen
a20bdb0a06 Bug 1892007 - Add optional priority number to BackupResource. r=backup-reviewers,mconley
- Adds a static `priority` getter in BackupResource base class, which defaults to 0.
- Determine the order resources will be backed up sorted on that priority in `createBackup`, defaulting to unordered.
- Sets `PlacesBackupResource` position 1 so it will run first.

Differential Revision: https://phabricator.services.mozilla.com/D207934
2024-04-22 23:15:07 +00:00
kpatenio
1ca53421e5 Bug 1886613 - Rename staging folder once backup is done. r=backup-reviewers,mconley
Differential Revision: https://phabricator.services.mozilla.com/D207821
2024-04-22 16:40:23 +00:00
kpatenio
9ec8f0a1bb Bug 1892138 - reduce failures for test_SessionStoreBackupResource. r=backup-reviewers,mconley
Differential Revision: https://phabricator.services.mozilla.com/D207888
2024-04-18 18:16:41 +00:00
Mike Conley
4cd9dc862c Bug 1891141 - Create preferences for the pages per step and step delay used by BackupResources. r=backup-reviewers,fchasen
Differential Revision: https://phabricator.services.mozilla.com/D207568
2024-04-17 20:50:48 +00:00
kpatenio
dca313655e Bug 1885941 - implement backup method for cookies, form history and sessions BackupResources. r=backup-reviewers,mconley
Differential Revision: https://phabricator.services.mozilla.com/D207495
2024-04-17 20:43:38 +00:00
Mike Conley
be74ed5dc8 Bug 1887752 - Write a backup-manifest.json inside of the staging folder when creating a backup. r=backup-reviewers,fchasen
Differential Revision: https://phabricator.services.mozilla.com/D207312
2024-04-17 18:48:04 +00:00
Natalia Csoregi
8f96415327 Backed out changeset 1d9301697aa0 (bug 1887752) for causing failures on browser_all_files_referenced.js CLOSED TREE 2024-04-17 20:29:32 +03:00
Mike Conley
509a0987a7 Bug 1887752 - Write a backup-manifest.json inside of the staging folder when creating a backup. r=backup-reviewers,fchasen
Differential Revision: https://phabricator.services.mozilla.com/D207312
2024-04-17 15:17:40 +00:00
Fred Chasen
5d5182acb3 Bug 1885614 - Implement backup method for AddonsBackupResource. r=backup-reviewers,mconley
Differential Revision: https://phabricator.services.mozilla.com/D207491
2024-04-16 19:27:25 +00:00
Mike Conley
e0a87b45fd Bug 1890585 - Have MiscDataBackupResource backup the ActivityStreamStorage snippets table. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D207460
2024-04-16 19:18:33 +00:00
kpatenio
7a10ac5ee0 Bug 1885929 - Implement backup method for CredentialsAndSecurityBackupResource. r=backup-reviewers,mconley
Differential Revision: https://phabricator.services.mozilla.com/D207286
2024-04-15 20:18:40 +00:00
Mike Conley
fffcfa3406 Bug 1890591 - Add some utilities to BackupResource for copying files and Sqlite databases. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D207155
2024-04-15 14:47:20 +00:00
kpatenio
ccd602ba69 Bug 1885609 - implement backup method for PlacesBackupResource. r=backup-reviewers,places-reviewers,mak,mconley
Implements `PlacesBackupResource.backup` to store a copy of `places.sqlite` and `favicons.sqlite` in the staging folder.

If users don't want history remembered or use permanent private browsing mode, we will backup bookmarks instead to a file called `bookmarks.json`. Automatic backup is not yet implemented, so to test changes locally, go to `chrome://browser/content/backup/debug.html` to view where we store the staging folder and to manually run the backup methods for all available backup resources.

Backup files for `PlacesBackupResource` should be under the `places` subfolder in the staging folder.

Differential Revision: https://phabricator.services.mozilla.com/D206532
2024-04-10 21:21:17 +00:00
Mike Conley
5b2a90d270 Bug 1885944 - Implement backup method for MiscDataBackupResource. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D207057
2024-04-10 13:36:58 +00:00
Mike Conley
cc7616cf1d Bug 1890294 - Add a requiresEncryption static getter on BackupResource for subclasses to override. r=backup-reviewers,places-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D206910
2024-04-09 15:15:34 +00:00
Mike Conley
1b8b9bd0ca Bug 1885939 - Implement backup method for PreferencesBackupResource. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D205929
2024-04-05 14:05:42 +00:00
kpatenio
d171cbfdc1 Bug 1889747 - signedInUser.json file size measurement should be done in CredentialsAndSecurityBackupResource.sys.mjs. r=backup-reviewers,mconley
Differential Revision: https://phabricator.services.mozilla.com/D206704
2024-04-04 23:04:19 +00:00
Fred Chasen
fe831557e2 Bug 1883655 - Add disk size measurements for all addons and extensions data. data-review=jhirsch r=backup-reviewers,mconley,rpl
Differential Revision: https://phabricator.services.mozilla.com/D204675
2024-04-04 21:43:41 +00:00
Cristian Tuns
fdf31a87af Backed out changeset 21aa60d7cd79 (bug 1883655) for causing xpcshell failures in test_measurements.js CLOSED TREE 2024-04-04 14:54:49 -04:00
Fred Chasen
ceff0420f6 Bug 1883655 - Add disk size measurements for all addons and extensions data. data-review=jhirsch r=backup-reviewers,mconley,rpl
Differential Revision: https://phabricator.services.mozilla.com/D204675
2024-04-04 16:17:44 +00:00