用户操作

某些操作可通过 CFR 的按钮上的 action 等字段提供给消息。

用法

对于 CFR,您应该在 action 中添加操作 type,并在 data 中添加任何其他参数。例如

"action": {
  "type": "OPEN_PREFERENCES_PAGE",
  "data": { "category": "sync" },
}

可用操作

OPEN_APPLICATIONS_MENU

  • 参数:无

打开应用程序菜单。

OPEN_FIREFOX_VIEW

  • 参数:无

打开 Firefox 查看伪标签。

OPEN_PRIVATE_BROWSER_WINDOW

  • 参数:无

打开一个新的隐私浏览窗口。

OPEN_SIDEBAR

  • 参数:string 要打开的面板 ID,例如 viewHistorySidebar

打开一个侧边栏面板。

OPEN_URL

  • 参数:string (一个 URL)

打开给定的 URL。

示例

"action": {
  "type": "OPEN_URL",
  "data": { "args": "https://foo.com" },
}

OPEN_ABOUT_PAGE

  • 参数

{
  args: string, // (a valid about page without the `about:` prefix)
  entrypoint?: string, // URL search param used for referrals
}

打开给定的 about 页面

示例

"action": {
  "type": "OPEN_ABOUT_PAGE",
  "data": { "args": "privatebrowsing" },
}

OPEN_PREFERENCES_PAGE

  • 参数

