summaryrefslogtreecommitdiffstats
path: root/toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/index.md')
-rw-r--r--toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/index.md341
1 files changed, 341 insertions, 0 deletions
diff --git a/toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/index.md b/toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/index.md
new file mode 100644
index 0000000000..8b431a66fe
--- /dev/null
+++ b/toolkit/components/messaging-system/schemas/SpecialMessageActionSchemas/index.md
@@ -0,0 +1,341 @@
+# User Actions
+
+A subset of actions are available to messages via fields like `action` on buttons for CFRs.
+
+## Usage
+
+For CFRs, you should add the action `type` in `action` and any additional parameters in `data`. For example:
+
+```json
+"action": {
+ "type": "OPEN_PREFERENCES_PAGE",
+ "data": { "category": "sync" },
+}
+```
+
+## Available Actions
+
+### `OPEN_APPLICATIONS_MENU`
+
+* args: (none)
+
+Opens the applications menu.
+
+### `OPEN_FIREFOX_VIEW`
+
+* args: (none)
+
+Opens the Firefox View pseudo-tab.
+
+### `OPEN_PRIVATE_BROWSER_WINDOW`
+
+* args: (none)
+
+Opens a new private browsing window.
+
+
+### `OPEN_URL`
+
+* args: `string` (a url)
+
+Opens a given url.
+
+Example:
+
+```json
+"action": {
+ "type": "OPEN_URL",
+ "data": { "args": "https://foo.com" },
+}
+```
+
+### `OPEN_ABOUT_PAGE`
+
+* args:
+```ts
+{
+ args: string, // (a valid about page without the `about:` prefix)
+ entrypoint?: string, // URL search param used for referrals
+}
+```
+
+Opens a given about page
+
+Example:
+
+```json
+"action": {
+ "type": "OPEN_ABOUT_PAGE",
+ "data": { "args": "privatebrowsing" },
+}
+```
+
+### `OPEN_PREFERENCES_PAGE`
+
+* args:
+```
+{
+ 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`
+
+* args: (none)
+
+Opens Firefox accounts sign-up page. Encodes some information that the origin was from snippets by default.
+
+### `FXA_SIGNIN_FLOW`
+
+* args:
+
+```ts
+{
+ // 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.
+}
+```
+
+Opens a Firefox accounts sign-up or sign-in page, and does the work of closing the resulting tab or window once
+sign-in completes. Returns a Promise that resolves to `true` if sign-in succeeded, or to `false` if the sign-in
+window or tab closed before sign-in could be completed.
+
+Encodes some information that the origin was from about:welcome by default.
+
+
+### `SHOW_MIGRATION_WIZARD`
+
+* args: (none)
+
+Opens import wizard to bring in settings and data from another browser.
+
+### `PIN_CURRENT_TAB`
+
+* args: (none)
+
+Pins the currently focused tab.
+
+### `HIGHLIGHT_FEATURE`
+
+Can be used to highlight (show a light blue overlay) a certain button or part of the browser UI.
+
+* args: `string` a [valid targeting defined in the UITour](https://searchfox.org/mozilla-central/rev/7fd1c1c34923ece7ad8c822bee062dd0491d64dc/browser/components/uitour/UITour.jsm#108)
+
+### `INSTALL_ADDON_FROM_URL`
+
+Can be used to install an addon from addons.mozilla.org.
+
+* args:
+```ts
+{
+ url: string,
+ telemetrySource?: string
+};
+```
+
+### `OPEN_PROTECTION_REPORT`
+
+Opens `about:protections`
+
+### `OPEN_PROTECTION_PANEL`
+
+Opens the protection panel behind on the lock icon of the awesomebar
+
+### `DISABLE_STP_DOORHANGERS`
+
+Disables all Social Tracking Protection messages
+
+* args: (none)
+
+### `OPEN_AWESOME_BAR`
+
+Focuses and expands the awesome bar.
+
+* args: (none)
+
+### `CANCEL`
+
+No-op action used to dismiss CFR notifications (but not remove or block them)
+
+* args: (none)
+
+### `DISABLE_DOH`
+
+User action for turning off the DoH feature
+
+* args: (none)
+
+### `ACCEPT_DOH`
+
+User action for continuing to use the DoH feature
+
+* args: (none)
+
+### `CONFIGURE_HOMEPAGE`
+
+Action for configuring the user homepage and restoring defaults.
+
+* args:
+```ts
+{
+ homePage: "default" | null;
+ newtab: "default" | null;
+ layout: {
+ search: boolean;
+ topsites: boolean;
+ highlights: boolean;
+ topstories: boolean;
+ }
+}
+```
+
+### `PIN_FIREFOX_TO_TASKBAR`
+
+Action for pinning Firefox to the user's taskbar.
+
+* args: (none)
+
+### `SET_DEFAULT_BROWSER`
+
+Action for setting the default browser to Firefox on the user's system.
+
+- args: (none)
+
+### `SET_DEFAULT_PDF_HANDLER`
+
+Action for setting the default PDF handler to Firefox on the user's system.
+
+Windows only.
+
+- args:
+```ts
+{
+ // Only set Firefox as the default PDF handler if the current PDF handler is a
+ // known browser.
+ onlyIfKnownBrowser?: boolean;
+}
+```
+
+### `DECLINE_DEFAULT_PDF_HANDLER`
+
+Action for declining to set the default PDF handler to Firefox on the user's
+system. Prevents the user from being asked again about this.
+
+Windows only.
+
+- args: (none)
+
+### `SHOW_SPOTLIGHT`
+
+Action for opening a spotlight tab or window modal using the content passed to the dialog.
+
+### `BLOCK_MESSAGE`
+
+Disable a message by adding to an indexedDb list of blocked messages
+
+* args: `string` id of the message
+
+### `SET_PREF`
+
+Action for setting various browser prefs
+
+Prefs that can be changed with this action are:
+
+- `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`
+
+Any pref that begins with `messaging-system-action.` is also allowed.
+Alternatively, if the pref is not present in the list above and does not begin
+with `messaging-system-action.`, it will be created and prepended with
+`messaging-system-action.`. For example, `example.pref` will be created as
+`messaging-system-action.example.pref`.
+
+* args:
+```ts
+{
+ pref: {
+ name: string;
+ value: string | boolean | number;
+ }
+}
+```
+
+### `MULTI_ACTION`
+
+Action for running multiple actions. Actions should be included in an array of actions.
+
+* args:
+```ts
+{
+ actions: Array<UserAction>
+}
+```
+
+* example:
+```json
+"action": {
+ "type": "MULTI_ACTION",
+ "data": {
+ "actions": [
+ {
+ "type": "OPEN_URL",
+ "args": "https://www.example.com"
+ },
+ {
+ "type": "OPEN_AWESOME_BAR"
+ }
+ ]
+ }
+}
+```
+
+### `CLICK_ELEMENT`
+
+* args: `string` A CSS selector for the HTML element to be clicked
+
+Selects an element in the current Window's document and triggers a click action
+
+
+### `RELOAD_BROWSER`
+
+* args: (none)
+
+Action for reloading the current browser.
+
+
+### `FOCUS_URLBAR`
+
+Focuses the urlbar in the window the message was displayed in
+
+* args: (none)