doc: add doc for the Firefox backend

This commit is contained in:
CismonX 2025-01-08 01:12:44 +08:00
parent 6978feb9d4
commit 1602853772
No known key found for this signature in database
GPG key ID: 3094873E29A482FB

View file

@ -806,6 +806,72 @@ you may submit a feature request or implement one using the Backend API.
@node Firefox
@section Firefox Backend
The Firefox backend provides access to the bookmark data of the web browser
@uref{https://www.mozilla.org/en-US/firefox/new/, Mozilla Firefox}
and its derivatives, notably @uref{https://www.torproject.org/, Tor Browser}
and @uref{https://librewolf.net/, Librewolf}.
Firefox bookmarks are stored in a SQLite database under the profile directory:
@example
~/.mozilla/firefox/@var{$@{profile_name@}}/places.sqlite
@end example
When mounting the filesystem, this pathname shall be passed as the @var{src}
argument (@pxref{mount.bookmarkfs}).
Actual path for the profile directories may differ across distributions.
Backend-specific options:
@table @option
@item filename=title|guid
Whether to use the bookmark title or GUID as the bookmark file name.
Defaults to ``title''.
A bookmark GUID is a base64url-encoded 128-bit string uniquely associated
with a bookmark or bookmark folder.
When creating a new file:
@table @option
@item @option{filename=title}
The GUID is randomly generated by the backend.
@item @option{filename=guid}
The filename must be a valid GUID, and must not duplicate with other files
on the same filesystem, otherwise @code{open()} fails with @code{EPERM}.
Also sets the GUID string as the bookmark title.
@end table
@item lock=exclusive|normal
The database connection locking mode for the bookmark storage.
Defaults to ``normal'' when the filesystem is mounted read-only,
``exclusive'' otherwise.
This option corresponds to the
@uref{https://www.sqlite.org/pragma.html#pragma_locking_mode,
@code{locking_mode}} pragma on SQLite.
With @option{lock=exclusive}, other process cannot access the bookmark storage
until the filesystem is dismounted.
The Firefox browser holds an exclusive lock on the bookmark storage by default.
If you wish to mount the bookmarks while keeping the browser session open,
turn off the @code{storage.sqlite.exclusiveLock.enabled} switch
in @indicateurl{about:config}.
@item assume_title_distinct
If this options is provided, the backend assumes that bookmark names are
distinct under the same bookmark folder.
This option is ignored with @option{filename=guid}.
This option may improve @code{readdir()} performance, however,
making a false assumption results in a directory entry with duplicate names.
It is recommended to perform a full filesystem check (@pxref{Filesystem Check})
on the bookmark storage before mounting with this option.
@end table
@node Chromium
@section Chromium Backend