备份资源参考

BackupResource 是一个用于表示用户配置文件中一组逻辑上需要一起备份的数据的基类。例如,PlacesBackupResource 表示 places.sqlite SQLite 数据库以及 favicons.sqlite 数据库。 AddonsBackupResource 不仅表示各种附加组件的首选项,还表示定义这些附加组件的 XPI 文件。

每个 BackupResource 子类通过将其添加到 BackupResources.sys.mjs 中的 BackupResources 模块中导出的默认类集中,注册供 BackupService 使用。

class BackupResource()

一个抽象类,表示用户配置文件中的一组数据,这些数据可以持久化到单独的备份存档文件中,并可以从该备份存档文件恢复到新的用户配置文件中。

BackupResource.BackupResource
BackupResource.key

类型:字符串

这必须被覆盖以返回资源的简单字符串标识符,例如“places”或“extensions”。此键用作资源的唯一标识符。

BackupResource.priority

这可以被覆盖以返回一个数字,指示资源在备份顺序中的优先级。

优先级较高的资源将首先备份。默认优先级 0 表示它可以按任何顺序处理。

BackupResource.requiresEncryption

类型:布尔值

这必须被覆盖以返回一个布尔值,指示资源在备份时是否需要加密。对于特别敏感的数据(例如密码/凭据、cookie 或付款方式),应该要求加密。如果不确定,请咨询隐私团队的成员。

BackupResource.backup(stagingPath, profilePath="null", isEncrypting=false)

对该资源管理的数据存储进行安全复制,并将它们写入备份数据库。Promise 应该解析为一个可以序列化为 JSON 的对象,因为它将被写入清单文件。在恢复备份时,此相同的对象将被反序列化并传递给 restore()。如果不需要其他信息来恢复备份,则此对象可以为 null。

参数:
  • stagingPath (字符串) – 此 BackupResource 的数据存储副本应写入到的暂存文件夹的路径。

  • profilePath (字符串) – 如果备份正在当前运行的用户配置文件上运行,则此值为 null。但是,如果备份正在不同的用户配置文件上运行(例如,它正在从用户配置文件上的 BackgroundTask 中运行,该用户配置文件刚刚关闭,或者在测试期间运行),则此字符串设置为该用户配置文件路径。

  • isEncrypting (布尔值) – 如果备份正在加密,则为 true。BackupResource 可能不需要加密,但仍然可以选择在加密时表现出不同的行为,因此可以使用此标志来支持这种行为。

返回值:

Promise.<(对象|null)>

BackupResource.measure(profilePath)

这必须被覆盖以记录与此 BackupResource 关联的任何数据的大小相关的遥测数据。

参数:
  • profilePath (字符串) – 配置文件目录的路径。

返回值:

Promise.<undefined>

BackupResource.postRecovery(postRecoveryEntry)

执行恢复完成后和恢复的配置文件已附加后需要执行的任何恢复后操作。

此方法在连接到恢复配置文件的应用程序中运行。配置文件已锁定,但此 postRecovery 方法可用于将数据插入连接的数据存储中,或执行任何其他只能在恢复配置文件上下文中发生的任何其他操作。

参数:
  • postRecoveryEntry (对象|null) – 最初完成恢复时,recover() 方法返回的对象。如果恢复后不需要其他信息,则此对象可以为 null。

BackupResource.recover(manifestEntry, recoveryPath, destProfilePath)

从已解压缩到 recoveryPath 的备份存档中恢复此资源管理的数据存储。应该有一个预先存在的未锁定的用户配置文件可供恢复,并且 destProfilePath 应该指向其在文件系统上的位置。

此方法预计不会在连接到 destProfilePath 的应用程序中运行。如果 BackupResource 需要在连接到恢复配置文件时运行某些操作,则应在 postRecovery() 中执行该工作。如果数据需要传输到 postRecovery(),则应将其作为 JSON 可序列化对象传递到此方法的返回值中。

参数:
  • manifestEntry (对象|null) – 创建备份时,backup() 方法返回的对象。如果恢复不需要其他信息,则此对象可以为 null。

  • recoveryPath (字符串) – 备份存档已解压缩到的资源目录的路径。

  • destProfilePath (字符串) – 应将备份恢复到的配置文件目录的路径。

返回值:

Promise.<(对象|null)> – 如果任何数据需要传递给它,则应返回一个 JSON 可序列化对象,该对象将传递给 postRecovery()。如果 postRecovery() 不需要其他信息,则此对象可以为 null。

static BackupResource.canBackupHistory()

如果浏览器以允许备份与浏览历史相关的配置方式进行配置,则返回 true。否则,返回 false。

返回值:

布尔值

static BackupResource.copyFiles(sourcePath, destPath, fileNames)

一个辅助函数,用于将一组文件从源目录复制到目标目录。调用者应确保在调用此函数之前可以安全地复制源文件。不存在的文件将被忽略。希望复制 SQLite 数据库的调用者应改为使用 copySqliteDatabases()。

参数:
  • sourcePath (字符串) – 要复制的文件的源目录的路径。

  • destPath (字符串) – 文件应复制到的目标目录的路径。

  • fileNames (Array.<字符串>) – 要复制的文件的文件名数组。

返回值:

Promise.<undefined>

static BackupResource.copySqliteDatabases(sourcePath, destPath, sqliteDatabases)

安全地将一组 SQLite 数据库从源目录复制到目标目录。为每个数据库打开一个新的只读连接,然后创建备份。如果源数据库不存在,则忽略它。

参数:
  • sourcePath (string) – SQLite 数据库源目录的路径。

  • destPath (string) – 要将 SQLite 数据库复制到的目标目录的路径。

  • sqliteDatabases (Array.<string>) – 要复制的 SQLite 数据库的文件名数组。

返回值:

Promise.<undefined>

static BackupResource.getDirectorySize(directoryPath, options)

获取目录的总大小。

参数:
  • directoryPath (string) – 目录的路径。

  • options (object) – 一组额外的可选参数。

  • options.shouldExclude (function) – 一个可选的回调函数,根据文件路径和文件类型,如果应该从计算的目录大小中排除文件,则返回 true。

返回值:

Promise.<(number|null)> – 目录所有子项的大小(以千字节为单位),如果目录不存在、路径不是目录或大小未知,则返回 null。

static BackupResource.getFileSize(filePath)

获取文件的大小。

参数:
  • filePath (string) – 文件的路径。

返回值:

Promise.<(number|null)> – 文件的大小(以千字节为单位),如果文件不存在、路径是目录或大小未知,则返回 null。

class AddonsBackupResource()

插件和扩展文件及数据的备份。

class CookiesBackupResource()

表示用户配置文件中 Cookie 数据库的类。

class CredentialsAndSecurityBackupResource()

表示用户配置文件中登录、支付方式和表单自动填充所需文件的类。

class FormHistoryBackupResource()

表示用户配置文件中表单历史记录数据库的类。

class MiscDataBackupResource()

表示用户配置文件中各种文件的类,包括遥测数据、站点存储、媒体设备来源映射、Chrome 权限索引数据库和 Mozilla 账户。

class PlacesBackupResource()

表示用户配置文件中与 Places 数据库相关的文件的类。

class PreferencesBackupResource()

表示修改用户配置文件中的首选项和权限的文件的类。

class SessionStoreBackupResource()

表示用户配置文件中与会话存储相关的文件的类。