MigrationUtils 参考¶
- class MigrationUtils()¶
MigrationUtils 单例服务。此服务是从其他浏览器迁移到此浏览器的主要机制。此类的单例实例从此模块导出为 MigrationUtils。
- MigrationUtils.MIGRATION_ENTRYPOINTS¶
返回一个枚举,该枚举应用于记录启动迁移的入口点。
- MigrationUtils._importQuantities¶
这只是伪私有,因为一些测试和辅助函数仍然希望能够直接访问它。
- MigrationUtils.isStartupMigration¶
类型: 布尔值
如果我们正在进行启动迁移,则为真。
- MigrationUtils.profileStartup¶
类型: nsIProfileStartup|null
在启动迁移的情况下,将其设置为传递给 ProfileMigrator 的 migrate 的 nsIProfileStartup 实例。
另请参阅
- MigrationUtils.canGetPermissionsOnPlatform()¶
确定底层平台是否支持创建可以执行文件夹选择的原生文件选择器,这是获取要从中导入的其他浏览器数据的读取访问权限的先决条件。
- 返回值:
Promise.<boolean> –
- MigrationUtils.finishMigration()¶
清理对迁移器和 nsIProfileInstance 实例的引用。
- MigrationUtils.getLocalizedString(aKey, aArgs)¶
获取与 l10n-id 对应的本地化字符串
- 参数:
aKey (字符串) – 要检索的本地化的 ID 的键。
aArgs (对象) – ID 的可选参数映射。
- 返回值:
Promise.<字符串> – 解析为检索到的本地化的 Promise。
- MigrationUtils.getMigrator(aKey)¶
如果此源的任何数据可用,或者如果需要权限才能从此源读取数据,则返回给定源的迁移器。否则返回 null。
- 参数:
aKey (字符串) – 迁移源的内部名称。有关操作系统支持的值,请参阅 availableMigratorKeys。
- 返回值:
Promise.<(MigratorBase|null)> – 如果可以导入任何数据,则为实现 nsIBrowserProfileMigrator 的配置文件迁移器,否则为 null。
- MigrationUtils.getMigratorKeyForDefaultBrowser()¶
找出默认浏览器是什么,如果存在它的迁移器,则返回该迁移器的内部名称。
目前,迁移器的“内部名称”是其契约 ID 后缀(例如,@mozilla.org/profile/migrator;1?app=browser&type=ie 中的 ie),但很快就会正确公开。
- 返回值:
字符串 –
- MigrationUtils.getRowsFromDBWithoutLocks(path, description, selectQuery, testDelayPromise=null)¶
获取与数据库中选择查询相对应 的所有行,而无需对数据库加锁。如果获取数据失败(例如,因为其他人尝试同时写入 DB),我们将尝试在 100 毫秒超时后重新获取,最多 10 次。
- 参数:
path (字符串) – 我们要打开的数据库的文件路径。
description (字符串) – 一个开发人员可读的字符串,用于识别我们尝试打开哪种数据库。
selectQuery (字符串) – 用于获取行的 SELECT 查询。
testDelayPromise (Promise) – 第一个循环后等待的可选 Promise,在测试中使用。
- 返回值:
Promise.<(Array.<object>|Error)> – 解析为行数组的 Promise。如果读取/获取即使在重试后也失败,则此 Promise 将被拒绝。
- MigrationUtils.insertManyFavicons(favicons)¶
遍历收藏夹图标,嗅探 MIME 类型,并使用 MIME 类型正确导入收藏夹图标。
- 注意:您可能不想等待返回的 Promise,尤其是在
这样做存在中断更关键数据(例如书签)迁移的风险时。
- 参数:
favicons (Array.<object>) – 对象数组,具有以下属性:{Uint8Array} faviconData:收藏夹图标的二进制数据 {nsIURI} uri:关联页面的 URI
- MigrationUtils.installExtensionsWrapper(migratorKey, extensionIDs)¶
负责调用最终安装匹配加载项的 AddonManager API。
- 参数:
migratorKey (字符串) – 我们传递给 AMBrowserExtensionsImport 的迁移器键,作为用于匹配加载项的“浏览器标识符”。
extensionIDs (Array.<字符串>) – 来自另一个浏览器的扩展 ID 列表。
- 返回值:
- MigrationUtils.migratorExists(aKey)¶
如果使用键 aKey 注册了迁移器,则返回 true。不进行检查以确定是否存在配置文件,迁移器可以从中迁移。
- 参数:
aKey (字符串) – 迁移源的内部名称。有关操作系统支持的值,请参阅 availableMigratorKeys。
- 返回值:
布尔值 –
- MigrationUtils.showMigrationWizard(aOpener=null, aOptions=null)¶
在 about:preferences 中显示迁移向导,或者如果未打开现有的浏览器窗口,则在新的顶级对话框窗口中显示。
注意:如果您添加了新的使用者,请将迁移入口点常量添加到 MIGRATION_ENTRYPOINTS,并在 aOptions 参数的 entrypoint 属性中提供该入口点。
- 参数:
aOpener (窗口) – 可选;请求打开向导的窗口。
aOptions (对象) – 迁移向导的可选命名参数。
aOptions.entrypoint (字符串) – 迁移入口点常量。请参阅 MIGRATION_ENTRYPOINTS。
aOptions.migratorKey (字符串) – 要自动使用的迁移器的键。这是作为迁移器类上的静态 getter 公开的键。
aOptions.migrator (MigratorBase) – 要自动使用的迁移器实例。
aOptions.isStartupMigration (布尔值) – 如果这是启动迁移,则为真。
aOptions.skipSourceSelection (布尔值) – 如果应跳过向导的源选择页面,则为真。
aOptions.profileId (字符串) – 用于迁移的配置文件的标识符。
- 返回值:
Promise.<undefined> – 如果可以打开 about:preferences 选项卡,则当该选项卡已切换到时,此选项卡将解析。否则,此选项卡将在打开顶级对话框窗口后立即解析。
- MigrationUtils.startupMigration(aProfileStartup, aMigratorKey="null", aProfileToMigrate="null")¶
显示启动迁移的迁移向导。这只能由 ProfileMigrator(请参阅 ProfileMigrator.js)调用,后者实现了 nsIProfileMigrator。如果我们正在运行自动迁移,则此操作将异步运行。
- 参数:
aProfileStartup (nsIProfileStartup) – 提供给 ProfileMigrator.migrate 的 nsIProfileStartup 实例。
aMigratorKey (字符串|null) – 如果设置,迁移向导将从相应的迁移器导入,绕过源选择页面。否则,将显示源选择页面,如果可以检测到默认浏览器并且存在相应的迁移器,则使用默认浏览器,否则将选择第一个选项作为后备。
aProfileToMigrate (字符串|null) – 如果设置,迁移向导将从指定的配置文件导入。
- 抛出:
如果 aMigratorKey 无效或指向不存在的源。
- MigrationUtils.wrapMigrateFunction(aFunction, aCallback)¶
用于实现迁移资源的简单异步案例的辅助函数
migrate(aCallback)
(参见 MigratorBase)。如果您的migrate
方法只是等待某些文件读取,例如,然后立即迁移所有内容,您可以使用此辅助函数包装异步函数,而无需担心通知回调。- 参数:
aFunction (函数) – 将在稍后调用的函数。如果 aFunction 在被调用时抛出异常,则调用 aCallback(false),否则调用 aCallback(true)。
aCallback (函数) – 传递给
migrate
的回调函数。
- 返回值:
函数 – 被包装的函数。
示例
// For example, instead of writing: setTimeout(function() { try { .... aCallback(true); } catch() { aCallback(false); } }, 0); // You may write: setTimeout(MigrationUtils.wrapMigrateFunction(function() { if (importingFromMosaic) throw Cr.NS_ERROR_UNEXPECTED; }, aCallback), 0); // ... and aCallback will be called with aSuccess=false when importing // from Mosaic, or with aSuccess=true otherwise.