{
  args?: string, // (a category accessible via a `#`)
  entrypoint?: string // URL search param used to referrals

Opens `about:preferences` with an optional category accessible via a `#` in the URL (e.g. `about:preferences#home`).

Example:

```json
"action": {
  "type": "OPEN_PREFERENCES_PAGE",
  "data": { "category": "general-cfrfeatures" },
}

SHOW_FIREFOX_ACCOUNTS

  • 参数:无

打开 Firefox 账户注册页面。默认情况下,会编码一些信息,表明来源是代码片段。

FXA_SIGNIN_FLOW

  • 参数

{
  // a valid `where` value for `openUILinkIn`. Only `tab` and `window` have been tested, and `tabshifted`
  // is unlikely to do anything different from `tab`.
  where?: "tab" | "window" = "tab",

  entrypoint?: string // URL search params string to pass along to FxA. Defaults to "activity-stream-firstrun".
  extraParams?: object // Extra parameters to pass along to FxA. See FxAccountsConfig.promiseConnectAccountURI.
}
  • 示例

"action": {
  "type": "FXA_SIGNIN_FLOW",
  "needsAwait": true,
  "navigate": "actionResult",
  "data": {
    "entrypoint": "onboarding",
    "extraParams": {
      "utm_content": "migration-onboarding"
    }
  }
}

打开 Firefox 账户注册或登录页面,并在登录完成后关闭生成的标签页或窗口。返回一个 Promise,如果登录成功,则解析为 true,如果登录窗口或标签页在登录完成前关闭,则解析为 false。在使用 aboutwelcome 模板的消息界面中,设置 needsAwait 可确保 UI 等待 Promise 解析完成。UI 应在继续执行下一步之前,将 navigatedismiss 属性分配为字符串值“actionResult”以遵循解析后的布尔值。

默认情况下,会编码一些信息,表明来源是 about:welcome。

SHOW_MIGRATION_WIZARD

  • 参数:无

打开导入向导,以从其他浏览器导入设置和数据。

PIN_CURRENT_TAB

  • 参数:无

固定当前聚焦的标签页。

HIGHLIGHT_FEATURE

可用于突出显示(显示浅蓝色覆盖层)浏览器 UI 的某个按钮或部分。

INSTALL_ADDON_FROM_URL

可用于从 addons.mozilla.org 安装附加组件。

  • 参数

{
  url: string,
  telemetrySource?: string
};

OPEN_PROTECTION_REPORT

打开 about:protections

OPEN_PROTECTION_PANEL

在地址栏锁定图标后面打开保护面板

DISABLE_STP_DOORHANGERS

禁用所有社交跟踪保护消息

  • 参数:无

OPEN_AWESOME_BAR

聚焦并展开地址栏。

  • 参数:无

CANCEL

用于关闭 CFR 通知(但不删除或阻止它们)的空操作。

  • 参数:无

DISABLE_DOH

关闭 DoH 功能的用户操作

  • 参数:无

ACCEPT_DOH

继续使用 DoH 功能的用户操作

  • 参数:无

CONFIGURE_HOMEPAGE

配置用户主页和恢复默认设置的操作。

  • 参数

{
  homePage: "default" | null;
  newtab: "default" | null;
  layout: {
    search: boolean;
    topsites: boolean;
    highlights: boolean;
    topstories: boolean;
  }
}

PIN_FIREFOX_TO_TASKBAR

将 Firefox 固定到用户任务栏的操作。

  • 参数:无

PIN_FIREFOX_TO_START_MENU

仅在 Windows MSIX 版本中将 Firefox 固定到用户的 Windows 开始菜单的操作。

  • 参数:无

SET_DEFAULT_BROWSER

将用户系统上的默认浏览器设置为 Firefox 的操作。

  • 参数:无

SET_DEFAULT_PDF_HANDLER

将用户系统上的默认 PDF 处理程序设置为 Firefox 的操作。

仅限 Windows。

  • 参数

{
  // Only set Firefox as the default PDF handler if the current PDF handler is a
  // known browser.
  onlyIfKnownBrowser?: boolean;
}

DECLINE_DEFAULT_PDF_HANDLER

拒绝将用户系统上的默认 PDF 处理程序设置为 Firefox 的操作。防止再次询问用户此问题。

仅限 Windows。

  • 参数:无

SHOW_SPOTLIGHT

使用传递给对话框的内容打开聚光灯标签页或窗口模式的操作。

BLOCK_MESSAGE

通过将消息添加到已阻止消息的 IndexedDB 列表中来禁用消息

  • 参数:string 消息 ID

SET_PREF

设置各种浏览器首选项的操作

可以使用此操作更改的首选项为

  • browser.dataFeatureRecommendations.enabled

  • browser.migrate.content-modal.about-welcome-behavior

  • browser.migrate.content-modal.import-all.enabled

  • browser.migrate.preferences-entrypoint.enabled

  • browser.shopping.experience2023.active

  • browser.shopping.experience2023.optedIn

  • browser.shopping.experience2023.survey.optedInTime

  • browser.shopping.experience2023.survey.hasSeen

  • browser.shopping.experience2023.survey.pdpVisits

  • browser.startup.homepage

  • browser.startup.windowsLaunchOnLogin.disableLaunchOnLoginPrompt

  • browser.privateWindowSeparation.enabled

  • browser.firefox-view.feature-tour

  • browser.pdfjs.feature-tour

  • browser.newtab.feature-tour

  • cookiebanners.service.mode

  • cookiebanners.service.mode.privateBrowsing

  • cookiebanners.service.detectOnly

  • messaging-system.askForFeedback

任何以 messaging-system-action. 开头的首选项也允许。或者,如果首选项不在上述列表中,并且不以 messaging-system-action. 开头,则会创建它并在前面加上 messaging-system-action.。例如,example.pref 将被创建为 messaging-system-action.example.pref

  • 参数

{
  pref: {
    name: string;
    value: string | boolean | number;
  }
}

MULTI_ACTION

运行多个操作的操作。操作应包含在一个操作数组中。

  • 参数

{
  actions: Array<UserAction>
}
  • 示例

"action": {
  "type": "MULTI_ACTION",
  "data": {
    "actions": [
      {
        "type": "OPEN_URL",
        "args": "https://www.example.com"
      },
      {
        "type": "OPEN_AWESOME_BAR"
      }
    ]
  }
}

CLICK_ELEMENT

  • 参数:string 要单击的 HTML 元素的 CSS 选择器

选择当前窗口文档中的元素并触发单击操作

RELOAD_BROWSER

  • 参数:无

重新加载当前浏览器的操作。

FOCUS_URLBAR

聚焦显示消息的窗口中的地址栏

  • 参数:无

BOOKMARK_CURRENT_TAB

为显示消息时选定的标签页添加书签

  • 参数

{
  // Whether the bookmark dialog should be visible or not.
  shouldHideDialog?: boolean;
  // Whether the bookmark confirmation hint should be visible or not.
  shouldHideConfirmationHint?: boolean;
}

SET_BOOKMARKS_TOOLBAR_VISIBILITY

设置书签工具栏的可见性。

  • 参数

{
  visibility?: string; // "always", "never", or "newtab"
}

CREATE_NEW_SELECTABLE_PROFILE

创建一个新的用户配置文件并在单独的实例中启动它。

任何使用此操作的消息都应将 canCreateSelectableProfiles 作为目标的一部分,以确保我们不会意外地显示操作无法执行的消息。

  • 参数:无