Closed Bug 1890427 Opened 10 months ago Closed 4 months ago

Update backups when history and bookmarks are modified or manually cleared

Categories

(Firefox :: Profile Backup, task, P3)

task

Tracking

()

RESOLVED FIXED
132 Branch
Tracking Status
firefox132 --- fixed

People

(Reporter: kpatenio, Assigned: mconley)

References

(Blocks 1 open bug)

Details

(Whiteboard: [fidefe-device-migration])

Attachments

(11 files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

According to our spec, we want to remake the backup file whenever history and/or bookmarks are modified. We will need to consider the following:

  1. users can clear history in about:preferences using the Clear History button
  2. users can clear recent history using the "Panic"/"Forget" button
  3. we probably don't want to update the backup at every deletion/insertion; we should determine how often to make the backup in a way that is both reasonable and optimized for performance
Severity: -- → N/A
Depends on: 1885609, 1888446
Priority: -- → P3
Whiteboard: [fidefe-device-migration]
Blocks: 1890579
No longer blocks: 1883052
Assignee: nobody → mconley

The spec calls for the following events to clear / recreate the backup for our first version:

  • Deleting any history entry (but not the routine aging out of history data)
  • Deleting any download history entry (but not the routine aging out of download history data)
  • Deleting any bookmark
  • Deleting any password
  • Uninstalling any add-on
  • Clearing site data and cookies for a given site
  • Revoking any site permission
  • Deleting any saved payment method
  • Deleting any saved address
  • Dismissing a new tab page shortcut
  • Clearing all cookies and site data from about:preferences
  • Clearing all site settings from about:preferences
  • Clearing all history from about:preferences
Depends on: 1908002

Just a quick update here - I've filed bug 1908002 as a dependency, because I'm hoping to expose Web Locks to the browser UI so that we can use them to make sure that we don't interleave creating backups with deleting them.

Blocks: 1892744
No longer blocks: 1890579
No longer depends on: 1908002
Depends on: 1910953

This also reorganizes things a bit in BackupService so that uninitBackupScheduler
also disarms the debouncer and any queued debounced jobs end up being inert.

Attachment #9418386 - Attachment description: Bug 1890427 - Part 3: Use an AddonListener to regenerate backups when an addon is uninstalled. r?#backup-reviewers! → Bug 1890427 - Part 4: Use an AddonListener to regenerate backups when an addon is uninstalled. r?#backup-reviewers!
Attachment #9418387 - Attachment description: Bug 1890427 - Part 4: Use an observer to regenerate backups when a payment method is deleted. r?#backup-reviewers! → Bug 1890427 - Part 5: Use an observer to regenerate backups when a payment method is deleted. r?#backup-reviewers!
Attachment #9418388 - Attachment description: Bug 1890427 - Part 5: Use an observer to regenerate backups when an address is deleted. r?#backup-reviewers! → Bug 1890427 - Part 6: Use an observer to regenerate backups when an address is deleted. r?#backup-reviewers!
Attachment #9418389 - Attachment description: Bug 1890427 - Part 6: Use an observer to regenerate backups on data sanitization. r?#backup-reviewers! → Bug 1890427 - Part 7: Use an observer to regenerate backups on data sanitization. r?#backup-reviewers!
Attachment #9418390 - Attachment description: Bug 1890427 - Part 7: Use an observer to regenerate backups on permission removal. r?#backup-reviewers! → Bug 1890427 - Part 8: Use an observer to regenerate backups on permission removal. r?#backup-reviewers!
Attachment #9418391 - Attachment description: Bug 1890427 - Part 8: Use an observer to regenerate backups on cookie removal. r?#backup-reviewers! → Bug 1890427 - Part 9: Use an observer to regenerate backups on cookie removal. r?#backup-reviewers!
Attachment #9418392 - Attachment description: Bug 1890427 - Part 9: Use an observer to regenerate backups on newtab links being blocked. r?#backup-reviewers! → Bug 1890427 - Part 10: Use an observer to regenerate backups on newtab links being blocked. r?#backup-reviewers!
Pushed by mconley@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/054da7263696 Part 1: Use a PlacesObserver to regenerate backups when pages are removed or history is cleared. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/6599f4c9d1cb Part 2: Use an observer to regenerate backups when a password is deleted. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/76ac3e81db91 Part 3: Use a PlacesObserver to regenerate backups when a bookmark is deleted. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/6ccf8483a0c1 Part 4: Use an AddonListener to regenerate backups when an addon is uninstalled. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/c72168ca8f99 Part 5: Use an observer to regenerate backups when a payment method is deleted. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/57b90c2b57be Part 6: Use an observer to regenerate backups when an address is deleted. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/f1db7acebebe Part 7: Use an observer to regenerate backups on data sanitization. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/2b31d978a116 Part 8: Use an observer to regenerate backups on permission removal. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/8534805fac67 Part 9: Use an observer to regenerate backups on cookie removal. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/b3ea334a7968 Part 10: Use an observer to regenerate backups on newtab links being blocked. r=backup-reviewers,kpatenio

The prior patches in this stack cause us to attempt to delete any known
backups when doing certain clearing operations. If a backup destination
folder was not configured or is pointing at a non-existant directory,
this can cause us to throw. This is non-fatal but annoying.

This patch is some belt-and-suspenders which changes the behaviour so that:

  1. Deletion is not attempted if scheduled backups are not enabled.
  2. The backup destination pref is checked for non-empty values before
    attempting to check its existence.
  3. The existence check is wrapped in a try/catch in the event that
    the destination pref is set to an invalid path for the OS.

Depends on D218880

Attachment #9423549 - Attachment description: Bug 1890427 - Part 11: Avoid throwing when checking for a non-existant backup destination folder. r?#backup-reviewers → Bug 1890427 - Part 11: Avoid regenerating when scheduled backups disabled, and deleting non-existant backup destination folder. r?#backup-reviewers!
Pushed by mconley@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f36f2530ac50 Part 1: Use a PlacesObserver to regenerate backups when pages are removed or history is cleared. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/6ee3cddf0d2b Part 2: Use an observer to regenerate backups when a password is deleted. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/b322a1ebdee8 Part 3: Use a PlacesObserver to regenerate backups when a bookmark is deleted. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/56ba5ff598eb Part 4: Use an AddonListener to regenerate backups when an addon is uninstalled. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/d6720b4cc13a Part 5: Use an observer to regenerate backups when a payment method is deleted. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/77ab1568ac86 Part 6: Use an observer to regenerate backups when an address is deleted. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/2ab4325c3888 Part 7: Use an observer to regenerate backups on data sanitization. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/e7893f87be86 Part 8: Use an observer to regenerate backups on permission removal. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/0bfa7b25d260 Part 9: Use an observer to regenerate backups on cookie removal. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/7fd07c1a19c7 Part 10: Use an observer to regenerate backups on newtab links being blocked. r=backup-reviewers,kpatenio https://hg.mozilla.org/integration/autoland/rev/96ccbb7f4cfd Part 11: Avoid regenerating when scheduled backups disabled, and deleting non-existant backup destination folder. r=backup-reviewers,kpatenio
Flags: needinfo?(mconley)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: