Web Extensions🔗
Description🔗
WebExtensions portal
The WebExtensions portal allows sandboxed web browsers to start native messaging hosts installed on the host system.
Accompanying documentation for Firefox’s implementation is available: Native messaging for a strictly-confined Firefox.
This documentation describes version 1 of this interface.
Properties🔗
org.freedesktop.portal.WebExtensions:version🔗
version readable u
Methods🔗
org.freedesktop.portal.WebExtensions.CreateSession🔗
CreateSession (
IN options a{sv},
OUT session_handle o
)
Create a web extensions session. A successfully created session can at any time be closed using org.freedesktop.portal.Session::Close, or may at any time be closed by the portal implementation, which will be signalled via org.freedesktop.portal.Session::Closed.
To close a session, the browser should:
close the process’s stdin/stdout/stderr file descriptors obtained from the portal;
wait for a D-Bus Closed signal from the portal on the org.freedesktop.portal.Session object (which will be triggered on SIGCHLD via the g_child_watch_add_full handler); and
if the Closed signal from the portal doesn’t come in time, call the Close method on the org.freedesktop.portal.Session object.
Supported keys in the options
vardict include:
<variablelist>
- <varlistentry>
<term>mode s</term> <listitem><para>
A string indicating which behaviour the portal should use when locating and starting native messaging hosts. Valid values are “mozilla” and “chromium”. By default, mozilla behaviour is used.
</para></listitem>
</varlistentry> <varlistentry>
<term>session_handle_token s</term> <listitem><para>
A string that will be used as the last element of the session handle. Must be a valid object path element. See the `org.freedesktop.portal.Session`_ documentation for more information about the session handle.
</para></listitem>
</varlistentry>
</variablelist>
- options
Vardict with optional further information
- session_handle
Object path for the `org.freedesktop.portal.Session`_ created by this call.
org.freedesktop.portal.WebExtensions.GetManifest🔗
GetManifest (
IN session_handle o,
IN name s,
IN extension_or_origin s,
OUT json_manifest s
)
Return the JSON manifest of the native messaging host that Start would invoke.
- session_handle
Object path for the `org.freedesktop.portal.Session`_ object
- name
name of the native messaging host
- extension_or_origin
extension ID or origin URI identifying the extension
- json_manifest
the JSON manifest for the native messaging host
org.freedesktop.portal.WebExtensions.Start🔗
Start (
IN session_handle o,
IN name s,
IN extension_or_origin s,
IN options a{sv},
OUT handle o
)
Start the named native messaging host. The caller must indicate the requesting web extension (either by extension ID for Firefox, or origin URI for Chrome), which will be matched against the host’s access control list.
If the host can’t be started, or invalid data is provided, the session will be closed.
Supported keys in the options
vardict include:
<variablelist>
- <varlistentry>
<term>handle_token s</term> <listitem><para>
A string that will be used as the last element of the
handle
. Must be a valid object path element. See the `org.freedesktop.portal.Request`_ documentation for more information about thehandle
.</para></listitem>
</varlistentry>
</variablelist>
- session_handle
Object path for the `org.freedesktop.portal.Session`_ object
- name
name of the native messaging host
- extension_or_origin
extension ID or origin URI identifying the extension
- options
Vardict with optional further information
- handle
Object path for the `org.freedesktop.portal.Request`_ object representing this call
org.freedesktop.portal.WebExtensions.GetPipes🔗
GetPipes (
IN session_handle o,
IN options a{sv},
OUT stdin h,
OUT stdout h,
OUT stderr h
)
Retrieve file descriptors for the native messaging host identified by the session. This method should only be called after the Start request recveives a successful response.
- session_handle
Object path for the `org.freedesktop.portal.Session`_ object
- options
Vardict with optional further information
- stdin
File descriptor representing the hosts’s stdin.
- stdout
File descriptor representing the host’s stdout.
- stderr
File descriptor representing the host’s stderr.